《用于执行安全环境初始化指令的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于执行安全环境初始化指令的系统和方法.pdf(20页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102841994 A (43)申请公布日 2012.12.26 C N 1 0 2 8 4 1 9 9 4 A *CN102841994A* (21)申请号 201210159183.2 (22)申请日 2003.03.20 10/112,169 2002.03.29 US 03811454.2 2003.03.20 G06F 21/00(2006.01) (71)申请人英特尔公司 地址美国加利福尼亚州 (72)发明人詹姆斯萨顿二世 戴维格劳罗克 (74)专利代理机构上海专利商标事务所有限公 司 31100 代理人毛力 (54) 发明名称 用于执行安全环境初始化指令。
2、的系统和方法 (57) 摘要 描述了在微处理器系统内启动安全操作的方 法和装置。在一个实施方案中,一个启动逻辑处理 器通过停止其它逻辑处理器的执行,然后把初始 化和安全虚拟机监控软件载入存储器,来启动该 过程。初始化处理器然后把初始化软件载入安全 存储器进行验证和执行。初始化软件然后在安全 系统操作之前验证和登记安全虚拟机监控软件。 (30)优先权数据 (62)分案原申请数据 (51)Int.Cl. 权利要求书1页 说明书10页 附图8页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 10 页 附图 8 页 1/1页 2 1.一种芯片组,包括: 总线消。
3、息逻辑,所述总线消息逻辑响应来自第一逻辑处理器的第一专用总线消息以准 备安全操作;以及 寄存器,所述寄存器保存来自第二逻辑处理器的确认,以响应所述第一专用总线消息。 2.如权利要求1所述的芯片组,其中所述芯片组比较所述寄存器和逻辑处理器动作, 以确定何时给第一逻辑处理器发送信号以继续安全操作初始化。 3.如权利要求2所述的芯片组,其中所述发送信号包括设定标志。 4.如权利要求1所述的芯片组,还包括设备访问逻辑以锁定安全虚拟机监控程序。 5.如权利要求1所述的芯片组,还包括密钥寄存器,以便在所述第一专用总线消息之 后给所述第一逻辑处理器发送密钥。 6.一种芯片组,包括: 总线消息逻辑,所述总线消。
4、息逻辑响应来自第一逻辑处理器的第一专用总线消息以准 备安全操作;以及 密钥寄存器,所述密钥寄存器保存将要被发送到所述第一逻辑处理器的密钥材料,以 响应所述第一专用总线消息。 7.如权利要求6所述的芯片组,其中在第二逻辑处理器发送对所述第一专用总线消息 的确认之后,所述密钥寄存器向所述第一逻辑处理器发送所述密钥材料。 8.如权利要求7所述的芯片组,其中在所述总线消息逻辑接收到所述确认之后,所述 芯片组设置标志。 9.如权利要求6所述的芯片组,还包括设备访问逻辑以锁定安全虚拟机监控程序。 10.如权利要求9所述的芯片组,其中所述设备访问逻辑从所述安全虚拟机监控程序 接收配置。 权 利 要 求 书C。
5、N 102841994 A 1/10页 3 用于执行安全环境初始化指令的系统和方法 0001 本申请是PCT国际申请号为PCT/US03/08762、国际申请日为2003年3月20日、中 国国家申请号为03811454.2、题为“用于执行安全环境初始化指令的系统和方法”的原申请 的分案申请(申请号201110030876.7)的分案申请。 技术领域 0002 本发明通常涉及微处理器系统,更具体地说,涉及可以在可信或安全环境中运行 的微处理器系统。 背景技术 0003 在本地或远程微型计算机上执行的金融和个人事务的增加量已经推动了“可信” 或“安全”微处理器环境的建立。这些环境试图要解决的问题是。
6、个人隐私的泄露或者数据 被破坏或滥用。用户不想公开他们的私人数据。他们也不想不恰当的事务改变或使用他们 的数据。这样的例子包括非故意地泄露医疗记录或者从在线银行或其它存款处的资金电子 失窃。类似地,内容供给者设法保护数字内容(例如,音乐、其它音频、视频或其它类型的一 般数据)不会在未经授权的情况下被复制。 0004 现有的可信系统可以利用一套完全封闭的可信软件。这个方法实施起来相对简 单,但缺点是不允许同时使用市场上可买到的普通操作系统和应用软件。这个缺点限制了 对上述可信系统的认可程度。 附图说明 0005 本发明是以实施例的方式来说明的,而不是以限定的方式来说明的,附图中相近 的附图标记表。
7、示类似的部件,其中: 0006 图1是在微处理器系统中执行的示例性软件环境的图。 0007 图2是依据本发明一个实施方案的某些示例性可信或安全软件模块和示例性系 统环境的图。 0008 图3是依据本发明一个实施方案的示例性可信或安全软件环境的图。 0009 图4A是依据本发明一个实施方案,适合于支持图3的安全软件环境的示例性微处 理器系统示意图。 0010 图4B是依据本发明另一实施方案,适合于支持图3安全软件环境的示例性微处理 器系统示意图。 0011 图5是依据本发明另一实施方案,适合于支持图3安全软件环境的示例性微处理 器系统示意图。 0012 图6是依据本发明一个实施方案的软件组件的执。
8、行的时线图。 0013 图7是依据本发明一个实施方案的软件和其它过程块的流程图。 具体实施方式 说 明 书CN 102841994 A 2/10页 4 0014 下面的说明描述了在微处理器系统内初始化可信或安全环境的技术。在下面说明 中,为了更彻底地理解本发明,阐述了许多具体细节,例如逻辑实现、软件模块分配、加密技 术、总线信令技术,以及操作细节。然而,本领域技术人员将能理解,没有上述具体细节也可 以实施本发明。在其它情况下,为了不混淆本发明,没有详细表示控制结构、门电平电路和 全部软件指令序列。获悉本文所包含的说明的本领域普通技术人员无需超出常规的试验就 能够实现恰当的功能性。本发明是以微处。
9、理器系统的形式公开的。然而,以其它处理器的 形式也可以实施本发明,例如数字信号处理器、小型计算机或大型计算机。 0015 现在参考图1,图中所示为在微处理器系统中执行的一个示例性软件环境。图1中 所示的软件不是可信的(非可信的)。当在高特权级下运行时,操作系统150的大小和持续更 新使得按照适时方式进行任何信任分析是非常困难的。许多操作系统位于特权环(ring)零 (0)内,即最高特权级。应用152,154和156具有降低了很多的特权,典型地位于特权环三 (3)内。基于作出的决策以信任由操作系统150提供的设备,不同特权环的存在以及将操作 系统150和应用152,154,156分开为这些不同特。
10、权环似乎允许图1的软件按照可信模式运 行。然而,实际上进行上述信任决策经常是不切实际的。影响这个问题的因素包括运行系统 150的大小(代码行的数目),操作系统150可以是许多更新(新代码模块和补丁)的接收者 的事实,以及操作系统150也可以包含由用户而不是操作系统开发者提供的代码模块(例 如设备驱动器)的事实。操作系统150可以是通用操作系统,例如 Linux或或者可以是任何其它适当已知或另外可获得的操作系统。应用或操作系 统运行或正在运行的具体类型或名称不是关键的。 0016 现在参考图2,图中所示为依据本发明一个实施方案的某些示例性可信或安全软 件模块和示例性系统环境200。在图2的实施方。
11、案中,处理器202、处理器212、处理器222 和可选的其它处理器(未图示)被图示为单独硬件实体。在其它实施方案中,正如不同部件 和功能单元的边界可以变化,处理器的数量也可以不同。在某些实施方案中,可以用在一个 或多个物理处理器上运行的单独硬件执行线程(thread)或“逻辑处理器”来替换这些处理 器。 0017 处理器202,212,222可以包含某些专用电路或逻辑元件以支持安全或可信操作。 例如,处理器202可以包含安全输入(SENTER)逻辑204以支持执行专用SENTER指令,所述 SENTER指令可以初始化可信操作。处理器202也可以包含总线消息逻辑206以支持系统总 线230上的支。
12、持专用SENTER操作的专用总线消息。在另外的实施方案中,芯片组240的存 储控制功能可以分配给处理器内的电路,对于多个处理器而言,可以包括在单个管芯上。在 这些实施方案中,专用总线消息也可以在这些处理器内部的总线上发送。由于几个原因,使 用专用总线消息可以增加系统安全性或可信任性。如果电路元件例如处理器202,212,222 或芯片组240包含本发明公开的实施方案的适当逻辑元件,则它们可以只发布或响应上述 消息。因此专用总线消息的成功交换可以有助于确保适当的系统配置。专用总线消息也可 以允许通常应该被禁止的活动,例如复位平台配置寄存器278。通过允许专用总线消息只响 应于专用安全指令而发布,。
13、可以限制潜在的不友善的非可信代码对某些总线事务进行侦测 的能力。 0018 另外,处理器202可以包含安全存储器208以支持安全初始化操作。在一个实施 方案中,安全存储器208可以是处理器202的内部高速缓存器,或许按照专用模式运行。在 说 明 书CN 102841994 A 3/10页 5 另外的实施方案中,安全存储器208可以是专用存储器。其它处理器,例如处理器212和处 理器222,也可以包括SENTER逻辑214,224、总线消息逻辑216,226、以及安全存储器218, 228。 0019 “芯片组”可被定义为一组电路和逻辑,它们支持针对连接的一个或多个处理器所 进行存储器和输入/输。
14、出(I/O)操作。芯片组的诸多单独元件可以被集合在单个芯片上、在 一对芯片上或分散在多个芯片中,包括处理器。在图2的实施方案中,芯片组240可以包括 支持存储器和I/O操作的电路和逻辑,以支持处理器202,212和222。在一个实施方案中, 芯片组240可以与许多存储页面250-262和设备访问页面表248进行交互,页面表248包 含指示非处理器设备是否可以访问存储页面250-262的控制信息。芯片组240可以包括设 备访问逻辑247,所述设备访问逻辑可以允许或拒绝从I/O设备到存储页面250-262的所选 部分的直接存储器存取(DMA)。在某一实施方案中,设备访问逻辑247可以包含允许或拒绝。
15、 上述访问所需要的所有相关信息。在其它实施方案中,设备访问逻辑247可以访问保存在 设备访问页面表248内的上述信息。存储页面的实际数量不是重要的,并且将根据系统需 求而变化。在其它实施方案中,存储器访问功能可以在芯片组240的外部。在另外实施方 案中,芯片组240的功能还可以在一个或多个物理设备中分配。 0020 为支持专用SENTER操作,芯片组240可以另外包括它自己的总线消息逻辑242来 支持系统总线230上的专用总线消息。这些专用总线消息中的某些可以包括:把密钥(key) 寄存器244的内容传递给处理器202,212或222,或者允许通过处理器202,212或222检 验专用的ALL。
16、-JOINED标志274。总线消息逻辑242的附加特征可以是把多个处理器的总 线活动登记在“EXISTS”寄存器272中以及把多个处理器的某一专用总线消息活动保存在 “JOINS”寄存器272中。EXISTS寄存器272和JOINS寄存器272的内容的等同性可以用来 设定专用的ALL-JOINED标志,以指示系统内所有处理器都在参与安全输入过程。 0021 芯片组240可以支持I/O总线上的标准I/O操作,所述I/O总线例如外设部件接 口(PCI)、加速图形接口(AGP)、通用串行总线(USB)、低引线数(LPC)总线或任何其它类型 I/O总线(未示出)。接口290可以用来使芯片组240与令牌。
17、276连接,令牌276包含一个或 多个平台配置寄存器(PCR)278,279。在一个实施方案中,接口290可以是通过修改增加了 某些安全上的增强的LPC总线(低引线数(LPC)接口规范,英特尔公司1997年12月29日 的修订版1.0)。上述安全上的增强的一个实施例是位置确认消息,利用以前保存的消息头 和地址信息,把令牌276内的平台配置寄存器(PCR)278作为目标。在一个实施方案中,令 牌276可以包含专用安全特征,在一个实施方案中,可以包括可信平台模块(TPM)281,该模 块在2001年12月1日由TCPA出版的版本为1.1a的可信计算平台联合(TCPA)主要规范 中被公开(在本申请递。
18、交时从可得到)。 0022 在系统环境200内确定的两个软件组件是安全虚拟机监控程序(SVMM)282模块和 安全初始化授权码(SINIT-AC)280模块。SVMM 282模块可以被保存在系统盘或其它大容量 存贮器上,并且根据需要被移动或复制到其它位置。在一个实施方案中,在开始安全启动过 程之前,SVMM 282可以被移动或复制到一个或多个存储页面250-262。安全输入过程之后, 可以创建虚拟机环境,其中:SVMM282可以作为系统内最高特权代码来运行,并可以被用来 允许或拒绝在已创建的虚拟机内的操作系统或应用直接访问某些系统资源。 0023 安全输入过程所需要的某些动作可能超出简单硬件实。
19、施的范围,并且相反可以有 说 明 书CN 102841994 A 4/10页 6 利地使用软件模块,其中所述软件模块的执行可以默认是可信的。在一个实施方案中,通过 安全初始化(SINIT)代码可以执行这些动作。这里确定三个典型动作,但这些动作不应理解 为是限定性的。一个动作可能要求对各种表示系统配置关键部分的控制进行检验,以确保 所述配置支持正确的安全环境实例化。在一个实施方案中,一个要求的检验可以是,芯片组 240提供的存储控制器配置不允许两个或多个不同系统总线地址接触存储页面250-262内 的相同位置。第二个动作可以是配置设备访问页面表248和设备访问逻辑247,以保护SVMM 282的。
20、存储驻留拷贝使用的那些存储页面不受非处理器设备干扰。第三个动作可以是计算 和登记SVMM 282模块的身份,并且把系统控制传递给它。这里“登记(register)”是指把 SVMM282的信任测量结果放入寄存器,例如放入PCR278或放入PCR279。当进行了这个最后 的动作,潜在的系统用户可以检查SVMM282的可信度。 0024 处理器或芯片组的制造商可以生成SINIT代码。为此,可以信任SINIT代码来帮 助芯片组240的安全启动。为了分配SINIT代码,在一个实施方案中,众所周知的加密散列 由全部SINIT代码构成,生成一个被称为“摘要”的值。一个实施方案生成一个160位的值 来作为摘。
21、要。然后通过在一个实施方案中由处理器制造商拥有的私钥(private key)对摘 要进行加密,以形成数字签名。当SINIT代码与相应数字签名捆绑在一起时,这个组合可以 称为SINIT授权码(SINIT-AC)280。如下所述,SINIT-AC 280的拷贝可以在后面被验证。 0025 SINIT-AC 280可以被保存在系统盘或其它大容量存储器上或者被保存在固定媒 介中,并且根据需要被移动或复制到其它位置。在一个实施方案中,在开始安全启动过程之 前,SINIT-AC 280可以被移动或复制到存储页面250-262以形成SINIT-AC存储驻留拷贝。 0026 任何逻辑处理器可以开始安全启动过。
22、程,并且因而可以被称为初始化逻辑处理器 (ILP)。在本实施例中,处理器202为ILP,尽管系统总线230上的任何处理器能够成为ILP。 此时,SINIT-AC280的存储驻留拷贝或SVMM282的存储驻留拷贝都不被认为是可信的,因为 除了其它原因之外,另外的处理器或DMA设备可以重写存储页面250-262。 0027 然后,ILP(处理器202)执行专用指令。这个专用指令可以称为安全输入(SENTER) 指令,并且可以由SENTER逻辑204支持。SENTER指令的执行可以使ILP(处理器202)在系 统总线230上发布专用总线消息,然后为随后的系统动作等待相当长的时间间隔。SENTER 执。
23、行开始之后,这些专用总线消息之一,即SENTER BUS MESSAGE在系统总线230上广播。除 了ILP之外的那些逻辑处理器可以称为响应逻辑处理器(RLP),它们用内部非屏蔽事件响 应SENTERBUS MESSAGE。在本实施例中,RLP包括处理器212和处理器222。RLP必须各自 终止当前操作,在系统总线230上发送RLP确认(ACK)专用总线消息,然后进入等待状态。 应该注意,ILP也在系统总线230上发送它自己的ACK消息。 0028 芯片组240可以包含一对寄存器,即“EXISTS”寄存器270和“JOINS”寄存器272。 这些寄存器可以被用来检验ILP和所有RLP正在适当地。
24、响应SENTER BUS MESSAGE。在一 个实施方案中,通过在逻辑处理器所进行的任何系统总线事务中把“1”写入EXISTS寄存器 270的相应位,芯片组240可以始终跟踪在系统内的所有操作逻辑处理器。在本实施方案 中,系统总线230上的每个事务必须包含标识字段(field),所述标识字段包含逻辑处理器 标识符。在一个实施方案中,这是由物理处理器标识符和每个物理处理器内硬件执行线程 的标识符构成的。例如,如果在处理器222上执行的线程在系统总线230上引起任何总线 事务,则芯片组240将在该事务中发现这个逻辑处理器标识符,并且把“1”写入EXISTS寄 说 明 书CN 102841994 。
25、A 5/10页 7 存器270内的相应位置286。安全启动过程期间,当处理器222上的那个同一线程在系统 总线230上发送它自己的ACK信息时,芯片组240也将发现此情况,并且把“1”写入JOINS 寄存器272内的相应位置288。(在图2的实施例中,为了清楚起见,每个物理处理器被图示 为只带有单个执行线程。在另外实施方案中,物理处理器可以支持多个线程,因而支持多个 逻辑处理器。)当JOINS寄存器272的内容与EXISTS寄存器270的内容匹配时,则芯片组 240可以设置ALL-JOINED标志246,该标志表示所有处理器已经适当地响应了SENTER BUS MESSAGE。 0029 在另。
26、一实施方案中,在ALL-JOINED标志246设置之后,EXISTS寄存器270和JOINS 寄存器272可以继续有助于安全性。在ALL-JOINED标志246设置之后直到可信或安全操 作结束期间,芯片组240可以继续监控并将总线周期与JOINS寄存器272相比较。在这期 间,如果芯片组240在任何时候从不是在JOINS寄存器272内当前所确定的逻辑处理器中 发现总线事务,则芯片组240可以假设这个逻辑处理器不知何故已经“出现”晚了。这将暗 示上述逻辑处理器没有参加过安全启动过程,因此可能代表攻击者(安全威胁)。在这样的 情况下,芯片组240可以适当地响应以把这个攻击者保持在安全环境之外。在一。
27、个实施方 案中,芯片组240可以在这样的情况下强制系统复位。在第二个实施方案中,可通过每个逻 辑处理器在ACK总线消息断言之后的每个事务中在系统总线上断言专用的保留信号,来实 现类似的“晚到”处理器检测。在本实施方案中,在ALL-JOINED标志246设置之后,如果芯 片组240观察到处理器所初始化的总线事务没有专用的断言信号,则芯片组240可以再次 假设这个逻辑处理器不知何故已经“出现”晚了,并且可能代表攻击者。 0030 发布SENTER BUS MESSAGE之后,ILP(处理器202)轮询ALL-JOINED标志246以 发现所有处理器何时且是否已经用它们的ACK适当地进行了响应。如果。
28、从未设置标志246, 几种实现是可能的。在ILP或芯片组内、或其它地方的监控定时器可以使系统复位。可选 地,系统可能中止并需要操作员复位。在任一情况下,尽管系统可能不继续运行,但安全环 境断言得到保护(其中如果不是所有的处理器都参与,安全启动过程就不结束)。在正常操 作中,在短时间之后,ALL-JOINED标志246被设置,并且ILP可以确保所有其它逻辑处理器 已经进入等待状态。 0031 当ALL-JOINED标志246被设置时,为了验证和随后执行包含在SINIT-AC280内的 SINIT代码,ILP(处理器202)可以把SINIT-AC 280的拷贝和密钥284都移入安全存储器 208。。
29、在一个实施方案中,这个安全存储器208可以是ILP(处理器202)的内部高速缓存 器,或许按照专用模式运行。密钥284表示与私钥对应的公钥(public key),私钥被用来加 密包含在SINIT-AC 280模块内的数字签名,并且密钥284被用来检验数字签名和由此验证 SINIT代码。在一个实施方案中,密钥284可能已经被保存在处理器内,或许作为SENTER逻 辑204的一部分。在另一实施方案中,密钥284可以被保存在芯片组240的只读密钥寄存器 244内,只读密钥寄存器244由ILP读取。在又一实施方案中,不是处理器就是芯片组密钥 寄存器244可以实际保存密钥284的加密摘要,其中密钥28。
30、4本身被包含在SINIT-AC 280 模块内。在最后这个实施方案中,ILP从密钥寄存器244中读取摘要,在嵌入在SINIT-AC 280内的密钥284之上计算等同加密散列(hash),并且比较这两个摘要以确保所提供的密 钥284是确实可信的。 0032 然后,SINIT-AC拷贝和公钥拷贝可以在安全存储器208内存在。通过使用公钥拷 说 明 书CN 102841994 A 6/10页 8 贝解密包含在SINIT-AC拷贝内的数字签名,ILP现在可以验证SINIT-AC拷贝。所述解密 产生加密散列摘要的原始拷贝。如果新计算出的摘要与这个原始摘要匹配,则SINIT-AC拷 贝和它包含的SINIT。
31、代码可以被认为是可信的。 0033 ILP现在可以经由系统总线230发布另一专用总线消息,即SENTER CONTINUE MESSAGE,向等待的RLP(处理器212,处理器222)和芯片组240信令将要初始化安全操作。 如下所概述的那样,通过把SINIT-AC模块的加密摘要值写入安全令牌276内的平台配置寄 存器272中,ILP现在可以登记SINIT-AC模块的唯一身份。通过把执行控制传递给保存在 ILP安全存储器208内的SINIT代码的可信拷贝,ILP对其SENTER指令的执行现在可以终 止。可信SINIT代码然后可以执行它的系统测试和配置动作,并且依照上述“登记”的定义, 可以登记S。
32、VMM存储驻留拷贝。 0034 可以按照几种方式完成SVMM存储驻留拷贝的登记。在一个实施方案中,运行在 ILP上的SENTER指令把计算出的SINIT-AC摘要写入安全令牌276内的PCR 278中。随后, 可信SINIT代码可以把计算出的存储驻留SVMM摘要写入同一PCR 278或安全令牌276内 的另一PCR 279中。如果把SVMM摘要写入同一PCR 278中,则安全令牌276用新值(SVMM 摘要)对原始内容(SINIT摘要)进行散列化操作,并且把结果写回PCR278。在对PCR278的 第一次(初始化)写入被限制在SENTER指令的这些实施方案中,结果摘要可以被用作系统的 信任根(。
33、root oftrust)。 0035 一旦可信SINIT代码已经结束它的执行,并且已经把SVMM的身份登记在PCR内, SINIT代码就可以把ILP执行控制传递给SVMM。在典型的实施方案中,ILP执行的最初的 SVMM指令可代表SVMM的自初始化例程。在一个实施方案中,ILP可以把单独的RLP JOIN MESSAGE专用总线消息发送给每个RLP,使每个RLP在现在执行的SVMM拷贝的监督下加入 操作。根据前面这个观点,如下面图3的讨论中所概述的那样,整个系统运行在可信模式 下。 0036 现在参考图3,图中所示为依据本发明一个实施方案的示例性可信或安全软件环 境。在图3的实施方案中,可以。
34、同时加载可信或非可信软件,并且可以在单个计算机系统上 同时执行。SVMM350可选择地允许或防止来自一个或多个非可信操作系统340和非可信应 用310-330的对硬件资源380的直接访问。在上下文中,“非可信”不是必定意味着操作系 统或应用正在行为不端,但是意味着相互作用的代码的大小和多样性使得无法可靠地断言 软件正在按要求运行,并且不存在干扰它执行的病毒或其它外来代码。在典型的实施方案 中,非可信代码是由在当今个人计算机上可以找到的普通操作系统和应用所组成的。 0037 SVMM350也可选择地允许或防止来自一个或多个可信或安全核心程序360和一个 或多个可信应用370的对硬件资源380的直。
35、接访问。可以限制上述可信或安全核心程序 360和可信应用370的大小和功能性,从而有助于在其上面完成信任分析的能力。可信应用 370可以是在安全环境中可执行的任何软件代码、程序、例程或例程组。因此,可信应用370 可以是各种应用或代码序列,或者可以是相对小的应用,例如Java程序。 0038 由操作系统340或核心程序360正常执行的能改变系统资源保护或特权的指令 或操作可以被SVMM350俘获,并且可选择地被允许、部分允许或拒绝。作为实施例,在典型 的实施方案中,由操作系统340或核心程序360正常执行的更改处理器页面表的指令将被 SVMM350俘获,这将确保所述请求不试图要求改变在它的虚拟。
36、机范围之外的页面特权。 说 明 书CN 102841994 A 7/10页 9 0039 现在参考图4A,图中所示为适合于支持图3的安全软件环境的微处理器系统400 的一个实施方案。CPU A 410、CPU B 414、CPU C 418和CPU D 422可被配置以附加微代 码或逻辑电路以支持专门指令的执行。在一个实施方案中,这个附加微代码或逻辑电路可 以是图2的SENTER逻辑204。这些专用指令可以支持专用总线消息在系统总线420上的 发布,系统总线420可以使这些处理器在启动安全环境期间能够适当同步。在一个实施方 案中,专用总线消息的发布可以由例如图2的总线消息逻辑206之类的电路来。
37、支持。类似 地,芯片组430可以类似于芯片组420,并且可以支持上述系统总线420上的专用周期。物 理处理器的数量可以根据具体实施方案的实施而变化。在一个实施方案中,处理器可以是 级的微处理器。经由PCI总线446,或者可选择地,经由USB442、集成控制 器电路(IDE)总线(未图示)、小型计算机系统接口(SCSI)总线(未图示)、或任何其它I/O总 线,芯片组430可以与大容量存储设备进行交互,例如固定媒介444或可移动媒介448。固 定媒介444或可移动媒介448可以是磁盘、磁带、磁碟、磁光驱动器、CD-ROM、DVD-ROM、闪存 卡,或许多其它形式的大容量存储器。 0040 在图4A。
38、的实施方案中,四个处理器CPU A 410、CPU B 414、CPU C 418和CPU D 422图示为四个单独硬件实体。在其它实施方案中,处理器的数量可以不同。实际上,物理 上离散的处理器可以用在一个或多个物理处理器上运行的分立的硬件执行线程来替换。在 后者的情况下,这些线程拥有许多附加物理处理器的特征。为了具有一般的表述来讨论使 用多个物理处理器和多个在处理器上的线程的任何混合,表述“逻辑处理器”可以用来描述 一个物理处理器或在一个或多个物理处理器内操作的线程。因此,一个单线程处理器可以 被认为是一个逻辑处理器,且多线程或多核心处理器可以被认为是多个逻辑处理器。 0041 在一个实施方。
39、案中,芯片组430与改进的LPC总线450进行交互。改进的LPC总 线450可以用来把芯片组430与安全令牌454连接。在一个实施方案中,令牌454可以包 括由可信计算平台联合(TCPA)设想的TPM471。 0042 现在参考图4B,图中所示为适合于支持图3的安全软件环境的另一微处理器系统 490的实施方案。与图4A的实施方案不同,CPU A 410和CPU B 414可使用系统总线A 402 而连接到芯片组428,而CPU C 418和CPU D 422可使用系统总线B 404而连接到芯片组 428。在其它实施方案中,可以使用两个以上的系统总线。在另一替代实施方案中,可以使 用点对点总线。。
40、专用指令可以支持专用总线消息在系统总线A 402和系统总线B 404上的 发布,专用总线消息在系统总线A402和系统总线B 404上的发布可以使这些处理器在启动 安全环境期间能够适当地同步。在一个实施方案中,专用总线消息的发布可以由例如图2 的总线消息逻辑206之类的电路来支持。 0043 在一个实施方案中,芯片组428负责维护系统总线A 402和系统总线B 404上的 一致性和相干性。如果在系统总线A 402上发送标准或专用的总线消息,芯片组428就会 把这个信息(在适当时)反映在系统总线B 404上,反之亦然。 0044 在可替代的实施方案中,芯片组428把系统总线A 402和系统总线B 。
41、404看作独 立子系统。在系统总线A 402上发布的任何专用总线消息只应用于该总线上的处理器,类 似地,在系统总线B 404上发布的任何专用总线消息只应用于该总线上的处理器。针对系 统总线A 402建立的任何受保护的存储器只可被连接到系统总线A 402的处理器所访问, 而系统总线B 404上的处理器可以被看作非可信设备。为了获得对为系统总线A 402上的 说 明 书CN 102841994 A 8/10页 10 CPU A 410和CPU B 414建立的任何受保护的存储器的访问,系统总线B 404上的处理器 CPU C 418和CPU D 422必须执行它们自己的SENTER过程,创建一个被。
42、登记在案的环境,该 环境等同于为系统总线A 402上的处理器建立的环境。 0045 现在参考图5,表示依据本发明另一实施方案,适合于支持图3的安全软件环境的 示例性微处理器系统500的示意图。与图4A的实施方案不同,每个处理器(例如CPU A 510) 可以包括某些芯片组功能(例如芯片组功能593),所述芯片组功能执行例如存储控制器功 能和设备访问逻辑功能。由此,这些芯片组功能允许存储器(例如存储器A 502)直接连接 到处理器。其它芯片组功能可以保留在独立的芯片组530中。在系统总线520上可以发布 专用总线消息。 0046 每个处理器可以间接访问连接到其它处理器的存储器,然而,与对处理器本。
43、身存 储器的访问相比,这些访问可能相当慢。在开始SENTER过程之前,软件可以把SINIT-AC 566和SVMM 574的拷贝从固定媒介544移入本地存储器504,形成SINIT-AC 556拷贝和 SVMM 572拷贝。在一个实施方案中,可以选择存储器504,因为它由确定为ILP的处理器直 接访问,在图5实施例中,这是CPU B514。可选择地,SINIT-AC 566和SVMM 574的拷贝可 以放在连接到其它(非ILP)处理器的其它存储器中,只要ILP 514能够访问那些存储器。如 图2中已经描述的那样,CPU B ILP 514通过发布SENTER指令开始安全输入过程,并且具 有类似。
44、的结果和发布的总线周期。如上结合图2所述,芯片组530可以利用EXISTS寄存器 576、JOINS寄存器580和ALL-JOINED标志584,以确定所有处理器是否已经适当地响应了 SENTER BUS MESSAGE,并且把这个信息发送给ILP。ILP(CPU B 514)可以再次把SINIT-AC 556的存储驻留拷贝连同公钥564的拷贝一起移入安全存储器560。在SINIT-AC 556确认 和登记后,ILP就可以继续进行SVMM 572的存储驻留拷贝的确认和登记。 0047 现在参考图6,表示依据本发明一个实施方案的各种操作的时线图。图6的时线表 示结合图2所述的示例性系统所论述的全。
45、部操作的调度安排。当软件决定安全或可信操作 是所期望的,在时间610,任何软件定位SINIT-AC 280和SVMM282,并复制SINIT-AC 280和 SVMM 282的拷贝以用于随后的SENTER指令。在本实施例中,软件把SINIT-AC 280拷贝和 SVMM 282拷贝加载到一个或多个存储页面250-262中。然后选择一个处理器(在本实施例 中是处理器202)作为ILP,ILP在时间612发布SENTER指令。在时间614,ILP的SENTER 指令发布SENTER BUS MESSAGE 616。然后,在时间628进入“等待芯片组标志”状态之前, ILP在时间618发布它本身的S。
46、ENTER ACK 608。 0048 每个RLP,例如处理器222,通过在时间620期间完成当前指令来响应SENTER BUS MESSAGE 616。然后,RLP发布它的SENTER ACK 622,然后进入状态634,其中它等待SENTER CONTINUE MESSAGE。 0049 芯片组240花费时间624来设定JOINS寄存器272以响应在系统总线230上观察 到的SENTER ACK信息。当JOINS寄存器272的内容与EXISTS寄存器270的内容匹配时, 芯片组240在时间626设定ALL-JOINED标志246。 0050 在此期间,ILP在轮询ALL-JOINED标志2。
47、46时可以保持在循环状态下。当 ALL-JOINED标志246被设定,并且ILP在时间630确定ALL-JOINED标志246被设定,然后, ILP可以在时间632期间发布SENTER CONTINUE MESSAGE。当SENTER CONTINUE MESSAGE 在时间636在系统总线230上传播时,RLP可以进入“等待加入”的状态。例如,处理器222 说 明 书CN 102841994 A 10 9/10页 11 的RLP在时间周期638期间进入“等待加入”的状态。 0051 一旦发布SENTER CONTINUE MESSAGE,ILP于是(在时间周期640内)就可以把芯 片组240。
48、的密钥寄存器244的公钥和SINIT-AC的拷贝加入它的安全存储器208,以形成所 述公钥拷贝和SINIT-AC拷贝。在另一实施方案中,密钥寄存器244可以包含公钥摘要,实 际公钥可以被包含在SINIT-AC内或与SINIT-AC包含在一起。如上结合图2所述,一旦验 证SINIT-AC的拷贝,ILP于是就可以在安全存储器208内实际执行SINIT-AC的拷贝。 0052 SINIT-AC在安全存储器208内的拷贝开始执行之后,它随后(在时间周期640期 间)确认并且登记SVMM的存储驻留拷贝。SVMM的拷贝登记在安全令牌276的PCR 278内 之后,SVMM的存储驻留拷贝本身开始执行。此时,。
49、在正在进行的时间周期650期间,SVMM操 作被建立在ILP内。 0053 ILP SVMM操作最初要做的事情之一是在系统总线230上发布单独的RLPJOIN MESSAGES。一个实施例就是处理器222的JOIN MESSAGE 644。这个消息可以包括存储器内 的一位置,在该位置上RLP处理器222可以加入被登记的SVMM存储驻留拷贝的执行。可选 择地,ILP SVMM操作可能已经把存储器位置登记在芯片组或存储器内的预定位置中,一旦 接收到JOIN MESSAGE,RLP就从所述位置取回它的开始地址。在接收到处理器222的JOIN MESSAGE并且确定它的开始地址之后,在时间周期646期间,RLP处理器222跳转到这个位 置,并且加入被登记的SVMM存储驻留拷贝的执行。 0054 在所有RLP已经加入被登记的SVMM存储驻留拷贝之后,安全操作在整个微型计算 机系统200上被建立起来。 0055 现在参考图7,表示依据本发明一个实施方案的软件和其它过程块(process block)的流程图。为了清楚,图7只表示用于单个有代。