包含协作嵌入式代理的装置及有关系统和方法转让专利

申请号 : CN200580006193.0

文献号 : CN1925926B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·德拉姆V·齐默C·史密斯R·亚瓦特卡T·斯齐露斯勒D·拉森C·罗扎斯

申请人 : 英特尔公司

摘要 :

电子装置具有含有供选择性地以管理模式操作的嵌入式固件代理以及独立于主机操作系统操作并选择性地调用管理模式的嵌入式控制器代理。双向代理总线在嵌入式固件代理与嵌入式控制器代理之间耦合以便在两个代理之间传输消息。可对具有这些协作嵌入式代理的主机系统执行可管理性和安全性操作。

权利要求 :

1.一种用于协作嵌入式代理的装置,包括:

嵌入式固件代理,它耦合于一主机系统内并含有存储器用于存储指令,所述指令在被执行时使得所述嵌入式固件代理选择性地以管理模式操作,在此期间主机操作系统释放对所述嵌入式固件代理所驻留的主机系统的控制;

嵌入式控制器代理,它耦合于所述主机系统内并具有用于存储指令的存储器,所述嵌入式控制器代理独立于所述主机操作系统操作,并选择性地调用所述管理模式,所述嵌入式控制器代理具有允许所述嵌入式控制器代理独立于所述主机操作系统在网络上通信的网络接口;以及物理双向代理总线,它耦合在所述嵌入式固件代理与所述嵌入式控制器代理之间以便在所述嵌入式固件代理与所述嵌入式控制器代理之间传输消息。

2.如权利要求1所述的装置,其特征在于,还包括与所述嵌入式固件代理和所述嵌入式控制器代理耦合的可信模块,所述可信模块执行密码操作以支持由所述嵌入式控制器代理进行的操作。

3.如权利要求1所述的装置,其特征在于,所述嵌入式控制器代理断言管理中断信号来调用所述管理模式。

4.如权利要求1所述的装置,其特征在于,所述嵌入式控制器代理和所述嵌入式固件代理交互来向所述主机系统提供可管理性特征。

5.如权利要求4所述的装置,其特征在于,所述可管理性特征是在加载所述主机操作系统之前提供的。

6.如权利要求4所述的装置,其特征在于,所述可管理性特征是在加载所述主机操作系统之后提供的。

7.如权利要求4所述的装置,其特征在于,所述可管理性特征是与加载所述主机操作系统并发提供的。

8.如权利要求4所述的装置,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理对闪存设备的独立于主机操作系统的更新。

9.如权利要求4所述的装置,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理监视主机功能并向远程设备报告。

10.如权利要求4所述的装置,其特征在于,所述可管理性特征包括经由所 述嵌入式控制器代理向所述主机系统提供引导服务。

11.如权利要求1所述的装置,其特征在于,所述嵌入式控制器代理与所述嵌入式固件代理交互来向所述主机系统提供安全性特征。

12.如权利要求11所述的装置,其特征在于,所述安全性特征是在加载所述主机操作系统之前提供的。

13.如权利要求11所述的装置,其特征在于,所述安全性特征是在加载所述主机操作系统之后提供的。

14.如权利要求11所述的装置,其特征在于,所述安全性特征是与加载所述主机操作系统并发提供的。

15.如权利要求11所述的装置,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理执行对所述主机系统的验证并选择性地将结果报告给远程设备。

16.如权利要求11所述的装置,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理执行病毒恢复操作。

17.如权利要求11所述的装置,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理为所述主机系统提供认证服务。

18.如权利要求11所述的装置,其特征在于,所述安全性特征包括为网络通信会话的相互认证提供支持。

19.一种用于协作嵌入式代理的方法,包括:

调用主机系统中的管理模式,其中主机操作系统使用嵌入式控制器代理暂时释放对所述主机系统的控制,所述嵌入式控制器代理耦合于所述主机系统内,所述嵌入式控制器代理具有用于存储指令的存储器并能执行所存储的指令,所述嵌入式控制器代理还具有独立于所述主机操作系统操作的网络连接;以及通过由经由双向代理总线与所述嵌入式控制器代理通信,使用嵌入式固件代理在所述管理模式期间服务来自所述嵌入式控制器代理的请求,所述嵌入式固件代理耦合于所述主机系统内,所述嵌入式固件代理具有用于存储指令的存储器并能执行所存储的指令。

