CN101925908A - 可选的部件的安全引导方法 - Google Patents

可选的部件的安全引导方法 Download PDF

Info

Publication number
CN101925908A
CN101925908A CN2009801029076A CN200980102907A CN101925908A CN 101925908 A CN101925908 A CN 101925908A CN 2009801029076 A CN2009801029076 A CN 2009801029076A CN 200980102907 A CN200980102907 A CN 200980102907A CN 101925908 A CN101925908 A CN 101925908A
Authority
CN
China
Prior art keywords
parts
successfully
integrity measurement
measurement value
guide
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
CN2009801029076A
Other languages
English (en)
Other versions
CN101925908B (zh
Inventor
K·A·尼克尔森
松岛秀树
高山久
伊藤孝幸
芳贺智之
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101925908A publication Critical patent/CN101925908A/zh
Application granted granted Critical
Publication of CN101925908B publication Critical patent/CN101925908B/zh
Active 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
    • G06F21/575Secure boot

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)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种用于允许设备即使在安全设备的固件内没有出现一些部件、不正确地被授权或不正确地操作的情况下,也可以用安全的方式来引导的方法。

Description

可选的部件的安全引导方法
技术领域
本发明涉及一种用于在执行安全引导的系统内支持可选的或失败的部件的系统。
背景技术
例如可信计算组(TCG)的移动可信模块(MTM)先前的文件:2007年6月12日的TCG移动参考架构版本1.0(非专利引文1)和2007年6月12日的TCG移动可信模块规范1.0(非专利引文2)描述了如何以有保证的并且可信的方式来启动设备。这些方法已经彻底地被审阅以保证在引导过程中维护信任和安全。因此向想要实现可以安全地引导的设备的那些人提供有益的基准。这个安全引导过程的一个关键组成部分是RIM证书。这是带签名的结构,其定义了当前期望的平台状态应当是什么,由一组平台配置寄存器(PCR)的散列表示所述签名的结构,所述平台配置寄存器(PCR)本身包含已知的、公共定义的散列值。这些PCR作为完整性测量值,所述完整性测量值可以被记录在RIM证书中,以定义期望的机器状态。另外,如果验证了当前状态,则RIM证书也指定了要扩展的PCR。这个扩展处理获得指定的PCR,并且基于与在RIM证书中定义的新的已知值串联的前一个PCR值来计算新的散列值。由TCG定义的典型安全引导序列以核心部件的初始化和自我验证开始,所述核心部件例如是用于验证和用于测量的根(RTV+RTM)、MTM本身和相关联的核心MTM接口部件。接下来,以可信的方式开始支持固件的其他部分的额外的部件,例如,由在它们之前已经引导的另一个部件,在它们的开始的时候,验证它们中的每一个。最后,操作系统运行以向接入MTM服务提供用于客户应用的安全和可信的路径。
专利引文1:美国专利申请No.2005/0138414
非专利引文1:2007年6月12日的TCG移动参考架构版本1.0
非专利引文2:2007年6月12日的TCG移动可信模块规范1.0
发明内容
技术问题
但是,规范很严格,仅提供了通过由完全成功或完全失败导致的引导处理的单个控制路径。换句话说,如果一个部件的引导处理失败,则即使他们自己的引导处理导致成功,也不能使用所有其他部件。
此外,TCG规范提供了用于审计并识别便携设备(例如,移动电话)是否具有受限的资源的设施。虽然它们定义的这些审计特征对于MTM是可选的,但是这产生了下述的问题。如上所述,虽然这个特征仅是可选项,但是在这个特征的引导处理中的失败使得不能使用移动电话的所有部件,此外,虽然不必实现这个特征(因为其是可选项),但是在不实现这个特征的情况下,验证变得总是失败。这使得其他处理更难检测为什么在引导处理中有失败或在引导处理中何处有失败。此外,设备制造商可以希望提供特定的可信部件作为可选项。
另外,在许多市场中,服务提供商允许用户可以与甚至当前没有服务合同或在其具有当前的服务合同的区域外部的移动电话进行紧急呼叫是合法地要求。在配备了MTM的电话上,证书的撤销或非关键的部件的损坏导致电话根本不能操作,因此不能满足这个合法要求。
在Zimmer等人提出的美国专利申请No.2005/0138414(专利引文1)中,公开了具有可选的部件的验证的引导方法,但是,可选的部件是根据明确的切换来实现的;没有考虑到如何处理当处理例如部件程序文件损坏或硬件初始化失败的可选的部件时出现的错误。
因此,需要一种用于在由TCG移动电话工作组定义的安全引导的环境中支持可选的部件的方法,并且即使撤销了一些RIM证书(RIM Cert)或一些部件不起作用,也仍然可以用简化的功能方式来操作,并且其允许用更容易的、较少资源消耗的方法来确定在安全引导结束后的MTM的状态。
虽然背景技术描述了根据单独定义的序列来引导的方式,但是其未提出在如果一个非关键部件失败或不存在的情况下如何做。此外,仅对于整个安全引导处理,而不是对于独立的部件,记录失败状态。结果,对于其中需要RIM证书的每一个角色,仅单个RIM证书可用。
技术方案
因此,存在对于下述系统和方法来说未满足的需要,并且具有允许定义安全引导的多个执行序列的系统和方法是很有益的,同时仍然维护被引导的设备的安全和信任,以使得能够在设备上支持可选的和失败的部件。
此外,存在对于下述系统和方法来说未满足的需要,并且具有除了上述之外,还在安全引导系统中记录每个独立部件的成功或失败是很有益的,以使得用户能够确定在安全引导完成后的安全环境的状态。
此外,存在对于下述系统和方法来说的未满足的需要,并且具有除了上部之外,还允许对于每个角色使用多个RIM证书的系统和方法是很有益的,以使得在仍然维护设备的安全性和信任的同时能够支持可选的部件。
根据本发明的一个优选实施例,在所有其他信任的部件可访问的表中记录每个独立部件的成功或失败。
根据本发明的另一个优选实施例,在描述用于在给定的部件失败后执行的替代部件的表中描述多个执行序列。通过失败的模块的标识符和先前执行或失败的部件的状态的组合来索引这个表。
根据本发明的另一个优选实施例,为了可以根据先前执行或失败的部件的状态来正确地验证每个独立的部件,每个部件具有多个RIM证书,所述RIM证书描述了在部件可以运行之前必须成立的各种有效前提。
有益效果
根据本发明,在保证信任和安全的引导处理中,即使当一个部件的引导处理失败时,也可以执行处理失败的引导处理。
通过引用于2008年1月30日提交的、包括说明书、附图和权利要求的日本专利申请No.2008-019379,将其整体并入本文。
附图说明
当结合附图考虑优选实施例的下面的详细说明时,可以更好地理解本发明,其中:
图1说明了表示现有技术的框图。
图2说明了安全引导的排序的现有技术。
图3说明了表示具有可选的部件的安全引导的框图。
图4说明了使用错误检测和可选的部件的安全引导的其它排序。
图5a说明了RIM证书,其包含额外的数据,该额外的数据表示支持可选的部件所需的表。
图5b说明了被附到RIM证书的ID到证书的映射表。
图5c说明了被附到RIM证书的下一部件的表。
图6说明了根据本发明的、用于执行具有可选的部件的安全引导的处理的流程图。
图7说明了根据本发明的、用于执行具有可选的部件的安全引导的处理的流程图。
图8说明了根据本发明的、用于执行具有可选的部件的安全引导的处理的流程图。
图9说明了根据本发明的、用于执行具有可选的部件的安全引导的处理的流程图。
图10说明了对于根据本发明的、用于执行具有可选的部件的安全引导的处理的增强的流程图。
标记的说明
102MTM
104系统状态
106系统错误记录器
108起动器
110证书数据库
112完整性保护
114成功的RIM证书
116可信部件1
118可信部件2
120可信部件3
122,124,126正常执行路径
200可信部件4
202可信部件5
204操作系统
300部件错误状态
302部件错误记录器
304证书查找
306ID到证书的映射
308失败的RIM证书
312下一部件的表
324失败排序器
326,328错误执行路径
具体实施方式
(实施例)
本发明涉及一种用于在执行安全引导的系统中支持可选的或失败的部件的系统。通过提供描述的附加的RIM证书和数据表,支持安全引导的设备的开发者能够产生灵活地处理未能启动的部件的系统,并且产生能够报告从安全引导引起的可信环境内的部件的状态的设备。
描述了一种新方法,其用于处理在支持安全引导的设备上的可选的部件。在下面的说明中,为了说明的目的,阐述了多个具体的细节,以便提供对本发明彻底的理解。在其他情况下,以框图形式示出了公知的结构和设备,而不说明它们的具体细节以便于说明。但是,对于本领域的普通技术人员而言,显而易见的是,可以通过修改这些具体细节或在没有这些具体细节的情况下实施本发明。优选实施例的说明不旨在限制所附权利要求的范围。
图1说明了现有技术。这个图捕获了在已经自我验证了例如在可信区域100内的RTV+RTM和MTM接口的核心元件后的某个时刻的安全引导处理的状态。MTM 102是可信区域100的核心,但是在其之内的其他关键项目是系统状态104标记,其指示是否已经正确地进行了安全引导;系统错误记录器106,其设置系统状态104;起动器108,其负责起动要增加到可信区域100的下一部件;以及,证书数据库110,其查找所需的成功的RIM证书114。这些成功的RIM证书114描述了在完全成功的安全引导期间的期望的平台状态。应当防止改变RIM证书,以便检查安全引导是导致成功还是不正确,因此,它们受完整性保护,并且被置于一组受完整性保护的112数据项目中。如TCG所定义,通过在RIM证书内嵌入签名的散列来实现这个完整性保护,因此允许MTM 102检测篡改。
安全引导的目的是将可信区域100扩展以涵盖额外的部件,例如可信部件1116、可信部件2118和可信部件3120。根据现有技术的一个方面,被标注为122、124和126的、从起动器108到可信部件1116、可信部件2118和可信部件3120的虚线指示正常的执行路径。根据现有技术的另一个方面,可以提供另外的可信部件,并且以操作系统(未示出)作为最后的可信部件。通过安全引导系统的设计来定义用于起动可信部件的特定序列。
图2说明了根据在图1中该的方法的现有技术的安全引导处理的结果。在此,标准引导序列从MTM 102开始,然后可信部件1116运行,向可信部件2118传送控制,并且通过可信部件3120、可信部件4200、可信部件5202,最后是操作系统204。可信部件2118、可信部件4200、可信部件5202是在由可信部件1116和可信部件3120提供的基本服务顶上提供另外的可选的服务的部件。在成功的情况下,如在流程206中所示,所有部件成功地运行,并且可以获得完全操作的可信区域208。但是,在流程210中,可信部件4200未能加载,因此,由于处于失败状态导致不能获得可信区域212的全部。在可信区域图208和212中,MTM表示MTM 102,TC1表示可信部件1116,TC2表示可信部件2118,TC3表示可信部件3120,TC4表示可信部件4200,TC5表示可信部件5202,并且OS表示操作系统204。所有的部件依赖于MTM 102,另外,可信部件2118依赖于可信部件1116,可信部件4200和可信部件5202依赖于可信部件3120。操作系统204依赖于可信部件1116和可信部件3120。阴影部分示出了不能使用的部件。
图3说明了基于在图1描述的现有技术的本发明。这个附图捕获在已经自我验证了例如在可信区域100内的RTV+RTM和MTM接口的核心元件后的某个时刻的安全引导处理的状态。MTM 102是可信区域100的核心,但是在可信区域100中的其他关键项目是:部件错误状态300标记,其指示在安全引导中的每一个部件是否已经起动,并且正确地操作;部件错误记录器302为适当的部件设置部件错误状态300;起动器108,其负责起动要加到可信区域100的下一部件;证书查找304,其根据ID到证书的映射表306和部件错误状态300来查找所需的成功的RIM证书114或失败的RIM证书308;这些失败的RIM证书308描述了在其中一个或多个部件已经未能正确地操作的安全引导期间的期望的平台状态。在图9中详细地描述了失败排序器324,其使用下一部件的表312和部件错误状态300来选择接下来要起动哪个部件。这些RIM证书114和308、下一部件的表312和ID到证书的映射表306应当受完整性保护,因此被置于一组受完整性保护的112数据项中。注意,像图1那样,完整性保护是数据的固有属性,而不是非固有属性。还应注意,成功的RIM证书114和失败的RIM证书308的格式相同;关键差别是根据ID到证书的映射表306向它们分配的角色;除了基于那个表,在两者之间没有差别,事实上,不必在其他地方进行区分。
具有可选的部件的安全引导的目的是扩展可信区域100,以在如果可能的情况下涵盖所有的额外的部件:可信部件1116、可信部件2118和可信部件3120,但是如果任何部件未能起动,则可信区域100不扩展来覆盖它们。根据现有技术的一个方面,被标注为122、124和126的、从起动器108到可信部件1116、可信部件2118和可信部件3120的虚线指示正常的执行路径。根据现有技术的另一个方面,可以提供另外的可信部件,并且以操作系统(未示出)作为最后的可信部件。被标注为326和328的、来自可信部件1116、失败排序器324和可信部件3120的粗实线指示:根据本发明的一个方面,如果可信部件2118未能启动,则替代执行路径是可用的。
图4说明了从本发明得到的新结果。如在图2中所述的可用的部件,并且成功结果208当然是一个有效的结果。但是,代替失败状态212,新的流程400能够跳过发生失败的可信部件4200,并且继续至可信部件5202,以产生起作用的可信区域402,但是具有有限的能力。类似地,流程404说明了可信部件2118和可信部件5202未能正确地操作的情况,产生了另一个起作用的可信区域406,但是也具有有限的能力。在可信区域图208、402和406中,TC1表示可信部件1116,TC2表示可信部件2118,TC3表示可信部件3120,TC4表示可信部件4200,TC5表示可信部件5202,OS表示操作系统204。所有的部件依赖于MTM 102,另外,可信部件2118依赖于可信部件1116,可信部件4200和可信部件5202依赖于可信部件3120。操作系统204依赖于可信部件1116和可信部件3120。阴影部分示出了不能使用的部件。
图5a说明了RIM证书500、成功的RIM证书114和失败的RIM证书308、由现有技术定义的RIM证书的扩展的细节。为了使得能够支持可选的部件,向证书附加mapIDtoCertTableSize 504、mapIDtoCertTable 506、nextComponentTableSize 508和nextComponentTable 510,并且,extensionDigest 502条目包含用于这个额外数据的加密散列值。仅需要这个扩展的RIM证书的一个实例,并且一个实施例将这些表附到单个RIM证书,其中RTV+RTM使用所述证书来自我验证。但是,在此不说明现有技术的这个方面。
本领域内的普通技术人员可以了解,存在在不使用RIM证书500的情况下使得可以获得并且维护mapIDtoCertTable 506和nextComponentTable510的完整性的其他方法,例如通过使用签名方和可信区域100已知的密钥来单独或一起加密地对每个表进行签名。
图5b说明了ID到证书的映射表506的格式,所述格式具有说明了从逻辑标识符和先前的软件部件到实际RIM证书的映射的数据条目。第一列逻辑证书ID 520是表示RIM证书的特定角色的标识符,并且是系统的其他部分使用来请求RIM证书的标识符。第二列依赖的可信部件状态522是一组标记,其指示可信部件的组的错误状态,每行是有效的。第三列依赖的可信部件掩码(mask)524是一组标记,其指示要检查哪些部件的状态。在一个实施例中,使用位图(bitmap)来实现这两列。最后,RIM证书标签526列保存实际RIM证书标签,其用于从RIM证书数据库中查找成功的RIM证书114或失败的RIM证书308。这个值表示由TCG定义的RIM证书标签字段512。
图5c说明了具有采样数据条目的下一部件的表510的格式。第一列失败可信部件540是表示已经失败的部件的标识符。第二列依赖的可信部件状态542是一组标记,其指示可信部件的组的错误状态300,当前行是有效的。第三列依赖的可信部件掩码544是一组标记,其指示要检查哪些部件的状态。在一个实施例中,使用位图来实现这两列。最后,要起动的可信部件546列保存标识符,其描述了对于给定的失败的可信部件540和一组依赖的可信部件状态542,接下来应当起动哪个模块或者是否应当终止引导,因为安全引导已经进入不可恢复的状态。参见图4,如果例如可信部件1116或可信部件3120的部件未能加载,则可以存在指示下一要起动的可信部件546为终止引导的条目;这是因为这两个部件是对于完整的可信系统的操作重要的基础部件。如果可信部件2118、可信部件4200或可信部件5202失败,则可以存在指示例如可信部件3120、可信部件5202和操作系统204分别是下一要起动的可信部件546的条目。
由特定设备所需的安全引导序列的设计来定义ID到证书的映射表506和下一部件的表510的内容。在其中该表被附到RIM证书(RTV+RTM使用所述证书来自我验证)的如上所述的实施例中,由TCG定义的RIM证书发放机构(很可能是该设备制造商)将产生这些表,并且向特定的RIM证书增加该数据,然后对证书进行签名,并且使得其可在该设备上使用。但是,这些表可以由另一方产生,并且独立于RIM证书来发送。此外,如果安全引导系统可以分析其本身的安全引导序列,则安全引导系统本身可以产生这些表。
根据示出哪个部件依赖于另一个部件的信息来产生这些表。如果部件A依赖于另一个部件B,则如果部件B的引导过程失败,那么不应当引导部件A。并且,如果部件A独立于部件B,则即使部件B不能成功地引导,那么可以从部件A的引导过程恢复引导处理。当然,可以根据更多的信息来产生这些表。例如,可以根据下述信息来产生它们,该信息示出了如果另一个独立的部件的引导过程失败,则不应当引导一些部件。这个信息可以由每个部件的设计者产生和提供。
图6到图9说明了根据本发明的在安全引导系统的关键部分之间的控制流排序。首先,在根据现有技术的图6中,(600)系统开始上电,然后(602)开始执行系统的基本引导,(604)初始化RTV、RTM、MTM等,(608)请求RIM证书以用于可信区域的自我验证,并且(610)通过将在RIM证书内指定的PCR的子集串联并且计算它们的散列值,来将该RIM证书扩展到MTM,然后将这个散列值与在由现有技术描述的RIM证书中存储的值相比较。然后,如果这些散列相等,则将在RIM证书内指定的要扩展的值扩展到也在RIM证书内指定的PCR。(612)检查扩展操作的结果以查看这个扩展是否正确地工作,并且(614)在失败时,系统将进入失败状态。现在,根据本发明,(616)检查下一部件的表312和ID到证书的映射表306的完整性,以保证这两个关键的表未被篡改;根据一个实施例,这是通过检查在608检索到的用于自我验证的RIM证书中是否存在在图5a中描述的扩展信息来执行的。但是,本领域内的技术人员可以了解,存在提供这些表并且保证这个数据未被篡改的其他方式。
接下来,(618)请求RIM证书以进行可信部件1验证,并且获得描述了可信部件1116的期望当前状态和期望状态的RIM证书。(620)这个可信部件具有以与在RIM证书中描述的、计算可信部件1的散列值相同的方式来计算其散列值,然后(622)检查以查看该值是否相等。如果该散列值不相等,则它们指示该部件有问题,例如偶然或有意的损坏。然后,(624)CPU将控制以及指示符传送到失败排序器,所述指示符指示可信部件1有散列错误,从而允许失败排序器对该错误进行处理。在下面的图9中描述了这个处理。如果散列值相等,则(626)部件错误记录器记录这个部件的散列检查成功。在图7继续该处理。
图7说明了安全引导序列的进一步的处理。(700)通过将该RIM证书中定义的值添加到根据现有技术的在这个RIM证书中定义的PCR中,来将先前获得的RIM证书扩展到MTM。(702)检查扩展操作的结果以查看这个扩展是否正确地工作。(704)如果否,则CPU将控制传送到失败排序器,以允许失败排序器处理错误。在下面的图9中描述了这个处理。如果正确地扩展散列值,则这指示可信区域可以完全信任部件,所以(706)启动可信部件1,并且向这个新的部件传送控制。
(708)第一处理是用于初始化可信部件,其执行该部件和这个部件可以控制的任何硬件等所需的初始化。(710)该部件自我检查其是否已经成功地初始化,并且如果存在错误,则(712)可信的部件将控制以及错误代码传送到失败排序器,以指示当前的可信部件未能初始化,从而允许失败排序器处理错误。在下面的图9中描述了这个处理。如果没有错误,则(714)该部件错误记录器记录这个部件的初始化是成功的。(716)接下来,可信部件请求RIM证书以进行自我验证,并且获得描述了期望的当前状态和要扩展到给定PCR的给定值的RIM证书。(718)这个RIM证书根据现有技术被扩展到MTM,并且(720)检查扩展操作是否成功。如果扩展操作失败,则(722)可信部件向失败排序器传送控制以及错误代码以指示当前的可信部件未能自我验证,从而允许失败排序器处理该错误。在下面的图9中描述了这个处理。如果该值正确地扩展,则(724)当前的可信部件可以继续根据需要来执行其他任务。在图8继续该处理。
图8说明了安全引导序列的进一步处理。(800)首先,检查以查看是否存在要加载的任何更多的可信部件,如果否,则(802)已经成功地完成了安全引导。注意,在这个实施例中,如果可选的部件的验证已经失败,则这个可选的部件还没有被引导。因此,在步骤802,即使已经成功地完成了安全引导,也可能未引导一些可选的部件。在一个实施例中,这不是实际的检查;在加载序列中的最后一个部件(在一个实施例中为操作系统)被实现,以便其在完成(724)其被定义以执行的其他任务后不查找另一个部件。如果存在要起动的其他部件,则(804)请求RIM证书以验证下一可信部件,并且获得描述了下一可信部件的期望当前状态和期望状态的RIM证书。在此,该下一可信部件表示接下来应当引导的可信部件。(806)该可信部件具有以与在RIM证书中描述的、计算下一可信部件的散列值相同的方式来计算的其散列值,然后(808)执行检查以查看这个计算的散列值是否等于在下一可信部件的RIM证书中存储的散列值。如果它们不相等,这指示该部件有问题,例如偶然或有意损坏,则(810)该可信部件将控制以及错误代码传送到失败排序器以指示下一可信部件的散列值没有验证,从而允许失败排序器处理该错误。在下面的图9中描述了这个处理。如果散列值相等,则(812)部件错误记录器记录下一可信部件的散列检查是成功的。接下来,(814)这个RIM证书根据现有技术被扩展到MTM,并且(816)检查扩展操作是否成功。如果扩展操作失败,则(818)可信部件将控制以及错误代码传送到失败排序器以指示将下一可信部件扩展到MTM失败了,从而允许失败排序器处理该错误。在下面的图9中描述了这个处理。取而代之的是,如果散列值正确地扩展,则(820)这指示可信区域可以完全信任下一可信部件,因此将从步骤708重复处理。其后,(708)起动下一额外的部件,并且如图所示,控制流程继续上面的可信部件初始化。
图9说明了根据本发明的失败排序器操作。(900)首先,将传入的错误代码记录在部件错误状态300中。(902)接下来,从部件错误状态300检索所有当前的部件错误状态,该部件错误状态300然后(904)用于查找下一部件的表312以发现应当起动的下一可信部件。(906)进行检查以查看是否有定义的下一部件,并且如果没有,则(908)安全引导将进入失败状态,并且该设备未能以安全的方式启动。如果存在下一可信部件,则(910)请求RIM证书以进行下一可信部件的验证,并且获得失败的RIM证书,其描述了下一可信部件的期望当前状态和期望状态。在此,下一可信部件表示接下来应当启动的可信部件。(912)下一可信部件具有计算的其散列值,(914)然后将计算的散列值与在RIM证书中的散列值相比较。如果它们不相等,这指示该部件有问题,例如偶然或有意损坏。因此,(916)失败排序器将控制以及错误代码传回失败排序器的开始,所述错误代码指示下一可信部件的散列值没有验证,从而允许失败排序器处理该错误,并且(900)控制流从在部件错误记录器中记录适当的错误的步骤继续。如果该散列值相等,则(918)该部件错误记录器记录下一可信部件的散列值检查是成功的。接下来,(920)这个RIM证书根据现有技术被扩展到MTM,并且(922)检查扩展操作是否成功。如果扩展操作失败,则(926)失败排序器将控制以及错误代码传回失败排序器的开始,所述错误代码指示下一可信部件没有验证,从而允许失败排序器处理该错误,并且(900)控制流从在部件错误记录器中记录适当的错误的步骤继续。如果该散列值正确地扩展,则(924)这指示可信区域完全信任下一可信部件,因此,起动下一额外的部件,并且如图所示,控制流程继续上述(708)可信部件初始化。
如上所述,根据本发明的一个方面的安全引导方法是一种用于以预定的顺序执行部件同时验证完整性的安全引导方法,该方法包括:获得当前状态信息,所述当前状态信息指示在已经成功地引导第一部件之前是否试图引导一个或多个部件中的每一个;通过查找第一映射表来获得与所述第一部件和由所述当前状态信息指示的状态相对应的第一完整性测量值,在所述第一映射表中,逻辑标识符、状态信息和完整性测量值彼此相关联,所述逻辑标识符中的每一个识别所述部件中对应的一个,所述状态信息中的每一个指示在已经成功地引导一个或多个部件中对应的一个之前是否试图引导所述一个或多个部件中的每一个,并且所述完整性测量值是用于验证由对应的状态信息指示已经成功地引导的一个或多个部件是否已经真的被成功地引导的值;获得当前完整性测量值,所述当前完整性测量值是基于已经被引导的一个或多个部件而计算的值;通过比较所述第一完整性测量值和所述当前完整性测量值,验证是否已经真的成功地引导了由所述当前状态信息指示已经成功地引导的一个或多个部件;当所述验证导致成功时,开始引导所述第一部件;以及,当所述第一部件成功地结束引导时,更新所述当前状态信息,以指示已经成功地引导了所述第一部件。
此外,该安全引导方法可以进一步包括:判断所述第一部件是否被篡改;当所述第一部件被判断为被篡改时,即使验证导致成功,也抑制所述第一部件的引导;当所述引导被抑制时,更新所述当前状态信息,以指示还没有成功地引导所述第一部件;确定接下来要引导的第二部件,通过查找第二映射表以获得标识符来执行所述确定,所述标识符对应于是否已经成功地引导了所述第一部件以及所述当前状态信息是否指示已经成功地引导了第三部件,所述第三部件是依赖于所述第一部件的部件,并且所述第二映射表包括与是否已经成功地引导了所述第一部件的状态和是否已经成功地引导了第三部件的状态相关联的、第二部件的候选者的逻辑标识符;以及,开始引导所述第二部件。
此外,所述完整性测量值中的每一个包括在完整性测量证书中,所述完整性测量证书包括所述完整性测量值和一验证值,该验证值在判断由与所述完整性测量值对应的逻辑标识符识别的部件是否被篡改的过程中使用,在获得所述第一完整性测量值的步骤中,通过查找所述第一映射表来获得完整性测量证书,在所述第一映射表中,每个状态信息和每个完整性测量证书彼此相关联,并且从所获得的完整性测量证书中提取所述第一完整性测量值,并且通过计算所述第一部件的验证值,并且将所计算的验证值与在所获得的完整性测量证书中包括的验证值相比较,来执行所述第一部件是否被篡改的判断。
此外,在开始引导所述第一部件后,执行所述第一部件是否被篡改的判断,并且在抑制引导的步骤中,当判断所述第一部件被篡改时,终止所述第一部件的引导。
此外,该安全引导方法可以进一步包括:当判断所述第一部件被篡改时,获得指示还没有成功地引导所述第一部件的失败值;通过使用所述失败值来更新所述当前完整性测量值;通过查找所述第一映射表来获得与所述第二部件的逻辑标识符和由所述更新的当前状态信息指示的状态相对应的第二完整性测量值,所述更新的当前状态信息指示还没有成功地引导第一部件;通过比较所述第二完整性测量值和所述更新的当前完整性测量值,来验证如下所述的(a)和(b)的状态,其中(a)为是否已经真的成功地引导了由所述更新的当前状态信息指示已经被成功地引导的一个或多个部件,以及(b)为是否还没有真的引导了由所述更新的当前状态信息指示没有被成功地引导的一个或多个部件;以及,当所述验证导致成功时,引导所述第二部件。
此外,当判断所述第一部件被篡改时,不更新所述当前完整性测量值,并且所述方法进一步包括:通过查找所述第一映射表来获得与所述第二部件的逻辑标识符和由所述更新的当前状态信息指示的状态相对应的第二完整性测量值,所述更新的当前状态信息指示还没有成功地引导所述第一部件;通过比较所述第二完整性测量值和所述当前完整性测量值,验证是否已经真的成功地引导了由所述更新的当前状态信息指示已经被成功地引导的一个或多个部件;以及,当所述验证导致成功时,引导所述第二部件。
此外,根据本发明的一个方面的方法是用于执行软件部件的方法,所述软件部件用于验证完整性测量值,包括:a)提供从逻辑标识符和先前软件部件状态信息到包含验证数据的实际完整性测量证书的映射;b)查找给定的逻辑标识符的映射,以获得完整性测量证书,该给定的逻辑标识符识别该部件的验证证书和该先前部件的状态;c)计算要执行的该部件的检查值;d)验证该完整性测量值和该计算的检查值,其中,所述完整性测量值匹配在该完整性测量证书内的完整性测量值,所述计算的检查值匹配在该完整性测量证书内的检查值;e)如果该验证成功,则更新当前完整性测量以包括该存储的测量值的指示;以及,f)如果该验证成功,则执行该部件。
此外,该方法可以进一步包括:a)如果该验证不成功,则查找给定的逻辑标识符的映射,以获得失败的完整性测量证书,该给定的逻辑标识符识别该部件的验证失败证书和该先前的部件状态;以及,b)更新当前完整性测量以包括在失败的完整性测量证书中存储的不成功完整性测量值的指示。
此外,该方法可以进一步包括:a)如果该验证不成功,则提供从逻辑标识符和先前的软件部件状态信息到部件标识符的映射,b)查找给定的逻辑标识符的映射以获得要执行的替代的软件部件,该给定的逻辑标识符识别失败的部件和先前的部件状态。
此外,根据本发明的一个方面的方法是用于执行软件部件的方法,所述软件部件用于验证完整性测量值,包括:a)提供从逻辑标识符和先前软件部件状态信息到包含验证数据的实际完整性测量证书的映射;b)查找给定的逻辑标识符的映射,以获得完整性测量证书,该给定的逻辑标识符识别该部件的自我验证证书和该先前部件状态;c)验证该完整性测量值,其匹配在该完整性测量证书内的完整性测量值;以及,d)如果该验证成功,则更新当前完整性测量值以包括在该完整性测量证书中存储的成功的完整性测量值的指示。
此外,该方法可以进一步包括:a)如果该验证不成功,则查找给定的逻辑标识符的映射,以获得完整性测量证书,该逻辑标识符识别该部件的自我验证失败的证书和该先前部件状态。
此外,该方法可以进一步包括:a)如果该验证不成功,则提供从逻辑标识符和先前软件部件状态信息到部件标识符的映射,b)查找给定的逻辑标识符的映射,以获得要执行的替代部件,该给定的逻辑标识符识别失败的部件和该先前部件状态。
此外,根据本发明的一个方面的设备是用于执行软件部件的设备,所述软件部件用于验证完整性测量值,包括:a)部件存储单元,用于存储在执行之前验证的一个或多个可信软件部件;b)验证单元,用于验证可信软件的完整性;c)执行单元,用于如果所述验证成功,则执行该部件;d)失败排序器单元,用于处理验证一些可信软件部件和运行与验证失败的可信软件部件无关的其他部件的失败。
此外,该验证可以意味着验证该完整性测量值匹配在该完整性测量证书内的完整性测量值,并且该计算的检查值匹配在该完整性测量证书内的检查值;并且,该设备可以进一步包括:a)计算单元,用于计算要执行的部件的检查值;b)查找单元,用于查找给定的逻辑标识符的映射,以获得完整性测量证书,该给定的逻辑标识符识别部件的验证证书和先前可信软件部件状态;c)映射单元,用于从逻辑标识符和先前可信软件部件状态信息向包含验证数据的实际完整性测量证书的映射;d)更新单元,用于如果验证成功,则更新当前完整性测量值以包括存储的测量值的指示。
此外,该可信软件部件可以被编程以执行某个可信功能。
此外,该可信软件部件可以是操作系统,其提供了可信的执行环境以保护执行软件;并且,该设备可以进一步包括:a)管理程序,用于控制一个或多个操作系统;以及,b)失败排序器单元,用于处理验证所述操作系统以及设备运行与该验证失败的可信软件部件无关的其他操作系统中的至少一个的失败。
应当注意,虽然基于上述实施例描述了本发明,但是本发明显然不限于这样的实施例。下面的情况也被包括在本发明中。
(1)在上述实施例中,如果部件未正确地被引导,则该系统搜索下一模块,而不向MTM反映失败的状态。但是,该系统可以向MTM反映失败的状态。图10说明了对于本发明的这种增强。为了明确地说明在(900)在部件错误记录器中记录适当的错误后由失败排序器产生的错误,(1000)CPU请求RIM证书以验证可信部件的失败。这个失败的RIM证书308包含明确地描述了当前失败的状态的程度的值。(1002)这个RIM证书因此具有描述了扩展到在RIM证书内描述的PCR的失败状态的值。(1004)检查这个扩展操作的成功或失败,并且如果失败,则(1006)安全引导将进入失败的状态,并且该设备未能以安全的方式来启动。如果成功,则(902)控制流程返回到获得当前部件错误状态以检索当前部件错误状态信息,以继续试图启动替代部件,如上所述。
(2)在虚拟环境的情况下,在一个实施例中,管理程序是用于执行的最后的可信部件。在另一个实施例中,例如操作系统的其他可信部件在管理程序可信部件执行后执行。
(3)在上述实施例中,在起动每个部件之前,执行每个部件的验证。但是,本发明可以被应用到其中在起动每个部件后执行验证的系统。在这种情况下,如果部件的验证失败,则系统停止每个部件。
(4)在上述实施例中,以与TCG规范类似的方式来执行验证。但是,本发明可以被应用到另一个验证系统,只要该验证系统可以使用其中像链条那样验证部件的验证方法来验证系统的部件(即,一个部件验证在该部件后起动的另一个部件)。例如,可以省略将散列值扩展到MTM,因为这个操作对于TCG规范是特有的。
(5)在上述实施例中,通过使用在证书(RIM证书)中的散列值来执行验证。但是,不使用散列值的另一种验证方法可以应用到本发明。
从部件提取的传统校验和或另一个数据(例如从部件提取的第一预定比特)可以用于执行验证。此外,该证书可以被替换为包括完整性测量值的数据组。
并且,该验证方法不限于检查从部件提取的值和期望值是否匹配。例如,检查部件的尺寸,并且如果该尺寸大于或小于预定量,则可以判断该部件被验证。这些验证方法不像将散列值与其期望值相比较那么严格,但是,可以快速地执行它们。
(6)具体地说,上述装置中的每一个是计算机系统,其包括微处理器、ROM、RAM、硬盘单元、显示单元、键盘和鼠标等。计算机程序被存储在RAM或硬盘单元中,各自的装置通过根据计算机程序的微处理器的操作来实现它们的功能。在此,通过组合指示计算机的指令的多个指令代码来配置该计算机程序。
(7)可以根据单个LSI系统(大规模集成)配置构成各自的装置的构成元件的一部分或全部。LSI系统是通过将构成单元集成在一个芯片上制造的超级多功能LSI,并且具体地说是通过包括微处理器、ROM和RAM等来配置的计算机系统。计算机程序被存储在RAM中。系统LSI通过根据计算机程序的微处理器的操作来实现其功能。
此外,构成各自装置的构成元件中的每一个单元可以作为独立的芯片或作为包括其一部分或全部的单个芯片。
此外,在此,描述了LSI系统,但是存在下述实例,其中,由于集成度的差别,使用名称IC、LSI、超大规模LSI和甚大规模(ultra)LSI。
此外,用于电路集成的模块不限于LSI,并且具有专用电路或通用处理器的实现也是可行的。另外,使用现场可编程门阵列(FPGA),其在制造LSI之后是可编程的,以及可重配置的处理器,其中,在LSI中的电路单元的连接和设置是可重配置的,也是可以接受的。
此外,如果替代LSI的集成电路技术在半导体技术或其他派生技术中出现突破性的进步,则该技术可以自然地用于实现构成元件的集成。期望可以应用生物技术。
(8)构成各自的装置的构成元件的一部分或全部可以被配置为可以附接到各自的装置或从各自的装置脱离开的IC卡,或可以作为单独的模块。该IC卡或模块是从微处理器、ROM和RAM等配置的计算机系统。该IC卡或模块也可以被包括在上述的超级多功能LSI中。该IC卡或模块通过根据计算机程序的微处理器的操作来实现其功能。该IC卡或模块也可以被实现为防篡改的。
(9)本发明可以是用于使用计算机来实现前述方法的计算机程序,并且也可以是包括计算机程序的数字信号。
此外,也可以通过在计算机可读记录介质中存储计算机程序或数字信号来实现本发明,该计算机可读记录介质例如是软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(蓝光光盘)和半导体存储器。此外,本发明也包括在这些记录介质中记录的数字信号。
此外,也可以通过经由电信线路、无线或有限通信线路、由以太网表示的网络和数据广播等传输上述计算机程序或数字信号来实现本发明。
本发明也可以是计算机系统,该计算机系统包括微处理器和存储器,其中,该存储器存储上述的计算机程序,并且微处理器根据计算机程序来操作。
此外,通过记录到上述的记录介质中来传送程序或数字信号,或通过经由上述网络等来传送程序或数字信号,使得也有可能使用另一个独立的计算机系统来执行。
(10)本领域内的技术人员容易理解,在实质上不脱离本发明的新颖教导和优点的情况下,在该示例性实施例中,许多修改是可能的。因此,上述修改和实施例的任意组合被包括在本发明的范围内。
工业应用
本发明可以例如用在移动电话等中。

