CN101221613A - 用于验证处理系统部件的方法和装置 - Google Patents

用于验证处理系统部件的方法和装置 Download PDF

Info

Publication number
CN101221613A
CN101221613A CNA2007103072656A CN200710307265A CN101221613A CN 101221613 A CN101221613 A CN 101221613A CN A2007103072656 A CNA2007103072656 A CN A2007103072656A CN 200710307265 A CN200710307265 A CN 200710307265A CN 101221613 A CN101221613 A CN 101221613A
Authority
CN
China
Prior art keywords
processing unit
key
disposal system
nonvolatile memory
cryptographic key
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.)
Granted
Application number
CNA2007103072656A
Other languages
English (en)
Other versions
CN101221613B (zh
Inventor
M·J·库马
S·盖龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101221613A publication Critical patent/CN101221613A/zh
Application granted granted Critical
Publication of CN101221613B publication Critical patent/CN101221613B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2129Authenticate client device independently of the user

Abstract

在处理系统引导时,它可将密码密钥的加密版本从非易失性存储器取到处理单元,该处理单元可将密码密钥解密。处理系统还可为处理系统的软件获取预定义验证码,并且处理系统可用密码密钥来为软件计算当前验证码。然后,通过比较预定义验证码和当前验证码,处理系统可以确认软件是否可信。在各种实施例中,处理单元可以使用存于处理单元的非易失性存贮中的密钥来将密码密钥的加密版本解密,可用散列消息验证码(HMAC)作为验证码,和/或需要验证的软件可以是引导固件、虚拟机监控程序(VMM)或其它软件。还就其它一些实施例作了描述并主张了它们的权利要求。

Description

用于验证处理系统部件的方法和装置
技术领域
本公开大致涉及数据处理领域,更具体地说,涉及用于验证处理系统部件的方法及相关装置。
背景技术
处理系统可以包括硬件资源,诸如中央处理器(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是在制造处理器时存贮于处理器中且以非易失性形式保留于处理器中的密码密钥。比如,处理器可以不管关机重启(powercycle)或处理器的复位而保留密钥。扩增AC模块还可以包括初级引导代码,并且扩增AC模块可以用签名来保护。
扩增AC模块可以存储于引导存贮器中(例如,通常包含BIOS代码的闪存)。平台构建者还可以在平台制造期间将3PK安装到平台的TPM内。随后在复位时,CPU就可以定位并运行扩增AC模块中的初级引导代码。因此,AC模块和已经用加密3PK扩增的相似类型的模块可以被认为是扩增引导代码模块。在一个实施例中,CPU可以将固件接口表(FIT)用作标准机制以定位并运行扩增AC模块。关于FIT的附加信息提供于2003年12月的IntelItanium ProcessorFamily System 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模块(preliminaryAC module)中,因此将它转换成专用于该OEM的AACM。
再来看图1,在处理系统20内,处理器22可以可通信地连接到一个或多个易失性或非易失性的数据存贮设备,诸如RAM26、只读存储器(ROM)42、大容量存贮器36,诸如硬盘驱动器,和/或其它设备或介质,诸如软盘、光学存储器、磁带,闪存、记忆棒、数字电视唱片等。出于此公开的目的,术语″ROM″通常用于指的是非易失性存储设备,诸如电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)、flash ROM/闪存等。处理器22还可以可通信地连接到附加部件,诸如视频控制器、集成设备电路(IDE)控制器、小型计算机系统接口(SCSI)控制器、通用串行总线(USB)控制器、输入/输出(I/O)端口、输入设备、输出设备,诸如显示器等。
在图1的实施例中,处理系统20还包括TPM 44。在其它实施例中,也可以使用其它类型的安全协处理器。处理器22、RAM26、TPM44和其它部件可以连接到芯片组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 Specification)的第二版来实现。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实施例中,PMK71是私有密钥,处理单元30包括PUK70,PUK70是相应的公有密钥。在另一实施例中,PMK和PUK可以是相同密钥(即它们具有相同值)。
在图1实施例中,在处理器22被运送到购买方如OEM之前,PUK70可以永久地由处理器22的制造商在制造过程期间烧入处理单元30内。处理器22的制造商可以保存PMK71机密,使得永远没有其它实体能够得知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,在AACM60的标头中描述了这种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,将固件AC51增加到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 TPMswap attack)。
如在步骤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 (24)

