CN102449634A - 安全引导方法和安全引导装置 - Google Patents

安全引导方法和安全引导装置 Download PDF

Info

Publication number
CN102449634A
CN102449634A CN2010800238062A CN201080023806A CN102449634A CN 102449634 A CN102449634 A CN 102449634A CN 2010800238062 A CN2010800238062 A CN 2010800238062A CN 201080023806 A CN201080023806 A CN 201080023806A CN 102449634 A CN102449634 A CN 102449634A
Authority
CN
China
Prior art keywords
certificate
parts
integrity measurement
mapping
unit
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
CN2010800238062A
Other languages
English (en)
Other versions
CN102449634B (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 Intellectual Property Management Co Ltd
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 CN102449634A publication Critical patent/CN102449634A/zh
Application granted granted Critical
Publication of CN102449634B publication Critical patent/CN102449634B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

一种即使在安全设备的固件内的一些部件可能不存在、未授权或不正确地运转,而允许该设备以安全的方式引导的方法。

Description

安全引导方法和安全引导装置
技术领域
本发明涉及以有保证的方式启动部件的安全引导(boot)方法和安全引导装置,并且本发明具体地涉及启动可选部件的安全引导方法和安全引导装置。
背景技术
例如在非专利文献1和非专利文献2中的新方案描述了如何以有保证并且可信的方式启动设备。这些方法已经被全面地评估,以确保在整个引导过程中始终保持可信和安全,因此为那些希望实施能够安全引导的设备的人们提供有用的基准。该安全引导过程的关键部件为RIM证书。这是一种定义当前预期的平台状态应当是什么的签名结构(signed structure),该签名结构由一组平台配置寄存器(PCR)的散列来表示,该组平台配置寄存器本身包含已知的公共定义的散列值。这些PCR用作可以被记录在RIM证书中以定义期望的机器状态的完整性测量。此外,如果当前状态被验证,则RIM证书还指定要被扩展的PCR。该扩展过程得到指定的PCR,并且基于与在RIM证书内定义的新的已知值连结的先前PCR值来计算新的散列值。TCG定义的典型安全引导顺序开始于核心部件(例如用于验证和测量的可信根(RTV+RTM))、MTM本身和关联的核心MTM接口部件的初始化和自验证。接下来,支持固件其它部分的附加部件以可信方式启动,例如,每个附加部件在它们启动时由在它们之前已经被引导的另一部件进行验证。并且最终操作系统运行,从而为访问MTM服务的客户应用提供安全和可信的路径。
然而,规范是严格的,仅提供单个控制路径,尽管引导过程导致彻底成功或者导致彻底失败。换言之,如果一个部件的引导过程失败了,则所有其它部件都不可以被使用,即使它们自己的引导过程成功。
此外,考虑诸如移动电话等便携式设备具有有限的资源,TCG规范提供了用于审核的工具。虽然它们定义了这些审核的特征对于MTM是可选的,但是这产生了下文所示的问题。如上所述,虽然该特征只是一个可选项,但是在该特征的引导过程中的失败使得移动电话的所有部件都不能被使用。此外,虽然该特征不是必须实施的(因为其是选项),但是在不实施该特征的情况下,验证经常失败。这使得对于其它过程更难以检测在引导过程中为什么存在失败或在引导过程中哪里存在失败。此外,设备制造商可能希望提供某些可信的部件作为选项。
在此,可选的部件表示例如在用户进入附加契约之后能够被启用的系统或应用软件。在此,“启用(或激活)”表示将应用软件的状态改变为用户能够运行该应用软件的状态。除非软件被启用了,否则用户不可以使用该系统或应用软件,即使该系统或应用软件本身是预装在机器中的或从服务器下载的。
如上所述,可选部件是否被启用可以由每个用户的决定来确定。因此,用于向机器发送更新的RIM证书的服务器将知道对于每个机器哪些部件被启用,从而发送对应于已启用部件的更新的证书。
另外,在很多市场中,对服务提供商存在下列法定的要求:允许用户即使是利用没有当前服务契约的移动电话或在具有当前服务契约的区域之外的移动电话来进行紧急呼叫。在具有MTM的电话上,证书的撤销或非关键部件的损坏导致电话可能完全无法操作,从而不能满足该法定的要求。
在专利文献1中,公开了一种具有可选部件的验证引导方法,但是可选部件是根据明确的开关来实施的;并没有考虑如何处理当处理可选部件时发生的错误,例如部件程序文件损坏或硬件初始化失败。
在专利文献2中,公开了一种具有可能使验证失败的部件的验证引导方法,但是其并未教导如何解决该问题。
因此,需要一种将在由TCG移动电话工作组定义的安全引导的环境内支持可选部件的方法,并且即使一些RIM证书(RIM Cert)被撤销或者部件禁用或不起作用,该方法仍将以简化功能的方式操作,并且在安全引导结束之后该方法允许一种用于确定MTM状态的较容易、较少占用繁重资源的方法。
因此,进一步需要的是,一种用于在不需要为每个机器制作一组定制的更新证书的情况下对被启用或禁用的部件进行更新的机器和服务器。
引用列表
专利文献
[专利文献1]美国专利申请2005/0138414
[专利文献2]美国专利6,477,648
非专利文献
[非专利文献1]The Trusted Computing Group′s(TCG)Mobile TrustedModule(MTM)documents TCG Mobile Reference Architecture,第1.0版,2007年6月12日
[非专利文献2]TCG Mobile Trusted Module Specification,第1.0版,2007年6月12日
发明内容
技术问题
虽然背景技术描述了根据单个定义的顺序进行引导的方式,但是它并没有建议如果一个非关键的部件失败或不存在时做什么。此外,仅仅为整个安全引导过程记录失败状态,而不是为各个部件记录失败状态。结果,对于每个角色,在需要RIM证书的情况下,仅仅单个一个是可用的。
因此,存在的一个未满足的需求是一种系统和方法,其在仍然维持将要引导的设备的安全性和可信性的情况下允许定义多个用于安全引导的执行顺序,从而在该设备上能够实现对可选的和失败的部件的支持,并且具有该系统和方法是非常有用的。
此外,存在的一个未满足的需求是一种系统和方法,其除了上文所述之外,还记录在安全引导系统内的每个个体部件的成功或失败,从而使用户能够在安全引导完成之后确定安全环境的状态,并且具有该系统和方法是非常有用的。
此外,存在的一个未满足需求是一种系统和方法,其除了上文所述之外,还允许对于每个角色使用多个RIM证书,从而在仍然维持该设备的安全性和可靠性的情况下使可选部件能够被支持,并且具有该系统和方法是非常有用的。
问题的解决方案
根据本发明的方面的方法是一种执行根据完整性测量可验证的软件部件的方法,该方法包括:a)提供从逻辑标识符到软件部件启用状态标志的第一映射;b)提供从该逻辑标识符和先前的软件部件状态信息到包含验证数据的实际完整性测量证书的第二映射;c)针对识别软件部件的给定逻辑标识符来对第一映射进行查找,以得到指示软件部件是否被启用的状态标志(2122);d)针对识别软件部件的验证证书的给定逻辑标识符和先前的部件状态来对第二映射进行查找,以得到完整性测量证书(2122);e)计算要执行的软件部件的校验值(2126);f)验证下列各项:完整性测量与完整性测量证书内的完整性测量值相匹配,以及所计算的校验值与完整性测量证书内的校验值相匹配(2128);g)如果状态标志指示软件部件被启用并且验证成功,则对当前完整性测量进行更新,以包括对完整性测量证书内的校验值的指示(2200);以及h)如果软件部件被启用且验证成功,则执行该软件部件(2206)。
另外,该方法还可以包括:a)如果该部件未被启用,则对于识别该部件的验证失败证书的给定逻辑标识符和先前部件状态来对第二映射进行查找,以得到被禁用的完整性测量证书(2134);b)对当前的完整性测量进行更新以包括对存储在禁用的完整性测量证书内的禁用的部件状态的指示(2134)。
此外,该方法还可以包括:a)如果验证是不成功的,则对于识别部件的验证失败证书的给定逻辑标识符和先前的部件状态来对第二映射进行查找,以得到失败的完整性测量证书(2136);以及b)对当前完整性测量进行更新,以包括对存储在失败的完整性测量证书内的不成功完整性测量的指示(2136)。
而且,该方法还可以包括:a)如果部件是未被启用或者验证是不成功的,则提供从逻辑标识符和先前的软件部件状态信息到部件标识符的第三映射(2404);以及b)对于给定的识别部件的逻辑标识符和先前的部件状态来对第三映射进行查找,以得到要被执行的替代软件部件(2404)。
根据本发明的一个优选实施例,每个独立的部件的成功或失败被记录在可由所有其它可信部件访问的表内。
根据本发明的另一个优选实施例,在表中描述了多个执行顺序,该表描述了在给定的部件失败后要执行的替代部件。该表通过对失败的模块的标识符和先前被执行或失败的部件的状态的组合来进行索引。
根据本发明的另一个优选实施例,在表内描述了可选部件,该表包含指示部件是否被启用的标志。在安全引导期间引用该表以控制是否引导可选部件,因而该表明确地描述了可选部件的优选执行顺序。
根据本发明的另一个优选实施例,为了根据先前执行或失败的部件的状态使每个独立的部件能被正确地验证,每个部件具有多个描述在部件可以运行之前多种有效先决条件必须为真的RIM证书。
为了解决该问题,根据本发明,一种可连接到服务器的设备包括:存储单元,其被配置为将多个软件部分和与所述多个软件部件相关联的多个证书进行存储,该多个软件部分的每个被分配给一个证书,多个证书的每个被用于验证所述多个软件部分的每个;设置单元,其被配置为将该多个软件部分的一个设置到该设备以作为多个软件部分的被启用的一个,所述多个软件部分的被启用的一个能够在设备上执行;执行单元,其被配置为通过使用与所述多个软件部分的被启用的一个相关联的证书来验证所述多个软件部分的被启用的一个,并且在验证之后执行所述多个软件部分的被启用和被验证的一个;接收单元,其被配置为从服务器接收对应于预先确定的证书的多个更新的证书,所述预先确定的证书由服务器在多个证书中确定为要被更新的,服务器确定要被更新的证书而不检测所述多个更新的证书中的哪个对应于所述多个软件部分的被启用的一个;以及选择单元,其被配置为从接收的多个更新的证书选择对应于与所述多个软件部分的被启用的一个相关联的证书的一个更新的证书,其中执行单元通过使用这个被更新的并且被选择的证书来验证所述多个软件部分的被启用的一个。
发明的有益效果
通过该结构,该设备在未检测哪些更新的证书是对应于在设备上被启用的部件的情况下,接收存在于服务器上的更新的证书。因此,本发明的该方面可以在未定制将由服务器发送的一组证书的情况下,将对于被启用的部件的合适的证书进行更新,因而,并不需要在服务器上放置创建多个更新的证书所要求的潜在高机密的密钥,而替代地将该密钥在安全的离线设施中进行管理。
附图说明
图1示出了表示现有技术的方框图。
图2示出了现有技术的安全引导排序。
图3示出了包含可选部件控制结构的移动设备的使用期和外部交互。
图4示出了表示用于维持可选部件控制表和相关数据的密钥部件的方框图。
图5示出了包含表示需支持可选部件的表的附加数据的RIM证书。
图6示出了标签到证书的映射表。
图7示出了下个部件表。
图8示出了一种可选部件控制表,该可选部件控制表包含计数器值、证书标识符及它们状态的表和表示可选部件的状态的加密签名。
图9示出了根据本发明,对可选部件控制表进行初始化的过程的流程图。
图10示出了根据本发明,撤销内部RIM证书和需要与可选部件控制表的交互的过程的流程图。
图11示出了根据本发明,与服务器进行交互以更新可选部件控制表的过程的顺序图。
图12示出了包含证书标识符及它们状态的表、表示可选部件的状态的可选部件控制表。
图13示出了保护在图12中的表的可选部件控制表RIM证书。
图14示出了根据本发明,在原始引导期间对可选部件控制表进行初始化的过程的流程图。
图15示出了根据本发明,通过使用可选部件控制表撤销内部RIM证书的过程的流程图。
图16示出了根据本发明,与服务器进行交互以更新可选部件控制表的过程的顺序图。
图17示出了从服务器传送到移动设备的可选部件控制更新表。
图18示出了在服务器内用于支持由客户设备对可选部件控制表的维持的密钥部件的方框图。
图19示出了对可选部件的安全引导的方框图。
图20示出了对错误检测和可选部件的安全引导的附加排序。
图21A示出了根据本发明,执行对可选部件的安全引导的过程的流程图。
图21B示出了根据本发明,执行对可选部件的安全引导的过程的流程图。
图21C示出了根据本发明,执行对可选部件的安全引导的过程的流程图。
图22示出了根据本发明,执行对可选部件的安全引导的过程的流程图。
图23示出了根据本发明,执行对可选部件的安全引导的过程的流程图。
图24示出了根据本发明,执行对可选部件的安全引导的过程的流程图。
具体实施方式
根据本发明的第一方面,一种可连接到服务器的设备包括:存储单元,其被配置为存储多个软件部分和与所述多个软件部分相关联的多个证书,所述多个软件部分中的每个被分配给一个证书,多个证书中的每个被用于验证所述多个软件部分中的每个;设置单元,其被配置为将所述多个软件部分中的一个设置到设备中以作为所述多个软件部分中被启用的一个,所述多个软件部分中被启用的一个能够在该设备上被执行;执行单元,其被配置为使用与所述多个软件部分中被启用的一个相关联的证书来验证所述多个软件部分中被启用的一个,并且在验证之后执行所述多个软件部分中被启用和验证的一个;接收单元,其被配置为从服务器接收对应于预先确定的证书的多个更新的证书,该预先确定的证书由服务器在多个证书中确定为要被更新的,服务器确定要被更新的证书,而不用检测该多个更新的证书中的哪个对应于所述多个软件部分中被启用的一个;以及选择单元,其被配置为从接收的多个更新的证书中选择一个更新的证书,所选择的一个更新的证书对应于与所述多个软件部分中被启用的一个相关联的证书,其中执行单元使用该一个被更新并且被选择的证书来验证所述多个软件部分中被启用的一个。
根据本发明的第二方面,服务器共同地将多个更新的证书传送给该设备和另外的设备。
根据本发明的第三方面,所述多个更新的证书包括对应于与所述多个软件部分的另一个相关联的证书的更新的证书,所述多个软件部分中的另一个不同于所述多个软件部分中的被启用的一个。
根据本发明的第四方面,该设备还包括:更新单元,其被配置为基于所述一个更新的证书,对与所述多个软件部分中被启用的一个相关联的证书进行更新,其中执行单元使用由更新单元更新的证书,来对所述多个软件部分中被启用的一个进行验证。
根据本发明的第五方面,该设备还包括:设备密钥存储单元,其被配置为存储设备密钥,该设备密钥是该设备的唯一密钥;更新单元通过使用该设备密钥对所述一个更新的证书进行转换并且利用所转换的一个更新的证书重写与所述多个软件部分的被启用的一个相关联的证书,来对与所述多个软件部分的被启用的一个相关联的证书进行更新。
根据本发明的第六方面,该设备还包括:标志存储单元,其被配置为当设置单元将多个软件部分中的一个设置到设备中以作为所述多个软件部分中被启用的一个时,存储指示所述多个软件部分中被启用的一个的启用标志,其中选择单元被配置为,基于存储在标志存储单元中的启用标志,从接收的多个更新的证书中选择一个对应于与所述多个软件部分中被启用的一个相关联的证书的更新的证书。
根据本发明的第七方面,该设备还包括:计数器,其被配置为当撤销(revoking)单元撤销存储在存储单元中的一个证书时增加计数器值;计数器值设置单元,其被配置为当计数器值增加时,将增加后的计数器值设置到包括启用标志的管理信息中;以及确定单元,其被配置为使用设置在该管理信息中的计数器值来确定该管理信息是否被篡改。
根据本发明的第八方面,该设备还包括:计算单元,其被配置为计算包括启用标志和计数器值的管理信息的加密散列值;值存储单元,其被配置为存储对应于所计算的加密散列值的验证值;验证单元,其被配置为在选择单元使用管理信息来选择所述一个更新的证书之前,通过将所存储的验证值和所计算的加密散列值进行比较,来验证该管理信息是否被篡改。
根据本发明的第九方面,该设备还包括:映射数据存储单元,其被配置为存储示出所述多个软件部分和所述多个证书之间的映射的映射数据;计算单元,其被配置为计算该映射数据的加密散列值;值存储单元,其被配置为存储对应于所计算的加密散列值的验证值;验证单元,其被配置为在选择单元选择所述一个更新的证书之前,通过将所存储的验证值和所计算的加密散列值进行比较,来验证所述映射数据是否被篡改;以及选择单元,其基于该映射数据选择所述一个更新的证书。
根据本发明的第十方面,该设备还包括:计数器,其被配置为当撤销单元撤销存储在存储单元中的所述一个证书时,增加计数器值;计数器值分配单元,其被配置为当计数器值增加时,将增加的计数器值分配给映射数据;以及计算单元,其使用映射数据和被分配给映射数据的计数器值来计算加密散列值。
(本实施例的综述)
本实施例涉及一种用于对用于验证软件部分的证书进行更新的系统。在设备中,如果存在一个或多个可选部件,则依据用户来决定哪个部件被启用。因此,通常服务器需要知道对于每个设备哪些部件被启用,从而发送对应被启用的部件的更新的证书。并且,服务器为每个设备,发送对应于每个设备中被启用的部件的一组定制的更新的证书。
然而,为每个设备制作一组定制的更新的证书是非常麻烦并且需要很多代价的。因此,在本实施例中,示出了一种用于对证书进行更新而不需要为每个设备制作一组定制的更新的证书的系统。
本发明涉及一种用于支持在将执行安全引导的系统内的可选的或失败的部件的系统。通过提供所描述的附加RIM证书和数据表,支持安全引导的设备的开发者能够开发:一种能够灵活处理无法启动或被指示为禁用的部件的系统,以及一种能够报告在安全引导生成的可信环境内的部件的状态的设备。通过进一步提供被启用的可选部件的列表,系统还将处理可以被外部参与者启用和禁用的部件。本实施例假设这样一种系统:其中设备中的至少一个部件是可选的,并且证书被用于在引导该部件的时刻,对该部件和在该部件之前被引导的其它部件进行验证。因此在通常的系统中,在部件的引导过程中的失败或者因为禁用所以未被引导的部件,影响了在该失败的部件之后进行引导的其它部件的引导过程,即使该失败的部件是可选的并且其它部件本身是有效的。为了避免该问题,本实施例使用了在下文描述的失败RIM证书和成功RIM证书。
该结构也是相对于现有技术的新结构。然而,请注意,本发明涉及撤销证书的部分,可以被应用于并不对上文所示的问题进行处理的系统。
描述了一种用于撤销部件的新系统和方法,该新系统和方法包括处理在支持安全引导的设备上的可选部件。在下文的描述中,出于解释的目的,陈述了许多具体细节以提供对本发明的完全理解。在其它例子中,在不解释它们的具体细节的情况下,以方框图的形式示出了公知的结构和设备以利于解释。然而,对一个本领域普通技术人员来说,通过修改或者不利用这些具体细节来实践本发明是显而易见的。优选实施例的描述并不视为限制随附权利要求的范围。
(本实施例的细节)
本发明涉及一种用于支持对将执行安全引导的系统内的可选的或失败的部件的系统。通过提供所描述的附加RIM证书和数据表,支持安全引导的设备的开发者能够开发出一种能够灵活处理无法启动的部件的系统,以及一种能够报告在安全引导生成的可信环境内的部件的状态的设备。
图1示出了现有技术。该图捕获了在核心部件已经自验证之后的那一时刻安全引导过程的状态,该核心部件例如在可信区域100内的RTV+RTM和MTM接口等。MTM102是该可信区域100的核心,但是在该可信区域100内的其它关键项是指示安全引导是否已经正确地进行的系统状态104标志;设置系统状态104的系统错误记录器106;负责启动将被加入到可信区域100的下个部件的启动器108;以及查找所要求的成功RIM证书114的证书数据库110。这些成功RIM证书114描述了在完全成功的安全引导期间所期望的平台状态。RIM证书应当被保护以防改变,从而检查安全引导导致成功还是导致不正确的,因此,它们是完整性保护的,并且被放置在完整性保护112数据项的组中。如TCG所定义地,通过将签名的散列嵌入到RIM证书从而允许MTM102检测篡改来实现该完整性保护。
安全引导的目的为将可信区域100进行扩展以包围诸如可信部件1116、可信部件2 118和可信部件3 120等的附加部件。从启动器108到可信部件1 116、可信部件2 118和可信部件3 120的被标注为122、124和126的点划线指示根据现有技术的一方面的正常执行路径。根据现有技术的另一方面,可以存在另外的可信部件,且将操作系统(未示出)作为最终的可信部件。启动可信部件的具体顺序由具体安全引导系统的设计来定义。
图2示出了根据在图1中描述的方法的现有技术安全引导过程的结果。在此,标准引导顺序从MTM102开始,然后可信部件1 116运行,将控制权传送到可信部件2 118,并且以此类推到可信部件3 120、可信部件4 200、可信部件5 202,然后最终到操作系统204。可信部件2118、可信部件4 200和可信部件5 202是在由可信部件1 116和可信部件3 120提供的基础服务之上提供进一步可选服务的部件。在成功的例子中,如在流程206所指示地,所有部件成功地运行,并且完全操作的可信区域208是可用的。然而,在流程210中,可信部件4 200无法装载,因此由于处于失败的状态,全部可信区域212都是不可用的。在可信区域框208和212中,MTM表示MTM102,TC1表示可信部件1 116,TC2表示可信部件2 118,TC3表示可信部件3 120,TC4表示可信部件4 200,TC5表示可信部件5 202,并且OS表示操作系统204。所有部件取决于MTM102,并且此外可信部件2 118取决于可信部件1 116,并且可信部件4 200和可信部件5 202取决于可信部件3 120。操作系统204取决于可信部件1 116和可信部件3 120。阴影部分显示不能被使用的部件。
图3示出了以安全引导为特征的移动设备的生命期。在工厂300,初始化过程302安装了一组可选部件以及与对于每个设备而言哪些可选部件是可用的有关的信息。当其被运送到移动电话商店304或诸如在线商店等其它卖方时,顾客可以购买对应于可选部件的多种选项306,或与对应于可选部件的多种选项306达成契约。移动设备308现在准备好被使用,并且在设备的生命期期间,如由TCG移动参考架构所定义地,诸如可选和托管部件的更新的证书310被广播到所有设备312等的行动将发生。此外,设备拥有者可以通过由移动电话运营商316或其它设备管理实体提供的服务器来明确地更新他们的契约选项314,使得该组可选部件对将被更新的特定设备是可用的。下文将描述包含在对可选部件进行管理的这些过程中的每个的行为。
图4示出了本发明的方面,即用于建立和维持在系统内的可选部件的方法。关键的功能元件和数据项如下。首先,数据结构被完整性保护400;在优选的实施例中,这是通过使用签名散列来实现的。数据结构首先为成功RIM证书402和失败RIM证书404,这些证书描述了当所有部件正确操作时在安全引导期间所期望的平台状态,以及当一个或多个部件无法正确操作或者由于分别禁用而已经无法启动时在安全引导期间所期望的平台状态。标签到证书的映射表406将可信部件的状态映射到特定的成功RIM证书402或失败RIM证书404,可选部件控制表408描述了哪些可选可信部件是启用或禁用的,并且默认可选部件控制表410用于在移动电话的第一次引导时或者用于在可选部件控制表408被损坏时的其它时间,对可选部件控制表408进行初始化。在优选的实施例中,该表的结构与可选部件控制表408的结构相同。为了对该可选部件控制表408进行初始化,初始化器406基于默认可选部件控制表410建立了可选部件控制表408。稍后描述该过程的细节。
证书更新器412通过处理从移动手机广播塔经由无线网络416传输并且由更新接收器414在设备上接收的证书列表来保持成功RIM证书402和失败RIM证书404为最新的。稍后描述该过程的细节。本领域普通技术人员将发现存在其它方式使这些更新有效,例如通过存储卡或者经由其它有线或无线的传输模块。
契约更新器418通过请求在设备420上的网页浏览器来访问位于服务器424上的可选部件维持页面,来维持在可选部件控制表408内的部件的启用状态或禁用状态。在优选的实施例中,网页浏览器420到服务器424的连接422使用安全套接层(SSL)以保护通信信道不被攻击。稍后描述该过程的细节。
图5基于由TCG移动可信模块规范定义的RIM证书,示出了RIM证书500、成功RIM证书402和失败RIM证书404的细节。为了允许对可选部件的支持,mapIDtoCertTableSize506、mapIDtoCertTable508、nextComponentTableSize510以及nextComponentTable512被附加到证书,并且extensionDigest504条目包含了对于该额外数据的加密散列值。仅需要该扩展的RIM证书的一个例子,并且这一个实施例将这些表附着到RTV+RTM用于自验证的单个RIM证书。然而,在此不描述现有技术的该方面。
此外,RIM证书500具有识别RIM证书的标签字段502。
本领域普通技术人员将发现存在其他方式在不使用RIM证书500的情况下实现并且保持mapIDtoCertTable508和nextComponentTable512的完整性,例如通过使用对于签名者和可信区域100都是已知的密钥来单独或共同地对每个表进行加密签名。
图6示出了具有数据条目的ID到证书的映射表508的格式,所述数据条目示出了从作为用于部件的标识符的逻辑证书标签和先前的软件部件状态到实际的RIM证书的映射。ID到证书的映射表508为从逻辑标识符和先前的软件部件状态信息到包含验证数据的实际完整性测量证书的第二映射的示例。第一列,逻辑证书标签600为一种识别标签,该识别标签是逻辑标识符的示例,并且对用于特定的成功RIM证书和零个或更多的失败RIM证书的特定角色进行标识,并且该识别标签为系统的其它部分用于请求RIM证书的标签。第二列,从属可信部件状态602为一组标志,该组标志指示针对哪组可信部件错误状态每行是有效的。第三列,从属可信部件掩码(mask)604为指示哪些部件将具有其状态被校验的一组标志。在一个实施例中,使用位图实现这两列。最后,RIM证书标签606列容纳了将被用于从RIM证书数据库查找成功RIM证书402或失败RIM证书404的实际RIM证书标签。RIM证书标签606为包含验证数据的实际完整性测量证书的示例。该值表示由TCG定义的RIM证书标签字段502的例子。
图7示出了具有采样数据条目的下个部件表512的格式。下个部件表512为从逻辑标识符和先前的软件部件状态信息到部件标识符的第三映射的示例。第一列,失败的可信部件700为这样的标识符:其是逻辑标识符的示例并且表示已经失败的部件。第二列,从属可信部件状态702为一组标志,该组标志为先前的软件部件状态信息的示例并且指示针对哪组可信部件错误状态当前行是有效的。第三列,从属可信部件掩码704为指示哪些部件将使它们的状态被校验的一组标志。在一个实施例中,通过使用位图实现这两列。最后,要启动的可信部件706列容纳了这样的标识符:其是部件标识符的示例,并且针对给定的失败可信部件700和一组从属可信部件状态702对接下来哪个模块应当被启动或者因为安全引导已经进入不能恢复的状态对是否应当抛弃该引导进行描述。参考图4,如果可信部件1116或可信部件3 120的部件无法装载,则指示下个要启动的可信部件706的条目可能实际上为放弃引导的指令;这是因为这两个部件为对于完全可信系统的操作是必要的基本部件。如果可信部件2 118、可信部件4 200或可信部件5 202失败,则可能存在表示例如可信部件3 120、可信部件5 202和操作系统204各自为下个将启动的可信部件706的条目。
ID到证书的映射表508和下个部件表512的表的内容由对于特定设备所需的安全引导顺序的设计来进行定义。在上文描述的当表附着到RTV+RTM用于自验证的RIM证书时的实施例中,由TCG(最可能为设备制造商)定义的发布授权的RIM证书将生成这些表,并且将数据加入到特定RIM证书,然后对该证书进行签名,并且使之能够用于设备上。然而,这些表可能由另一个组织生成,并且分别被从RIM证书发送。此外,如果安全引导系统可以分析自己的安全引导顺序,安全引导系统可以自己生成这些表。
根据示出哪个部件是取决于另一个部件的信息生成这些表。如果部件A取决于另一个部件B,则如果部件B的引导程序失败,部件A不应当被引导。并且如果部件A独立于部件B,则即使部件B不能够被成功地引导,引导过程也可以从部件A的引导程序恢复。当然,可以根据更多信息生成这些表。例如,它们可以根据示出如果另一个独立部件的引导程序失败则一些部件不应当被引导的信息来生成。该信息可以由每个可信部件的作者来生成并提供。
为了对这些可以由外部参与者(例如,移动设备拥有者或移动设备服务提供商或移动设备生产商)可选地启用的可信部件进行管理,设备将维持哪些可选可信部件被启用或禁用的列表。图8示出了在可选部件控制表408中的该数据的优选实施例。可选部件控制表408为从逻辑标识符到软件部件启用状态标志的第一映射的示例。RIMProtectVlue802为在建立或更新该结构的时候由TCG移动可信模块规范定义的counterRIMProtect单调计数器的复制,以帮助保护该结构不受反转攻击或再刷新攻击。接下来是在每行具有两个字段的表;首先为可选可信部件逻辑证书标签804,其使用了与在ID到证书的映射表508中的逻辑证书ID600所使用的部件标识符相同的部件标识符。逻辑证书标签804为逻辑标识符的示例。接下来,指示由逻辑证书ID804识别的可选可信部件是否被启用的标志806,如果该可选可信部件被启用,则该标记被设置为TRUE;如果该可选可信部件禁用,则该标志被设置为FALSE。标记806为软件部件启用状态标志的示例。该对值对于在系统中的每个可选可信部件进行重复,并且表由-1的逻辑证书ID808和对于禁用通常被设置为FALSE的标志810来结束。该对值的集合共同的被称为逻辑证书标签表814。最后,为了保护在可选部件控制结构内的所有上述数据不被篡改,存在根据PKCS#1v1.5规范产生的加密签名812,该PKCS#1v1.5规范利用如下文图9的描述所建立的并且对于外部过程是不可用的密钥进行签名。本领域普通技术人员将发现存在其它方式实现并且保持每个可选部件的状态的完整性,并且诸如HMAC的其它数字签名算法可以被使用。
图9示出了根据本发明的可选部件控制表的初始建立。如在对于原始引导的TCG移动可信模块规范中所详细示出地,一旦MTM已经初始地启动,则该示出的过程将恰好发生在设备的第一次引导时。也如在该文献中所详细描述地,原始引导可以发生在移动设备的生命周期的其它时刻,因此图9还示出了根据要求对该结构的重建。首选,在原始引导顺序已经执行了充分的初始化以构建并且初始化MTM和可信根后,从MTM请求用于对可选部件控制结构进行签名的密钥900。在优选的实施例中,该密钥指示RSA密钥对的私钥。对该请求的成功或失败进行校验902,并且如果MTM无法找到所请求的密钥,则在MTM中建立密钥904。该密钥必须利用如在TPM主要规范部分2内定义的使用类型TPM_KEY_SIGNING来建立,并且在优选的实施例中,密钥算法为长度为1024位的TPM_ALG_RSA,并且可与TPM_SS_RSASSAPKCSA1v15_SHA1签名方案一起使用。然而,如果密钥被发现,则不需要建立它,因此作为代替,使用校验以查看是否存在现有的并且有效签名的可选部件控制表906。因为例如对该结构的重建可能重写了被改变的选项,所以如果存在一个,则不需要重建它,并且原始引导程序以由TCG移动参考架构指定的其它过程继续进行920。如果没有可选部件控制表(或者如果没有发现密钥因而不得不建立密钥904),那么请求由MTM管理的用于保护RIM证书的单调计数器910,这是因为该单调计数器为可选部件的默认状态信息912。建立新的可选部件控制表914,并且该单调计数器被插入到RIMProtectValue域802中,并且可选部件及它们的状态被插入到域804和806中,并且还建立表终结符808和810。接下来,利用请求,该新的结构被传送到MTM以利用早先建立或获取的密钥对这个新的结构进行加密签名916。该签名过程致使加密签名812被建立。现在,该明显篡改的可选部件控制表408可以根据要求被存储,甚至存储在可公共访问的位置中。现在对于可选部件控制表的建立过程完成了,因此原始引导程序以在TCG移动参考架构内指定的其它过程继续进行920。
图10示出了根据本发明如在TCG移动参考架构的第6.3.4.5节中描述地,对于RIM撤销的任务所需要的附加过程。该规范描述了如何对RIM_Auth进行验证,如何对RIM_Cert有效性列表进行校验,并且在新的有效性列表上不具有对应的外部RIM_Cert的所有内部RIM_Cert被删除,所有剩余的内部RIM_Cert重新生效,并且对counterRIMProtect单调计数器进行更新。在图10中示出的过程增加了对所有剩余的内部RIM_Cert进行重新生效,对counterRIMProtect单调计数器进行更新的步骤。首先,获取可选部件控制结构1000。接下来,为了能够验证数据仍然有效并且未被篡改,从MTM获取用于建立加密签名512的密钥的公共部分(1002)以及当前counterRIMProtect单调计数器(1004)。该签名被验证以保证数据还未被篡改(1006),并且当前counterRIMProtect单调计数器与存储在可选部件控制结构(408)中的counterRIMProtect802进行比较。如果所存储的值大于或等于当前单调计数器值,那么可选部件控制结构为当前的,表示在该结构上还未有重刷新或反转攻击。(1008)如果两个校验的结果显示该签名是不正确的或者当前的单调计数器大于在可选部件控制结构(408)内的RIMProtectValue802,那么(1010)RIM撤销过程失败并且安装的程序或RIM证书将不会被改变。然而,如果校验指示可选部件控制结构为有效的,那么(1012)在可选部件控制结构(408)内的RIMProtectValue802被设置为大于在1004获取的counterRIMProtect单调计数器的当前值的一个值。(1014)由MTM根据由在1002所获取的密钥签名的PKCS v1.5算法生成加密签名。接下来,执行如在TCG移动参考架构规范中描述的任务:(1016)现有的内部RIM证书利用增值的RIMProtect计数器值进行重新生效,然后(1018)counterRIMProtect单调计数器增值以保护RIM证书和可选部件控制结构(408)以防反转或重刷新攻击。最后,(1020)如在TCG移动参考架构规范中描述的执行剩余的撤销功能。
图11示出了处理在移动设备1100和控制可选部件的启用或禁用的服务器1104之间的通信。此外,还示出了由移动设备1100经由该设备1100上的移动可信模块1102所请求的服务。首先,1106用户请求存储在服务器上的契约维持选项。在优选的实施例中,这通过与服务器建立SSL(安全套接层)会话来执行。然后,服务器执行如在TCG规范架构综述中定义的与设备的认证1108,从而以验证设备的身份和信用。设备将请求转发到MTM1110以使MTM能够报告给服务器。从MTM1102经由设备1112将确认消息返回到服务器1114。在认证成功完成之后,客户在优选的实施例中通过使用Diffie-Hellman密钥交换建立与服务器共享的秘密1116、1118。接下来,服务器传送适于所识别手机的定制可选部件状态页面1120。在优选的实施例中,这是设备用户与1122交互以选择哪些选项加入设备或从设备上去除的基于HTML的页面。在做出所要求的改变之后,设备发送包括每个可选部件的新的启用的或禁用的状态的消息,以示出交互完成了1124。在优选的实施例中,这由到HTTPS页面的POST来执行,所述到HTTPS页面的POST在先前传送的定制选项页面1120内描述了。在另一个优选实施例中,设备对于由设备用户做出的每个改变发送单独的消息。在另一个优选实施例中,设备通过使用基于AJAX的机制在每个改变做出之后发送单独的消息,并且用户选择了一旦结束则发送完成消息的选项。服务器适当地更新其客户数据库,并且将新的一组由在1116和1118建立的密钥进行编码的更新的可选部件状态标志1126发送到设备。这些步骤对应于在图18中标注为1814、1816、1818、1820和1822的项。在优选的实施例中,数据与逻辑证书标签表814具有类似的格式,具有多对逻辑证书标签804和启用标志806,并且由值为-1的808和FALSE810的对结束。这在图17中示出了,其中如上文所述地,可选部件更新表1700包含逻辑证书标签表814,以及该表的散列1702以保证数据在传输期间未被损坏。设备对可选部件更新结构1128进行解码和验证,并且如果解码和验证成功,则开始该选项的过程以保证启用和禁用的部件被正确配置。
接下来的任务是对于该设备来将每个RIM证书1130进行重装,这一重装对存在于设备上的所有内部RIM证书(成功RIM证书和失败RIM证书)进行重复1132。该行动保证了在证书内具有的RIM保护计数器值在RIM保护计数器增值1146之前而增值,否则如果计数器首先增值,然后在重装过程完成之前发生系统失败,则设备可能陷入不能引导的状态。一旦所有的现有内部RIM证书已经被更新,从MTM请求当前RIM保护计数器值1134,并且返回该值1136。通过使用一个大于在1134获取的RIM保护计数器值的值和在1128所提供来自可选部件更新结构的状态标志来建立新的可选部件控制表1138。向MTM1102做出请求,以利用根据在图9示出的方法生成的签名密钥来对数据进行签名1140。MTM1102返回签名1142,因此设备存储1144该新的可选部件控制表,从而重写了先前的表。
为了保护以防反转或重刷新攻击,设备请求MTM1102对RIM保护单调计数器1146进行增值,并且MTM1102对操作的成功进行确认1148。现在所有在设备上的与可选部件相关联的信息都已经被成功地更新了,即所述信息为可选部件控制结构408、适当的成功RIM证书402和失败RIM证书404和counterRIMProtect单调计数器,设备通知服务器:过程完成1150。最后,设备重新引导1152,以保证新启用的部件运转并且禁用的部件停止运行。
如上文描述地,图8到图11示出了优选实施例,其中可选部件控制表408包含RIMProtectValure802和加密签名812。然而,在下文描述用于维持可选部件的启用或禁用状态的另一个优选实施例。
图12示出了在可选部件控制表1200(先前描述的可选部件控制表808的简化版本)中的该数据的优选实施例。可选部件控制表1200为第一映射的示例。如上文描述地,在每行存在具有两个域的表;首先为可选可信部件逻辑证书标签804,其使用与在ID到证书的映射表508中的逻辑证书标签600相同的部件标识符。接下来为指示由逻辑证书标签识别的可选可信部件是否被启用的标志806,如果该可选可信部件被启用,则该标志被设置为TRUE,或者如果该可选可信部件被禁用,则该标志被设置为FALSE。该对值对于在系统中的每个可选可信部件进行重复,并且该表以-1的逻辑证书标签808和对于禁用通常被设置为FALSE的标志810而结束。该对值的组共同被称为逻辑证书标签表814。
图13示出了可选部件控制RIM证书1300的优选实施例,该可选部件控制RIM证书1300被用于维持可选部件控制表1200的完整性。该RIM证书在设备内建立,因此其总是为例如由TCG移动可信模块规范定义的内部RIM证书。在单个设备内,仅有一个这样的证书,因此标签1302为固定的字符串;在优选的实施例中,其被设置为“OCC_RIMC”。在优选的实施例中,RIMProtectValue802被用于保护以防反转或重刷新攻击,但是在此使用referenceCounter1304。如由TCG移动可信模块规范所定义地,该域由MTM进行管理。因为该RIM证书从未被传送到MTM APIMTM_VerifyRIMCertAndExtend,设置状态1306,以使TPM_PCR_SELECTION为空,并且measurementPCRIndex1308被设置为0值。measurementValue1310存储了可选部件控制表1200的散列,在这个优选实施例中使用SHA-1算法来生成该值。不需要对该散列进行签名。域extensionDigestSize1312被设置为零,并且extensionDigest1314不存在。在另一个优选的实施例中,代替域被设置为零的measurementValue1310中存储散列,而是extensionDigest1314存储可选部件控制表1200的散列,并且extensionDigestSize1312以字节保持该散列的大小。最后,integrityCheckSize1316和integrityCheck1318存储如由TCG移动可信模块规范定义的完整性校验信息。
图14示出了根据本发明对可选部件控制表的初始建立。如在对于原始引导的TCG移动可信模块规范中所详述地,一旦MTM102已经初始启动,所示出的过程将在设备的恰好第一次引导时发生。再如那个文献中所详述地,原始引导可以发生在移动设备的生命周期的其它时间,因此图14还示出了根据要求对该结构的重建。首先,在原始引导顺序已经执行了充分的初始化以构建并初始化MTM和可信根之后,利用校验1400观察是否存在现有的可选部件控制表1200。如果存在一个1402,那么计算该结构的散列1404,并且对可选部件控制RIM证书1300进行再调用1406。如果再调用成功并且存储在measurementValue1310中的散列值等于在1404计算的散列值,并且MTM_VerifyRIMCert返回TPM_SUCCESS以确认该结构是当前的并且还未被篡改1408,原始引导程序以如在TCG移动参考架构内指定的其它过程1402来继续进行。如果在1402或1408处的校验失败了,那么对可选部件控制表1200和可选部件控制RIM证书1300进行重建,或者进行恰好第一次建立。首先,对默认可选部件控制表1200进行建立1410,并且对该结构的散列进行计算1412。接下来,对未签名的可选部件控制RIM证书1300进行建立1414,将measurementValue1310设置为在1412计算的散列值。通过利用该未签名的证书调用MTM API MTM_InstallRIM 1416,MTM将其用作模板,以通过将当前的counterRIMProctect值插入到referenceCounter1304域并且使用如在TCG移动可信模块规范中描述的内部私钥生成integrityCheckData1318,来建立有效的内部RIM证书。将这两个新的结构进行存储1418,并且原始引导程序以如在TCG移动参考架构中指定的其它过程来继续进行1420。
图15示出了根据本发明如在TCG移动参考架构的第6.3.4.5节中描述的,对于RIM撤销的任务所需的附加过程。该规范描述了如何验证RIM_Auth,对RIM_Cert有效性列表进行校验,并且对在该新的有效性列表上的不具有对应的外部RIM_Cert的所有内部RIM_Cert进行删除,对所有剩余的内部RIM_Cert进行重新生效,并且对counterRIMProctect单调计数器进行更新。在图15示出的过程增加了对所有剩余的内部RIM_Cert进行重新生效和对counterRIMProctect单调计数器进行更新的步骤。首先,对可选部件控制表1200进行获取1500,对结构的散列进行计算1502并且对可选部件控制RIM证书1300进行再调用1504。如果再调用不成功,或者存储在measurementValue1310中的散列值并不等于在1502计算的散列值,或者MTM_VerifyRIMCert返回除了表示结构为非当前或已经被篡改的TPM_SUCCESS之外的值1506,那么RIM撤销过程失败1508,并且将不会对安装的程序或RIM证书做出改变。
如果在另一方面,校验表示可选部件控制表1200有效,那么通过利用在1504获取的现有证书来调用MTM API MTM_InstallRIM 1510,MTM使用其作为模板,以利用插入referenceCounter1304域的增加的counterRIMProctect值来建立新的内部RIM证书,并且然后通过使用如在TCG移动可信模块规范中描述的内部私钥来生成intergrityCheckData1318。
接下来,执行如在TCG移动参考架构规范中描述的任务:利用增加的RIMProtect计数器值对现有的内部RIM证书进行重新生效1512,然后增加counterRIMProtect单调计数器1514以保护可信部件RIM证书和可选部件控制RIM证书1300以防反转或重刷新攻击。最后,如在TCG移动参考架构规范中描述地,执行剩余的撤销功能。
图16示出了对在移动设备1600和控制可选部件的启用和禁用的服务器1604之间的通信进行处理。此外,还描述了由移动设备1600从在设备1600上的移动可信模块1602请求的服务。
首先,1606用户请求存储在服务器上的契约维持选项。在优选的实施例中,这是通过建立与服务器的SSL(安全套接层)会话来执行的。然后,服务器执行如在TCG规范架构综述中定义的与设备的认证1608,从而验证设备的身份和信用。设备将请求转发到MTM1610以使MTM能够报告给服务器。从MTM1602通过设备1612将确认消息返回到服务器1614。在认证成功完成之后,客户通过在优选的实施例中使用Diffie-Hellman密钥交换建立与服务器共享的秘密1616、1618。接下来,服务器传送适于所识别的手机的定制可选部件状态页面1620。在优选的实施例中,这是一种设备用户与1622交互以选择哪些选项加入设备或从设备上去除的基于HTML的页面。在做出所要求的改变之后,设备发送包括每个可选部件的新的启用或禁用的状态的消息,以示出交互完成了1624。在优选的实施例中,这由到HTTPS页面的POST来执行,所述到HTTPS页面的POST在先前传送的定制选项页面1160内描述了。在另一个优选实施例中,设备对于由设备用户做出的每个改变发送单独的消息。在另一个优选实施例中,设备通过使用基于AJAX的机制在每个改变做出之后发送单独的消息,并且用户选择一旦结束则发送完成消息的选项。服务器适当地更新其客户的数据库,并且将新的一组利用在1616和1618建立的密钥进行编码的更新后的可选部件状态标志1626发送到设备。这些步骤对应在图18中标注为1814、1816、1818、1820和1822的项。在优选的实施例中,数据与逻辑证书标签表814具有类似的格式,具有多对逻辑证书标签804和启用标志806,并且由值为-1的808和FALSE810的对结束。这在图17中示出了,其中如上文所述,可选部件更新表1700包含逻辑证书标签表814,以及该表的散列1702,以保证数据在传输期间不被损坏。设备对可选部件更新结构1628进行解码和验证,并且如果解码和验证成功,则开始选项的过程以保证启用和禁用的部件被正确地配置。
接下来的任务是对于设备来将每个RIM证书1630进行重装,这一重装对于存在于设备1632上的所有内部RIM证书(成功RIM证书和失败RIM证书)进行重复。该行动保证了,在证书内具有的RIM保护计数器值在RIM保护计数器增值1646之前而增值,否则如果计数器首先增值,然后在重装过程完成之前发生系统失败,则设备可能陷入不能引导的状态。一旦所有的现有内部RIM证书已经被更新,通过使用来自在1628提供的可选部件更新结构的状态标志,来对新的可选部件控制表1200进行建立,并且对该表的散列进行计算1636。接下来,利用被设置为在1636处计算的散列值的measurementValue1310,来对未签名的可选部件控制RIM证书1300进行建立1638。通过利用该未签名的证书对MTM API MTM_InstallRIM1640进行调用,MTM将其用作模板,以通过将当前的counterRIMProtect值插入referenceCounter1304域中并且使用如在TCG移动可信模块规范中描述的内部私钥生成intergrityCheckData1318,来建立有效的内部RIM证书,并且MTM将签名结构返回到移动设备1642,并存储该新的结构1644。
为了保护以防反转或重刷新攻击,设备请求MTM 1602对RIM保护单调计数器1646进行增值,并且MTM 1602对操作的成功进行确认1648。现在所有在设备上与可选部件相关联的信息都已经被成功地更新,即所述为可选部件控制结构408、适当的成功RIM证书402和失败RIM证书404和counterRIMProtect单调计数器,设备通知服务器:过程完成1650。最后,设备重新引导1652,以保证新启用的部件运转并且禁用的部件停止运行。
图18示出了本发明的另一个方面,即允许设备用户对在他们的设备上被启用或禁用的可选部件进行维持的服务器316的结构。关键功能元件和数据项如下。秘密生成器1802、页面生成器1808、选项处理器1816、加密器1820和交易执行器(transaction commiter)1826这五个方块为到外部设备的接口点,并且这个五个方块具有从左到右的通信流。首先秘密生成器1802通过使用诸如Diffe-Hellman的双向通信协议1800来建立共享密钥1804。接下来,移动设备请求契约维持网页1806,因此页面生成器1808建立一个从客户选项维持器1810请求当前可选部件状态的页面,该客户选项维持器1810询问客户选项数据库1812以找到该当前状态。在设备用户结束与生成的网页的交互之后,完成消息被发送到服务器1814,并且选项处理器1816将通知客户选项维持器1810新的选项,开始在客户选项数据库1812内的交易。该选项被传送给可选部件控制表生成器1818,所述生成器1818将选项格式化到可选部件更新表1700中。加密器1820利用共享的密钥1804对该结构进行加密,并且将该结构返回到移动设备1822。最后,在移动设备结束对所有的内部结构的更新之后,由交易执行器1826接收完成消息1824,该完成消息1824通知客户选项维持器1810:在客户选项数据库1812内的未解决交易将被执行。
前述的图已经描述了如何管理可选部件控制表;接下来的部分将描述如何在多路径安全引导期间使用可选部件控制表。
图19基于现有技术的图1示出了本发明。该图捕获了在核心部件(诸如可信区域100内的RTV+RTM和MTM接口)已自验证之后的某一时刻的安全引导过程的状态。MTM 102是该可信区域100的核心,但是在该可信区域100内的其它关键项为:部件错误状态1900,其标志着指示在安全引导中的每个部件是否已启动并且正确地操作;部件错误记录器1902,其针对适当的部件设置部件错误状态1900;启动器108,其负责启动被添加到可信区域100的下个部件;证书查找器1904,其根据标签到证书映射表1908、可选部件控制表1910和部件错误状态1900来查找所要求的成功RIM证书114或失败RIM证书1906。证书查找器1904为查找单元的示例。启动器108为在执行可信部件1116的情况下的计算单元、验证单元、更新单元和执行单元的示例。证书查找器1904还是在执行后的部件(例如,可信部件1116成功地执行)执行下个部件的情况下的计算单元、验证单元、更新单元和执行单元的示例。标签到证书映射表1908为第二映射的示例。可选部件控制表1910为第一映射的示例。失败RIM证书1906描述了在一个或多个部件未能正确操作的情况下,安全引导期间所期望的平台状态。可选部件控制表1910包含由逻辑证书标签表814描述并存储在完整性保护的容器(如图8和图12中所示出的)中的数据。换言之,作为第二映射的示例的标签到证书映射表1908以及作为第一映射的示例的可选部件控制表1910是由提供单元提供的(或者存储在存储单元中,未示出)。
失败定序器1918使用下个部件表1912和部件错误状态1900来选择接下来启动哪个部件,在图24中将对其进行详细描述。失败定序器1918为在部件的执行失败的情况下的计算单元、验证单元、更新单元和执行单元的示例。这些RIM证书114和1906、下个部件表1912、可选部件控制表1910、以及标签到证书映射表1908应当被完整性保护,因此被放置在完整性保护112的数据项的组中。下个部件表1912为第三映射的示例。应当注意的是,正如图1,完整性保护是数据的内在属性而不是外在属性。还应当注意的是,成功RIM证书114和失败RIM证书1906的格式是相同的;关键的区别在于根据ID到证书映射表1908而分配给它们的角色;除了基于该表之外,无法在这两者之间进行区分,并且确实不需要做出这样的区分。
具有可选部件的安全引导的目的是扩大可信区域100,以包含(如果可能)所有附加部件(可信部件1 116、可信部件2 118和可信部件3 120),但是如果任何部件启动失败,则可信区域100将不扩展到覆盖它们。从启动器108通往可信部件1 116、可信部件2 118和可信部件3 120的虚线(被标记为122、124和126)指示根据现有技术的一个方面的正常执行路径。根据现有技术的另一方面,在操作系统(未示出)作为最后的可信部件的情况下,可能存在另外的可信部件。从可信部件1 116到失败定序器1 918然后到可信部件3 120的较粗的线(被标记为1914和1916)指示根据本发明的一个方面,如果可信部件2 118启动失败或者在可选部件控制表1 919中被标注为禁用,则替换的执行路径是可用的。
图20示出了由本发明所致的新的安全引导结果。可用的部件是如图2中所描述的,并且期望的成功结果208必然是一个有效结果。然而,替换了失败条件212,新的流程2000能够跳过失败的或禁用的可信部件4 200,并且继续用可信部件5 202来产生运行的但具有有限能力的可信区域2002。类似地,流程2004示出了在可信部件2 118和可信部件5 202两者均未能正确操作或者在可信部件控制表1910内被标注为禁用的情况下,产生另一运行的但具有有限能力的可信区域2006。在可信区域框图208、2002和2006中,TC1表示可信部件1 116,TC2表示可信部件2 118,TC3表示可信部件3 120,TC4表示可信部件4 200,TC5表示可信部件5 202,并且OS表示操作系统204。所有部件依赖于MTM 102,此外可信部件2 118依赖于可信部件1 116,并且可信部件4 200和可信部件5 202依赖于可信部件3120。操作系统204依赖于可信部件1 116和可信部件3 120。阴影部分表示不能使用的部件。
图21A到图24示出了根据本发明,在安全引导系统的关键部分之间的控制流程序列。根据本发明的安全引导系统执行一种方法,该方法执行根据完整性测量执行可验证的软件部件。首先,在根据现有技术的图21A中,系统开始通电2100,然后继续执行系统的基本引导2102,对RTV、RTM、MTM等进行初始化2104,请求用于可信区域自验证的RIM证书2108,并且如果没发现,则已经存在严重错误,因此所有设备能做的就是进入失败状态2132。如果发现2110,则通过对RIM证书内指定的PCR的子集进行连接,来将RIM证书扩展到MTM 2112中。如果扩展操作失败2114,则已经存在严重错误,因此所有设备能够做的就是进入失败状态2132。否则,需要对关键数据表的完整性进行验证。对于下个部件表1912和标签到证书映射表1908,因为它们受到RIM证书500的extensionDigest域504的保护,则可以对该散列的有效性进行检查,然后MTM APIMTM_VerifyRIMCert用于对RIM证书500本身的完整性进行验证2116。对于可选部件控制表1910,由于该表的两个实施例需要不同验证过程,因此在图21B和图21C中描述了验证过程2118。如果验证操作中的任何一个失败2120,则已经存在严重错误,因此所有设备能够做的就是进入失败状态2132。本领域的一个普通技术人员应明白,存在该验证过程可能的其它实施方式,诸如在每次使用下面的序列中的表之前执行验证。
接下来,请求用于可信部件1的验证的RIM证书2122,以获得描述可信部件1 116的所期望的当前状态和所期望的状态的RIM证书。换言之,第一映射(可选部件控制表408或1200)查找识别软件部件(可信部件1 116)的给定的逻辑标识符,以得到指示该软件部件是否启用的状态标志。然后,针对识别软件部件的验证证书的给定的逻辑标识符以及先前部件的状态来对第二映射(ID到证书映射表508)进行查找,以得到完整性测量证书(RIM证书)2126。如果未返回该RIM证书2124,CPU将利用指示获取可信部件1的RIM证书有错误的指示符来将控制传递给失败定序器2134,以允许失败定序器来处理该错误。换言之,如果该部件未启用,则失败定序器处理该错误。在下文的图24中描述了该过程。失败的一个可能的原因是,当在2122中请求RIM证书时,证书查找过程1904涉及可选部件控制表1910,并且应注意的是,对应于所请求的RIM证书的部件被禁用,因此其返回明显的错误代码以指示所请求的RIM证书对应于禁用的部件。
该可信部件计算其散列值2126,并且存在对所计算出的值是否等于在RIM证书中存储的值的校验2128。换言之,对要执行的软件部件(可信部件1116)的校验值(散列值)进行计算2126。接下来,验证2128以下方面:完整性测量匹配完整性测量证书内的完整性测量值;以及,所计算出的校验值匹配完整性测量证书(所请求的RIM证书)内的校验值。如果所述散列值不相等,则其指示所述部件存在诸如意外或故意损坏之类的问题。然后,CPU将利用指示存在针对可信部件1的散列错误的指示符来将控制传递给失败定序器2136,以允许失败定序器来处理该错误。换言之,如果验证未成功,则失败定序器处理该错误。下面在图24中描述该过程。如果所述散列值相等,那么部件错误记录器记录:对该部件进行的散列校验成功2130。过程继续到图22。
图21B示出了当可选部件控制表的实施例如图8中所示时,用于验证可选部件控制表1910有效的验证可选部件控制表2118步骤的细节。首先,获取用于验证可选部件控制表上的签名的密钥的公共部分。如果未发现该密钥2152,那么错误已经发生,则将错误代码返回到调用过程2154。如果密钥存在,则接下来获取可选部件控制表2156。如果其不存在2158,则错误已经发生,将错误代码返回到调用过程2154。现在,获取counterRIMProtect单调计数器值2160,并且对可选部件控制表进行验证2162。这包括校验所计算的签名是否与所存储的签名匹配以检测篡改,以及校验所存储的RIMProtectValue802是大于还是等于所再调用的单调计数器值。如果其失败2164,那么已经发生错误,则将错误代码返回到调用过程2154。如果其成功,那么可选部件控制表是有效的,并且将成功代码返回到调用过程2166,并且安全引导过程如在图21A中描述的继续进行。
图21C示出了当可选部件控制表的实施例如图12和图13中所示时,用于验证可选部件控制表1910有效的验证可选部件控制表2118步骤的细节。首先,获取保护可选部件控制表的RIM证书2170。如果其未被发现2172,那么错误已经发生,则将错误代码返回到调用过程2174。接下来,获取可选部件控制表2176。如果其不存在2178,那么错误已经发生,则将错误代码返回到调用过程2174。否则,对可选部件控制表1200的散列进行计算2180,并且将结果与存储在可选部件控制表的RIM证书内的参考散列值进行比较2182。如果它们不匹配2184,那么已经发生错误,则将错误代码返回到调用过程2174。接下来,请求MTM以执行可选部件控制表的RIM证书上MTM的API MTM_VerifyRIMCert 2186,以确保证书本身是有效的。如果该API返回错误代码2188,那么已经发生错误,则将错误代码返回到调用过程2174。如果其成功,则可选部件控制表是有效的,并且将成功代码返回到调用过程2190,并且安全引导过程如图21A中描述地继续进行。
图22示出了安全引导序列的进一步处理。根据现有技术,通过将该RIM证书中定义的值附加到该RIM证书中定义的PCR中,来将先前得到的RIM证书扩展到MTM 2200中。换言之,如果状态标志指示该软件部件被启用并且校验2128成功,则将当前完整性测量更新2200为包括完整性测量证书内的校验值的指示。对扩展操作的结果进行校验2202,以判断该扩展是否正确工作。如果为否,则CPU将控制传递给失败定序器2204,以允许失败定序器处理该错误。在下面的图24中描述该过程。如果正确地扩展了该散列值,则其指示该部件可以被可信区域完全信任,因此可信部件1启动2206,并且将控制传递给该新的部件。换言之,如果软件部件启动并且验证成功,则执行该软件部件2206。
第一过程针对要初始化的可信部件2208,该第一过程执行部件和该部件可以控制的任何硬件等所要求的初始化。该部件自校验其已经成功地初始化2210,并且如果存在错误,则该可信部件将利用指示当前可信部件未能初始化的错误代码来将控制传递给失败定序器2212,以允许失败定序器处理该错误。下面在图24中描述该过程。如果不存在错误,则该部件错误记录器2214记录该部件的初始化成功。接下来,该可信部件请求用于自验证的RIM证书2216,以得到对所期望的当前状态和扩展到给定的PCR中的给定值进行描述的RIM证书。如果未找到所请求的RIM证书2217,则该可信部件将利用指示当前可信部件未能初始化的错误代码来将控制传递给失败定序器2212,以允许失败定序器处理该错误。下面在图24中描述该过程。否则,根据现有技术,将RIM证书扩展2218到MTM中,并且对扩展操作的成功或其它方面进行校验2220。如果扩展操作失败,则可信部件将利用指示当前可信部件未能自验证的错误代码来将控制传递给失败定序器2222,以允许该失败定序器处理该错误。下面在图24中描述该过程。如果正确地扩展所述值,则当前可信部件根据要求继续执行其它任务2224。过程继续到图23。
图23示出了安全引导序列的进一步处理。首先,进行校验以判断是否还有要加载的可信部件2300,并且如果没有,则已经成功地完成安全引导2302。应当注意的是,在该实施例中,如果可选部件的验证已经失败,则该可选部件未被引导。因此,在步骤2302中,即使安全引导已经成功地完成,但是一些可选部件可能未被引导。在一个实施例中,这不是实际的校验;在一个操作系统的实施例中,实施加载序列中的最后一个部件,以使其在完成其被定义成执行的其它任务2224之后,不寻找另一部件。如果存在要启动的其它部件,则请求用于下个可信部件的验证的RIM证书2304。在此,所述下个可信部件的含义是接下来应当被引导的可信部件。如果未返回该RIM证书2305,则CPU将利用指示获取下个可信部件的RIM证书的有错误的指示符,来将控制传递给失败定序器2322,以允许失败定序器处理该错误。下面在图24中描述该过程。失败的一个可能的原因是,当在2304中请求该RIM证书时,证书查找过程1904涉及可选部件控制表1910,应注意的是,对应于所请求的RIM证书的部件禁用,因此其返回明显的错误代码,以指示所请求的RIM证书对应于禁用的部件。
在计算下个可信部件的散列中,可信部件以与如RIM证书中所描述的相同的方式计算其散列值2306,然后执行校验2308以判断该计算出的散列值是否等于存储在下个可信部件的RIM证书中的散列值。如果它们不相等,则指示该部件存在诸如意外或故意损坏之类的问题,该可信部件将利用指示下个可信部件的散列没有生效的错误代码来将控制传递给失败定序器2310,以允许该失败定序器处理该错误。下面在图24中描述该过程。如果所述散列值相等,则部件错误记录器记录下个可信部件的散列校验成功2312。接下来,根据现有技术将该RIM证书扩展到MTM中2314,并且对扩展操作的成功或其它方面进行校验2316。如果扩展操作失败,则该可信部件将利用指示将下个可信部件扩展到MTM中失败的错误代码来将控制传递给失败定序器2318,以允许该失败定序器处理该错误。下面在图24中描述该过程。如果相反地正确扩展了所述散列值,则其指示下个可信部件可以由可信区域完全地信任,因此其将被启动2320,并且过程将从步骤2208重复。
图24示出了根据本发明的失败定序器操作。首先,在部件错误状态1900中记录传递进来的错误代码2400。例如,如果状态标志指示软件部件未启用2314,则针对识别软件部件的验证证书的给定的逻辑标识符以及先前部件的状态来对第二映射(ID到证书映射表508)进行查找,以得到禁用的完整性测量证书(失败RIM证书404)。接下来,对当前完整性测量进行更新,以包括存储在禁用的完整性测量证书内的禁用的部件状态的指示。如果验证未成功2136,则针对识别该部件的验证失败证书的给定逻辑标识符以及先前的部件状态对第二映射(ID到证书映射表508)进行查找,以得到失败完整性测量证书(失败RIM证书404)。然后,对当前完整性测量进行更新,以包括存储在失败完整性测量证书内的未成功的完整性测量的指示。
接下来,从部件错误状态1900获取所有当前的部件错误状态2402,然后所述部件错误状态1900被用于查找下个部件表1912,以找到应当启动的下个可信部件2404。换言之,针对识别该部件的给定逻辑标识符和先前的部件状态对第三映射(下个部件表1912)进行查找,以得到要执行的替代的软件部件。进行校验以判断是否存在所定义的下个部件2406,并且如果不存在,则安全引导将进入失败状态2408,并且设备将无法以正常的安全方式启动。如果存在下个可信部件,然后请求下个可信部件验证的RIM证书2410,以得到描述下个可信部件的所期望的当前状态和所期望的状态的失败RIM证书。在此,所述下个可信部件的含义是接下来应当引导的可信部件。如果未返回该RIM证书2411,则CPU将利用指示获取下个可信部件的RIM证书有错误的指示符,来将控制传递到失败定序器的起始处2428,以允许失败定序器处理该错误。如果成功地返回该RIM证书,则下个可信部件计算其散列值2412,并且将所计算出的散列值与在该RIM证书内的散列值进行比较2414。如果它们不相等,则指示该部件存在诸如意外或故意的损坏之类的问题,失败定序器将利用指示下个可信部件的散列未生效的错误代码来将控制传递给失败定序器的起始处2416,以允许该失败定序器处理该错误。如果所述散列值相等,那么部件错误记录器记录下个可信部件的散列校验成功2418。接下来,根据现有技术将该RIM证书扩展到MTM中2420,并且对扩展操作的成功或其它方面进行校验2422。如果该扩展操作失败,则失败定序器将利用指示下个可信部件的扩展未成功的错误代码,来将控制传递回失败定序器的始端2426,以允许该失败定序器处理该错误。如果该散列值成功地扩展,则其指示下个可信部件可以由可信区域完全地信任,因此启动下个附加部件2424,并且根据所指示的,控制流继续进行上面的可信部件初始化2208。
应当注意的是,虽然基于前述的实施例对本发明进行了描述,但是本发明明显并不限于这样的实施例。以下的情况也包括在本发明中。
(1)在虚拟化环境的情况下,在一个实施例中,管理程序为执行的最终可信部件。在另一个实施例中,其它可信部件(诸如操作系统)在管理程序可信部件执行之后执行。
(2)在前述的实施例中,对每个部件的验证在每个部件被启动之前执行。然而,本发明可以被应用到验证在每个部件启动之后执行的系统中。在那样的情况下,如果对该部件的验证失败,则系统停止每个部件。
(3)在前述的实施例中,以与TCG规范类似的方式来执行验证。然而,本发明可以被应用到另一个验证系统,只要该验证系统可以使用如同链一样对部件进行验证的验证方法(即,一个部件验证在该一个部件之后启动的另一个部件),来对系统的部件进行验证。例如将散列值扩展到MTM中可以被省略,这是因为该操作是特定用于TCG规范的。
(4)在前述的实施例中,通过使用证书(RIM证书)中的散列值来执行验证。然而,可以将不使用散列值的另一验证方法应用到本发明。
常见的校验和或者从部件中提取的另外的数据(例如,从部件提取的第一预定位)可以用于执行验证。此外,证书可以被包括完整性校验值的数据组替换。
并且,验证方法并不限于校验从部件中提取的值是否与所期望的值匹配。例如,对该部件的大小进行校验,并且如果该大小比预定量更大或更小,则该部件可以被判断为被验证了。这些验证方法并不如将散列值与其期望的值进行比较那么精确,然而它们执行起来更快。
(5)特别地,每个前述的装置为包括微处理器、ROM、RAM、硬盘单元、显示单元、键盘、鼠标等的计算机系统。计算机程序存储在RAM和硬盘单元中。各自的装置通过根据计算机程序的微处理器的操作来完成它们的功能。此处,通过将指示用于计算机的指令的复数个指令代码进行组合来配置该计算机程序。
(6)可以根据单个LSI(大规模集成电路)系统来对构成各个装置的构成元件中的一部分或全部进行配置。该LSI系统为通过在一个芯片上集成构成单元来制造的超级多功能LSI,并且尤其是通过包括微处理器、ROM、RAM等等配置的计算机系统。计算机程序存储在RAM中。LSI系统通过根据计算机程序的微处理器的操作获取其功能。
此外,配置各个装置的构成元件的每个单元可以被制作成单个芯片,或者包括单个芯片的部分或所有的单独芯片。
此外,在此提及了LSI系统,但是由于集成度的差别所致,存在使用指定IC、LSI、超级LSI和极大LSI的例子。
此外,用于电路集成的手段并不限于LSI,并且利用专用的电路或通用的处理器的实施方式也是可行的。另外,使用在制造LSI之后可编程的现场可编程门阵列(FPGA),以及可重配置的处理器(在其中对LSI内的电路单元的连接和设置可进行重配置)也是可以接受的。
此外,如果替代LSI的集成电路技术在半导体技术或其它派生技术中出现突破性的进步,则该技术可以自然地用于实现构成元件的集成。期望应用生物技术。
(7)构成各自装置的构成元件的部分或全部可以被配置为可以附接到各自的装置或从各自的装置脱离开的IC卡,或可以作为独立的模块。该IC卡或模块是从微处理器、ROM和RAM等配置的计算机系统。该IC卡或模块也可以被包括在上述的超级多功能LSI中。该IC卡或模块通过根据计算机程序的微处理器的操作来实现其功能。该IC卡或模块也可以被实现为防篡改的。
(8)本发明可以是用于通过使用计算机来实现前述方法的计算机程序,并且也可以是包括计算机程序的数字信号。
此外,也可以通过在计算机可读记录介质中存储计算机程序或数字信号来实现本发明,该计算机可读记录介质例如是软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(蓝光光盘)和半导体存储器。此外,本发明也包括在这些记录介质中记录的数字信号。
此外,也可以通过经由电信线、无线或有线通信线、由因特网所代表的网络、以及数据广播等传输上述计算机程序或数字信号来实现本发明。
本发明也可以是计算机系统,该计算机系统包括微处理器和存储器,其中,该存储器存储上述的计算机程序,并且微处理器根据计算机程序来操作。
此外,通过记录到上述的记录介质中来传送程序或数字信号,或通过经由上述网络等来传送程序或数字信号,则使用另外的独立计算机系统的执行也是可能的。
(9)本领域内的技术人员容易理解,在实质上不脱离本发明的新颖教导和优点的情况下,在该示例性实施例中,许多修改是可能的。因此,上述修改和实施例的任意组合被包括在本发明的范围内。
工业应用
本发明可被应用到信息和电信装置以及为其更新程序数据的家用电子装置(例如个人电脑、移动电话、音频播放器、电视机和录像机等)。
附图标记列表
100 可信区域
102 MTM
108 启动器
112、400 完整性保护
114、402 成功RIM证书
116 可信部件1
118 可信部件2
120 可信部件3
404、1906 失败RIM证书
406、1908 标签到证书的映射表
408、1200、1910 可选部件控制表
410 默认可选部件控制表
1900 部件错误状态
1902 部件错误记录器
1904 证书查找
1912 下个部件表
1918 失败定序器

