CN102637250A - 用于验证处理***部件的方法和装置 - Google Patents
用于验证处理***部件的方法和装置 Download PDFInfo
- Publication number
- CN102637250A CN102637250A CN2012100245546A CN201210024554A CN102637250A CN 102637250 A CN102637250 A CN 102637250A CN 2012100245546 A CN2012100245546 A CN 2012100245546A CN 201210024554 A CN201210024554 A CN 201210024554A CN 102637250 A CN102637250 A CN 102637250A
- Authority
- CN
- China
- Prior art keywords
- identifying code
- software
- cryptographic key
- parts
- disposal system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
在处理***引导时,它可将加密密钥的加密版本从非易失性存储器取到处理单元,该处理单元可将加密密钥解密。处理***还可为处理***的软件获取预定义验证码,并且处理***可用加密密钥来为软件计算当前验证码。然后,通过比较预定义验证码和当前验证码,处理***可以确认软件是否可信。在各种实施例中,处理单元可以使用存于处理单元的非易失性存贮中的密钥来将加密密钥的加密版本解密,可用散列消息验证码(HMAC)作为验证码,和/或需要验证的软件可以是引导固件、虚拟机监控程序(VMM)或其它软件。还就其它一些实施例作了描述并主张了它们的权利要求。
Description
本发明申请是本发明申请人于2007年12月28日提交的、申请号为200710307265.6、发明名称为“用于验证处理***部件的方法和装置”的发明申请的分案申请。
技术领域
本公开大致涉及数据处理领域,更具体地说,涉及用于验证处理***部件的方法及相关装置。
背景技术
处理***可以包括硬件资源,诸如中央处理器(CPU)、随机存取存储器(RAM)和非易失性存储器。处理***还可以包括软件资源,诸如基本输入/输出***(BIOS)、虚拟机监控程序(VMM)和运行于VMM上的一个或多个客户操作***(OS)(guest operating system)。在引导或复位计算机***时,它会加载BIOS,然后是VMM。然后,VMM可以产生一个或多个虚拟机,并且虚拟机可以引导(boot)到不同的OS或相同OS中的不同示例。
除了RAM和一个或多个CPU之外,处理***还可以包括安全协处理器(security coprocessor),诸如可信平台模块(TPM)。TPM是驻留于处理***内的硬件部件,并提供了各种设施和服务以扩增处理***的安全性。例如,TPM可实现为集成电路(IC)或半导体晶片,并且它可以用于保护数据和认证平台的配置。TPM可按照规范来实现,诸如2003年十月二日的可信计算组(TCG)TPM规范版本1.2(下文的″TPM规范″),它包括诸如设计原则、TPM结构和TPM命令的部分。TPM规范由TCG公布并且可从互联网(www.trustedcomputinggroup.org/home)得到。
TPM的子部件可以包括执行引擎和安全的非易失性(NV)存储器或存贮器。可靠的NV存储器用于存储敏感信息,诸如密码密钥,并且执行引擎根据由TPM控制逻辑规定的安全策略而保护敏感信息。
通常,基于平台特征,TCG顺应的TPM可以提供安全***,诸如验证身份和/或平台的完整性。通常由TPM考虑的平台特征包括平台的硬件部件(诸如处理器和芯片组)以及驻留于平台中的软件(诸如固件和OS)。TPM还可以支持软件处理的审核和登录,以及平台引导完整性、文件完整性和软件许可的核实。因此,TPM可以被认为是平台的可信根。然而,TPM通常还依赖于固有可靠的平台的CPU执行的特定代码。该代码被认为是核心度量可信根(CRTM)。
具体而言,TCG识别平台用的三个主可信根:存储可信根(RTS)、报告可信根(RTR)和度量可信根(RTM)。就如https://www.Trustedcomputinggroup.org/groups/glossary网址的TCG术语表中所说明的,TPM通常用作RTS和RTR。相反,通常RTM是″由CRTM控制的普通平台计算引擎。这是可信传递链的根。″而且,TCG术语表解释到,可信根是″必须总是以预期方式实施行为的部分,因为其不正当行为是不能被检测到的。″
发明内容
本发明的一个方面涉及一种用于验证软件的方法,该方法包括:在引导过程期间,将密码密钥的加密版本从处理***的非易失性存储器取到处理***的处理单元;在处理单元中将密码密钥解密;获取处理***的软件的预定义验证码;用密码密钥来计算软件的当前验证码;及至少部分基于预定义验证码与当前验证码的比较而确定软件是否应该可信。
本发明的另一方面涉及一种用于支持软件验证的方法,方法包括:使用密码密钥来为处理***的软件产生验证码;将验证码保存到处理***中;将密码密钥保存到处理***的非易失性存储器中;以及为处理***配置能够使处理***执行引导操作的引导软件,其中包括:从非易失性存储器获取密码密钥;使用密码密钥来重新计算验证码;及至少部分基于重新计算的验证码和保存的验证码的比较而确定软件是否应该可信。
本发明的又一方面涉及一种处理***包括:带非易失性存贮器的处理单元;存贮于非易失性存贮器中的密码处理单元密钥(PUK);与处理单元进行通信的至少一个非易失性存贮部件;至少一个非易失性存贮部件中的候选代码模块;和至少一个非易失性存贮部件中的扩增引导代码模块;处理单元构造成能够在执行来自候选代码模块的代码之前,执行来自扩增引导代码模块的代码;其中,扩增引导代码模块包括:验证密钥的加密版本;在由处理单元执行时能够使处理单元执行如下操作的指令,包括:使用PUK解密验证密钥的加密版本;及在执行任何来自候选代码模块的指令之前,使用验证密钥来验证候选代码模块。
本发明还有一方面涉及一种装置包括:机器可访问介质;机器可访问介质中的扩增引导代码模块,其中扩增引导代码模块包括:验证密钥的加密版本;在引导过程期间由处理单元执行的初级引导指令,处理单元带有非易失性存贮器,并且密码处理单元密钥(PUK)存贮于非易失性存贮器中;初级引导指令包括在由处理单元执行时能够使处理单元执行下列操作的指令,包括:使用PUK来解密验证密钥的加密版本;及在执行来自候选代码模块的任何指令之前,使用验证密钥来验证候选代码模块。
附图说明
通过所附的权利要求、下文对一个或多个示范性实施例的详细描述及对应附图,本发明的特征和优点将变得很显明,其中:
图1是描述一适用数据处理***的框图,其中可实现本发明的示范性实施例的某些方面;
图2是描述涉及图1的数据处理***的一例数据处理环境的框图;
图3是根据本发明的示范性实施例的、用于提供带第三方密钥和各种清单(manifest)的、图1的处理***的流程图;
图4是根据本发明的示范性实施例的扩增验证码模块的框图;
图5是根据本发明的示范性实施例的、在处理单元和安全协处理器之间建立受保护信道的过程的流程图;图6是根据本发明的示范性实施例的、用于验证图1的数据处理***的部件的过程的流程图。
具体实施方式
本发明的实施例提供用于验证平台部件,诸如引导固件和/或VMM代码,因此相对于依赖固有可靠的代码的平台提供了扩增的安全性。比如,平台可以检查***的只读存储器(ROM)中的引导固件的真实性。或者,需要验证的代码可以包括诸如来自硬盘或其它大容量存贮器的OS和/或VMM等部件。
作为背景,在带TPM的平台中,平台测试(platform measurement)和加密方法可用来将敏感信息或机密密封到TPM。比如,在带VMM的处理***中,使用VMM和其它平台部件的度量能够将机密密封到TPM。TPM可以阻止机密随后从TPM释放或启封,除非VMM和其它平台被验证为与密封用的度量匹配。然而,在机密被启封时,它就可以用明语电文(即未加密)形式在在TPM和CPU之间处理***中的信道上传递。
本公开介绍了用于在安全协处理器(例如,TPM)和处理单元(例如,CPU)之间以加密格式传递机密的机制和过程。从而,即使攻击者窥探(snoop)到了处理***中的内部总线,攻击者也不能截获明语电文机密。
介绍的机制和过程可以适于为高价值内容提供扩增的保护,例如,关于数字版权管理(DRM)。就如将在下文详细介绍的,在一个实施例中,TPM和CPU之间的信道上的数据使用各会话的密码密钥(cryptographic key)而加密。另外,CPU和TPM预先设置有密码密钥(本文称为″第三方密码密钥″或“3PK”),该密钥用于验证会话终端和产生各会话的密码密钥。因此,3PK还被称为验证密钥。
为此公开的目的,对于处理单元和包括处理单元的处理***而言,″第一方″是处理器的制造商,而“第三方”则是与处理单元或处理***相关的任何其它实体。比如,处理***的制造商和处理***的所有者被认为是“第三方”。
再来讨论第三方密钥,CPU的制造商不必将3PK加载到CPU或TPM。事实上,由于TPM是与平台相关的,在CPU制造商并不装配平台时,CPU制造商就没有机会将3PK加载入TPM内。相反,3PK和将其加载入处理***内的过程主要由某些其它方控制,诸如由处理***的制造商控制。例如,就如在下文将详细介绍的,在构建处理***时,初始设备厂家(OEM)可以获得扩增验证码(AC)模块,它包含要安装到处理***CPU中的第三方密码密钥。就如将在下文详细介绍的,在扩增AC模块(augmented AC module)内,3PK可基于处理单元密钥(PUK)而被加密保护。为了此公开的目的,处理单元密钥或PUK是在制造处理器时存贮于处理器中且以非易失性形式保留于处理器中的密码密钥。比如,处理器可以不管关机重启(power cycle)或处理器的复位而保留密钥。扩增AC模块还可以包括初级引导代码,并且扩增AC模块可以用签名来保护。
扩增AC模块可以存储于引导存贮器中(例如,通常包含BIOS代码的闪存)。平台构建者还可以在平台制造期间将3PK安装到平台的TPM内。随后在复位时,CPU就可以定位并运行扩增AC模块中的初级引导代码。因此,AC模块和已经用加密3PK扩增的相似类型的模块可以被认为是扩增引导代码模块。在一个实施例中,CPU可以将固件接口表(FIT)用作标准机制以定位并运行扩增AC模块。关于FIT的附加信息提供于2003年12月的Processor FamilySystem Abstraction Layer(处理器家族***抽象层规范)中,它可以从互联网在download.intel.com/design/Itaniurn/Downloads/24535907.Pdf 网址获得。在运行时,扩增AC模块可以将3PK安装到只能由特权代码(privileged code)修改的CPU寄存器中。因此,平台可用文中介绍的方法来将OEM密钥传送到BIOS存储器,并安全地在各次引导时将它们安装到处理器。
扩增AC模块还可以初始化TPM,并创建由处理器和TPM使用以加密两个部件之间的交换数据的会话密钥。例如,一旦3PK已装入处理器和TPM内,使用标准加密方案,这些密钥又可以用来产生一个或多个会话密钥。然后,会话就用于处理器和TPM之间的安全通信。
介绍的解决方案允许CPU和安全性处理器(诸如TPM)之间的安全通信,因此确保了安全的交换,甚至可以防范拥有高级窥探硬件(snooping hardware)和可对机器进行物理接触的攻击者。比如,根据本公开的平台可确保用于保护数据内容的密码密钥(例如,用于保护运动图象专家组(MPEG)电影的密钥,用于保护***信息数据库的密钥等)受到保护,从而不受到基于目的性探测(in-target probe)(ITP)的攻击。
另外,本公开介绍了方便、灵活的方法以提供带有建立受保护信道用的密钥的平台。第三方可以选择密钥并将它装入平台内。3PK密码密钥不需要构建到处理器中。因此,处理器制造商不必知道3PK。另外,如果处理器被返回到制造商,也可以在不损害3PK的情况下重新使用处理器。如果是可信代理需要的话,3PK可以被改变,并且只有在处理器存在于平台中时,3PK才可与处理器联系在一起。因此,这种3PK还可以被称为平台密钥。
OEM或其它实体也可使用3PK以在装配或配置处理***时为处理***的各种软件部件创建清单。随后,处理***可使用来自扩增AC模块的3PK来验证那些部件,例如在引导期间。因此,处理***可以避免执行已经感染了恶意软件(malware),诸如病毒、根套件(rootkit)、虚拟机根套件等的软件包。比如,将在下文详细介绍的,OEM可以将带***固件用的验证码的固件清单保存在引导闪存中。随后在处理***引导时,在执行固件时,***可以检查清单以确定固件是否已经被篡改。可以采取相似的步骤来保护其它部件,诸如VMM、OS等。
另一可选方式是,OEM可将这些3PK中多于一个的3PK存贮到扩增AC模块中,而各3PK用于不同的目的。比如,一个3PK可以用于在处理器和TPM之间建立可靠的通信,而其它3PK可以用于(a)验证平台固件,(b)验证主OS,以及(c)验证VMM。
图1是描述适用数据处理***20的框图,其中实现了本发明示范性实施例的某些方面。数据处理***20具有不同硬件部件82,诸如中央处理器(CPU)22通过一个或多个***总线24或其它通信路径或介质可通信地连接到各种其它部件。此公开使用的“总线”指的是共享通信路径,以及点到点路径。CPU 22可包括两个或多个处理单元,诸如处理单元30和处理单元32。另一可选方式是,处理***可包括带一个处理单元的CPU,或各具有至少一个处理单元的多个处理器。处理单元可实现为处理核心(processing core)、超线程(HT)技术,或用于同时或基本同时地执行多线程的任何其它适用技术。
文中使用的术语“处理***”和“数据处理***”广义地涵盖单一的机器或由可通信地连接的机器、设备构成的共同运行的***。示例处理***包括(但是并不仅限于)分布式计算***、超级计算机、高性能计算***、计算群集(computing cluster)、大型计算机、微型计算机、客户-服务器***、个人计算机、工作站、服务器、手提式计算机、膝上型计算机、平板设备(tablet)、电话、个人数字助理(PDA)、手提式装置、娱乐装置、诸如音频和/或视频装置和用于处理或传送信息的其它设备。
处理***20可以由来自传统输入设备,诸如键盘、鼠标等的输入,和/或接收自另一机器、生物反馈(biometric feedback),或其它输入源或信号的指示来控制,或至少部分控制。处理***20可以利用到达一个或多个远程数据处理***的一个或多个连接,诸如通过网络接口控制器(NIC)40、调制解调器或其它通信端口或耦合。处理***可以借助于物理和/或逻辑网络而互联,诸如借助局域网(LAN)、广域网(WAN)、内部网、互联网等。涉及网络的通信可以利用各种有线和/或无线的短程或远程载体和协议,包括射频(RF)、卫星、微波、美国电气与电子工程师协会(IEEE)802.11、802.16、802.20、蓝牙、光、红外、电缆、激光等。802.11用的协议还可以被称作无线保真(WiFi)协议。802.16还可以被称为WiMAX或无线城域网网络协议,涉及这些协议的信息目前可以在grouper.ieee.org/groups/802/16/published.html网址得到。
图2是描述涉及图1处理***20的一例数据处理环境12的框图。尤其是,数据处理环境12包括作为本地处理***的处理***20,以及称为扩增验证码模块(AACM)发生器80的远程处理***。处理***20和AACM发生器80可以通过网络90进行通信。比如,处理***20可以位于OEM装配车间102中,并且在OEM装配或配置处理***20时,OEM可以使处理***20与AACM发生器80进行通信以向处理***20提供一个或多个专用于该OEM的3PK,就如下文将参照图3详细介绍的。尤其是,如下所述的,OEM可引起AACM发生器80将3PK72、3PK’75和3PK”77嵌入初级AC模块(preliminary ACmodule)中,因此将它转换成专用于该OEM的AACM。
再来看图1,在处理***20内,处理器22可以可通信地连接到一个或多个易失性或非易失性的数据存贮设备,诸如RAM 26、只读存储器(ROM)42、大容量存贮器36,诸如硬盘驱动器,和/或其它设备或介质,诸如软盘、光学存储器、磁带,闪存、记忆棒、数字电视唱片等。出于此公开的目的,术语″ROM″通常用于指的是非易失性存储设备,诸如电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)、flash ROM/闪存等。处理器22还可以可通信地连接到附加部件,诸如视频控制器、集成设备电路(IDE)控制器、小型计算机***接口(SCSI)控制器、通用串行总线(USB)控制器、输入/输出(I/O)端口、输入设备、输出设备,诸如显示器等。
在图1的实施例中,处理***20还包括TPM 44。在其它实施例中,也可以使用其它类型的安全协处理器。处理器22、RAM 26、TPM 44和其它部件可以连接到芯片组34。芯片组34可以包括一个或多个桥接器(bridge)或集线器(hub),以可通信地连接***部件,以及其它逻辑和存贮部件。
诸如视频控制器的一些部件(例如)可以实现为带有与总线通信用的接口的适配卡形式(例如,PCI连接器)。在一个实施例中,一个或多个设备实现为嵌入式控制器,使用诸如可编程的或不可编程的逻辑器件或阵列、某些用途集成电路(ASIC)、嵌入式计算机、智能卡和类似物的部件。
本文将参考数据,诸如指令、功能、程序、数据结构、应用程序和配置设定等来介绍本发明。在数据可以由机器访问时,机器可以通过如下形式来来作出反应:执行任务、定义抽象数据类型或低级硬件关联,和/或执行其它操作,就如下文将详细介绍的。数据可以存贮于易失性的和/或非易失性的数据存贮器中。出于此公开的目的,术语“程序”涵盖很广泛的软件成分和结构,包括应用程序、驱动程序、过程、例行程序方法模块和子程序。术语“程序”可用来指完整的编译单元(即能够独立编译的指令集)、编译单元的集合或编译单元的一部分。因此,术语“程序”可以用于指在由处理***执行时完成所希望的单个操作或多个操作的指令的集合。处理***20中的程序可以认为是软件环境84的组成部分。
比如,在处理***20引导时,BIOS 50和VMM 52可被载入RAM26,在软件环境84内执行。VMM 52可以包括或多或少地用作OS的组成部分,或者它可运行于主OS 54的顶层。比如,BIOS 50可按照2006年1月31日的统一可扩展软固件接口规范(Unified Extensiblefirmware Interface Specificarion)的第二版来实现。ROM 42还可以包括诸如扩增AC模块(AACM)60等模块。就如下文将参照图6详细介绍的,AACM 60可导致处理***20在让它们运行之前验证BIOS 50、OS 54和/或VMM 52。
图3是根据本发明的示范性实施例的、将3PK提供给处理***20的过程的流程图。所描述的过程适合于由OEM管理的部件或配置操作,它开始于OEM已经选择了将要提供给3PK的处理***20之后。在步骤110处,OEM选择将要提供的3PK。
在步骤112处,OEM准备初级AC模块。在本示范性实施例中,OEM为AC模块使用诸如在2006年九月的LaGrande TechnologyPreliminary Architecture Specification(安全技术初步体系结构规范,下文称为″LTPA规范″)中介绍的格式。LTPA规范目前可从互联网上获得(www.intel.com/technology/security/downloadslT_spec_0906.pdf)。
图1的示范性处理***提供使用已知为更安全模式扩展(safermode extension)(SMX)功能的快速启动(launch)和控制接口。涉及SMX的附加信息可以从LTPA规范获得。LTPA规范还介绍了AC模块是如何被验证和执行的。例如,第11和12页提供了下述说明:
●为支持受保护环境的建立,SMX启动验证代码执行模式的性能。这提供了用于将特殊代码模块,也被称为验证码模块(AC模块)载入处理器内的内部RAM(称为验证代码执行区域)的性能。AC模块首先被验证,然后用抗篡改法执行。
●验证可以通过使用AC模块标头中的数字签名而实现。处理器计算AC模块的散列(hash),并使用此结果来确认签名。使用SMX,处理器将只初始化处理器状态或执行AC代码模块,如果它通过验证的话。由于验证码模块保存在处理器的内部RAM中,模块的执行的发生可隔离于外部存储器的内容或外部处理器总线上的行为。
再来看步骤112,为了准备初级AC模块,OEM可以将用户代码/数据载入初级AC模块的用户区域内。这里,初级AC模块用作需要嵌入到扩增AC模块中的OEM内容的格式化输入。在示范性实施例中,用户区中的代码包括在将控制权交给BIOS 50之前用于控制初级引导操作的指令和数据。处理***20还可以增加初级AC模块的其它部分,诸如长度字段(size field)。
如步骤114处所示,处理***20然后可连接到AACM发生器80。在本示范性实施例中,处理***20和AACM发生器80建立安全通道来传递加密数据。任何适用技术都可用来建立该安全通道。如步骤116中所示,处理***20然后将消息或请求84发送到AACM发生器80。如图2所示,请求84可以包括初级AC模块,以及所想要的3PK。在本示范性实施例中,初级AC模块包含这样的域,它由OEM或第三方制造商填充,以指示为之查找AACM的处理器家族。如在步骤120和122中所示,AACM发生器80可以从处理***20接收初级AC模块和3PK,然后可将3PK加密。
在图2实施例中,AACM发生器80由处理器22的制造商管理,并且AACM发生器80使用预定义的处理器制造密钥(PMK)71来加密3PK。在图2实施例中,PMK 71是私有密钥,处理单元30包括PUK 70,PUK 70是相应的公有密钥。在另一实施例中,PMK和PUK可以是相同密钥(即它们具有相同值)。
在图1实施例中,在处理器22被运送到购买方如OEM之前,PUK 70可以永久地由处理器22的制造商在制造过程期间烧入处理单元30内。处理器22的制造商可以保存PMK 71机密,使得永远没有其它实体能够得知PMK 71的值。另一可选方式是,处理器制造商可以安排单独的可信实体来管理AACM发生器80。尽管PUK 70可以认为是″公开″密钥,但是也可以将它保密,使得其值永不从处理单元30释放。
再来看图3,AACM发生器80然后构建包括加密的3PK的AACM60,如在步骤124处所示。例如,再参照图1,AACM发生器80可以包括AACM 60中的下列3PK:加密的3PK(E3PK)72A、E3PK′75A和E3PK″77A。尤其是,再参照图2,在AACM发生器80构建AACM60时,AACM发生器80可以将E3PK添加到初级AC模块的用户数据,并更新模块长度字段。或者,AACM 60可以包括一个或多个用于保存加密的3PK的预定义的域。包括3PK的加密版本的AACM也称为加密的AC模块。
图4是来自图1的AACM 60的框图,示出了模块标头(moduleheader),其后是暂存区,再后面是带有附加在模块端或接近模块端的加密3PK的用户区,加密3PK的用户区跟随在来自初级AC模块的用户代码/数据之后。另一可选方式是,AC模块可以构造成带有可能是位于模块标头中的一个或多个独立域,以保存加密的3PK。使用区中用于控制初级引导操作的指令和其它数据在文中称为AACM代码79。
再参照图3,然后AACM发生器80将AACM 60发送到处理***20,如步骤126所示。在步骤130中,处理***20可以从AACM发生器80接收AACM 60。然后处理***20可以标记AACM 60,如在步骤132处所指示的。例如,OEM可以选择AC模块密钥对,诸如Rivest、Shamir、Adelman(RSA)公有/私有密钥对,然后将来自该密钥对的公有密钥载入AACM 60的标头。OEM可使用来自该密钥对的私有密钥创建AACM 60用的RSA签名,这可能是基于用户区的散列消息或也可能是基于AACM 60的其它部分。然后OEM可以将该RSA签名存贮到AACM 60的标头中。再参照图4,在AACM 60的标头中描述了这种RSA公有密钥76和这种RSA签名78。
因此,OEM(或其它第三方)可以为AC模块选择3PK及RSA公有密钥。从而,为了区别那些密钥,RSA公有密钥可以被称为主模块密钥,而3PK可以称为补充模块密钥。
如在步骤134处所示,处理***20然后可以将AACM 60存贮到如图1中描述的ROM 42中。在图1实施例中,处理单元30构造成用作自引导处理器(BSP),处理***20构造成能够将ROM 42使用作引导存贮器(即处理单元30可以从中获得指令以用于在上电或复位时初始化和配置处理***20的非易失性存贮器)。
因此,实现***配置的OEM或其它实体可以将密码密钥,诸如E3PK 72A装入***ROM(例如ROM 42)中。此外,由于E3PK 72A本身是加密的,因此即使攻击者能够从ROM 42获取E3PK 72A,攻击者还是不能解密和使用E3PK 72A。
如在图3中步骤136处所示,处理***20然后可以将3PK中的一个或多个(例如3PK 72)存入TPM 44。比如,处理***20可以在各次引导期间安全地将3PK 72和其它3PK安装入TPM44内。另一可选方式是,OEM可以在处理***制造期间将3PK 72和其它3PK设置入TPM 44内。
然后,处理***20可以使用3PK中的一个或多个来为要保护的各种软件部件计算验证码,并且处理***20可以将那些验证码保存为处理***20中的清单。在示范性实施例中,散列消息验证码(hashed(HMAC)用于各验证码或清单。HMAC可以具有如下形式:
HMACK(m)=h((K xor opad))||h((K xor IPAD)||m))
其中,m是要保护的消息或数据,h是散列函数,K是选择的3PK(例如,3PK′75),ipad是预定义的内部填充常数(pad constant),opad是预定义的外部填充常数。涉及HMAC的附加信息目前可从互联网(http://en.wikipedia.org/wiki/HMAC)上获得。
例如,如在步骤140所描述的,处理***20可以计算处理***20的***固件的HMAC。尤其是,处理***20可以将3PK′75用作HMAC用的K,并且处理***20可以将固件镜像(firmware image)(例如,BIOS 50的内容)用作HMAC的m。相类似的,如在步骤142和144处所示,处理***20可以用3PK″77来计算VMM 52用的HMAC,并且处理***可用另一3PK来计算OS 54的HMAC。
如在步骤150处指出的,处理***20然后可以将HMAC保存为相应部件用的清单。比如,如图1中所示,处理***20可以用附加、预先计划,或以其它方式将VMM验证码(AC)53增加到VMM 52,将固件AC 51增加到BIOS 50,和将OS AC 55增加到OS 54。另一可选方式是,清单或验证码可以独立地从相应软件模块保存。
图5是根据本发明的示范性实施例的、用于在处理单元和TPM之间建立受保护通信通道的过程的流程图。图1在总线24和芯片组34上使用粗线来描述这种可靠通道的示例,该可靠通道根据图5的过程而建立于处理单元30和TPM 44之间。带E3PK 72A的AACM 60已经存贮于ROM 42中之后开始该过程,可能是根据诸如上述介绍的过程。
尤其是,图5的过程可以响应于加电或复位的处理***20而开始,该过程可以使处理单元30中的微指令检查ROM 42中的预定义位置以确定ROM 42是否包含AC模块。如果找到了AC模块,处理单元30可以将AC模块加载入处理单元30内的受保护内部RAM。接收AC模块的受保护内部RAM可以被称为验证码执行区(ACEA)38。
出于说明的目的,可以假设,处理单元30在ROM42中找到了AACM 60。如在步骤220处所示的,处理单元30然后可根据上述从LTPA的规范摘录,确定AACM 60是否可信。比如,处理单元30可以(a)计算AACM 60某些部分的散列(b)使用RSA公有密钥76来解密签名78,以及(c)将解密的签名与散列作比较以确定,AACM 60是否匹配OEM最初用对应的RSA私有密钥所做的签名。处理单元30还可以核实RSA公有密钥76是否违背有效公有密钥的预定义列表。比如,处理单元可以从RSA公有密钥76导出散列值,并在处理***20中将该值与受保护存贮器中的有效散列值列表做比较。如果RSA公有密钥76核实是好的,并且AACM 60的散列匹配解密的RSA签名,那么处理单元30就推断AACM 60可信。
如果处理单元30不能找到AC模块,或如果处理单元30找到了AC模块,但是确认它不可信,那么处理单元30就可以记录适当的错误消息,如在步骤240处指示的。处理单元30然后可以检查处理***20中的配置设定以确认,是否允许处理***20使用非ACM引导过程,如在步骤250处所示。如果允许非ACM引导,那么处理单元30就可以执行非ACM引导,如在步骤252处所示。如果不允许非ACM引导,那么过程就可结束而不作处理***20引导。
再来看步骤220,如果处理单元30确认AACM 60可信,那么处理单元30然后就可以从AACM 60获取E3PK,如步骤222所示。处理单元30可以暂时将E3PK存贮在(比如)一个或多个处理器寄存器或其它内部存贮器中。
然后,处理单元32解密E3PK(例如,E3PK 72A,E3PK′75A,E3PK″77A)并将结果(例如,3PK 72,3PK′75,3PK″77)保存在处理单元32内的受保护存贮器中,如步骤224和226所示。在图1的实施例中,其中受保护存贮器实现为一个或多个寄存器,这些寄存器(a)只能由特权代码修改;(b)不能由非特权代码读、写或调度;并且(c)不能由ITP访问。在此上下文中,特权代码是这样的代码,它可从外面传送到处理器,但是在它由处理器运行前需要特殊验证,并且然后运行于干净环境中的处理器中,以使得特权代码执行不能由恶意方监视或操纵。在一可选实施例中,处理***可以等待,直到不需要用TPM建立安全通道的未来时间点才解密E3PK。在图1实施例中,处理单元30使用PUK 70来解密E3PK。
如步骤228处所示,处理单元30和TPM 44然后可以使用3PK 72来创建会话密钥(SK)74以保护处理单元30和TPM 44之间的通信。处理单元30和TPM 44然后可用SK74来创建受保护通道,如步骤230处所示。该受保护通道可以横贯多个***总线24和零个或多个芯片组34的部件。TPM 44和处理单元30然后可以使用SK 74来加密通信,如在步骤232处所示。在可选实施例中,可以用多个会话密钥来保护处理单元30和TPM 44之间的通信。
可以用受保护的通道(比如)来将来自TPM 44的密钥或其它受保护信息加载到处理单元30内。同样的,可以用受保护通道将来自处理单元30的密钥或其它敏感信息发送到TPM 44。因此,受保护通道确保了通道的任何观察者都不能确定通信的内容,并保护传送中的数据不受到修改。此外,用于初始化通道的过程可以验证终端以保护不受未授权的存取,并不受重放和TPM交换攻击(replay and TPM swapattack)。
如在步骤260处所示,处理***20然后可以确定是否有其它部件需要在引导过程的初级阶段中被验证。如果是这样的话,过程就通过页连接符A而接续到图6。
图6是根据本发明示范性实施例的、用于验证处理***20的部件的过程的流程图。在控制流程通过页连接符A到达图6时,处理***20就可以尝试来定位固件清单(firmware manifest)或验证码,诸如BIOS AC 51,如在步骤310处所示。如果没有找到BIOS AC 51,处理单元30就记录错误,如在步骤350处所示,并且过程就可以在没有完成引导过程的情况下结束。如果找到了BIOS AC 51,处理单元30就使用3PK′75来计算HMAC为当前BIOS镜像(BIOS image),如在步骤312处所示。
如在步骤320处所示,处理单元30然后可以比较BIOS AC 51与当前AC以确认BIOS 50是否已经被篡改过。如果HMAC不匹配,处理单元30就记录错误,如步骤350处所示,并且过程就结束。如果它们确实匹配,那么来自AACM 60的初级引导代码可以将控制传递到(hand off)***固件,如步骤322所示。
如在步骤330处所示,处理***20然后可以尝试定位清单诸如VMM 52用的VMM AC 53。如果没有找到VMM AC 53,处理单元30就记录错误,如步骤350处所示,并且过程就此结束。然而,如果找到VMM AC 53,处理单元30就用3PK″77来计算当前VMM镜像的HMAC,如步骤332处所示。如步骤340处所示,处理单元30然后可以比较VMM AC 53与当前AC以确定VMM 52是否已被篡改。如果HMAC不匹配,那么处理单元30就记录错误,如步骤350所示,并且过程就此结束。如果它们确实匹配,那么BIOS 50就将控制传递给(hand off)VMM 52,如在步骤344处所示。在VMM 52包括或多或少地起OS作用的部件时,可以使用上述操作。
在OS 54与VMM 52有区别时,处理***20可用如上述的那些操作来定位OS 54用的清单(例如,OS AC 55),并在OS 54已经被篡改时保护OS 54,使其不被执行。
按照这里介绍和描述的原则和示范性实施例,可以认识到,在不背离这些原则的情况下,能够修改所描述的实施例的设置和细节。另外,前述讨论集中于特殊实施例,但是也可以构思出其它配置。尤其是,虽然在本文中使用了诸如“在一个实施例中,在另一实施例中”等的表达,这些短语只是意味着一般地提及参考实施例的可能性,而不是旨在将本发明限制于某些实施例配置。如本文中所使用的,这些术语可以指能够结合到其它实施例内的相同或不同实施例。
相似地,尽管已经参照以某些顺序实现的某些操作来介绍过了示例过程,还可以将许多改进应用到那些过程上以推导出本发明的多个可选实施例。例如,可选实施例可以包括使用比所有公开操作都要少的过程;使用附加操作的过程;以不同顺序使用相同操作的过程;和将本文公开的单一操作进行组合、再分或其它改变的过程。
还有,尽管在示范性实施例中介绍了由OEM实现或控制的某些操作,在其它实施例中其它类型的实体也可以实现或控制操作,包括(但并不仅限于)实现平台配置、软件安装、信息技术(IT)辅助等的实体。另外,此公开涉及各种操作的密钥的使用。需要明白的是,这种使用包括直接和间接地使用。比如,如果使用第一密钥来创建第二密钥,然后第二密钥用于操作,那么两个密钥都被认为已用于操作。已经直接使用了第二密钥,并且也已经间接使用了第一密钥。
本发明的可选实施例还包括用于执行本发明操作的机器可访问介质(machine accessible media)编码指令。这种实施例还可被称作程序产品。这类机器可访问介质可以包括,但并不仅限于,存贮介质,诸如软盘、硬盘、CD-ROM、ROM和RAM;和由机器或设备制造的微粒的其它可检测设置。指令还可以用于分布式环境,并可以本地存贮和/或可由单处理器或多处理器机器远程访问。
当知,本文描述的硬件和软件部件代表合理独立的功能装置,以使得每个都能基本独立于其它而被设计、构建或更新。在可选实施例中,其中许多部件可以被实现为硬件、软件、或硬件和软件的组合,以用于提供上述介绍和描述的功能。
由于已经可以从本文介绍的示范性实施例推导出很广范围的多种有用改变,所以此详述只是旨在于描述目的,不应当被认为是用来限制本发明范围的。因此,本发明要求保护的是落入所附权利要求的范围和精神的所有实现方式,以及所有与其相当的实现方式。
Claims (21)
1.一种用于验证软件的方法,所述方法包括:
在引导过程期间,处理***的处理单元接收密码密钥的加密版本;
解密所述密码密钥;
接收所述处理***的软件的验证码;
基于解密后的密码密钥来计算所述软件的当前验证码;以及
基于预定义验证码与所述当前验证码而确定所述软件是否应该执行。
2.根据权利要求1所述的方法,其特征在于,解密所述密码密钥的操作包括:
基于存于所述处理单元的非易失性存贮器中的密钥来解密所述密码密钥的加密版本。
3.根据权利要求1所述的方法,其特征在于,在引导过程期间接收密码密钥的加密版本的操作包括:
在引导过程期间从除可信平台模块以外的部件接收所述密码密钥的加密版本。
4.根据权利要求1所述的方法,其特征在于,为所述软件计算当前验证码的操作包括:
基于所述密码密钥来为所述软件计算当前散列消息验证码。
5.根据权利要求1所述的方法,其特征在于,待验证的所述软件包括由下列部分构成的组中的至少一个程序:
引导固件;
虚拟机监控程序;以及
操作***。
6.根据权利要求1所述的方法,包括,在引导过程期间:
解密所述密码密钥;
接收所述处理***的软件的验证码;
基于解密后的密码密钥来计算所述软件的当前验证码;以及
基于预定义验证码与所述当前验证码而确定所述软件是否应该执行。
7.一种用于支持软件验证的方法,所述方法包括:
基于密码密钥来为处理***的软件产生验证码;
将所述验证码保存到所述处理***中;以及
为所述处理***配置能够使所述处理***执行引导操作的引导软件,所述引导操作包括:
基于所述密码密钥来重新计算所述验证码;以及
基于所述重新计算的验证码和所述保存的验证码而确定所述软件是否应该执行。
8.根据权利要求7所述的方法,包括:
将所述密码密钥的加密版本保存到所述非易失性存储器中。
9.根据权利要求7所述的方法,其特征在于,为所述处理***的软件产生验证码的操作包括:
为引导固件产生所述验证码。
10.根据权利要求7所述的方法,其特征在于,为所述处理***的软件产生验证码的操作包括:
为由下列部分构成的组中的至少一个程序产生所述验证码:
引导固件;
虚拟机监控程序;以及
操作***。
11.一种用于验证软件的处理***,所述***包括:
在引导过程期间,接收密码密钥的加密版本的部件;
解密所述密码密钥的部件;
接收所述处理***的软件的验证码的部件;
基于解密后的密码密钥来计算所述软件的当前验证码的部件;以及
基于预定义验证码与所述当前验证码而确定所述软件是否应该执行的部件。
12.根据权利要求11所述的***,包括用于基于存于所述处理单元的非易失性存贮器中的密钥来解密所述密码密钥的部件。
13.根据权利要求11所述的***,包括用于在引导过程期间从除可信平台模块以外的部件接收所述密码密钥的加密版本的部件。
14.根据权利要求11所述的***,包括用于基于所述密码密钥来为所述软件计算当前散列消息验证码的部件。
15.根据权利要求11所述的***,其特征在于,待验证的所述软件包括引导固件。
16.根据权利要求11所述的***,其特征在于,待验证的所述软件包括由下列部分构成的组中的至少一个程序:
引导固件;
虚拟机监控程序;以及
操作***。
17.根据权利要求11所述的***,包括,用于在引导过程期间执行下列操作的部件:
解密所述密码密钥;
接收所述处理***的软件的验证码;
基于解密后的密码密钥来计算所述软件的当前验证码;以及
基于预定义验证码与所述当前验证码而确定所述软件是否应该执行。
18.一种用于验证软件的处理***,所述***包括:
基于密码密钥来为处理***的软件产生验证码的部件;
将所述验证码保存到所述处理***中的部件;以及
配置所述处理***来执行引导操作的部件,所述引导操作包括:
基于所述密码密钥来重新计算所述验证码;以及
基于所述重新计算的验证码和所述保存的验证码而确定所述软件是否应该执行。
19.根据权利要求18所述的***,包括用于将所述密码密钥的加密版本保存到所述非易失性存储器中的部件。
20.根据权利要求18所述的***,包括为引导固件产生所述验证码的部件。
21.根据权利要求18所述的***,包括为由下列部分构成的组中的至少一个程序产生所述验证码的部件:
引导固件;
虚拟机监控程序;以及
操作***。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/648,511 US8209542B2 (en) | 2006-12-29 | 2006-12-29 | Methods and apparatus for authenticating components of processing systems |
US11/648511 | 2006-12-29 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103072656A Division CN101221613B (zh) | 2006-12-29 | 2007-12-28 | 用于验证处理***部件的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102637250A true CN102637250A (zh) | 2012-08-15 |
Family
ID=39295916
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100245546A Pending CN102637250A (zh) | 2006-12-29 | 2007-12-28 | 用于验证处理***部件的方法和装置 |
CN2007103072656A Expired - Fee Related CN101221613B (zh) | 2006-12-29 | 2007-12-28 | 用于验证处理***部件的方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103072656A Expired - Fee Related CN101221613B (zh) | 2006-12-29 | 2007-12-28 | 用于验证处理***部件的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8209542B2 (zh) |
EP (1) | EP1944711A1 (zh) |
CN (2) | CN102637250A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111868723A (zh) * | 2017-12-12 | 2020-10-30 | 约翰·阿尔梅达 | 病毒免疫计算机***和方法 |
CN113168474A (zh) * | 2019-06-10 | 2021-07-23 | 谷歌有限责任公司 | 固件的安全验证 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510859B2 (en) | 2006-09-26 | 2013-08-13 | Intel Corporation | Methods and arrangements to launch trusted, co-existing environments |
US8205248B2 (en) * | 2007-09-30 | 2012-06-19 | Lenovo (Singapore) Pte. Ltd. | Local verification of trusted display based on remote server verification |
US20090119744A1 (en) * | 2007-11-01 | 2009-05-07 | Microsoft Corporation | Device component roll back protection scheme |
US8677144B2 (en) * | 2008-02-25 | 2014-03-18 | Cavium, Inc. | Secure software and hardware association technique |
US8341419B2 (en) * | 2008-09-09 | 2012-12-25 | Via Technologies, Inc. | Apparatus and method for limiting access to model specific registers in a microprocessor |
US8402279B2 (en) * | 2008-09-09 | 2013-03-19 | Via Technologies, Inc. | Apparatus and method for updating set of limited access model specific registers in a microprocessor |
US8332604B2 (en) * | 2008-09-30 | 2012-12-11 | Intel Corporation | Methods to securely bind an encryption key to a storage device |
US9081963B1 (en) * | 2009-02-27 | 2015-07-14 | Marvell Israel (M.I.S.L) Ltd. | Protecting against use of unauthorized electronic hardware devices |
US8316243B2 (en) * | 2009-08-07 | 2012-11-20 | Via Technologies, Inc. | Apparatus and method for generating unpredictable processor-unique serial number for use as an encryption key |
US9081989B2 (en) * | 2010-03-25 | 2015-07-14 | Virtustream Canada Holdings, Inc. | System and method for secure cloud computing |
US8812828B2 (en) * | 2010-11-16 | 2014-08-19 | Intel Corporation | Methods and apparatuses for recovering usage of trusted platform module |
EP2474931A1 (en) * | 2010-12-31 | 2012-07-11 | Gemalto SA | System providing an improved skimming resistance for an electronic identity document. |
EP2668566B1 (en) * | 2011-01-28 | 2020-08-05 | Hewlett-Packard Development Company, L.P. | Authenticate a hypervisor with encoded information |
CN102176227B (zh) * | 2011-02-17 | 2014-03-19 | 金畬 | 签约见证方法和签约见证辅助*** |
CN103620617B (zh) * | 2011-06-29 | 2016-08-17 | 英特尔公司 | 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 |
US8843764B2 (en) * | 2011-07-15 | 2014-09-23 | Cavium, Inc. | Secure software and hardware association technique |
US8949586B2 (en) * | 2011-10-06 | 2015-02-03 | Cisco Technology, Inc. | System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device |
WO2013089739A1 (en) * | 2011-12-15 | 2013-06-20 | Intel Corporation | Secure debug trace messages for production authenticated code modules |
US9385918B2 (en) | 2012-04-30 | 2016-07-05 | Cisco Technology, Inc. | System and method for secure provisioning of virtualized images in a network environment |
GB2513826A (en) * | 2012-06-29 | 2014-11-12 | Ibm | Trusted boot of a virtual machine |
US8793506B2 (en) * | 2012-08-31 | 2014-07-29 | Intel Corporation | Mechanism for facilitating encryption-free integrity protection of storage data at computing systems |
WO2014046974A2 (en) | 2012-09-20 | 2014-03-27 | Case Paul Sr | Case secure computer architecture |
JP6050528B2 (ja) * | 2013-03-15 | 2016-12-21 | インテル コーポレイション | セキュリティ・コプロセッサ・ブート性能 |
WO2015073029A1 (en) * | 2013-11-15 | 2015-05-21 | Mcafee, Inc. | Determining trustworthiness of a virtual machine operating system prior to boot up |
US9785801B2 (en) * | 2014-06-27 | 2017-10-10 | Intel Corporation | Management of authenticated variables |
EP3356931B1 (en) * | 2015-09-30 | 2021-06-23 | Hewlett-Packard Development Company, L.P. | Bios runtime verification using external device |
CN105335659B (zh) * | 2015-12-04 | 2018-09-14 | 上海兆芯集成电路有限公司 | 计算机***以及计算机***操作方法 |
CN105468964B (zh) * | 2015-12-04 | 2018-09-14 | 上海兆芯集成电路有限公司 | 计算机***以及计算机***操作方法 |
CN105487917B (zh) * | 2015-12-07 | 2017-05-31 | 郑州轻工业学院 | 一种虚拟机实现验证码***修复的方法及装置 |
US10528739B2 (en) * | 2016-04-20 | 2020-01-07 | Sophos Limited | Boot security |
US9916452B2 (en) * | 2016-05-18 | 2018-03-13 | Microsoft Technology Licensing, Llc | Self-contained cryptographic boot policy validation |
US10666443B2 (en) * | 2016-10-18 | 2020-05-26 | Red Hat, Inc. | Continued verification and monitoring of application code in containerized execution environment |
US20190007212A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | Secure unlock systems for locked devices |
US11022696B1 (en) * | 2017-10-18 | 2021-06-01 | George Mason University | ADS-Bsec: a holistic framework to secure ADS-B |
US11190357B2 (en) * | 2018-05-18 | 2021-11-30 | Avive Solutions, Inc. | Framework for ensuring software components are not corrupted |
CN108881223A (zh) * | 2018-06-17 | 2018-11-23 | 张红卫 | 一种基于网络通信实现计算机软件保护的方法 |
US10896266B1 (en) * | 2018-07-12 | 2021-01-19 | Amazon Technologies, Inc. | Computer hardware attestation |
CN109491712B (zh) * | 2018-11-01 | 2021-09-10 | 北京京航计算通讯研究所 | 一种适用于VxWorks环境的可信引导方法 |
CN112732325B (zh) * | 2020-12-22 | 2022-08-09 | 国网湖南省电力有限公司供电服务中心(计量中心) | 一种hplc通信模块的软件比对备案方法及*** |
US11570180B1 (en) * | 2021-12-23 | 2023-01-31 | Eque Corporation | Systems configured for validation with a dynamic cryptographic code and methods thereof |
CN115828250B (zh) * | 2022-01-07 | 2024-01-26 | 宁德时代新能源科技股份有限公司 | 生产电池管理***的方法和启动电池管理***的方法 |
US20230237155A1 (en) * | 2022-01-27 | 2023-07-27 | Hewlett Packard Enterprise Development Lp | Securing communications with security processors using platform keys |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734819A (en) | 1994-10-12 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for validating system operation |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6292890B1 (en) * | 1998-09-29 | 2001-09-18 | Compaq Computer Corporation | Computer system with dynamically configurable boot order |
US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
DE10200288A1 (de) * | 2002-01-07 | 2003-07-17 | Scm Microsystems Gmbh | Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung |
US7313705B2 (en) * | 2002-01-22 | 2007-12-25 | Texas Instrument Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
US7194619B2 (en) * | 2002-03-26 | 2007-03-20 | International Business Machines Corporation | Remotely booting devices in a dense server environment without manually installing authentication parameters on the devices to be booted |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7822688B2 (en) * | 2002-08-08 | 2010-10-26 | Fujitsu Limited | Wireless wallet |
US7475254B2 (en) * | 2003-06-19 | 2009-01-06 | International Business Machines Corporation | Method for authenticating software using protected master key |
US20050091496A1 (en) * | 2003-10-23 | 2005-04-28 | Hyser Chris D. | Method and system for distributed key management in a secure boot environment |
US7636858B2 (en) * | 2003-12-11 | 2009-12-22 | Intel Corporation | Management of a trusted cryptographic processor |
US7222062B2 (en) * | 2003-12-23 | 2007-05-22 | Intel Corporation | Method and system to support a trusted set of operational environments using emulated trusted hardware |
US7581252B2 (en) * | 2004-07-20 | 2009-08-25 | Lenovo (Singapore) Pte. Ltd. | Storage conversion for anti-virus speed-up |
US8291226B2 (en) * | 2006-02-10 | 2012-10-16 | Qualcomm Incorporated | Method and apparatus for securely booting from an external storage device |
US7900060B2 (en) * | 2006-02-17 | 2011-03-01 | Vudu, Inc. | Method and system for securing a disk key |
-
2006
- 2006-12-29 US US11/648,511 patent/US8209542B2/en not_active Expired - Fee Related
-
2007
- 2007-12-18 EP EP20070254930 patent/EP1944711A1/en not_active Ceased
- 2007-12-28 CN CN2012100245546A patent/CN102637250A/zh active Pending
- 2007-12-28 CN CN2007103072656A patent/CN101221613B/zh not_active Expired - Fee Related
-
2012
- 2012-06-25 US US13/532,334 patent/US8832457B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111868723A (zh) * | 2017-12-12 | 2020-10-30 | 约翰·阿尔梅达 | 病毒免疫计算机***和方法 |
CN113168474A (zh) * | 2019-06-10 | 2021-07-23 | 谷歌有限责任公司 | 固件的安全验证 |
Also Published As
Publication number | Publication date |
---|---|
EP1944711A1 (en) | 2008-07-16 |
US8832457B2 (en) | 2014-09-09 |
US20080163383A1 (en) | 2008-07-03 |
CN101221613A (zh) | 2008-07-16 |
CN101221613B (zh) | 2012-03-28 |
US8209542B2 (en) | 2012-06-26 |
US20120265998A1 (en) | 2012-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101221613B (zh) | 用于验证处理***部件的方法和装置 | |
Shepherd et al. | Secure and trusted execution: Past, present, and future-a critical review in the context of the internet of things and cyber-physical systems | |
CN101251879B (zh) | 用于保护数据的方法和装置 | |
Tomlinson | Introduction to the TPM | |
CN106537407B (zh) | 可信根 | |
CN102081716B (zh) | 向受信任平台模块提供可更新密钥绑定的方法和装置 | |
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
US8677144B2 (en) | Secure software and hardware association technique | |
CN109937419B (zh) | 安全功能强化的设备的初始化方法及设备的固件更新方法 | |
US8068614B2 (en) | Methods and apparatus for batch bound authentication | |
JP2022505355A (ja) | 周辺デバイス | |
KR20170095163A (ko) | 하드웨어 디바이스 및 그 인증 방법 | |
US20050283826A1 (en) | Systems and methods for performing secure communications between an authorized computing platform and a hardware component | |
CN107851150A (zh) | 用于可信i/o的安全硬件和软件证明的技术 | |
CN107077574A (zh) | 用于客户端设备的信任服务 | |
CN107251481A (zh) | 利用匿名密钥***进行可信平台模块认证和证明 | |
CN103270518A (zh) | 虚拟机验证 | |
US9015454B2 (en) | Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys | |
CN109983465A (zh) | 增强的安全引导 | |
CN116566613A (zh) | 使用平台密钥保护与安全处理器的通信 | |
Cirne et al. | Hardware security for Internet of Things identity assurance | |
EP3794478B1 (en) | Enclave population | |
CN110059489B (zh) | 安全电子设备 | |
Carelli et al. | Securing Soft IP Cores in FPGA based Reconfigurable Mobile Heterogeneous Systems | |
Aladdin eToken | Aladdin eToken NG-FLASH (Java), Aladdin eToken NG-FLASH Anywhere, and Aladdin eToken NG-OTP (Java) FIPS 140-2 Cryptographic Module Security Policy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120815 |