1.一种用于验证软件的方法,所述方法包括:
在引导过程期间,将密码密钥的加密版本从处理系统的非易失性存储器取到所述处理系统的处理单元;
在所述处理单元中解密所述密码密钥;
获取所述处理系统的软件的预定义验证码;
用所述密码密钥来计算所述软件的当前验证码;以及
至少部分基于所述预定义验证码与所述当前验证码的比较而确定所述软件是否应该可信。
2.根据权利要求1所述的方法,其特征在于,在所述处理单元中解密所述密码密钥的操作包括:
使用存于所述处理单元的非易失性存贮器中的密钥来解密所述密码密钥的加密版本。
3.根据权利要求1所述的方法,其特征在于,从非易失性存储器获取所述密码密钥的加密版本的操作包括:
从除可信平台模块以外的部件获取所述密码密钥的加密版本。
4.根据权利要求1所述的方法,其特征在于,用所述密码密钥来为所述软件计算当前验证码的操作包括:
用所述密码密钥来为所述软件计算当前散列消息验证码。
5.根据权利要求1所述的方法,其特征在于,使用所述密码密钥来为所述软件计算当前验证码的操作包括:
使用基于所述密码密钥的密钥来为所述软件计算当前散列消息验证码。
6.根据权利要求1所述的方法,其特征在于,需要验证的所述软件包括由如下部分构成的组中的至少一个程序:
引导固件;
虚拟机监控程序;以及
操作系统。
7.一种用于支持软件验证的方法,所述方法包括:
使用密码密钥来为处理系统的软件产生验证码;
将所述验证码保存到所述处理系统中;
将所述密码密钥保存到所述处理系统的非易失性存储器中;以及
为所述处理系统配置能够使所述处理系统执行引导操作的引导软件,其中包括:
从所述非易失性存储器中取出所述密码密钥;
用所述密码密钥来重新计算所述验证码;以及
至少部分基于所述重新计算的验证码和所述保存的验证码的比较而确定所述软件是否可信。
8.根据权利要求7所述的方法,其特征在于,
将所述密码密钥保存到所述处理系统的非易失性存储器中的操作包括,将所述密码密钥的加密版本保存到所述非易失性存储器中。
9.根据权利要求7所述的方法,其特征在于,用所述密码密钥来重新计算所述验证码的操作包括:
使用至少部分基于所述密码密钥的密钥来重新计算所述验证码。
10.根据权利要求7所述的方法,其特征在于,用所述密码密钥来为所述处理系统的软件产生验证码的操作包括:
为由下列部分构成的组中的至少一个程序产生所述验证码:
引导固件;
虚拟机监控程序;以及
操作系统。
11.一种处理系统包括:
带非易失性存贮器的处理单元;
存于所述非易失性存贮器中的密码处理单元密钥PUK;
与所述处理单元进行通信的至少一个非易失性存贮部件;
所述至少一个非易失性存贮部件中的候选代码模块;以及
所述至少一个非易失性存贮部件中的扩增引导代码模块;
所述处理单元配置成可在执行来自所述候选代码模块的代码之前,执行来自所述扩增引导代码模块的代码;以及
其中,所述扩增引导代码模块包括:
验证密钥的加密版本;以及
在由所述处理单元执行时可使所述处理单元执行如下操作的指令:
用所述PUK解密所述验证密钥的加密版本;以及
在执行任何来自所述候选代码模块的指令之前,使用所述验证密钥来验证所述候选代码模块。
12.根据权利要求11所述的处理系统,其特征在于,
所述至少一个非易失性存贮部件包括非易失性存储器;以及
所述候选代码模块包括引导固件镜像。
13.根据权利要求11所述的处理系统,其特征在于,
所述候选代码模块包括虚拟机监控程序的至少一部分。
14.根据权利要求11所述的处理系统,其特征在于,
所述候选代码模块包括操作系统的至少一部分。
15.根据权利要求11所述的处理系统,其特征在于,
所述至少一个非易失性存贮部件包括非易失性存储器和大容量存贮器;以及
所述候选代码模块驻留在所述大容量存贮器中。
16.根据权利要求15的处理系统,其特征在于,
所述扩增引导代码模块驻留在所述非易失性存储器中。
17.根据权利要求11所述的处理系统,其特征在于,用所述验证密钥来验证所述候选代码模块的操作包括:
用至少部分基于所述验证密钥的密钥来验证所述候选代码模块。
18.一种装置,包括:
机器可访问介质;以及
所述机器可访问介质中的扩增引导代码模块,其中所述扩增引导代码模块包括:
验证密钥的加密版本;以及
在引导过程期间由处理单元执行的初级引导指令,所述处理单元带有非易失性存贮器,并且密码处理单元密钥PUK存于所述非易失性存贮器中;
所述初级引导指令包括在由所述处理单元执行时可使所述处理单元执行下列操作的指令:
用所述PUK来解密所述验证密钥的加密版本;以及
在执行来自所述候选代码模块的任何指令之前,用所述验证密钥来验证候选代码模块。
19.根据权利要求18所述的装置,其特征在于,所述指令在被执行时,能够在执行来自引导固件镜像的任何指令之前导致所述处理单元验证引导固件镜像。
20.根据权利要求18所述的装置,其特征在于,所述指令在被执行时,能够在执行来自虚拟机监控程序的任何指令之前导致所述处理单元验证所述虚拟机监控程序的至少一部分。
21.根据权利要求18所述的装置,其特征在于,所述指令在被执行时,能够在执行来自OS的任何指令之前导致所述处理单元验证所述操作系统的至少一部分。
22.根据权利要求18所述的装置,其特征在于,所述指令在被执行时,能够导致所述处理单元验证驻留于非易失性存储器中的候选代码模块。
23.根据权利要求18所述的装置,其特征在于,所述指令在被执行时,能够导致所述处理单元验证驻留于大容量存贮器中的候选代码模块。
24.根据权利要求18所述的装置,其特征在于,使用所述验证密钥来验证所述候选代码模块的操作包括:
用至少部分基于所述验证密钥的密钥来验证所述候选代码模块。
CN2007103072656A 2006-12-29 2007-12-28 用于验证处理系统部件的方法和装置 Expired - Fee Related CN101221613B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/648511 2006-12-29
US11/648,511 US8209542B2 (en) 2006-12-29 2006-12-29 Methods and apparatus for authenticating components of processing systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2012100245546A Division CN102637250A (zh) 2006-12-29 2007-12-28 用于验证处理系统部件的方法和装置