Claims (7)

1.一种用于执行根据完整性测量可验证的软件部件的方法,所述方法包括:
a)提供从逻辑标识符到软件部件启用状态标志的第一映射;
b)提供从所述逻辑标识符和先前的软件部件状态信息到包含验证数据的实际完整性测量证书的第二映射;
c)针对识别所述软件部件的给定逻辑标识符来对所述第一映射进行查找,以得到指示所述软件部件是否启用的状态标志;
d)针对识别所述软件部件的验证证书的给定逻辑标识符和所述先前的部件状态来对所述第二映射进行查找,以得到完整性测量证书;
e)计算要执行的所述软件部件的校验值;
f)对下列各项进行验证:所述完整性测量与所述完整性测量证书内的完整性测量值相匹配,以及所计算出的校验值与所述完整性测量证书内的校验值相匹配;
g)如果所述状态标志指示所述软件部件是启用的并且所述验证是成功的,则对当前完整性测量进行更新,以包括对所述完整性测量证书内的所述校验值的指示;以及
h)如果所述软件部件是启用的并且所述验证是成功的,则执行所述软件部件。
2.根据权利要求1所述的方法,还包括:
a)如果所述部件未启用,则针对识别所述部件的验证失败证书的给定逻辑标识符和所述先前的部件状态来对所述第二映射进行查找,以得到禁用的完整性测量证书;以及
b)对当前完整性测量进行更新,以包括对存储在所述禁用的完整性测量证书内的禁用部件状态的指示。
3.根据权利要求1所述的方法,还包括:
a)如果所述验证是不成功的,则针对识别所述部件的验证失败证书的给定逻辑标识符和所述先前的部件状态来对所述第二映射进行查找,以得到失败的完整性测量证书;以及
b)对当前完整性测量进行更新,以包括对存储在所述失败的完整性测量证书内的不成功的完整性测量的指示。
4.根据权利要求1所述的方法,还包括:
a)如果所述部件是未启用的或者所述验证是不成功的,则提供从逻辑标识符和先前的软件部件状态信息到部件标识符的第三映射;以及
b)针对识别所述部件的给定逻辑标识符和所述先前的部件状态来对所述第三映射进行查找,以得到要被执行的替代软件部件。
5.一种存储执行以下步骤的可执行的计算机软件代码的计算机可读存储介质:
a)提供从逻辑标识符到软件部件启用状态标志的第一映射;
b)提供从所述逻辑标识符和先前的软件部件状态信息到包含验证数据的实际完整性测量证书的第二映射;
c)针对识别所述部件的给定逻辑标识符来对所述第一映射进行查找,以确定所述部件是启用的;以及
d)针对识别所述部件的验证证书的给定逻辑标识符和所述先前的部件状态来对所述第二映射进行查找,以得到完整性测量证书;
e)计算要执行的所述部件的校验值;
f)对下列各项进行验证:所述完整性测量与所述完整性测量证书内的完整性测量值相匹配,以及所计算出的校验值与所述完整性测量证书内的校验值相匹配;
g)如果所述部件是启用的并且如果所述验证是成功的,则对当前完整性测量进行更新,以包括对所述完整性测量证书内的所述校验值的指示;以及
h)如果所述部件是启用的并且所述验证是成功的,则执行所述部件。
6.一种用于执行根据完整性测量可验证的软件部件的集成电路,所述集成电路包括:
a)提供单元,所述提供单元被配置为提供从逻辑标识符到软件部件启用状态标志的第一映射以及从所述逻辑标识符和先前的软件部件状态信息到包含验证数据的实际完整性测量证书的第二映射;
b)查找单元,所述查找单元被配置为针对识别所述部件的给定逻辑标识符来对所述第一映射进行查找,以确定所述部件是启用的,以及针对识别所述部件的验证证书的给定逻辑标识符和所述先前的部件状态来对所述第二映射进行查找,以得到完整性测量证书;
c)计算单元,所述计算单元被配置为计算要执行的所述部件的校验值;
d)验证单元,所述验证单元被配置为对下列各项进行验证:所述完整性测量与所述完整性测量证书内的完整性测量值相匹配,以及所计算出的校验值与所述完整性测量证书内的校验值相匹配;
e)更新单元,所述更新单元被配置为,如果对所述启用状态的确定确定了所述部件要被启用并且所述验证是成功的,则对当前完整性测量进行更新,以包括对所述完整性测量证书内的所述校验值的指示;以及
f)执行单元,所述执行单元被配置为,如果对所述启用状态的确定确定了所述部件要被启用并且所述验证是成功的,则执行所述部件。
7.一种用于执行根据完整性测量可验证的软件部件的装置,所述装置包括:
a)提供单元,所述提供单元被配置为提供从逻辑标识符到软件部件启用状态标志的第一映射以及从所述逻辑标识符和先前的软件部件状态信息到包含验证数据的实际完整性测量证书的第二映射;
b)查找单元,所述查找单元被配置为针对识别所述部件的给定逻辑标识符来对所述第一映射进行查找,以确定所述部件是启用的,以及针对识别所述部件的验证证书的给定逻辑标识符和所述先前的部件状态来对所述第二映射进行查找,以得到完整性测量证书;
c)计算单元,所述计算单元被配置为计算要执行的所述部件的校验值;
d)验证单元,所述验证单元被配置为对下列各项进行验证:所述完整性测量与所述完整性测量证书内的完整性测量值相匹配,以及所计算出的校验值与所述完整性测量证书内的校验值相匹配;
e)更新单元,所述更新单元被配置为,如果对所述启用状态的确定确定了所述部件要被启用并且所述验证是成功的,则对当前完整性测量进行更新,以包括对所述完整性测量证书内的所述校验值的指示;以及
f)执行单元,所述执行单元被配置为,如果对所述启用状态的确定确定了所述部件要被启用并且所述验证是成功的,则执行所述部件。
CN201080023806.2A 2009-07-01 2010-07-01 安全引导方法和安全引导装置 Active CN102449634B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009157363 2009-07-01
JP2009-157363 2009-07-01
PCT/JP2010/004331 WO2011001685A1 (en) 2009-07-01 2010-07-01 Secure boot method and secure boot apparatus