Claims (14)

1.一种安全引导方法,用于以预定的顺序执行部件,同时验证完整性,所述方法包括:
获得当前状态信息,所述当前状态信息指示在已经成功地引导第一部件之前是否试图引导一个或多个部件中的每一个;
通过查找第一映射表来获得与所述第一部件和由所述当前状态信息指示的状态相对应的第一完整性测量值,在所述第一映射表中,逻辑标识符、状态信息和完整性测量值彼此相关联,所述逻辑标识符中的每一个识别所述部件中对应的一个,所述状态信息中的每一个指示在已经成功地引导一个或多个部件中对应的一个之前是否试图引导所述一个或多个部件中的每一个,并且所述完整性测量值是用于验证由对应的状态信息指示已经成功地引导的一个或多个部件是否已经真的被成功地引导的值;
获得当前完整性测量值,所述当前完整性测量值是基于已经被引导的一个或多个部件而计算的值;
通过比较所述第一完整性测量值和所述当前完整性测量值,验证是否已经真的成功地引导了由所述当前状态信息指示已经成功地引导的一个或多个部件;
当所述验证导致成功时,开始引导所述第一部件;以及,
当所述第一部件成功地结束引导时,更新所述当前状态信息,以指示已经成功地引导了所述第一部件。
2.根据权利要求1所述的安全引导方法,进一步包括:
判断所述第一部件是否被篡改;
当所述第一部件被判断为被篡改时,即使验证导致成功,也抑制所述第一部件的引导;
当所述引导被抑制时,更新所述当前状态信息,以指示还没有成功地引导所述第一部件;
确定接下来要引导的第二部件,通过查找第二映射表以获得标识符来执行所述确定,所述标识符对应于是否已经成功地引导了所述第一部件以及所述当前状态信息是否指示已经成功地引导了第三部件,所述第三部件是依赖于所述第一部件的部件,并且所述第二映射表包括与是否已经成功地引导了所述第一部件的状态和是否已经成功地引导了第三部件的状态相关联的、第二部件的候选者的逻辑标识符;以及,
开始引导所述第二部件。
3.根据权利要求2所述的安全引导方法,其中
所述完整性测量值中的每一个包括在完整性测量证书中,所述完整性测量证书包括所述完整性测量值和一验证值,该验证值在判断由与所述完整性测量值对应的逻辑标识符识别的部件是否被篡改的过程中使用,
在获得所述第一完整性测量值的步骤中,通过查找所述第一映射表来获得完整性测量证书,在所述第一映射表中,每个状态信息和每个完整性测量证书彼此相关联,并且从所获得的完整性测量证书中提取所述第一完整性测量值,并且
通过计算所述第一部件的验证值,并且将所计算的验证值与在所获得的完整性测量证书中包括的验证值相比较,来执行所述第一部件是否被篡改的判断。
4.根据权利要求2所述的安全引导方法,其中
在开始引导所述第一部件后,执行所述第一部件是否被篡改的判断,并且
在抑制引导的步骤中,当判断所述第一部件被篡改时,终止所述第一部件的引导。
5.根据权利要求2所述的安全引导方法,进一步包括:
当判断所述第一部件被篡改时,获得指示还没有成功地引导所述第一部件的失败值;
通过使用所述失败值来更新所述当前完整性测量值;
通过查找所述第一映射表来获得与所述第二部件的逻辑标识符和由所述更新的当前状态信息指示的状态相对应的第二完整性测量值,所述更新的当前状态信息指示还没有成功地引导第一部件;
通过比较所述第二完整性测量值和所述更新的当前完整性测量值,来验证如下所述的(a)和(b)的状态,其中(a)为是否已经真的成功地引导了由所述更新的当前状态信息指示已经被成功地引导的一个或多个部件,以及(b)为是否还没有真的引导了由所述更新的当前状态信息指示没有被成功地引导的一个或多个部件;以及,
当所述验证导致成功时,引导所述第二部件。
6.根据权利要求2所述的安全引导方法,其中
当判断所述第一部件被篡改时,不更新所述当前完整性测量值,并且
所述方法进一步包括:
通过查找所述第一映射表来获得与所述第二部件的逻辑标识符和由所述更新的当前状态信息指示的状态相对应的第二完整性测量值,所述更新的当前状态信息指示还没有成功地引导所述第一部件;
通过比较所述第二完整性测量值和所述当前完整性测量值,验证是否已经真的成功地引导了由所述更新的当前状态信息指示已经被成功地引导的一个或多个部件;以及,
当所述验证导致成功时,引导所述第二部件。
7.一种安全引导设备,其用于以预定的顺序执行部件同时验证完整性,所述安全引导设备包括:
映射表存储单元,其被配置用于存储第一映射表;
状态存储单元,其被配置用于存储当前状态信息,所述当前状态信息指示在已经成功地引导第一部件之前是否试图引导一个或多个部件中的每一个;
获得单元,其被配置用于通过查找所述第一映射表来获得与所述第一部件和由所述当前状态信息指示的状态相对应的第一完整性测量值,在所述第一映射表中,逻辑标识符、状态信息和完整性测量值彼此相关联,所述逻辑标识符中的每一个识别所述部件中对应的一个,所述状态信息中的每一个指示在已经成功地引导一个或多个部件中对应的一个之前,是否试图引导所述一个或多个部件中的每一个,并且所述完整性测量值是用于验证由对应的状态信息指示已经被成功地引导的一个或多个部件是否已经真的成功地被引导的值;
值存储单元,其被配置用于存储当前完整性测量值,所述当前完整性测量值是基于已经被引导的一个或多个部件来计算的值;
验证单元,其被配置用于通过比较所述第一完整性测量值和所述当前完整性测量值,来验证是否已经真的成功地引导了由所述当前状态信息指示已经成功地引导的一个或多个部件;
第一引导单元,其被配置用于当所述验证导致成功时,开始引导所述第一部件;以及,
第一更新单元,其被配置用于当所述第一部件成功地结束引导时,更新当前状态信息以指示已经成功地引导了所述第一部件。
8.根据权利要求7所述的安全引导设备,进一步包括:
判断单元,其被配置用于判断所述第一部件是否被篡改;
抑制单元,其被配置用于当所述第一部件被判断为被篡改时,即使所述验证导致成功,也抑制所述第一部件的引导;
第二更新单元,其被配置用于当所述引导被抑制时,更新所述当前状态信息以指示还没有成功地引导所述第一部件;
确定单元,其被配置用于通过查找第二映射表以获得标识符来确定接下来要引导的第二部件,所述标识符对应于是否已经成功地引导了所述第一部件以及所述当前状态信息是否指示已经成功地引导了第三部件,所述第三部件是依赖于所述第一部件的部件,所述第二映射表包括与是否已经成功地引导了第一部件的状态和是否已经成功地引导了第三部件的状态相关联的、第二部件的候选者的逻辑标识符;以及,
第二引导单元,其被配置用于开始引导所述第二部件。
9.根据权利要求8所述的安全引导设备,其中
所述完整性测量值中的每一个包括在完整性测量证书中,所述完整性测量证书包括所述完整性测量值和一验证值,该验证值在判断由与所述完整性测量值对应的逻辑标识符识别的部件是否被篡改的过程中使用,
所述获得单元被配置用于通过查找所述第一映射表来获得完整性测量证书,在所述第一映射表中,每个状态信息和每个完整性测量证书彼此相关联,并且从所获得的完整性测量证书中提取所述第一完整性测量值;并且
所述判断单元被配置用于通过计算所述第一部件的验证值,并且将所计算的验证值与在所获得的完整性测量证书中包括的验证值相比较,来判断所述第一部件是否被篡改。
10.根据权利要求8所述的安全引导设备,其中
所述判断单元被配置用于在开始引导所述第一部件后,判断所述第一部件是否被篡改,并且
所述抑制单元被配置用于当判断所述第一部件被篡改时,终止所述第一部件的引导。
11.根据权利要求8所述的安全引导设备,进一步包括:
失败值获得单元,其被配置用于当判断所述第一部件被篡改时,获得指示还没有成功地引导所述第一部件的失败值;以及
第三更新单元,其被配置用于通过使用所述失败值来更新所述当前完整性测量值;
其中,所述获得单元被配置用于通过查找所述第一映射表来进一步获得与所述第二部件的逻辑标识符和由所述更新的当前状态信息指示的状态相对应的第二完整性测量值,所述更新的当前状态信息指示还没有成功地引导第一部件;
所述验证单元被配置用于通过比较所述第二完整性测量值和所述更新的当前完整性测量值,来进一步验证如下所述的(a)和(b)的状态,其中,(a)为是否已经真的成功地引导了由所述更新的当前状态信息指示的已经被成功地引导的一个或多个部件,以及(b)为是否还没有真的地引导了由所述更新的当前状态信息指示的没有被成功地引导的一个或多个部件的状态;以及,所述第二引导单元被配置用于当所述验证导致成功时,引导所述第二部件。
12.根据权利要求8所述的安全引导设备,其中
当判断所述第一部件被篡改时,不更新所述当前完整性测量值,
所述获得单元被配置用于通过查找所述第一映射表来进一步获得与所述第二部件的逻辑标识符和由所述更新的当前状态信息指示的状态相对应的第二完整性测量值,所述更新的当前状态信息指示还没有成功地引导了所述第一部件;
验证单元被配置用于通过比较所述第二完整性测量值和所述当前完整性测量值,来验证是否已经真的成功地引导了由所述更新的当前状态信息指示已经被成功地引导的一个或多个部件;以及,所述第二引导单元被配置用于当所述验证导致成功时,引导所述第二部件。
13.一种计算机程序,其被记录在计算机可读介质上,所述计算机程序使得计算机执行一种安全引导方法,该方法用于以预定的顺序执行部件同时验证完整性,所述程序使得所述计算机执行以下步骤:
获得当前状态信息,所述当前状态信息指示在已经成功地引导第一部件之前是否试图引导一个或多个部件中的每一个;
通过查找第一映射表来获得与所述第一部件和由所述当前状态信息指示的状态相对应的第一完整性测量值,在所述第一映射表中,逻辑标识符、状态信息和完整性测量值彼此相关联,所述逻辑标识符中的每一个识别所述部件中对应的一个,所述状态信息中的每一个指示在已经成功地引导一个或多个部件中对应的一个之前是否试图引导所述一个或多个部件中的每一个,并且所述完整性测量值是用于验证由对应的状态信息指示已经成功地引导的一个或多个部件是否已经真的成功地被引导的值;
获得当前完整性测量值,所述当前完整性测量值是基于已经被引导的一个或多个部件计算的值;
通过比较所述第一完整性测量值和所述当前完整性测量值,来验证是否已经真的成功地引导了由所述当前状态信息指示已经成功地引导的一个或多个部件;
当所述验证导致成功时,开始引导所述第一部件;以及,
当所述第一部件成功地结束引导时,更新所述当前状态信息,以指示已经成功地引导了所述第一部件。
14.一种集成电路,用于以预定的顺序执行部件,同时验证完整性,所述集成电路包括:
映射表存储单元,其被配置用于存储第一映射表;
状态存储单元,其被配置用于存储当前状态信息,所述当前状态信息指示在已经成功地引导第一部件之前是否试图引导一个或多个部件中的每一个;
获得单元,其被配置用于通过查找所述第一映射表来获得与所述第一部件和由所述当前状态信息指示的状态相对应的第一完整性测量值,在所述第一映射表中,逻辑标识符、状态信息和完整性测量值彼此相关联,所述逻辑标识符中的每一个识别所述部件中对应的一个,所述状态信息中的每一个指示在已经成功地引导一个或多个部件中对应的一个之前是否试图引导所述一个或多个部件中的每一个,并且所述完整性测量值是用于验证由对应的状态信息指示已经成功地引导的一个或多个部件是否已经真的成功地被引导的值;
值存储单元,其被配置用于存储当前完整性测量值,所述当前完整性测量值是基于已经被引导的一个或多个部件而计算的值;
验证单元,其被配置用于通过比较所述第一完整性测量值和所述当前完整性测量值,来验证是否已经真的成功地引导了由所述当前状态信息指示已经被成功地引导的一个或多个部件;
第一引导单元,其被配置用于当所述验证导致成功时,开始引导所述第一部件;以及,
第一更新单元,其被配置用于当所述第一部件成功地结束引导时,更新当前状态信息以指示已经成功地引导了所述第一部件。
CN2009801029076A 2008-01-30 2009-01-29 可选的部件的安全引导方法、设备和集成电路 Active CN101925908B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008-019379 2008-01-30
JP2008019379 2008-01-30
PCT/JP2009/000340 WO2009096181A2 (en) 2008-01-30 2009-01-29 Secure boot with optional components method