Publications (2)

Publication Number Publication Date
CN101221613A true CN101221613A (zh) 2008-07-16
CN101221613B CN101221613B (zh) 2012-03-28

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 Before (1)

Application Number Title Priority Date Filing Date
CN2012100245546A Pending CN102637250A (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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176227A (zh) * 2011-02-17 2011-09-07 金畬 签约见证方法和签约见证辅助系统
CN103329095A (zh) * 2011-01-28 2013-09-25 惠普发展公司,有限责任合伙企业 用编码的信息验证管理程序
CN105487917A (zh) * 2015-12-07 2016-04-13 郑州轻工业学院 一种虚拟机实现验证码系统修复的方法及装置
CN108139901A (zh) * 2015-09-30 2018-06-08 惠普发展公司,有限责任合伙企业 使用外部设备的运行时间验证
CN109491712A (zh) * 2018-11-01 2019-03-19 北京京航计算通讯研究所 一种适用于VxWorks环境的可信引导方法
CN109918919A (zh) * 2014-06-27 2019-06-21 英特尔公司 认证变量的管理
CN115828250A (zh) * 2022-01-07 2023-03-21 宁德时代新能源科技股份有限公司 生产电池管理系统的方法和启动电池管理系统的方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
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
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
US8341419B2 (en) * 2008-09-09 2012-12-25 Via Technologies, Inc. Apparatus and method for limiting access to 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
WO2011116459A1 (en) * 2010-03-25 2011-09-29 Enomaly 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.
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
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
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
CN104981814B (zh) * 2013-03-15 2018-08-14 英特尔公司 安全协处理器引导性能
US20160246637A1 (en) * 2013-11-15 2016-08-25 Mcafee, Inc. Determining Trustworthiness of a Virtual Machine Operating System Prior To Boot UP
CN105335659B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
CN105468964B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
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
US10346608B2 (en) * 2017-12-12 2019-07-09 John Almeida Virus immune computer system and method
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
JP7425797B2 (ja) * 2019-06-10 2024-01-31 グーグル エルエルシー ファームウェアのセキュアな検証
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
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)

