用于证明的系统和方法与流程

文档序号:30235131发布日期:2022-06-01 09:27阅读:155来源:国知局
用于证明的系统和方法与流程

1.本发明的一些实施例涉及网络安全,更具体地但不仅限于,涉及用于证明的系统和方法。


背景技术:

2.两个计算设备之间通过网络进行的远程通信容易受到恶意攻击,例如,远程客户端正在访问的服务器上运行的应用程序可能被恶意实体攻击。人们正在努力开发使远程客户端能够验证服务器上运行的应用程序未受到恶意攻击的系统和方法。


技术实现要素:

3.本发明的目的是提供一种用于证明和/或用于提供证明服务的设备、方法、装置、系统和/或代码指令。
4.上述和其它目的通过独立权利要求的特征来实现。进一步的实现方式在从属权利要求、具体实施方式和附图中显而易见。
5.根据第一方面,一种用于证明的设备,包括:具有处理器的计算电路,所述计算电路用于:从所述处理器获取密封密钥;基于所述密封密钥将加密的私钥解密为私钥;基于所述私钥对来自鉴权器(challenger)的报告进行签名。
6.根据所述第一方面,所述设备的优点在于,从所述设备的处理器获取密封密钥,其中,所述密封密钥用于解密加密的私钥,以获取用于对来自鉴权器的报告进行加密的私钥。与现有技术相比,该实施例不需要使用存储在所述处理器中的所述密钥对所述报告进行签名,并且使任何实体都能够提供可供信任该实体的组织使用的替代证明服务,因此提高了所述证明服务的灵活性。
7.在第一方面的另一种实现方式中,所述处理器还用于执行安全区(enclave)安全相关模块,用于:从所述处理器获取所述密封密钥;生成所述私钥和公钥,其中,所述公钥用于证明所述报告的真实性;使用所述密封密钥对所述私钥进行加密,以获取加密的私钥;将所述加密的私钥和所述公钥存储在一个或多个证明服务可访问的数据库中。
8.该实现方式的优点在于,生成包括私钥和公钥的密钥对,其中,所述私钥用于对来自所述鉴权器的所述报告进行签名,所述公钥可以由任何实体访问并且用于证明所述报告的真实性。与现有技术相比,不需要使用存储在所述处理器中的所述密钥对所述报告进行签名,这使任何实体都能够提供可供信任该实体的组织使用的替代证明服务,因此提高了所述证明服务的灵活性。
9.可以将安全区安全相关模块安装在所选处理器上,从而在所选处理器上启用替代证明服务。
10.所述安全区安全相关模块无法访问存储在所述处理器中的硬编码密钥。相反,所述安全区安全相关模块创建自己的密钥对。所述公钥被发布并用于验证由所述证明服务(例如,服务器)签名的报告。所述私钥用于对经过本地证明的报告进行签名。
11.对所述私钥进行加密会针对不属于所述安全区安全相关模块的任何过程隐藏所述私钥。可选地,只有所述安全区安全相关模块能够访问所述加密的私钥。
12.在所述第一方面的另一种实现方式中,所述私钥和所述公钥是随机生成的签名密钥对的一部分。
13.在所述第一方面的另一种实现方式中,从所述数据库获取所述加密的私钥。可选地,所述公钥也存储在所述数据库中。
14.在所述第一方面的另一种实现方式中,所述设备是服务器。
15.在所述第一方面的另一种实现方式中,所述设备还包括:可信基本输入/输出系统(basic input/output system,bios)和/或可信极简操作系统(operating system,os)。
16.在所述可信bios和/或操作系统中运行的任何安全区都不必证明其真实性。由于所述安全区安全相关模块是在所述可信bios和/或os中执行的,因此不必证明即可信任所述模块。所述可信bios和/或可信极简os的执行(假定为不受攻击)避免了对安全区进行认证(authenticate)的需要。
17.根据第二方面,一种用于证明的方法,包括:从执行所述方法的设备的处理器获取密封密钥;基于所述密封密钥将加密的私钥解密为私钥;基于所述私钥对来自鉴权器的报告进行签名。
18.所述证明不基于存储在硬件上的预定义数据,例如硬编码加密密钥,这些数据仅对远程服务器已知,所述远程服务器能够验证由使用所述硬编码加密密钥的过程生成的报告的真实性。
19.任何第三方实体都能够提供替代证明服务。所述替代证明服务不依赖于所述硬编码密钥信息。信任第三方实体的其它组织可以使用所述第三方实体提供的所述证明服务。所述替代证明服务可以用作基于所述硬编码密钥的单一证明服务的替代方案和/或与单一证明服务组合。
20.在所述第二方面的另一种实现方式中,所述方法还包括:执行安全区安全相关模块,用于:从执行所述方法的所述设备的所述处理器获取所述密封密钥;生成所述私钥和公钥,其中,所述公钥用于证明所述报告的真实性;使用所述密封密钥对所述私钥进行加密;将所述加密的私钥和所述公钥存储在一个或多个证明服务可访问的数据库中。
21.在所述第二方面的另一种实现方式中,所述方法还包括:随机生成包括所述私钥和所述公钥的密钥对。
22.在该实现方式中,所述公钥可以被发布,即所述公钥可以由任何实体访问并用于证明所述报告的真实性。
23.在所述第二方面的另一种实现方式中,所述方法还包括:从所述数据库中检索所述加密的私钥。
24.在所述第二方面的另一种实现方式中,所述方法还包括:安装可信基本输入/输出系统(basic input/output system,bios)。
25.在所述第二方面的另一种实现方式中,所述方法还包括:安装可信极简操作系统(operating system,os)。
26.根据第三方面,一种证明服务运营商设备(operator device),包括:数据库;计算电路,用于执行证明过程;其中,所述计算电路用于存储多个公钥,每个公钥使用多个计算
电路中的不同计算电路的处理器生成;所述计算电路还用于从鉴权器获取报告和公钥并基于所述多个公钥中的所述公钥证明所述报告的真实性。
27.所述证明服务独立于并且不访问和/或使用在相应不同计算电路的硬件中编码的任何特殊数据,例如,在硬件中编码的密钥。
28.在所述第三方面的另一实现方式中,所述计算电路用于通过所述存储的公钥验证所述报告的真实性。
29.根据第四方面,一种证明服务的方法,包括:存储多个公钥,每个公钥使用多个计算电路的不同计算电路的处理器生成;从鉴权器获取报告和公钥并基于所述多个公钥中的所述公钥证明所述报告的真实性。
30.在所述第四方面的另一实现方式中,所述方法还包括:在获取所述报告之后通过所述存储的公钥验证所述报告的真实性。
31.根据第五方面,一种计算机程序产品,所述计算机程序产品包括计算机可读代码指令,当所述计算机可读代码指令在计算机中运行时,将使所述计算机执行根据本发明第二方面和第二方面的其它实现方式中的任一种或本发明第四方面和第四方面的其它实现方式中的任一种所述的方法。
32.根据第六方面,一种计算机可读存储介质,所述计算机可读存储介质包括可由计算机执行的计算机程序代码指令,用于当所述计算机程序代码指令在计算机上运行时,执行根据本发明第二方面和第二方面的其它实现方式中的任一种或本发明第四方面和第四方面的其它实现方式中的任一种所述的方法。
33.根据第七方面,一种用于对视频流进行编码的装置,所述装置包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行根据本发明第二方面和第二方面的其它实现方式中的任一种或本发明第四方面和第四方面的其它实现方式中的任一种所述的方法。
34.本发明还涉及一种计算机程序,其特征在于程序代码,当所述程序代码由至少一个处理器运行时,使所述至少一个处理器执行根据本发明实施例所述的任何方法。此外,本发明还涉及一种计算机程序产品,包括计算机可读介质和所述计算机程序,其中,所述计算机程序包含在所述计算机可读介质中并且包括以下分组中的一个或多个:只读存储器(read-only memory,rom)、可编程rom(programmable rom,prom)、可擦除prom(erasable prom,eprom)、闪存、电eprom(electrically eprom,eeprom)以及硬盘驱动器。
35.除非另有定义,本文所使用的所有技术和/或科学术语的含义与本发明所属领域的普通技术人员通常理解的相同。尽管与本文所描述的方法和材料类似或等效的方法和材料可以用于本发明实施例的实现或测试,但下文还是描述了一些示例性方法和/或材料。如有冲突,以本专利说明书(包括定义)为准。另外,这些材料、方法和示例仅是说明性的,并不一定具有限制性。
附图说明
36.本文仅通过示例结合附图描述了本发明的一些实施例。具体结合附图详细说明,需要强调的是,所示细节通过示例示出并出于对本发明实施例的说明性探讨。这样,根据附图说明,如何实现本发明实施例对本领域技术人员而言是显而易见的。
37.其中:
38.图1是本发明的一些实施例提供的用于证明的系统的组件的框图;
39.图2是本发明的一些实施例提供的证明过程的流程图;
40.图3是本发明的一些实施例提供的用于执行证明过程的预安装阶段的过程的流程图;
41.图4是本发明的一些实施例提供的用于执行证明过程的预安装阶段的过程的数据流图;
42.图5是本发明的一些实施例提供的启动、报告生成和报告验证的过程(作为证明过程的一部分)的数据流图;
43.图6是本发明的一些实施例提供的启动过程(boot process)的数据流图;
44.图7是本发明的一些实施例提供的报告生成过程的数据流图;
45.图8是本发明的一些实施例提供的报告验证过程的数据流图。
具体实施方式
46.本发明的一些实施例涉及网络安全,更具体地但不仅限于,涉及用于证明的系统和方法。
47.本发明的一些实施例的一个方面涉及用于证明由目标过程(例如,由客户端远程访问的处理器(如服务器)执行的应用程序)生成的报告的系统、方法、装置和/或代码指令。所述证明不基于存储在硬件上的预定义数据,例如硬编码加密密钥,这些数据仅对远程服务器已知,所述远程服务器能够验证由使用所述硬编码加密密钥的过程生成的报告的真实性。可选地,所述证明过程包括:第一预安装阶段,用于设置执行过程证明的功能;生产阶段,用于执行过程证明。
48.所述安装阶段可以由执行相应安全区安全相关模块的多个处理器中的每个相应处理器执行。所述安全区安全相关模块是软件模块,可以安装在所选处理器上,从而在所选处理器上启用替代证明服务。生成私钥和公钥。所述公钥用于证明由目标过程生成的报告的真实性,如本文所述。从所述处理器获取密封密钥。使用所述密封密钥对所述私钥进行加密,以获取加密的私钥。所述加密的私钥和所述公钥存储在一个或多个证明服务可访问的数据库中。在生产阶段,可以使用从所述处理器获取的所述密封密钥来解密所述加密的私钥,以对来自所述鉴权器的报告进行签名。
49.所述鉴权器可以是试图对所述设备(例如,服务器)上运行的目标过程进行认证的远程设备,例如,请求认证用于与所述服务器建立远程连接的过程的客户端,或者请求认证客户端所连接的服务器上的数据和/或应用程序或者客户端正在获取的数据的客户端。
50.所述鉴权器可以使用所述证明服务(例如,服务器)来执行所述目标过程的验证,可选地,以认证所述鉴权器从托管目标过程的服务器接收的报告,该报告指示所述目标过程的真实性。所述证明服务可以向多个鉴权器提供证明服务。
51.应当注意,所述安全区安全相关模块无法访问存储在所述处理器中的硬编码密钥。相反,所述安全区安全相关模块创建自己的密钥对。所述公钥被发布并用于验证由所述证明服务(例如,服务器)签名的报告。所述私钥用于对经过本地证明的报告进行签名。
52.本文中使用的签名可以使用标准密码过程来实现。例如,通过使用密码哈希对报
告进行哈希处理,然后使用私钥对结果进行加密,即可对所述报告进行签名。通过使用所述公钥解密所述结果并将所述结果与所述报告的哈希值进行比较来验证签名。
53.可选地,在生成私钥和公钥时,当所述处理器执行可信基本输入/输出系统(basic input/output system,bios)和/或可信极简操作系统(operating system,os)时,执行所述安装阶段。生成所述私钥和所述公钥后,便可以在所述生产阶段执行更高级和/或完全可操作的bios和/或os。所述可信bios和/或可信极简os的执行(假定为不受攻击)避免了对安全区进行认证(authenticate)的需要。
54.在所述生产阶段,通过从所述处理器获取所述密封密钥来执行证明。从所述数据库获取所述加密的私钥。使用所述密封密钥将所述加密的私钥解密为私钥。使用所述私钥对来自鉴权器的报告进行签名。所述证明可以由所述安全区安全相关模块执行,所述安全区安全相关模块可用于证明其它过程(例如,安全区)的真实性。
55.本发明的一些实施例的一个方面涉及用于提供证明服务操作以证明报告的真实性的系统、方法、装置和/或代码指令。所述证明服务包括存储多个公钥的数据集,每个公钥使用不同计算电路的处理器生成。每个公钥可以在相应处理器的预安装阶段生成。所述证明服务从鉴权器获取报告和公钥,并基于所存储的多个公钥中的所述公钥证明所述报告的真实性。所述证明服务独立于并且不访问和/或使用在相应不同计算电路的硬件中编码的任何特殊数据,例如,在硬件中编码的密钥。
56.本文所述的系统、装置、方法和/或代码指令的至少一些实现方式解决了依赖单一证明服务证明由某个处理器提供的报告的真实性这一技术问题。所述单一证明服务基于在生产期间硬编码到某个处理器中的数据(例如,加密密钥)信息来证明报告的真实性。此外,所述单一证明服务基于每个处理器执行一个特殊安全过程,该过程能够在本地访问存储在相应处理器上的加密密钥。所述特殊安全过程使用所述密钥来证明所述处理器上其它安全过程生成的值的真实性。由于有关在生产时哪个处理器具有哪些插入所述处理器的加密密钥的信息是单一证明服务的秘密,并且所述加密密钥的访问只能由所述特殊安全过程执行,因此只有单一证明服务能够证明其上具有硬编码密钥的所述处理器提供的报告的真实性。换言之,只有所述单一证明服务能够安全地跟踪所述特殊密钥,并且只有所述单一证明服务能够验证由在任何处理器上运行的任何特殊安全过程完成的任何数字签名。依赖所述单一证明服务会出现问题,例如,如果所述单一证明服务变得不可用,则根本没有任何证明可用,并且如果所述单一证明服务受到攻击,则证明服务便会受到影响。本文所述的系统、装置、方法和/或代码指令的至少一些实现方式通过提供替代证明服务来提供该技术问题的技术方案,所述替代证明服务不依赖于有关生产时插入处理器的数据(例如,加密密钥)的信息和/或对该数据的访问。
57.现在将描述更多细节,以帮助读者理解该技术问题和技术方案。
58.某些处理器包括一组能够创建安全区的指令。安全区是由处理器以没有高特权实体(包括操作系统和/或管理程序)能够访问受保护的程序数据或改变受保护的程序逻辑的方式来保护的程序。安全区提供的安全保障的一个关键部分是证明过程。所述证明过程允许安全区向第三方证明其身份。例如,安全区的身份是可执行文件和受保护数据的密码哈希。所述证明过程的主要目的是证明某些值(本文中有时称为报告)是由具有定义身份的安全区生成的。第三方可以利用经证明的值va与所述安全区建立可信通信:所述安全区创建
一对非对称密钥,证明所述公钥的有效性并与第三方共享所述经证明的公钥。所述标准证明过程分两个阶段执行。第一阶段在所述处理器内部执行。表示为e的任何安全区都可以通过特殊指令调用所述处理器,以向其它安全区e2证明某个值是由e1生成的。传统上,第二阶段依赖于基于web的证明服务,如本文所解释的,所述证明服务是只能由所述处理器制造商提供的单一证明服务,因为所述证明基于硬编码到处理器中的密钥信息。
59.某些处理器包括允许任何安全区向在同一处理器上运行的任何其它安全区证明其报告的真实性的功能,包括设计用于访问在所述相应处理器上编码的特殊密钥的特殊引用安全区(quoting enclave)。报告指令使某个安全区能够指示所述处理器向另一个安全区证明某个报告是由所述某个安全区生成的。所述引用安全区是处理器上的一个特殊安全区,旨在执行以下任务:处理远程证明、从其它安全区接收报告、验证所述报告以及在将结果返回给应用程序之前使用非对称密钥对所述报告进行签名。
60.现在提供基于仅为所述单个证明服务已知的硬编码密钥的标准证明过程,以帮助读者理解相对于本文所述的标准过程的技术优势,所述标准过程不使用硬编码密钥并且能够创建多个证明服务。e表示要向第三方证明某些报告的真实性的安全区。以下是标准过程:
61.1.e请求所述处理器证明在所述处理器上运行的特殊引用安全区的报告。
62.2.所述处理器证明所述引用安全区的所述报告。
63.3.e与所述引用安全区共享所述签名的报告。
64.4.所述引用安全区验证所述报告的真实性。
65.5.所述引用安全区使用其签名密钥对所述报告进行签名,并将所述签名的报告返回给e。
66.6.e与第三方共享所述签名的报告。
67.由于只有所述单一证明服务存储所述硬编码处理器签名密钥,因此只有所述单一证明服务能够证明所述签名的报告是由其中一个所述处理器中的引用安全区合法签名的。所述单一证明服务从第三方获取所述签名的报告并证明所述签名的真实性。所述单一证明服务不能与第三方共享所述硬编码签名密钥,因为它会破坏所述处理器的安全性。
68.7.第三方与所述单一证明服务共享所述签名的报告,并从所述单一证明服务获取关于所述报告的签名是否真实的响应。
69.因为只有所述单一证明服务知道所述引用安全区签名密钥,因此只有所述单一证明服务能够证明所述签名报告的真实性。上述标准流程的主要缺点是要求服务提供商信任所述单一证明服务。服务提供商必须相信所述单一证明服务永远不会证明虚假签名或拒绝证明合法签名。安全处理器服务的可用性依赖于所述单一证明服务的持续可访问性。
70.任何第三方实体都能够提供替代证明服务。所述替代证明服务不依赖于所述硬编码密钥信息。信任第三方实体的其它组织可以使用所述第三方实体提供的所述证明服务。所述替代证明服务可以用作基于所述硬编码密钥的单一证明服务的替代方案和/或与单一证明服务组合。
71.在详细描述本发明的至少一个实施例之前,应理解,本发明的应用不一定限制于以下描述和/或附图和/或示例中所示的组件和/或方法的具体构造和设置。本发明存在其它实施例,或者本发明能够以各种方式实施或执行。
72.本发明的实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其中具有计算机可读程序指令,用于使处理器执行本发明的各方面。
73.所述计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述的任何适当组合。
74.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应计算/处理设备,或者通过因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储设备。
75.所述计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上执行且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,所述远程计算机可以通过任何类型的网络连接到用户的计算机,这些网络包括局域网(local area network,lan)或广域网(wide area network,wan),还可以(例如,通过使用因特网服务提供商的因特网)连接到外部计算机。在一些实施例中,包括可编程逻辑电路、现场可编程门阵列(field programmable gate array,fpga)或可编程逻辑阵列(programmable logic array,pla)等的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路来执行计算机可读程序指令,以执行本发明的各方面。
76.本文结合本发明实施例提供的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令实现。
77.图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示模块、段或一部分指令,该部分指令包括用于实现指定逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中注明的功能可以不按照图中注明的顺序。例如,实际上,连续示出的两个框可以实质上同时执行,或者根据所涉及的功能,这些框有时可以按相反的顺序执行。还需要说明的是,框图和/或流程图中的每个框,以及框图和/或流程图中的框的组合,可以由基于专用硬件的系统实现,这些系统执行指定的功能或动作,或执行专用硬件和计算机指令的组合。
78.现在参考图1,该图是本发明的一些实施例提供的用于证明的系统100的组件的框图。另可参考图2,该图是本发明的一些实施例提供的证明过程的流程图。
79.系统100包括用于证明的计算设备102、鉴权器设备104以及提供证明服务的计算设备106。
80.设备102、104和106中的每个设备可以实现为诸如以下各项中的一项或多项和/或其组合:一组连接的设备、客户端、服务器、虚拟服务器、计算云、虚拟机、智能电视、台式计算机、瘦客户端、网络节点、网络服务器和/或移动设备(例如,智能手机、平板电脑、笔记本电脑、可穿戴式计算机、眼镜电脑和手表电脑等)。
81.设备102和106可以充当服务器,鉴权器设备104可以充当客户端。
82.应当理解,为了清楚起见,描绘了102、104和106的单个实现方式,但是可以实现
102、104和106的多个实例。
83.设备102、104和106可以通过网络108进行通信。
84.网络108可以实现为诸如互联网、局域网、虚拟网络、无线网络、蜂窝网络、本地总线、点对点链路(例如,有线链路)和/或上述网络的组合。
85.例如,设备102、104和106之间通过网络108进行的通信可以通过应用编程接口(application programming interface,api)、软件开发工具包(software development kit,sdk)、功能和/或库和/或添加到现有应用程序的附件、用于下载和本地执行的应用程序、对由某个设备执行的代码的功能和/或接口调用来实现。
86.每个设备102、104、106都包括相应计算电路,所述计算电路具有至少一个相应处理器110、112、114,用于执行存储在相应存储器116、118、120上的代码116a、118a、120a。代码116a、118a、120a存储用于实现本文所述方法的指令。应当注意,至少一些代码指令和/或处理器功能可以实现为计算电路和/或其它硬件。
87.硬件处理器112、114、116可以实现为诸如中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、现场可编程门阵列(field programmable gate array,fpga)、数字信号处理器(digital signal processor,dsp)和专用集成电路(application specific integrated circuit,asic)。处理器112、114、116可以包括作为集群和/或作为一个或多个多核处理设备布置用于并行处理的单个处理器或多个处理器(同构或异构)。
88.处理器112可以与密封密钥112a相关联。
89.存储器116、118、120可以实现为诸如随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)和/或存储设备,例如非易失性存储器、磁介质、半导体存储设备、硬盘驱动器、可移动存储设备和光学介质(例如,dvd和只读光盘)。
90.设备102的存储器116可以存储目标过程116b以进行证明。存储器116可以存储安全区安全相关模块116c,所述安全区安全相关模块116c包括存储在存储器中的代码,所述代码在由处理器112执行时,使处理器112执行以下操作:获取密封密钥(112a);生成私钥(122a)和公钥(122b);使用密封密钥(112a)对私钥(122a)进行加密,以获取加密的私钥(122c);将加密的私钥(122c)和公钥(122b)存储在一个或多个证明服务(106)可访问的数据库(126a)中,如本文所述。
91.每个设备102、104、106可以包括用于存储数据的相应数据存储设备122、124、126。数据存储设备122、124、126可以实现为诸如存储器、本地硬盘驱动器、虚拟存储设备、可移动存储单元、光盘、存储设备和/或远程服务器和/或计算云(例如,使用网络连接访问)。应当注意,存储在存储器和/或数据存储设备中的数据可以互换(例如,从所述数据存储设备加载到所述存储器以供执行)和/或存储在两者中,和/或存储在所述存储器和/或所述数据存储设备中的任何一个中。
92.数据存储设备122可以存储以下各项中的一项或多项:生成的私钥122a、生成的公钥122b、通过使用密封密钥112a加密私钥122a而创建的加密的私钥122c,以及可信基本输入/输出系统(basic input/output system,bios)和/或可信极简操作系统(operating system,os)122d。
93.数据存储设备124可以存储报告124a。
94.数据存储设备126可以存储由不同设备102生成的加密的私钥126b和公钥126c的数据库126a。在一种实现方式中,数据集126a存储加密的私钥126b和公钥126c。在另一种实现方式中,一个数据集存储加密的私钥,另一个数据集存储公钥126c。
95.每个设备102、104、106可以包括用于连接到一个或多个网络108的相应网络接口(为清楚起见,图中省略了该接口),例如以下各项中的一个或多个:用于连接到无线网络的网络接口卡、天线、无线接口;用于连接到用于网络连接的电缆的物理接口;通过软件实现的虚拟接口;提供更高层网络连接的网络通信软件和/或其它实现方式。
96.设备102、104和/或106可以包括一个或多个相应用户接口128、130、132和/或与这些用户接口通信,所述相应用户接口128、130、132包括用户交互机制,例如,用于输入数据(例如,请求远程连接到目标过程116b)和/或查看数据(例如,查看从目标过程116b远程获取的数据)。
97.示例性物理用户接口128、130、132包括诸如触摸屏、显示器、手势激活设备、键盘、鼠标以及使用扬声器和麦克风的语音激活软件中的一个或多个。
98.现再次参考图2,所述方法包括参考202至210所述实现的预安装阶段、参考212至216所述实现的生产阶段以及参考218至220所述实现的证明阶段。例如,对于存储应用程序和/或其它数据(例如,目标过程116b)以供客户端(例如,鉴权器设备104)远程访问的每个服务器,在每个设备(102)处执行所述预安装阶段。所述预安装阶段可由安全区安全相关模块(116c)执行。所述生产阶段通过每个设备(102)响应于来自鉴权器(104)的消息来实现,例如,尝试通过网络(108)远程访问设备(116b)上的目标过程。所述证明阶段由证明服务(例如,设备106)响应于从鉴权器(104)接收报告(124a)以进行证明来实现。
99.在202处,将可信基本输入/输出系统(basic input/output system,bios)和/或可信极简操作系统(operating system,os)(122d)加载到所述设备,以便由所述计算电路的所述处理器执行。所述可信bios和/或可信os为生成的可信密钥(假定为不受攻击)设置不受攻击的环境。在所述可信bios和/或操作系统中运行的任何安全区都不必证明其真实性。由于所述安全区安全相关模块是在所述可信bios和/或os中执行的,因此不必证明即可信任所述模块。
100.可选地,安全区安全相关模块(116c)在加载可信bios和/或可信os之后安装和/或作为加载的一部分进行安装。
101.在204处,从所述设备的所述处理器获取密封密钥(112a)。例如,作为安装过程的一部分,所述密封密钥可以由所述安全区安全相关模块通过指令获取。
102.所述密封密钥是与每个安全区相关联的唯一密钥。每个安全区都可以向所述处理器请求其密封密钥。所述相应安全区可以使用所述密封密钥来加密所述安全区的激活之间的数据。
103.在206处,可选地,由安全区安全相关模块生成私钥(122a)和公钥(122b)。如本文所述,所述公钥用于证明所述报告的真实性。
104.可选地,所述私钥和所述公钥是随机生成的签名密钥对的一部分。例如,可以使用诸如由数字签名算法(digital signature algorithm,dsa)定义的标准加密过程来生成所述私钥和所述公钥。
105.由于所述私钥和所述公钥是在可信bios和/或os环境中生成的,因此所述私钥和
所述公钥的来源是已知的(例如,安全区安全相关模块)且所述私钥和所述公钥是可信的,并假定为不受攻击。
106.在208处,可选地,由所述安全区安全相关模块使用所述密封密钥对所述私钥进行加密,以获取加密的私钥(122c)。
107.对所述私钥进行加密会针对不属于所述安全区安全相关模块的任何过程隐藏所述私钥。可选地,只有所述安全区安全相关模块能够访问所述加密的私钥。
108.在210处,所述加密的私钥和所述公钥存储在一个或多个证明服务(106)可访问的数据库(126a)中。
109.所述证明服务使用所述公钥来验证所述安全区安全相关模块的签名。
110.多个公钥存储在所述数据库中。每个公钥是使用多个计算电路的不同计算电路的处理器生成的。多个计算电路中的每个计算电路正在执行相应的安全区安全相关模块。
111.在212处,例如,在启动时和/或响应于所述鉴权器设备试图证明目标过程的真实性的触发,从所述处理器获取所述密封密钥。所述密封密钥可以由所述安全区安全相关模块获取。
112.在214处,通过基于所述密封密钥对所述加密的私钥进行解密来获取所述私钥。可以从数据库(126a)获取所述加密的私钥(例如,通过所述安全区安全相关模块)。所述私钥是在206中的预安装阶段生成的。
113.在216处,基于在214中获取的所述私钥对来自所述鉴权器的报告进行签名。所述报告可以由所述安全区安全相关模块验证,然后再由所述私钥签名。所述签名的报告可以提供给所述鉴权器。
114.任何想要证明其身份的安全区都通过所述安全区安全相关模块创建报告并使用所述本地证明机制。所述本地证明机制可以用于在同一处理器上运行的两个过程之间的证明。所述本地证明机制可以基于标准过程。
115.在218处,可选地,由所述证明服务服务器从所述鉴权器获取所述签名的报告。
116.可以从所述鉴权器获取所述公钥,其中,所述公钥是由所述鉴权器从所述安全区安全相关模块和/或从存储所述公钥的所述数据库获取的。可替代地,所述公钥是由所述证明服务从存储所述公钥的所述数据库获取的。
117.从所述鉴权器获取的所述公钥用于查找存储在所述数据集中的匹配公钥。
118.在220处,可选地,由所述证明服务服务器证明所述报告的真实性。可替代地,由访问所述公钥的所述鉴权器证明所述报告的真实性。
119.从所述鉴权器获取所述报告后,使用匹配的存储公钥验证所述报告的真实性。
120.所述报告的真实性是基于所述多个公钥中的所述公钥来证明的。
121.可选地,由所述证明服务服务器向所述鉴权器设备提供所述报告的真实性指示。
122.现在参考图3,该图是本发明的一些实施例提供的用于执行证明过程的预安装阶段的过程的流程图302。参考图3描述的方法的至少一些特征可以对应于和/或替换为,和/或可以包括参考图2描述的方法的特征。参考图3描述的方法的至少一些特征可以通过参考图1描述的系统100的组件来实现。
123.在304处,在预安装模型中启动替代引用(alternative quoting,aq)安全区,本文中也称为安全区安全相关模块。
124.在306处,所述aq生成随机公钥和私钥对。
125.在308处,所述处理器向所述aq提供密封密钥。
126.在310处,所述aq发布所述公钥以及使用所述密封密钥加密的所述私钥的加密。
127.在312处,所述证明服务提供商将所述公钥存储在已识别引用安全区的密钥的高度受保护列表中,例如,存储在数据库中。
128.现在参考图4,该图是本发明的一些实施例提供的用于执行证明过程的预安装阶段的过程的数据流图402。参考图4描述的方法的至少一些特征可以对应于和/或替换为,和/或可以包括参考图3和/或图2描述的方法的特征。参考图4描述的方法的至少一些特征可以通过参考图1描述的系统100的组件来实现。
129.数据流图402描述了证明运营商(attestation operator)404(例如,证明服务服务器)、安全区安全相关模块406(本文中也称为aq)和处理器(即,cpu)408之间的数据流。
130.在410处,证明运营商404向aq 406发送请求,以获取签名密钥。
131.在412处,aq 406创建公钥和私钥对。
132.在414处,所述aq向cpu 407发送请求,以获取所述aq密封密钥。
133.在416处,cpu 408将所述密封密钥返回给aq 406。
134.在418处,aq 406通过使用密封加密所述私钥来创建所述密封密钥。
135.在420处,将所述公钥和所述密封密钥提供给证明运营商404。
136.在422处,所述公钥和所述密封密钥由证明运营商404存储在诸如数据库中。
137.现在参考图5,该图包括本发明的一些实施例提供的启动(502)、报告生成(504)和报告验证(506)的过程(作为证明过程的一部分)的数据流图。参考图5描述的方法的至少一些特征可以对应于和/或替换为,和/或可以包括参考图2描述的方法的特征。参考图5描述的方法的至少一些特征可以通过参考图1描述的系统100的组件来实现。
138.在502a处,所述服务器(其上已在预安装阶段安装了所述安全区安全相关模块)使用常规os启动。所述安全区安全相关模块启动。
139.在502b处,例如,所述安全区安全相关模块从所述证明服务服务器获取所述预安装过程中生成的所述加密的私钥。
140.在502c处,所述安全区安全相关模块从所述过程中获取密封密钥,并利用所述密封密钥对所述加密的私钥进行解密,以获取解密的私钥。
141.在504a处,证明安全区(例如,目标过程)使用本地证明过程(例如,基于标准本地证明过程)为所述aq创建报告。
142.在504b处,所述aq使用所述本地证明过程验证所述报告的有效性。
143.在504c处,所述aq使用所述私钥(在502c中获取)对所述报告进行签名并将签名的报告提供给第三方(本文中也称为鉴权器和/或鉴权器设备)。
144.在506a处,所述第三方将所述签名的报告发送给所述证明服务提供商。
145.在506b处,所述证明服务提供商验证所述签名报告的签名对应于所识别的安全区之一,可选地,对应于所述安全区安全相关模块中的一个。
146.在506c处,所述证明服务提供商向第三方提供所述报告的成功证明的指示。
147.现在参考图6,该图是本发明的一些实施例提供的启动过程的数据流图602。参考图6描述的方法的至少一些特征可以对应于和/或替换为,和/或可以包括参考图5中的502
和/或图2描述的方法的特征。参考图6描述的方法的至少一些特征可以通过参考图1描述的系统100的组件来实现。
148.在604处,安全区安全相关模块406从证明运营商404检索签名密钥。
149.在606处,证明运营商404检索对应于请求安全区安全相关模块406的使用所述密封密钥加密的所述公钥和所述加密的私钥。
150.在608处,证明运营商404将所述公钥和所述加密的私钥提供给安全区安全相关模块406。
151.在610处,安全区安全相关模块406向处理器408请求所述密封密钥。
152.在612处,处理器408向安全区安全相关模块406提供所述密封密钥。
153.在614处,安全区安全相关模块406使用所述密封密钥解密所述加密的密钥,以获取所述私钥。
154.现在参考图7,该图是本发明的一些实施例提供的报告生成过程的数据流图702。参考图7描述的方法的至少一些特征可以对应于和/或替换为,和/或可以包括参考图5中的504和/或图2描述的方法的特征。参考图7描述的方法的至少一些特征可以通过参考图1描述的系统100的组件来实现。
155.在708处,第三方706(本文中也称为鉴权器和/或鉴权设备)向证明安全区704(例如,目标过程)发送鉴权。例如,第三方在尝试远程连接到所述目标过程之前尝试验证所述目标过程的真实性。
156.在710处,由证明安全区704根据所述鉴权创建报告。
157.在712处,从证明安全区704向处理器408发送用于证明所述安全区安全相关模块(即,aq 406)的报告的请求。
158.在714处,处理器408向证明安全区704提供所述经过证明的报告(表示为att_r)。
159.在716处,所述证明安全区向aq 406发送att_r。
160.在718处,aq 406验证att_r。
161.在720处,aq 406使用所述签名密钥对att_r进行签名,创建签名报告。
162.在722处,aq 406将所述签名的报告和相关联的公钥提供给证明安全区704。
163.在724处,证明安全区704将所述签名的报告和所述公钥提供给第三方706。
164.现在参考图8,该图是本发明的一些实施例提供的报告验证过程的数据流图802。参考图8描述的方法的至少一些特征可以对应于和/或替换为,和/或可以包括参考图5中的506和/或图2描述的方法的特征。参考图8描述的方法的至少一些特征可以通过参考图1描述的系统100的组件来实现。
165.在804处,第三方706将所述签名的报告和所述公钥提供给证明运营商404。
166.在806处,尝试将所述公钥与数据库中的所述公钥之一进行匹配。如果使用所述公钥验证所述签名的报告,则通过使用所述证明运营商的签名密钥对所述签名的报告进行签名,来生成响应。
167.在808处,证明运营商404向第三方706提供所述响应。
168.本发明的其它系统、方法、特征和优点在检查以下附图和详细描述后对本领域技术人员来说将会或变得显而易见。所有这些附加系统、方法、特征和优点都包括在本说明书中,在本发明的范围内,并受到所附权利要求书的保护。
169.已出于说明的目的提供本发明的各种实施例的描述,并不旨在穷举或限制于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域技术人员而言是显而易见的。选择本文所使用的术语是为了更好地解释实施例的原理、实际应用或优于市场中发现的技术的技术改进,或者是为了使本领域其它技术人员能够理解本文公开的实施例。
170.可以预测,在从本技术案走向成熟的专利的有效期期间,将开发许多相关密钥且术语“密钥”的范围旨在先验地包括所有此类新技术。
171.本文所使用的术语“约”是指
±
10%。
172.术语“包括”、“具有”以及其变化形式表示“包括但不限于”。该术语包括了术语“由
……
组成”以及“主要由
……
组成”。
173.短语“主要由
……
组成”表示组成物或方法可以包括附加的成分和/或步骤,但前提是附加的成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
174.除非上下文另有明确说明,否则本文所使用的单数形式“一个(a/an)”和“所述(the)”包括复数含义。例如,术语“一种复合物”或“至少一种复合物”可以包括多种复合物,包括其混合物。
175.本文所使用的词语“示例性的”表示“作为一个示例、实例或说明”。任何被描述为“示例性的”实施例不一定解释为比其它实施例更优选或更有利,和/或排除其它实施例的特征的结合。
176.本文所使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。本发明的任何特定实施例都可以包括多个“可选的”特征,除非这些特征有冲突。
177.在本技术中,本发明的各种实施例可以通过范围格式呈现。应理解,范围格式的描述仅仅是为了方便和简洁起见,不应被解释为对本发明范围的固定限制。因此,对于范围的描述应被认为已经具体公开所有可能的子范围以及该范围内的单个数值。例如,对于例如从1到6的范围的描述应被视为已具体公开了从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及该范围内的单个数字例如1、2、3、4、5和6。不论范围有多广,这都适用。
178.当本文指示一个数字范围时,表示包括所指示的范围内的任何所列举的数字(分数或整数)。短语“第一指示数字和第二指示数字之间的范围”以及“从第一指示数字到第二指示数字的范围”在本文中可互换使用,表示包括第一指示数字和第二指示数字以及二者之间的所有分数和整数。
179.应了解,为清楚起见,在不同实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反,为简洁起见,在单个实施例的上下文中描述的本发明的各个特征也可以单独提供、以任何合适的子组合提供,或适合于本发明的任何其它描述的实施例。在各种实施例的上下文中描述的某些特征不应当被认为是这些实施例的基本特征,除非在没有这些元件的情况下实施例是不可操作的。
180.本说明书中所提及的所有公开、专利和专利申请都在本文中以全文引用的方式并入本说明书中,程度如同每一单独的公开、专利或专利申请被专门并且单独地指示以引用的方式并入本文中一般。此外,本技术中对任何参考文件的引用或鉴别不应理解为承认该参考文件是作为本发明的现有技术可获得的。对于章节标题而言,它们不应当被解释为必然的限制。此外,本技术的任何一个或多个优先权文件的全部内容通过引用结合在本技术中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1