Publications (2)

Publication Number Publication Date
CN101925908A true CN101925908A (zh) 2010-12-22
CN101925908B CN101925908B (zh) 2013-08-14

Family

ID=40897703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801029076A Active CN101925908B (zh) 2008-01-30 2009-01-29 可选的部件的安全引导方法、设备和集成电路

Country Status (6)

Country Link
US (1) US8677108B2 (zh)
EP (1) EP2250609B1 (zh)
JP (1) JP5399397B2 (zh)
CN (1) CN101925908B (zh)
EA (1) EA201070673A1 (zh)
WO (1) WO2009096181A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2011148523A (ru) * 2009-07-01 2013-08-20 Панасоник Корпорэйшн Способ защищенной загрузки и устройство защищенной загрузки
US20110107395A1 (en) * 2009-11-03 2011-05-05 Nokia Corporation Method and apparatus for providing a fast and secure boot process
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
US9208318B2 (en) * 2010-08-20 2015-12-08 Fujitsu Limited Method and system for device integrity authentication
US9317276B2 (en) 2011-01-19 2016-04-19 International Business Machines Corporation Updating software
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
JP5910413B2 (ja) * 2012-08-21 2016-04-27 富士通株式会社 情報処理装置、起動プログラム、および起動方法
US20150046715A1 (en) * 2013-08-06 2015-02-12 Ologn Technologies Ag Systems, Methods and Apparatuses for Prevention of Unauthorized Cloning of a Device
US9639700B2 (en) 2015-03-20 2017-05-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Unified extensible firmware interface (UEFI) database for secure bootstrap of a computer
US10320571B2 (en) * 2016-09-23 2019-06-11 Microsoft Technology Licensing, Llc Techniques for authenticating devices using a trusted platform module device
US10853498B2 (en) * 2018-09-19 2020-12-01 Dell Products L.P. Secure boot orchestration device in a virtual desktop infrastructure
JP7289641B2 (ja) 2018-11-30 2023-06-12 キヤノン株式会社 情報処理装置、およびその制御方法
US11809876B2 (en) * 2021-04-29 2023-11-07 Dell Products L.P. Trusted platform module protection for non-volatile memory express (NVMe) recovery

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007031834A2 (en) * 2005-09-16 2007-03-22 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974546A (en) * 1997-05-08 1999-10-26 Micron Electronics, Inc. Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt
US6463550B1 (en) * 1998-06-04 2002-10-08 Compaq Information Technologies Group, L.P. Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US7017034B2 (en) * 2002-08-07 2006-03-21 Hewlett-Packard Development Company, L.P. System and method for using a firmware interface table to dynamically load multiple ACPI SSDT tables
JP4501349B2 (ja) * 2003-03-13 2010-07-14 ソニー株式会社 システムモジュール実行装置
US20050138414A1 (en) * 2003-12-17 2005-06-23 Zimmer Vincent J. Methods and apparatus to support the storage of boot options and other integrity information on a portable token for use in a pre-operating system environment
CN100351731C (zh) * 2004-04-30 2007-11-28 联想(北京)有限公司 一种安全计算机及其实现方法
US20060059331A1 (en) * 2004-09-15 2006-03-16 Zilavy Daniel V Console-less boot
US7818585B2 (en) * 2004-12-22 2010-10-19 Sap Aktiengesellschaft Secure license management
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7409537B2 (en) * 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置
GB2440170B8 (en) * 2006-07-14 2014-07-16 Vodafone Plc Digital rights management
US7840846B2 (en) * 2006-10-30 2010-11-23 International Business Machines Corporation Point of sale system boot failure detection
US8239688B2 (en) * 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
CN101038556B (zh) * 2007-04-30 2010-05-26 中国科学院软件研究所 可信引导方法及其系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007031834A2 (en) * 2005-09-16 2007-03-22 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones

Also Published As

Publication number Publication date
EP2250609A2 (en) 2010-11-17
US8677108B2 (en) 2014-03-18
WO2009096181A3 (en) 2009-10-29
EA201070673A1 (ru) 2011-02-28
CN101925908B (zh) 2013-08-14
JP5399397B2 (ja) 2014-01-29
JP2011511331A (ja) 2011-04-07
US20100318781A1 (en) 2010-12-16
WO2009096181A2 (en) 2009-08-06
EP2250609B1 (en) 2018-07-18

Similar Documents

Publication Publication Date Title
CN101925908B (zh) 可选的部件的安全引导方法、设备和集成电路
CN102449634B (zh) 安全引导方法和安全引导装置
CN103729597B (zh) 系统启动校验方法、系统启动校验装置和终端
JP5398824B2 (ja) セキュア処理システムのアプリケーション空間において信頼性を実現するための一時的pcr利用
CN101504704B (zh) 由星型信任链支持的嵌入式平台应用程序完整性验证方法
CN106293691A (zh) 安全引导证书的自动发现和安装
CN105825131B (zh) 一种基于uefi的计算机安全启动防护方法
CN104077401A (zh) 用于数据库的数据迁移装置和数据迁移方法
CN111309586B (zh) 一种命令测试方法、装置及其存储介质
US20170262278A1 (en) Program development support device, non-transitory storage medium storing thereon computer-readable program development support program, and program development support method
KR101751098B1 (ko) 이동 단말 장치 칩 프로그래밍을 위한 방법
CN103425932A (zh) 签名校验方法和终端设备
WO2008155198A1 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
CN103348354B (zh) 安全性验证设备和安全性验证方法
KR101665962B1 (ko) 모델링 코드 검증 방법, 이를 수행하는 모델링 코드 검증 장치 및 이를 저장하는 기록매체
CN106445737A (zh) 一种多备份启动方法
CN111931161B (zh) 基于risc-v处理器的芯片验证方法、设备及存储介质
US11657160B2 (en) Vulnerability analyzer
US8141039B2 (en) Method and system for consolidating machine readable code
CN102681910B (zh) 识别方法、计算机和识别系统
US20110016329A1 (en) Integrated circuit card having a modifiable operating program and corresponding method of modification
CN112182591B (zh) 一种基于Linux系统的web应用可信运行环境校验方法
CN112733154B (zh) 一种龙芯pmon安全启动方法
CN114356935A (zh) 检测工艺的管控方法及检测工艺的管控系统
CN105354114B (zh) 使待测装置执行除错的方法及运作平台、服务器控制方法

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