* Cited by examiner, † Cited by third party
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

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329095A (zh) * 2011-01-28 2013-09-25 惠普发展公司,有限责任合伙企业 用编码的信息验证管理程序
CN103329095B (zh) * 2011-01-28 2017-03-22 惠普发展公司,有限责任合伙企业 用编码的信息验证管理程序
CN102176227A (zh) * 2011-02-17 2011-09-07 金畬 签约见证方法和签约见证辅助系统
CN109918919A (zh) * 2014-06-27 2019-06-21 英特尔公司 认证变量的管理
CN108139901A (zh) * 2015-09-30 2018-06-08 惠普发展公司,有限责任合伙企业 使用外部设备的运行时间验证
CN108139901B (zh) * 2015-09-30 2022-04-26 惠普发展公司,有限责任合伙企业 使用外部设备的运行时间验证
CN105487917A (zh) * 2015-12-07 2016-04-13 郑州轻工业学院 一种虚拟机实现验证码系统修复的方法及装置
CN105487917B (zh) * 2015-12-07 2017-05-31 郑州轻工业学院 一种虚拟机实现验证码系统修复的方法及装置
CN109491712A (zh) * 2018-11-01 2019-03-19 北京京航计算通讯研究所 一种适用于VxWorks环境的可信引导方法
CN109491712B (zh) * 2018-11-01 2021-09-10 北京京航计算通讯研究所 一种适用于VxWorks环境的可信引导方法
CN115828250A (zh) * 2022-01-07 2023-03-21 宁德时代新能源科技股份有限公司 生产电池管理系统的方法和启动电池管理系统的方法
CN115828250B (zh) * 2022-01-07 2024-01-26 宁德时代新能源科技股份有限公司 生产电池管理系统的方法和启动电池管理系统的方法

Also Published As

Publication number Publication date
US8832457B2 (en) 2014-09-09
CN101221613B (zh) 2012-03-28
US20080163383A1 (en) 2008-07-03
CN102637250A (zh) 2012-08-15
EP1944711A1 (en) 2008-07-16
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
CN106537407B (zh) 可信根
CN101251879B (zh) 用于保护数据的方法和装置
EP3458999B1 (en) Self-contained cryptographic boot policy validation
Tomlinson Introduction to the TPM
CN102081716B (zh) 向受信任平台模块提供可更新密钥绑定的方法和装置
US8677144B2 (en) Secure software and hardware association technique
CN109937419B (zh) 安全功能强化的设备的初始化方法及设备的固件更新方法
US8843764B2 (en) Secure software and hardware association technique
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
US9015454B2 (en) Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys
WO2017077611A1 (ja) セキュリティ装置、及びセキュリティ方法
CN116566613A (zh) 使用平台密钥保护与安全处理器的通信
DiLuoffo et al. Credential Masquerading and OpenSSL Spy: Exploring ROS 2 using DDS security
US11646890B2 (en) Enclave population
CN110059489B (zh) 安全电子设备
Carelli et al. Securing Soft IP Cores in FPGA based Reconfigurable Mobile Heterogeneous Systems
EP3539010B1 (en) Balancing public and personal security needs
Areno et al. Secure mobile authentication and device association with enhanced cryptographic engines
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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120328

Termination date: 20191228

CF01 Termination of patent right due to non-payment of annual fee