使用认证的清单来实现对多处理器平台的外部确认的制作方法_2

文档序号:8528389阅读:来源:国知局
命中"是指相反的情况:当被请求的 虚拟地址不存在于TLB中时,可以通过查找页面表,继续地址转换。在确定物理地址之后, 可以向TLB中输入虚拟地址到物理地址映射。
[0037] 每一个TLB条目都可以包括一个或多个比特,这些比特指出拥有由TLB条目引用 的存储器位置的飞地。可另选地,如果未提供这些比特,则当退出安全飞地时,将需要TLB 清空,以防止对EPC的未经授权的访问。在说明性示例中,如果发生TLB未命中,则额外查 找可以从多个存储器引用上的EPC映射获取数据。PMH可以执行对EPC映射的查询。
[0038] 处理系统100可以实现称为"证明"的机制,该机制可以被处理系统用来向外部实 体(例如,远程计算机系统)表明软件模块已经在处理系统上适当地实例化。在某些实现 中,处理系统100可以产生标识硬件平台的身份密钥。在说明性示例中,在飞地内执行的应 用程序可以向确认服务提供身份密钥。在验证身份密钥时,确认服务可以发出证明密钥,并 还可以进一步向供应服务传输证明密钥。然后,由处理系统执行的安全飞地应用程序可以 将其身份密钥传输到该供应服务,以便检索安全敏感数据。
[0039] 在制造过程中,可以给每一个处理器提供身份密钥。处理器身份密钥可以存储在 由处理器包括的非易失性只读存储器中,诸如一组可编程的熔丝中。对于单处理器平台,处 理器的身份密钥可以被用作平台身份密钥,以被提供到确认服务,也可以被用作密钥材料 以产生用于安全飞地创建的一个或多个加密密钥。在某些实现中,每一个安全飞地都可以 使用EGETKEY指令来请求一个或多个密钥。
[0040] 因此,对于多处理器平台,取决于飞地运行所在的处理器,飞地将接收不同的密 钥,如果有效飞地从一个处理器迁移到另一处理器,可能会导致不可恢复的错误。多处理器 平台还将需要产生平台标识符以便向确认服务呈现。
[0041] 根据本公开的一个或多个方面,多处理器平台可以产生平台清单,包括由平台包 括的处理器的身份密钥和由处理器产生并同步的平台身份密钥,如下面更详细地描述的。
[0042] 参考图2描述了产生平台清单的方法的示例。在图3中呈现了示例方法的流程图。 如图2示意地示出的,平台200可以包括多个处理器包210。尽管下面的描述引用了两个处 理器包,但是,此处所描述的方法同样适用于包括任意数量的处理器的处理平台。
[0043] 在平台最初引导或复位时,处理器210A-210B中的每一个都可以查明平台清单是 否存储在可被相应的处理器访问的非易失性存储器的预先定义的位置。如果平台清单丢失 或无效,处理器210就可以协商长期处理器间通信(IPC)密钥220,用于保护用于产生平台 清单230的接着发生的处理器间通信。在说明性示例中,处理器210可以实现非认证的密 钥协商协议(例如,Diffie-Hellman密钥交换协议)。
[0044] 然后,处理器可以使用所协商的处理器间通信密钥220,建立受保护的通信信道, 并使用该通信信道来交换它们的身份密钥并同步一组安全属性。后者可以包括平台身份密 钥225以及要被平台使用的确认服务的标识符。在说明性示例中,确认服务标识符可以包 括确认服务的公钥。
[0045] 在某些实现中,平台身份密钥225可以通过平台的主控处理器来生成。可以通过 每一个处理器读取预先定义的BIOS设置来选择后者。主控处理器可以生成平台身份密钥 (例如,通过使用随机数生成器)。在说明性示例中,平台身份密钥可以通过128比特数字 来提供。在另一说明性示例中,平台身份密钥可以包括一个或多个对称的和/或非对称的 密钥。主控处理器还可以进一步接收确认服务240的标识符和公钥,例如,通过读取预先定 义的BIOS设置。主控处理器可以使用被长期通信密钥保护的安全通信信道,将平台身份密 钥和确认服务的标识符传递到平台的其他处理器,如此处所描述的,长期通信密钥是由平 台处理器协商的。
[0046] 在与平台的其他处理器同步安全属性时,平台的每一个处理器都可以使用其身份 密钥,加密包括平台身份密钥和长期处理器间通信密钥的密钥块(blob) 250。在某些实现 中,密钥块还可以进一步包括确认服务标识符。处理器可以将密钥块存储在非易失性存储 器255 (例如,闪存或硬盘驱动器)的预先定义的位置,并可以在随后的平台引导时检索密 钥块。
[0047] 在与平台的其他处理器同步安全属性时,平台的每一个处理器都还可以进一步创 建平台清单230,包括平台身份密钥和平台的处理器的身份密钥。然后,每一个处理器都可 以利用确认服务的公钥来加密清单,并将经加密的清单传输到确认服务240。
[0048] 确认服务240可以通过解密并认证接收到的平台清单,并对照存储了所有有效处 理器身份密钥的权威性的数据源(例如,处理器的制造商或经销商)验证每一个处理器的 身份密钥,来验证平台。确认服务还可以进一步查明,已经从由平台包括的所有处理器接收 到清单,如此,防止处理器试图隐藏它们在平台中的存在。
[0049] 响应于成功地验证平台的所有处理器,确认服务可以将平台身份密钥225记录到 密钥供应数据库260中,并发出证明密钥270。确认服务还可以进一步将平台证明密钥传输 到供应服务280。然后,由处理系统200执行的安全飞地应用程序290可以将其平台身份密 钥225传输到供应服务,以便检索安全敏感数据。
[0050] 在某些实现中,通信信道对外部确认服务的可用性可以只在平台的最初引导时需 要。在随后的引导时,每一个处理器都可以检索存储在预先定义的非易失性存储器位置处 的密钥块,并解密平台身份密钥和长期处理器间通信密钥。然后,每一个处理器都可以使用 长期处理器间通信密钥,与平台的其他处理器建立安全通信信道,以便重新认证平台的其 他处理器。在由平台的每一个处理器查明在最后一次引导之前存在的所有处理器都仍存在 于平台中,没有新的处理器被添加到平台时,平台可以声明其自己为符合由确认服务以前 确认的配置。
[0051] 可以通过向以前确认了平台的确认服务传输包括新添加的处理器的身份密钥的 请求,向以前确认的平台添加新的处理器。响应于验证新添加的处理器的身份密钥,确认服 务可以以批准消息作出响应。新添加的处理器可以将接收到的批准消息存储在预先定义的 非易失性存储器位置中。在下一平台重新引导时,新添加的处理器可以从非易失性存储器 位置检索批准消息,并向平台的其他处理器呈现批准消息,以便交换长期处理器间通信密 钥,如上文比较详细地描述。然后,新添加的处理器可以通过利用长期处理器间通信密钥保 护的通信信道,从现有的处理器接收平台身份密钥。
[0052] 在某些实现中,允许向确认的平台添加处理器以及删除处理器可以产生这样的情 况:以前由共同的平台包括的两个处理器拆分成它们自己的平台,第二处理器被添加到两 个新的平台。由于第一处理器拥有包括初始平台的平台身份密钥的密钥块,因此,后者可以 由两个新的平台共享。过程可以重复,如此,潜在地导致任意数量的平台共享相同平台身份 密钥。
[0053] 为防止上文所描述的情况的可能的发生,可以在平台的绑定中包括芯片组。芯片 组可以建立唯一平台标识符。每一个处理器都可以将平台标识符值存储在其密钥块中。在 重新引导时,处理器可以从芯片组请求平台标识符,并将接收到的值与从密钥块检索到的 平台标识符进行比较。如果两个值匹配,则密钥块属于当前平台。否则,处理器可以启动平 台确认过程,如上文所描述的。
[0054] 图3描绘了根据本公开的一个或多个方面的用于通过多处理器平台产生平台清 单的示例方法的流程图。方法300可以由可以包括硬件(例如,电路、专用逻辑和/或可编 程逻辑)、软件(例如,可在计算机系统上执行以执行硬件模拟的指令)或其组合的计算机 系统来执行。方法300和/或其函数、例程、子例程或操作中的每一个都可以由执行方法的 计算机系统的一个或多个物理处理器来执行。方法300的两个或更多函数、例程、子例程或 操作可以并行地或按照可以不同于上文所描述的顺序的顺序来执行。在某些实现中,方法 300可以由单一处理线程执行。可另选地,方法300可以由两个或更多处理线程执行,每一 个线程都执行方法的一个或多个单个函数、例程、子例程或操作。在说明性示例中,实现方 法300的处理线程可以被同步(例如,使用旗语(semaphore)、关键部分,和/或其他线程同 步机制)。可另选地,实现方法300的处理线程可以相对于彼此异步地执行。在一个示例 中,如图3所示出的,方法300可以由下文所描述的并由图5-11所示出的计算机系统执行。
[0055] 参考图3,在框310,两个或更多处理器可以协商处理器间通信密钥以建立安全 通信信道。在说明性示例中,处理器可以实现匿名(非认证的)密钥协商协议(例如, Diffie-Hellman密钥交换协议),如上文比较详细地描述的。
[0056] 在框320,平台处理器可以使用安全通信信道来交换它们的身份密钥,并同步一组 安全属性。后者可以包括平台身份密钥以及要被平台使用的确认服务的标识符。
[0057] 在框330,平台可以指定主控处理器。在说明性示例中,主控处理器可以由BIOS设 置来标识。
[0058] 在框340,主控处理器可以生成平台身份密钥(例如,通过使用随机数生成器)。在 说明性示例中,平台身份密钥可以通过128比特数字来提供。
[0059] 在框350,主控处理器可以接收外部确认服务的标识符和公钥,例如,通过读取预 先定义的BIOS设置。
[0060] 在框360,平台处理器可以同步包括平台身份密钥和确认授权标识符的平台安全 属性。主控处理器可以使用受上文参考框310所描述的经协商的长期通信密钥保护的安全 通信信道,将平台身份密钥和确认服务的标识符传递到平台的其他处理器。
[0061] 在框370,每一个平台处理器都可以使用其身份密钥,来加密包括平台身份密钥和 长期处理器间通信密钥的密钥块。如上文比较详细地描述的,处理器可以将密钥块存储在 非易失性存储器的预先定义的位置。
[0062] 在框380,每一个平台处理器都可以创建平台清单,包括平台身份密钥和平台的处 理器的身份密钥。
[0063] 在框380,每一个平台处理器都可以利用确认服务的公钥来对平台清单进行标记 并加密它,并将经加密的清单传输到确认服务,用于验证,如上文比较详细地描述的。
[0064] 图4描绘了根据本发明的一个或多个方面的在第二和随后的平台引导时用于在 多处理器平台中进行处理器交叉认证的示例方法的流程图。方法400可以由可以包括硬件 (例如,电路、专用逻辑和/或可编程逻辑)、软件(例如,可在计算机系统上执行以执行硬 件模拟的指令)或其组合的计算机系统来执行。方法400和/或其函数、例程、子例程或操 作中的每一个都可以由执行方法的计算机系统的一个或多个物理处理器来执行。方法400 的两个或更多函数、例程、子例程,或操作可以并行地或按照可以不同于上文所描述的顺序 的顺序来执行。在某些实现中,方法400可以由单一处理线程执行。可另选地,方法400可 以由两个或更多处理线程执行,每一个线程都执行方法的一个或多个单个函数、例程、子例 程、或操作。在说明性示例中,实现方法400的处理线程可以被同步(例如,使用旗语、关键 部分,和/或其他线程同步机制)。可另选地,实现方法400的处理线程可以相对于彼此异 步地执行。在一个示例中,如图4所示出的,方法400可以由下文所描述的并由图5-11所 示出的计算机系统执行。
[0065] 在框410,在平台重新引导时,每一个平台处理器都可以检索先前存储在预先定义 的非易失性存储器位置处的密钥块,如上文比较详细地描述的。
[0066] 在框420,每一个平台处理器都可以解密密钥块,以产生平台身份密钥和长期处理 器间通信密钥。
[0067]在框430,每一个平台处理器都可以使用长期处理器间通信密钥,与平台的其他处 理器建立安全通信信道,以便重新认证平台的其他处理器。
[0068] 在框440,在由平台的每一个处理器查明在最后一次引导之前存在所有处理器仍 存在于平台中,并且没有向平台添加新的处理器时,平台可以声明其自己为符合由确认服 务以前确认的配置。
[0069]虽然此处参考特定集成电路(诸如处理器)描述了各种系统和方法,但其他实现 也可以适用于其他类型的集成电路和逻辑设备。可以将此处所描述的系统和方法的技术和 原理应用于也可以得益于更好的能
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1