Publications (2)

Publication Number Publication Date
CN102449634A true CN102449634A (zh) 2012-05-09
CN102449634B CN102449634B (zh) 2015-05-27

Family

ID=42727617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080023806.2A Active CN102449634B (zh) 2009-07-01 2010-07-01 安全引导方法和安全引导装置

Country Status (6)

Country Link
US (1) US8892862B2 (zh)
EP (1) EP2449499B1 (zh)
JP (1) JP5530460B2 (zh)
CN (1) CN102449634B (zh)
RU (1) RU2011148523A (zh)
WO (1) WO2011001685A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362416A (zh) * 2018-03-26 2019-10-22 腾讯科技(深圳)有限公司 页面组件加载方法及装置、电子设备、存储介质
CN112231777A (zh) * 2020-12-14 2021-01-15 武汉新芯集成电路制造有限公司 一种单调计数器及其单调计数方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490177B2 (en) * 2011-03-15 2013-07-16 Lenovo (Singapore) Pte. Ltd. Apparatus and method for variable authentication requirements
US9450759B2 (en) 2011-04-05 2016-09-20 Apple Inc. Apparatus and methods for controlling distribution of electronic access clients
KR101897605B1 (ko) * 2012-02-24 2018-09-12 삼성전자 주식회사 휴대 단말기의 무결성 보호 방법 및 장치
US9280359B2 (en) * 2012-12-11 2016-03-08 Cisco Technology, Inc. System and method for selecting a least cost path for performing a network boot in a data center network environment
US9465943B2 (en) * 2013-01-31 2016-10-11 Red Hat, Inc. Extension of a platform configuration register with a known value
US9870474B2 (en) * 2013-04-08 2018-01-16 Insyde Software Corp. Detection of secure variable alteration in a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware
CN104408206A (zh) * 2014-12-23 2015-03-11 许昌学院 分布式支持向量聚类的方法及系统
US10402566B2 (en) * 2016-08-01 2019-09-03 The Aerospace Corporation High assurance configuration security processor (HACSP) for computing devices
US10528765B2 (en) * 2016-09-16 2020-01-07 Intel Corporation Technologies for secure boot provisioning and management of field-programmable gate array images
US10685121B2 (en) * 2017-10-17 2020-06-16 Quanta Computer Inc. Secure environment examination
CN108600201B (zh) * 2018-04-09 2021-11-02 东华大学 一种云存储完整性验证的数据标签的远程安全更换方法
JP7100502B2 (ja) * 2018-06-13 2022-07-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
GB2579034B (en) * 2018-11-15 2021-05-05 Trustonic Ltd Software installation method
US10965551B2 (en) * 2018-11-21 2021-03-30 Microsoft Technology Licensing, Llc Secure count in cloud computing networks
US20230015273A1 (en) * 2019-12-17 2023-01-19 Nippon Telegraph And Telephone Corporation Verification information revising device, verification information revising method, and verification information revising program
FR3118504B1 (fr) * 2020-12-28 2024-05-17 St Microelectronics Rousset Système électronique comprenant plusieurs microprocesseurs
FR3126572B1 (fr) * 2021-08-26 2023-08-25 Stmicroelectronics Grand Ouest Sas Démarrage sécurisé d’une unité de traitement

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001080007A2 (en) * 2000-04-14 2001-10-25 Stratus Technologies International, S.A.R.L. Methods and apparatus for robust startup of a computer system having redundant components
US20040003288A1 (en) * 2002-06-28 2004-01-01 Intel Corporation Trusted platform apparatus, system, and method
US6691225B1 (en) * 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US20060212750A1 (en) * 1999-12-01 2006-09-21 Microsoft Corporation Automated Recovery of Computer Appliances
US20080005806A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Apparatus, network entity and associated methods and computer program products for selectively enabling features subject to digital rights management
CN101300583A (zh) * 2005-09-16 2008-11-05 诺基亚公司 用于可信赖移动电话的简单可伸缩和可配置安全启动

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477648B1 (en) 1997-03-23 2002-11-05 Novell, Inc. Trusted workstation in a networked client/server computing system
US5987605A (en) 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
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
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US20060294595A1 (en) * 2005-06-27 2006-12-28 Check Point Software Technologies Ltd. Component selector
US8261253B2 (en) * 2006-01-25 2012-09-04 The Boeing Company Method for restoring software applications on desktop computers
JP5038396B2 (ja) * 2006-04-21 2012-10-03 インターデイジタル テクノロジー コーポレーション トラステッドコンピューティングの完全性測定の通知を実行する装置および方法
US8082442B2 (en) * 2006-08-10 2011-12-20 Microsoft Corporation Securely sharing applications installed by unprivileged users
JP2008077548A (ja) * 2006-09-25 2008-04-03 Matsushita Electric Ind Co Ltd 移動体通信端末、移動体通信方法、移動体通信プログラム、移動体通信システム
WO2008081801A1 (ja) * 2006-12-27 2008-07-10 Panasonic Corporation 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US20080301672A1 (en) * 2007-05-30 2008-12-04 Google Inc. Installation of a Software Product on a Device with Minimal User Interaction
JP5385148B2 (ja) 2007-10-05 2014-01-08 パナソニック株式会社 セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
JP5085287B2 (ja) 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
US8677108B2 (en) 2008-01-30 2014-03-18 Panasonic Corporation Method for finding next component to be booted based on booting status of current component to continue booting process by using a component look-up table
US8464347B2 (en) * 2008-03-28 2013-06-11 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
US8510544B2 (en) * 2008-06-23 2013-08-13 Panasonic Corporation Starts up of modules of a second module group only when modules of a first group have been started up legitimately
US8032742B2 (en) * 2008-12-05 2011-10-04 Unisys Corporation Dynamic updating of trusted certificates and certificate revocation lists in a computing system
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212750A1 (en) * 1999-12-01 2006-09-21 Microsoft Corporation Automated Recovery of Computer Appliances
WO2001080007A2 (en) * 2000-04-14 2001-10-25 Stratus Technologies International, S.A.R.L. Methods and apparatus for robust startup of a computer system having redundant components
US6691225B1 (en) * 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US20040003288A1 (en) * 2002-06-28 2004-01-01 Intel Corporation Trusted platform apparatus, system, and method
CN101300583A (zh) * 2005-09-16 2008-11-05 诺基亚公司 用于可信赖移动电话的简单可伸缩和可配置安全启动
US20080005806A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Apparatus, network entity and associated methods and computer program products for selectively enabling features subject to digital rights management

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362416A (zh) * 2018-03-26 2019-10-22 腾讯科技(深圳)有限公司 页面组件加载方法及装置、电子设备、存储介质
CN110362416B (zh) * 2018-03-26 2022-03-25 腾讯科技(深圳)有限公司 页面组件加载方法及装置、电子设备、存储介质
CN112231777A (zh) * 2020-12-14 2021-01-15 武汉新芯集成电路制造有限公司 一种单调计数器及其单调计数方法

