一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

可信设备和计算系统的制作方法

2022-02-21 06:44:47 来源:中国专利 TAG:


1.本发明涉及可信计算领域。更具体地,本发明涉及一种可信设备和一种包括所述可信设备的可信计算系统。本发明具体可以用于云计算领域。


背景技术:

2.云计算涉及多个租户使用共享资源。这样可以降低成本并减少维护。由于这种共享模式,云提供商通常可以完全控制用户的数据和资源(例如虚拟机、存储器或网络)。这包括:访问特权数据(例如,私钥、密码)、存储在云中的安全信息;能够代表用户进行操作;在云中提供的资源方面误导用户。如果攻击者损坏了云基础架构,则他们也可以进行上述操作。
3.由于这些原因,云提供商和租户之间需要信任。这在大多数情况下是可以接受的,但在某些情况下(例如,监管或业务原因),无法建立这种信任。
4.对于不可能进行这种信任的用例,租户在以下条件下仍可以享受云基础架构的使用:所有特权数据在静止时不可访问,或所有特权数据在处理时不可访问。当所有特权数据在静止时不可访问时,需要对数据进行加密,而当所有特权数据在处理时不可访问时,需要能够对租户代码进行可信执行。
5.英特尔提供指令集扩展(软件防护扩展-sgx),以创建可信和安全执行的飞地。用户可以创建这种飞地,运行证明协议并运行计算,而无需将计算的状态暴露给cpu上运行的任何其它代码。具体地,sgx是一组指令,有助于提高任何应用程序代码和数据的安全性,从而为它们提供更多的保护,免遭泄露或篡改。
6.arm提供了trustzone技术,可将硬件划分为可信环境和不太可信环境,这些环境相互隔离。硬件负责切换模式。
7.可信平台模块(trusted platform module,tpm)(也称为iso/iec 11889)是安全加密处理器的国际标准,这是一种专用微控制器,旨在通过集成加密密钥保护硬件。
8.但是,这些技术不适用于云计算或设备在租户之间共享或不归用户所有的任何其它用例,因为上述方案假定所有者、用户和管理员是同一实体。
9.也就是说,租户用户特别缺乏以下可信执行的属性:证明将访问特权数据的已部署软件的能力,以及证明所提供的硬件并验证其处于独占访问状态的能力。


技术实现要素:

10.鉴于上述问题和缺点,本发明实施例旨在改进传统可信设备和系统。
11.具体地,目的是提供一种可信设备,该可信设备可以验证由用户设备提供给可信设备的程序代码实际由可信设备执行。
12.通过所附独立权利要求中提供的实施例实现所述目的。这些实施例的有利实现方式在从属权利要求中进一步定义。
13.本发明的第一方面提供了一种用于可信计算系统的可信设备,其中,所述可信设
备用于:从用户设备获取数值和程序代码;根据所述数值和所述程序代码计算哈希值;对所述哈希值进行签名;将所述签名哈希值提供给验证设备。
14.这是有益的,因为代码是在专用的和物理上独立的计算核上执行的,这使得它更不容易受到侧信道攻击。这还确保了任何任意程序都可以在可信设备上执行,这对tpm不同,后者提供密钥存储功能以及一组固定的加密和供应商特定功能。这使得可信模块上的程序是从模块传出的消息的唯一仲裁者,并可以被写入,以禁止未经授权访问存储的信息。这与tpm相反,在tpm中,硬件所有者可以调用tpm函数来使用当前存储的密钥对消息进行签名。
15.哈希函数具体是使用哈希值计算。哈希函数可以是将任意大小的数据映射到固定大小的数据的任何函数。哈希函数返回的值可以称为哈希值。哈希值具体是使用公钥/私钥加密进行签名。具体地,根据数值和程序代码计算哈希值包括将程序代码的数值用作哈希函数的输入值。具体地,对哈希值进行签名包括对算法进行签名,该算法在给定哈希值和私钥的情况下产生签名(即,签名哈希值)。
16.可信设备(也可以称为可信模块)可以被视为包括存储器和io的可信计算单元。可信设备可以是协处理器、片上系统或其中存储器和总线与其它计算单元隔离并通过物理手段进行检查的任何处理器。可信设备可以暴露低级消息传递接口(发送/接收),以及以可信方式重置和加载新程序的能力。
17.可信设备可以是防篡改的,并且可以包括执行可信重置和加载所需的所有设施。因此,可信设备的用户能够获得设备真实性的证据,以及正确完成将设备重置到干净状态并加载新程序(通过可信设备的供应商提供的密钥)。
18.可信设备的重置和加载命令可以实现将程序加载到可信设备中。该命令可以确保可信设备硬件中的状态(包括存储器、寄存器的状态和可信设备的其它状态)的重置。该命令可能需要用户提供的质询,并可能以完全加密的应答完成。一旦程序加载到可信设备中,可信设备就可以提供加密完成证据。
19.重置和加载命令的证据可以由设备供应商验证,并证明以下方面:证据是在代表供应商制造的可信设备上生成的。可信设备执行了重置,重置到初始状态。可信设备仅加载了具有特定哈希的程序。
20.因此,可以确保在可信设备上运行的代码是可信的,这与可以在同一cpu上运行的具有非可信代码的飞地相反。可信设备的用户可以证明所使用的可信设备及其加载代码的真实性。对可信设备的物理访问不会损害其内容。
21.在第一方面的一种实现方式中,所述数值为随机数。
22.具体地,随机数也被称为“使用一次的数字”。具体地,随机数也可以被称为加密质询。具体地,随机数是一个任意数字,在加密通信中只能使用一次。
23.在第一方面的另一种实现方式中,所述可信设备包括可信处理器,所述可信设备还用于重置所述可信处理器并将所述程序代码加载到所述可信处理器。
24.这确保了可信处理器仅运行从用户设备获得的程序代码。其它程序代码无法在不被注意到的情况下提供给用户设备。
25.在第一方面的另一种实现方式中,所述可信处理器还用于根据所述数值和所述加载的程序代码计算所述哈希值。
26.在第一方面的另一种实现方式中,所述可信处理器还用于根据所述可信设备的存储器的内容计算所述哈希值。
27.具体地,哈希值是根据存储器的整个内容(具体包括程序代码)计算的。
28.在第一方面的另一种实现方式中,所述可信处理器还用于根据所述可信设备的私钥对所述哈希值进行签名。
29.具体地,例如在供应商制造可信设备期间,私钥被预先存储在可信设备中。
30.在第一方面的另一种实现方式中,所述可信设备被实现为可插拔的卡。
31.这是有益的,因为可信设备可以实现为可插拔和非集成设备。
32.本发明的第二方面提供了一种可信计算系统,所述可信计算系统包括根据第一方面或其任一实现方式所述的可信设备,和验证设备,其中,所述验证设备用于从用户设备获取所述数值;从所述可信设备获取所述签名哈希值;根据所述数值和所述签名哈希值验证所述可信设备的真实性。
33.具体地,签名哈希值可以直接或间接提供给验证设备。具体地,在签名哈希值被间接提供给验证设备的情况下,签名哈希值例如通过用户设备(例如,用户终端、个人计算机、笔记本、智能手机等)从可信设备转发到验证设备。
34.具体地,由可信设备获得的数值与由验证设备获得的数值相同。具体地,数值可以由用户设备确定和提供。
35.在第二方面的一种实现方式中,所述系统还包括所述用户设备,其中,所述用户设备用于计算所述数值,获得所述程序代码,向所述可信设备提供所述数值和所述程序代码,并向所述验证设备提供所述数值。
36.在第二方面的另一种实现方式中,所述用户设备还用于从所述可信设备获取所述签名哈希值,并将所述签名哈希值转发给所述验证设备。
37.具体地,因此,可信设备间接向验证设备提供签名哈希值。具体地,用户设备从可信设备接收签名哈希值,然后将其提供给验证设备。
38.在第二方面的另一种实现方式中,所述用户设备还用于在将所述程序代码提供给所述可信设备之前,计算并存储所述程序代码的哈希值。
39.在第二方面的另一种实现方式中,所述用户设备还用于比较所述程序代码的所述存储哈希值与根据加载到所述可信处理器的所述程序代码计算的哈希值,验证所述用户设备提供的所述程序代码是加载到所述可信处理器的所述程序代码。
40.具体地,为了根据加载到可信处理器的程序代码计算哈希值,用户设备可以直接或间接访问可信设备中的可信处理器。也就是说,哈希值的计算由用户设备执行。
41.在第二方面的另一种实现方式中,所述验证设备还用于验证所述可信设备执行的所述程序代码是所述用户设备提供的所述程序代码,以验证所述可信设备的真实性。
42.在第二方面的另一种实现方式中,所述验证设备还用于验证所述可信设备的身份和所述可信设备的供应商中的一个或两个,以验证所述可信设备的真实性。
43.在第二方面的另一种实现方式中,所述验证设备还用于根据与所述可信设备的所述私钥对应的公钥验证所述可信设备的真实性。
44.具体地,公钥预先存储在验证设备中。
45.在第二方面的另一种实现方式中,所述验证设备还用于向所述用户设备提供所述
可信设备的真实性的验证结果。
46.本发明的第三方面提供了一种操作可信设备的方法,其中,所述方法包括以下步骤:所述可信设备从用户设备获取数值和程序代码;所述可信设备根据所述数值和所述程序代码计算哈希值;所述可信设备对所述哈希值进行签名;所述可信设备向验证设备提供所述签名哈希值。
47.在第三方面的一种实现方式中,所述数值为随机数。
48.在第三方面的另一种实现方式中,所述方法还包括所述可信设备重置所述可信设备的可信处理器,以及所述可信设备将所述程序代码加载到所述可信处理器。
49.在第三方面的另一种实现方式中,所述方法还包括所述可信处理器根据所述数值和所述加载的程序代码计算所述哈希值。
50.在第三方面的另一种实现方式中,所述方法还包括所述可信处理器根据所述可信设备的存储器的内容计算所述哈希值。
51.在第三方面的另一种实现方式中,所述方法还包括所述可信处理器根据所述可信设备的私钥对所述哈希值进行签名。
52.在第三方面的另一种实现方式中,所述可信设备被实现为可插拔的卡。
53.第三方面及其实现方式包括与第一方面及其各自的实现方式相同的优点。
54.本发明的第四方面提供了一种用于操作包括可信设备和验证设备的可信计算系统的方法,其中,所述方法包括以下步骤:所述可信设备从用户设备获取数值和程序代码;所述可信设备根据所述数值和所述程序代码计算哈希值;所述可信设备对所述哈希值进行签名;所述可信设备向所述验证设备提供所述签名哈希值;所述验证设备从所述用户设备获取所述数值;所述验证设备从所述可信设备获取所述签名哈希值;所述验证设备根据所述数值和所述签名哈希值验证所述可信设备的真实性。
55.在第四方面的一种实现方式中,所述方法还包括:所述系统的用户设备计算所述数值,获取所述程序代码,将所述数值和所述程序代码提供给所述可信设备,将所述数值提供给所述验证设备。
56.在第四方面的另一种实现方式中,所述方法还包括所述用户设备从所述可信设备获取所述签名哈希值,所述用户设备将所述签名哈希值转发给所述验证设备。
57.在第四方面的另一种实现方式中,所述方法还包括所述用户设备在将所述程序代码提供给所述可信设备之前,计算并存储所述程序代码的哈希值。
58.在第四方面的另一种实现方式中,所述方法还包括:所述用户设备比较所述程序代码的所述存储哈希值与根据加载到所述可信处理器的所述程序代码计算的哈希值,以验证所述用户设备提供的所述程序代码是加载到所述可信处理器的所述程序代码。
59.在第四方面的另一种实现方式中,所述方法还包括所述验证设备验证所述可信设备执行的所述程序代码是所述用户设备提供的所述程序代码,以验证所述可信设备的真实性。
60.在第四方面的另一种实现方式中,所述方法还包括所述验证设备验证所述可信设备的身份和所述可信设备的供应商中的一个或两个,以验证所述可信设备的真实性。
61.在第四方面的另一种实现方式中,所述方法还包括所述验证设备根据与所述可信设备的所述私钥对应的公钥验证所述可信设备的真实性。
62.在第四方面的另一种实现方式中,所述方法还包括所述验证设备向所述用户设备提供所述可信设备真实性的验证结果。
63.第四方面及其实现方式包括与第二方面及其各自的实现方式相同的优点。
64.本发明的第五方面提供了一种计算机程序产品,所述计算机程序产品包括程序代码,所述程序代码用于当所述计算机程序在计算机上执行时执行根据第三方面或其任一实现方式所述的方法。
65.第五方面及其实现方式包括与第三方面及其各自的实现方式相同的优点。
66.本发明的第六方面提供了一种计算机程序产品,所述计算机程序产品包括程序代码,所述程序代码用于当所述计算机程序在计算机上执行时执行根据第四方面或其任一实现方式所述的方法。
67.第六方面及其实现方式包括与第四方面及其各自的实现方式相同的优点。
68.需要说明的是,本技术中描述的所有设备、元件、单元和模块可以在软件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的具体功能或步骤没有在执行具体步骤或功能的该实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在对应的硬件元件或软件元件或其任何类型的组合中实现。
附图说明
69.结合所附附图,下面多个具体实施例的描述将阐述上述本发明的各方面及其实现方式,
70.其中:
71.图1示出了本发明实施例提供的可信设备的示意图;
72.图2更详细地示出了本发明实施例提供的可信设备的示意图;
73.图3示出了本发明实施例提供的可信设备的另一示意图;
74.图4示出了本发明实施例提供的系统的示意图;
75.图5更详细地示出了本发明实施例提供的系统的示意图;
76.图6示出了本发明提供的系统的操作方式;
77.图7示出了本发明提供的系统的另一操作方式;
78.图8示出了本发明实施例提供的方法的示意图;
79.图9示出了本发明实施例提供的方法的示意图。
具体实施方式
80.图1示出了本发明实施例提供的可信设备100的示意图。可信设备100可以用于可信计算系统400中,如下文参考图4描述。可信设备100和可信计算系统400特别适合于云计算。
81.可信设备100用于从用户设备501获得数值101和程序代码102(用户设备501也将在下文参考图5描述)。用户设备501不是可信设备100的一部分。根据数值101和程序代码102,可信设备100可以计算哈希值103,并对哈希值103进行签名。然后,将签名哈希值103提
供给验证设备401(下文也将描述)。
82.因此,可以验证提供给可信设备100的程序代码102也是由可信设备执行的程序代码102。
83.图2更详细地示出了本发明实施例提供的可信设备100。如图2所示的可信设备100包括与参考图1描述的设备100相同的特征和功能。
84.如图2所示,可信设备100可选地可以包括可信处理器201,该可信处理器201可以加载和执行程序代码102。之前,可信处理器201可以具体地被重置,使得除了加载到可信处理器201的程序代码102之外,没有其它代码。
85.可信设备100可选地还可以包括存储器202。存储器202通常可以存储提供给可信设备100或由可信设备100处理的各种信息。具体地,哈希值103可以根据存储器202的内容(即数值101和程序代码102)获取。
86.可信设备100还可以存储与可信设备100相关的私钥203。私钥203可以用于对哈希值103进行签名。私钥203可以例如存储在可信设备100的存储器202中。
87.图3示出了可信设备100的可能实施例。图3示意性地示出了具有将充当可信设备100的特殊pci-e卡的服务器。pci-e卡包含以下内容:多核处理器(以下称为可信环境处理器单元(trusted environment processor unit,tepu))、存储设备、证明单元。
88.tepu对存储在存储器中的所有数据进行加密,因此无法通过点击tepu与其存储器之间的连接来读取这些数据。只有tepu才能访问证明单元以生成证明证据。tepu在其硬件中实现如上所述的重置和加载命令(即,指示可信处理器被重置并加载程序代码)。可信设备的供应商可以在证明单元内嵌入私钥(根据该密钥,证明单元对哈希值103进行签名)。公钥记录在供应商系统中(例如,在验证设备401中),并用于验证证据来自正确的可信设备100。
89.图4以示意性方式示出了本发明实施例提供的可信计算系统400。可信计算系统400具体包括可信设备100。
90.如图4所示,可信计算系统400还包括验证设备401。可信设备100可以与验证设备401一起验证加载到可信设备100的程序代码102没有被篡改或改变。
91.为此,验证设备401用于从用户设备501获取数值101。具体地,该数值与可信设备根据上面图1至图3获取的数值相同。验证设备401还用于从可信设备100获取签名哈希值103,并根据数值101和签名哈希值103验证可信设备100的真实性。
92.图5更详细地示出了本发明实施例提供的可信计算系统400。如图5所示的可信计算系统400包括与参考图4描述的系统400相同的特征和功能。
93.如图5所示,可信计算系统400还包括用户设备501。
94.用户设备501支持可信计算系统400和验证401获取数值101和程序代码102。因此,用户设备501例如计算数值101并获取程序代码102(例如通过用户输入),并将数值101和程序代码102提供给可信设备100。此外,该用户设备将数值101提供给验证设备401。
95.尽管这在图5中没有示出,但用户设备501也可以从可信设备100获取签名哈希值103,并将其转发给验证设备401。
96.为了验证用户设备501提供的程序代码102是加载到可信处理器201的程序代码102,用户设备可以在将程序代码102提供给可信设备100之前(在可信处理器201被重置之
后,该程序代码加载到可信处理器201),计算和存储程序代码102的哈希值502。然后,用户设备501比较程序代码102的存储哈希值502与根据加载到可信处理器201的程序代码102计算的哈希值103。
97.图6示出了可信计算系统400的操作示例。图6具体描述了用户将程序代码102加载到可信设备100中并建立信任的引导流程。
98.在加载阶段期间,用户计算用户意图在可信设备100上运行的程序(即,程序代码102)的加密哈希(就像该程序被加载到干净的存储器中一样)。用户存储加密哈希计算的结果。计算哈希,以便用户稍后可以验证加载的程序与用户意图运行的程序匹配。然后,用户将程序传输到连接到可信设备的主核(不运行该程序)。用户指示主核重置可信核(即可信处理器201)并立即加载程序(“重置和加载”命令)。对于该过程,用户提供加密随机数(即,数值101)作为质询(即,根据质询和应答机制的质询)作为命令的输入之一(连同程序代码102)。然后,可信设备100重置并加载程序代码102,然后提供整个存储器(包括加载的程序代码102)的哈希103,以及由可信设备100的私钥203签名的质询。继而,用户检索哈希(即,签名哈希103)和质询(即,数值101)的签名。换句话说,只有在预定义的程序被加载到可信设备100中,并且确保它只是在内部运行的预定义的程序之后,可信设备100才变得可信。在重置和加载命令期间,随机数(质询)被传递给可信设备100,可信设备100返回签名随机数(应答)。即,只要用户使用安全随机数,任何攻击者都不能模拟可信模块。
99.在证明阶段期间,用户将签名哈希103和质询101发送给可信设备100的供应商(即,发送到验证设备401)。然后,供应商验证签名103属于由供应商制造的可信设备100中的一个,并将结果报告给用户。如果用户接收到肯定的答案,则用户可以相信正确的程序代码102被加载到正确的设备(可信设备100),并且可以开始与可信设备100进行可信交互。
100.图7示出了可信计算系统400的操作示例,其中,可信设备100通过可信pci-e模块实现。如图7所示,主核向可信pci-e模块发送的重置和加载命令包括提供程序代码102的存储位置。接收到重置和加载命令后,可信pci-e模块重置为干净状态,使用直接内存访问(direct memory access,dma)从提供的地址加载程序代码102,然后计算内部存储器的哈希。
101.图8示出了本发明实施例提供的方法800的示意图。方法800用于操作可信设备100,并且该方法800包括可信设备100从用户设备501获取801数值101和程序代码102的步骤。方法800还包括可信设备100根据数值101和程序代码102计算802哈希值103的步骤。方法800还包括可信设备100对哈希值103进行签名803的步骤。方法800还包括可信设备100向验证设备401提供804签名哈希值103的步骤。
102.图9示出了本发明实施例提供的方法900的示意图。方法900用于操作包括可信设备100和验证设备401的可信计算系统400,并且该方法900包括可信设备100从用户设备501获取901的数值101和程序代码102的步骤。方法900还包括可信设备100根据数值101和程序代码102计算902哈希值103的步骤。方法900还包括可信设备100对哈希值103进行签名903的步骤。方法900还包括由可信设备100向验证设备401提供904签名哈希值103的步骤。方法900还包括验证设备401从用户设备501获取905数值101的步骤。方法900还包括验证设备401从可信设备100获取906签名哈希值103的步骤。方法900还包括验证设备401根据数值101和签名哈希值103验证907可信设备100的真实性的步骤。
103.已经结合作为示例的不同实施例以及实现方式描述了本发明。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求书以及说明书中,词语“包括”不排除其它元件或步骤,且“一个”不排除多个。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在互不相同的从属权利要求中叙述某些措施并不表示这些措施的组合不能用于有益的实现方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献