20.如权利要求19所述的方法,其特征在于,所述嵌入式固件代理通过与可信模块交互以提供密码操作来服务来自所述嵌入式控制器代理的请求。

21.如权利要求19所述的方法,其特征在于,所述调用管理模式包括:使用所述嵌入式控制器代理断言管理中断;以及

响应于所述管理中断进入所述管理模式。

22.如权利要求19所述的方法,其特征在于,所述嵌入式控制器代理与所述嵌入式固件代理交互以便向所述主机系统提供可管理性特征。

23.如权利要求22所述的方法,其特征在于,所述可管理性特征是在加载所述主机操作系统之前提供的。

24.如权利要求22所述的方法,其特征在于,所述可管理性特征是在加载所述主机操作系统之后提供的。

25.如权利要求22所述的方法,其特征在于,所述可管理性特征是与加载所述主机操作系统并发提供的。

26.如权利要求22所述的方法,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理对闪存设备的独立于主机操作系统的更新。

27.如权利要求22所述的方法,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理监视主机功能并向远程设备报告。

28.如权利要求22所述的方法,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理向所述主机系统提供引导服务。

29.如权利要求19所述的方法,其特征在于,所述嵌入式控制器代理与所述嵌入式固件代理交互来向所述主机系统提供安全性特征。

30.如权利要求29所述的方法,其特征在于,所述安全性特征是在加载所述主机操作系统之前提供的。

31.如权利要求29所述的方法,其特征在于,所述安全性特征是在加载所述主机操作系统之后提供的。

32.如权利要求29所述的方法,其特征在于,所述安全性特征是与加载所述主机操作系统并发提供的。

33.如权利要求29所述的方法,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理执行对所述主机系统的验证并选择性地将结果报告给远程设备。

34.如权利要求29所述的方法,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理执行病毒恢复操作。

35.如权利要求29所述的方法,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理为所述主机系统提供认证服务。

36.如权利要求29所述的方法,其特征在于,所述安全性特征包括为网络通信会话的相互认证提供支持。

37.一种用于协作嵌入式代理的系统,包括:

总线;

与所述总线耦合的数字信号处理器;

耦合于主机系统内的嵌入式固件代理,它具有用于存储指令的存储器,所述指令在被执行时使得所述嵌入式固件代理选择性地以管理模式操作,在此期间主机操作系统释放对所述嵌入式固件代理所驻留的主机系统的控制;

耦合于主机系统内的嵌入式控制器代理,它具有用于存储指令的存储器,所述嵌入式控制器代理独立于所述主机操作系统操作并选择性地调用所述管理模式,所述嵌入式控制器代理具有允许所述嵌入式控制器代理独立于所述主机操作系统在网络上通信的网络接口;以及物理双向代理总线,它耦合在所述嵌入式固件代理与所述嵌入式控制器代理之间以便在所述嵌入式固件代理与所述嵌入式控制器代理之间传输消息。

38.如权利要求37所述的系统,其特征在于,还包括与所述嵌入式固件代理和所述嵌入式控制器代理耦合的可信模块,所述可信模块执行密码操作以支持由所述嵌入式控制器代理进行的操作。

39.如权利要求37所述的系统,其特征在于,所述嵌入式控制器代理断言管理中断信号来调用所述管理模式。

40.如权利要求37所述的系统,其特征在于,所述嵌入式控制器代理和所述嵌入式固件代理交互来向所述主机系统提供可管理性特征。

41.如权利要求40所述的系统,其特征在于,所述可管理性特征是在加载所述主机操作系统之前提供的。

42.如权利要求40所述的系统,其特征在于,所述可管理性特征是在加载所述主机操作系统之后提供的。

43.如权利要求40所述的系统,其特征在于,所述可管理性特征是与加载所述主机操作系统并发提供的。

44.如权利要求40所述的系统,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理对闪存设备的独立于主机操作系统的更新。

45.如权利要求40所述的系统,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理监视主机功能并向远程设备报告。

46.如权利要求40所述的系统,其特征在于,所述可管理性特征包括经由所述嵌入式控制器代理向所述主机系统提供引导服务。