Also Published As

Publication number Publication date
RU2011148523A (ru) 2013-08-20
US8892862B2 (en) 2014-11-18
CN102449634B (zh) 2015-05-27
EP2449499B1 (en) 2014-11-26
WO2011001685A1 (en) 2011-01-06
EP2449499A1 (en) 2012-05-09
JP5530460B2 (ja) 2014-06-25
US20120102313A1 (en) 2012-04-26
JP2012532358A (ja) 2012-12-13

Similar Documents

Publication Publication Date Title
CN102449634B (zh) 安全引导方法和安全引导装置
US8219827B2 (en) Secure boot with optional components
US8600896B2 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
US8479000B2 (en) Information processing device, authentication system, authentication device, information processing method, information processing program, recording medium, and integrated circuit
JP5411122B2 (ja) 情報処理装置
US10659494B2 (en) Method for implementing online anti-phishing
KR102003850B1 (ko) 단말의 애플리케이션 제공 방법 및 그 단말
CN106650460B (zh) 一种版本校验方法、装置及终端设备
JP2013519929A (ja) 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法
CN101925908B (zh) 可选的部件的安全引导方法、设备和集成电路
CN102246179A (zh) 在安全处理系统的应用空间中使用瞬时pcr来实现信任
CN103679004A (zh) 用于安全地更新计算设备中的固件的方法及系统
US20170109546A1 (en) Securing of the loading of data into a nonvolatile memory of a secure element
CN110326266A (zh) 一种数据处理的方法及装置
CN111382397B (zh) 升级软件包配置方法、软件升级方法、设备及存储装置
CN102282564B (zh) 信息处理设备和信息处理方法
CN102880478B (zh) 软件更新方法
CN102314355A (zh) 电子书阅读器及其升级方法
US20210234686A1 (en) Information processing device, information processing method, and storage medium
CN111417927B (zh) 资源权限处理方法、装置、存储介质及芯片
US20160352522A1 (en) User Terminal For Detecting Forgery Of Application Program Based On Signature Information And Method Of Detecting Forgery Of Application Program Using The Same
CN111143887B (zh) 一种安全控制方法、处理器、集成器件及计算机设备
JP2018173936A (ja) コンピュータ化システムの初期化方法およびコンピュータ化システム
US20200380111A1 (en) Ensuring authenticity of at least one value of a device property
Malangoni Design and development of a smart parking device

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
ASS Succession or assignment of patent right

Owner name: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LT

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20150902

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150902

Address after: Osaka Japan

Patentee after: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT Co.,Ltd.

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co.,Ltd.