47.如权利要求37所述的系统,其特征在于,所述嵌入式控制器代理与所述 嵌入式固件代理交互来向所述主机系统提供安全性特征。

48.如权利要求47所述的系统,其特征在于,所述安全性特征是在加载所述主机操作系统之前提供的。

49.如权利要求47所述的系统,其特征在于,所述安全性特征是在加载所述主机操作系统之后提供的。

50.如权利要求47所述的系统,其特征在于,所述安全性特征是与加载所述主机操作系统并发提供的。

51.如权利要求47所述的系统,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理执行对所述主机系统的验证并选择性地将结果报告给远程设备。

52.如权利要求47所述的系统,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理执行病毒恢复操作。

53.如权利要求47所述的系统,其特征在于,所述安全性特征包括经由所述嵌入式控制器代理为所述主机系统提供认证服务。

54.如权利要求47所述的系统,其特征在于,所述安全性特征包括为网络通信会话的相互认证提供支持。

说明书 :

包含协作嵌入式代理的装置及有关系统和方法

技术领域

[0001] 本发明的实施例涉及具有协作嵌入式代理的电子系统。更具体地,本发明的实施例涉及具有耦合来与各种系统组件交互的嵌入式代理,该嵌入式代理与具有独立网络连接的另一嵌入式代理通信,同时该嵌入式代理协作来向电子系统提供可管理性、安全性和/或其它功能。
[0002] 背景
[0003] 自从英特尔公司引入了386SL处理器以来,在32位英特尔体系结构(IA32)处理器上提供了系统管理模式(SMM),它作为对操作系统隐藏的执行由基本输入/输出系统(BIOS)或固件加载的代码的操作模式。该模式被认为是“隐藏的”是因为SMM操作独立于操作系统(OS)和软件应用程序存在。
[0004] 使IA32处理器能够经由系统管理中断(SMI)信号进入SMM。被称为处理器管理中TM断(PMI)信号的类似信号与SMI信号大致功能相同,它被用于Itanium 类处理器,也是由英特尔公司提供的。为简明起见,SMI和PMI信号两者均可称为xMI。
[0005] 迄今为止,利用SMM能力的大多数BIOS实现仅登记在BIOS建立期间创建的整块代码部分,以便支持使用BIOS系统专用的一特定功能或一组功能。在当今的系统中没有提供对第三方SMM代码的登记或执行,因此不允许对SMM框架的扩展性。而这样的扩展性通常是被期望的。例如,如果由原始设备制造商(OEM)或BIOS销售商针对给定平台提供的SMM代码所提供的功能不充分,则开发员或增值转售商(VAR)必须许可来自BIOS销售商或OEM的现有代码并试图将他们自己的逻辑嫁接于他们对SMM代码的实现。
[0006] 此外,当今对IA32处理器的实现限于16位的处理器模式,因此限制了代码的大小和利用32位或64位软件工程技术的可能性。一般,BIOS对SMM功能的更新是否有效是成问题的,且因为OS已经由其自己的驱动程序模型而具有硬件可扩展性机制,因此BIOS销售商和OEM在提供这些类型的BIOS更新上动力较小。
[0007] 附图简述
[0008] 本发明的实施例经由示例而非限制示出,在附图的图中,相同的参考标号指的是类似的元素。
[0009] 图1是具有协作嵌入式代理的电子系统的一个实施例的框图。
[0010] 图2是嵌入式控制器代理、嵌入式固件代理与可信模块之间的交互的一个实施例的概念性框图。
[0011] 图3是嵌入式控制器代理的操作的一个实施例的流程图。
[0012] 图4是嵌入式固件代理的操作的一个实施例的流程图。
[0013] 图5是嵌入式固件代理的初始化处理的一个实施例的流程图。
[0014] 图6是嵌入式固件代理的一个实施例的框图。
[0015] 图7是嵌入式控制器代理的一个实施例的框图。
[0016] 图8是可信模块的一个实施例的框图。
[0017] 详细描述
[0018] 在以下描述中,描述了各种特定细节。然而,可无需这些特定细节而实现本发明的实施例。在其它实例中,未详细示出公知的电路、结构和技术以便不模糊对本说明书的理解。
[0019] 图1是具有协作嵌入式代理的电子系统的一个实施例的框图。图1的框图旨在表示具有网络接口的电子系统的宽泛的范畴。该电子系统可以是例如台式计算机系统、移动计算机系统、服务器、个人数字助理(PDA)、手机、机顶盒、游戏控制台、卫星接收器等。
[0020] 在一个实施例中,处理器110可由前侧(front side)总线115耦合至存储器控制器集线器120。尽管图1的电子系统被描述为具有单处理器,但也可支持多处理器的实施例。在替换实施例中,处理器110可由共享的系统总线耦合至存储器控制器集线器120。处理器110可以是本领域中已知的任何类型的处理器,例如,来自加利福尼亚州圣克拉拉市的英特尔公司的Pentium 系列处理器、Itanium 系列处理器、Xeon 系列处理器的处理器。也可使用其它处理器。
[0021] 存储器控制器集线器120可向可包含将与电子系统一起使用的任何类型的存储器的存储器子系统125提供接口。存储器控制器集线器120也可与输入/输出(I/O)控制器集线器(ICH)130耦合。在一个实施例中,ICH 130可提供系统与外围I/O设备180之间以及系统与网络接口140之间的接口,后者可向外部网络190提供接口。网络190可以是任何类型的网络,无论有线还是无线,例如局域网或广域网。存储器控制器集线器120也可与数字信号处理器185耦合。
[0022] 在一个实施例中,ICH 130可与可信模块170耦合,后者可提供安全性和/或加密功能。在一个实施例中,可信模块170可被实现为可信平台模块(TPM),这将在以下详细描述。可信模块170能以安全的方式向ICH 130或其它系统组件提供例如加密密钥的安全标识符。
[0023] 嵌入式控制器代理150可与ICH 130以及网络190耦合。嵌入式控制器150的网络连接可以独立于系统的操作,且独立于由处理器110执行的操作系统。在一个实施例中,嵌入式控制器代理150可包括微控制器或其它类型的处理电路、存储器和接口逻辑。将在以下详细描述嵌入式控制器代理150的一个实施例。
[0024] 在一个实施例中,嵌入式控制器代理150可经由中断接口与处理器110耦合。例如,嵌入式控制器代理150可与Pentium 处理器的SMI插脚或与Itanium 处理器的PMI插脚(总称,xMI线155)耦合。对其它处理器可使用其它系统中断信号。
[0025] ICH 130也可与嵌入式固件代理160耦合。在一个实施例中,嵌入式固件代理160可以是允许以一个或多个软件驱动程序形式的可执行内容被加载到英特尔32位微处理器系列(即,IA-32处理器)的系统管理模式(SMM)中或带有PMI信号激活的基于Itanium处TM理器的固有模式。IA32SMM中的代码的执行状态由SMI信号启动,且Itanium 处理器中的代码执行状态由PMI信号激活启动;为简单起见,这些总称为SMM。
[0026] 在一个实施例中,嵌入式固件代理160为SMM操作可允许安装可能由不同方编写的多个驱动程序。可登记驱动程序的代理的示例运行在可扩展固件接口(EFI)引导服务模式(即,操作系统启动之前的模式)中,且可由绑定驱动程序与提取xMI(PMI或SMI)信号的芯片组控制的平台组件的处理器专用组件组成。
[0027] 在一个实施例中,存储在嵌入式固件代理160中的代码可在主机系统的启动期间被复制到存储器子系统125的存储器组件中。例如,在支持SMM操作的体系结构中,将在SMM期间使用的代码可被影复制到存储器子系统125的SMRAM部分。当在SMM中操作时,处理器110可执行存储在SMRAM中的指令。
[0028] 在一个实施例中,嵌入式控制器代理150可经由双向代理总线165与嵌入式固件代理160耦合。通过经由双向代理总线165通信,嵌入式控制器代理150和嵌入式固件代理160可被配置成向系统提供可管理性和/或安全性功能。
[0029] 在一个实施例中,嵌入式控制器代理150可为安全性起见提供对系统的完整性检查,例如在经由网络190建立与远程设备的安全即可信连接之前。嵌入式控制器代理可执行系统的病毒扫描,来确定与远程设备的通信是否是安全的和/或远程设备是否请求支持。嵌入式固件代理160可提供独立于操作系统的安全存储,供嵌入式控制器代理150在执行完整性检查中使用。
[0030] 在操作期间,嵌入式控制器代理150可执行周期性完整性检查以提供相比单个完整性检查增长的安全性。嵌入式控制器代理150也可在与远程管理设备通信之前执行完整性检查。以下将描述嵌入式控制器代理150与嵌入式固件代理160之间的双向通信的使用的其它示例。
[0031] 在图1的描述中,按照分开的系统元件描述了嵌入式控制器代理150、嵌入式固件代理160和双向代理总线165。在物理实现中,嵌入式控制器代理150、嵌入式固件代理160和双向代理总线165可以是一个或多个组件的逻辑组件。双向代理总线165可以是可允许嵌入式控制器代理150与嵌入式固件代理160的功能组件之间的双向通信的任何通信机制或消息通信接口。
[0032] 如此处所述的嵌入式控制器代理150和嵌入式固件代理160用于为主机系统提供功能的操作可以在加载到主机操作系统之前和/或加载主机操作系统之后完成。因此,此处所述的体系结构提供宽泛范畴的可管理性和/或安全功能。
[0033] 图2是嵌入式控制器代理、嵌入式固件代理与可信模块之间的交互的一个实施例的概念性框图。当嵌入式控制器代理150经由网络190启动或响应于与远程设备的通信时,嵌入式控制器代理150可通过断言(assert)如上所述的xMI信号启动管理模式210。使用英特尔处理器,管理模式210可对应于系统管理模式(SMM)。使用其它处理器,则可使用其它管理模式。因为管理模式210用于由嵌入式控制器代理150进行的操作,因此这些操作可独立于操作系统200执行。
[0034] 在一个实施例中,当嵌入式控制器代理150调用管理模式210时,嵌入式固件代理160提供执行由嵌入式控制器代理150请求的操作的中断服务例程。在一个实施例中,嵌入式固件代理160是允许在例如可为嵌入式固件代理160所访问的闪存的存储器中编写和存储中断处理例程的EFI设备,该中断处理例程将响应于来自嵌入式控制器代理150的xMI信号而被使用。
[0035] 一旦调用管理模式210,嵌入式控制器代理150就可执行独立于操作系统200的可管理性和/或安全操作。如果例如嵌入式控制器代理150参与网络190上的与远程设备的安全通信,则嵌入式控制器代理150可在管理模式210中与可信模块170通信以便认证嵌入式控制器代理150所属于的系统。因为该认证是独立于操作系统200的,因此嵌入式控制器代理150隔离于涉及操作系统200的病毒和/或安全攻击。
[0036] 在一个实施例中,将管理模式操作卸载给嵌入式控制器150以便与操作系统200共享处理资源。例如,来自微软公司的大多数Windows 操作系统使用定时器来检查指令的执行以及当自从最后一条指令以来经过了过长时间(例如,200ms)时可调用调试或故障操作。通过卸载管理模式操作,嵌入式控制器代理150可当执行例如访问诸如例如来自可信模块170的数据等系统资源的操作时周期性地断言xMI信号。
[0037] 图3是嵌入式控制器代理的操作的一个示例的流程图。响应于复位,嵌入式控制器代理可执行初始化过程,并初始化网络连接,300。代理初始化可包括准备操作代理所需的任何操作。这些操作可以包括例如从具有对该代理的初始化指令的只读存储器或闪存中检索指令。
[0038] 在一个实施例中,当完成初始化过程时,代理可开始频带外通信,310。网络通信被称为频带外的,是因为嵌入式控制器代理的网络通信是独立于其中嵌入式控制器代理驻留的系统上执行的操作系统的。频带外网络通信可包括例如与在网络中登记主机系统相关的操作、响应于远程网络节点的可管理性操作、安全性操作等。
[0039] 在一个实施例中,嵌入式控制器代理可等待系统事件,320。系统事件可以是与将独立于操作系统执行的操作相关的任何类型的事件。例如,如果主机操作系统已经是病毒或木马的受害者,则系统事件可由病毒检测软件触发,以便检索病毒消除程序或禁用系统网络连接以便阻止病毒或木马的传播。
[0040] 响应于系统事件,嵌入式控制器代理可断言xMI信号(对Intel 处理器),330。对xMI信号的断言可引起处理器进入SMM,其中操作系统将对主机系统的控制释放给可存储在例如对操作系统不可访问的系统管理存储器中的SMM中断处理器。系统事件可被处理,340。
[0041] 图4是嵌入式固件代理的操作的一个实施例的流程图。响应于复位,嵌入式控制器代理可执行初始化过程,400。以下将参考图5详细描述初始化过程的一个实施例。
[0042] 在一个实施例中,嵌入式固件代理可确定嵌入式控制器代理是否准备好,410。在一个实施例中,嵌入式控制器代理可经由双向代理总线向嵌入式固件代理指示初始化的完成。在一个实施例中,当嵌入式固件代理与嵌入式控制器代理均被初始化时,对主机系统的控制可被授予主机操作系统,420。
[0043] 通过允许嵌入式固件代理和嵌入式控制器代理两者在将对主机系统的控制传递给主机操作系统之前完成初始化,可在将控制授予主机操作系统之前执行安全性、可管理性和/或其它功能。如果xMI发生,430,则主机系统可进入管理模式(MM),440。当处于MM中时,嵌入式控制器代理、嵌入式固件代理和/或可信模块可操作来处理xMI,450。
[0044] 图5是嵌入式固件代理的初始化过程的一个实施例的流程图。图5的示例描述了与使用Intel 处理器的SMM操作相关的特定操作;然而,也可使用支持其它类似功能的处理器。
[0045] 响应于复位条件,嵌入式固件代理可初始化主机存储器和一个或多个输入/输出(I/O)设备,500。在一个实施例中,该初始化可以是传统由基本输入/输出系统(BIOS)执行的初始化操作的部分或所有。在一个实施例中,当对存储器的初始化之后,嵌入式固件代理可测试存储器,设置纠错码(ECC),启动系统管理存储器(SMRAM)和/或加载系统管理码的核心(SMM核心),510。
[0046] 在一个实施例中,如果嵌入式固件代理检测到SMM驱动程序,520,则嵌入式固件代理可为SMM驱动程序分配SMRAM的区域,然后可进入SMM将SMM驱动程序从引导服务存储器重新定位到SMRAM。如果嵌入式固件代理未检测到SMM驱动程序,520,则嵌入式固件代理可检查固件驱动程序,540。
[0047] 在一个实施例中,如果嵌入式固件代理检测到固件驱动程序,540,则嵌入式固件代理可加载来自磁盘或闪存的驱动程序,并将该驱动程序重新定位到系统存储器,且可散列扩展可信模块的寄存器(例如,可信平台模块(TPM)平台配置寄存器(PCR)),550。如果嵌入式固件代理未检测到固件驱动程序,540,则嵌入式固件代理可检查其它驱动程序,560。
[0048] 在一个实施例中,如果嵌入式固件代理检测到其它驱动程序,560,则嵌入式固件代理可返回来检查其它驱动程序,以确定该其它驱动程序是否是SMM驱动程序,520。如果嵌入式固件代理未检测到其它驱动程序,560,则嵌入式固件代理可确定嵌入式控制器代理是否准备好,570。如果嵌入式控制器代理准备好,570,则嵌入式固件代理可将控制转移给主机操作系统,580。
[0049] 嵌入式固件代理、嵌入式控制器代理和/或可信模块的交互可提供以下描述的可管理性和/或安全性特征的一个或多个。以下的特征的列表是示例的列表,而不旨在是如此处所述的嵌入式固件代理、嵌入式控制器代理和可信模块可具备的特征的穷尽清单。
[0050] 可按照使用如此处所述的技术的安全的方式更新可包含在嵌入式固件代理、嵌入式控制器、可信模块和/或主机系统中的闪存。因为可从远程设备向嵌入式控制器提供更新,而无需操作系统的交互,因此即使当操作系统未正确运行时也可提供更新,且因为攻击涉及操作系统,因而可提供额外的安全性。远程更新可提供用于在多个客户机设备上更新闪存的有效的技术。
[0051] 在一个实施例中,嵌入式控制器代理可监视操作系统的操作,并基于操作系统的条件或模式修改安全性策略。例如,可当操作系统运行时应用第一安全性策略,而当主机系统处于SMM中时可应用第二安全性策略。
[0052] 嵌入式控制器代理、嵌入式固件代理和/或可信模块可提供独立于或不同于由操作系统提供的监视的对主机系统的监视和记录。例如,嵌入式控制器代理和嵌入式固件代理可监视处理器性能计数器和处理器负载,且如果超过预置阈值,则可经由嵌入式控制器代理的网络连接向远程设备发送消息。
[0053] 嵌入式控制器代理、嵌入式固件和/或可信模块可提供对主机磁盘驱动程序的主机保护区域(HPA)的支持。HPA可用于凭证存储、大型日志归档等。通过能够访问可信模块,并具有由可信模块提供的增加的密码功能,嵌入式控制器代理、嵌入式固件代理和可信模块可一起作用来为网络通信提供相互的认证功能。
[0054] 在一个实施例中,可将预引导执行环境(PXE)操作从主机处理器卸载到嵌入式控制器代理和/或嵌入式固件代理。而且,对PXE服务器的PXE发现可由嵌入式固件代理、嵌入式控制器代理和/或可信模块执行。
[0055] 使用例如安全套接字层(SSL)会话的相互认证可通过使用由可信模块提供的认证功能来完成,以便向服务器提供认证。在一个实施例中,例如病毒扫描的安全性操作可在嵌入式固件代理将对主机系统的控制转移给主机操作系统之前执行。如果检测到病毒,则嵌入式控制器代理可使用嵌入式控制器代理的网络连接与远程设备交互来对检测到的病毒作出响应。
[0056] 在一个实施例中,嵌入式控制器代理可使用可扩展标记语言数字签名(XMLDSIG)以便经由独立网络连接将安全消息发送给远程设备。嵌入式控制器代理可经由SMM中的嵌入式固件代理与可信模块交互,以便提供密码操作。这些安全性操作是独立于主机操作系统的,从而可用于认证主机系统。
[0057] 图6是嵌入式固件代理的一个实施例的框图。在图6的示例中,嵌入式固件代理可以是如由2003年11月26日发布的来自加利福尼亚州圣克拉拉市的英特尔公司的EFI规范,版本1.10定义的可扩展固件接口(EFI)。在替换实施例中,也可使用其它固件组件。
[0058] 在一个实施例中,嵌入式固件代理可包括与系统接口605耦合的代理总线600。系统接口605可提供一接口,经由该接口嵌入式固件代理可与主机系统通信。嵌入式固件代理还可包括可与总线600耦合以便允许嵌入式固件代理与如上所述的嵌入式控制器代理通信的双向代理总线接口650。
[0059] 在一个实施例中,嵌入式固件代理还包括可与代理总线600耦合的动态存储器610。动态存储器610可提供对将在操作期间使用的指令和/或数据的存储。嵌入式固件代理还可包括可与代理总线600耦合来存储静态数据和/或指令的非易失性存储620。
[0060] 在一个实施例中,嵌入式固件代理可包括与代理总线600耦合可执行控制操作和/或执行由动态存储器610和/或非易失性存储620提供的指令的控制电路630。嵌入式固件代理也可包括与代理总线600耦合的SMM模块640。SMM模块640可以是向主机系统提供SMM功能的元件的任何组合。例如,当处于SMM中时,嵌入式固件代理可提供基于动态存储器610和/或非易失性存储620中所存储的数据和/或指令的SMI处理操作。
[0061] 在一个实施例中,在SMM期间选择性地激活控制电路630。即,当主机系统不处于SMM中时,控制电路630可空闲,或甚至处于不活动状态。在一个实施例中,嵌入式固件代理可访问主机系统中的所有存储器。这包括,例如SMRAM、HPA以及具有访问限制的可能的其它存储区域。
[0062] 图7是嵌入式控制器代理的一个实施例的框图。在图7的示例中,嵌入式控制器代理可以是可如此处所述操作的基于微控制器的系统组件。在替换实施例中,也可使用其它控制器组件。
[0063] 在一个实施例中,可信模块可包含与系统接口705耦合的代理总线700。系统接口705可提供一接口,经由该接口嵌入式控制器代理与主机系统通信。嵌入式控制器代理还可包括可与总线700耦合以便允许嵌入式控制器代理与上述嵌入式固件代理通信的双向代理总线接口760。
[0064] 在一个实施例中,嵌入式控制器代理还包括可与代理总线700耦合的动态存储器710。动态存储器710可为将在操作期间使用的指令和/或数据提供存储。嵌入式控制器代理还可包括可与代理总线700耦合来存储静态数据和/或指令的非易失性存储720。
[0065] 在一个实施例中,嵌入式控制器代理可包括与代理总线700耦合可被实现为执行控制操作和/或执行由动态存储器710和/或非易失性存储720提供的指令的微控制器的控制电路730。可使用本领域中已知的任何类型的微控制器或类似的控制电路。
[0066] 嵌入式控制器代理也可包括与代理总线700耦合的代理/网络接口740。代理/网络接口740可为嵌入式控制器代理提供独立于主机系统的操作系统和网络接口的网络连接。代理/网络接口740可允许嵌入式控制器代理与独立于主机系统的操作系统的远程设备通信。这允许嵌入式控制器代理以与操作系统控制下执行的可管理性、安全性和/或其它功能相比更安全和透明的方式执行类似的操作。
[0067] 在一个实施例中,控制电路730未处于不活动状态中。这允许控制电路730和嵌入式控制器代理响应于内部和外部事件。在一个实施例中,嵌入式控制器代理不能访问主机系统的所有存储器。在这样的实施例中,依赖于受保护存储区域的存储器访问和/或指令执行可由嵌入式固件代理访问。
[0068] 图8是可信模块的一个实施例的框图。在图8的示例中,可信模块可以是如由俄勒冈州波特兰市Trusted Computing Group(可信计算组织)于2003年10月2日发布的TPM规范版本1.2定义的被信任平台模块(TPM)。在替换实施例中,可使用被信任模块的其它实现,例如安全存储设备,以便为安全性操作提供支持。
[0069] 在一个实施例中,可信模块可包括与系统接口805耦合的总线800。系统接口可提供一接口,经由该接口可信模块可与主机系统通信。可信模块可包括与总线800耦合以便为密码操作生成随机数的随机数生成器810,以及与总线800耦合以便存储数据和/或指令以供可信模块的操作中使用的非易失性存储815。
[0070] 可信模块还可包括平台配置寄存器820,它可被用来存储与主机系统完整性相关的受保护信息。在一个实施例中,可信模块也可包括与总线800耦合以便存储证明标识密钥(AIK)825的存储组件。在一个实施例中,AIK 825可以是可用于数字签署由可信模块和/或主机系统生成的信息的2048位RSA密钥。也可使用其它AIK配置。
[0071] 程序代码830可以被存储在与总线800耦合的易失性或非易失性的存储器中。程序代码830包括使得可信模块操作来提供安全性操作的指令。在一个实施例中,执行引擎835与总线800耦合来执行程序代码830。可信模块还可包括允许主机系统的用户启动或禁用可信模块的操作的选择(opt-in)模块840。选择模块840可以是例如主机系统上的物理开关。
[0072] 在一个实施例中,可信模块可包括与总线800耦合执行密码操作的密码引擎845。密码引擎845可以是例如执行RSA密码操作的RSA引擎。例如不对称密码协议的其它密码协议也可由密码引擎845支持。可信模块还可包括与总线800耦合可为密码操作生成一个或多个密钥的密钥生成器850。
[0073] 散列引擎855也可与总线800耦合,且可提供支持密码操作的散列功能。在一个实施例中,散列引擎855可以是SHA-1引擎,且可执行安全散列算法操作以供在由可信模块提供的安全性功能中使用。在替换实施例中,散列引擎855可以是DSA引擎,或者散列引擎855可支持任何其它密码协议。
[0074] 说明书中对“一个实施例”或“实施例”的引用指的是,结合实施例描述的特定特征、结构或特性被包含在本发明的至少一个实施例中。短语“在一个实施例中”在说明书中不同位置的出现不必指的是相同的实施例。
[0075] 尽管按照若干实施例描述了本发明,但本领域的技术人员可以认识,本发明不限于所述的实施例,而是能以所附权利要求书的精神和范围内的修改和变更实践。因此描述可被认为是说明性而非限制性的。