CN102656592A - 信息处理设备、信息处理系统、软件例程执行方法和远程认证方法 - Google Patents

信息处理设备、信息处理系统、软件例程执行方法和远程认证方法 Download PDF

Info

Publication number
CN102656592A
CN102656592A CN2011800049402A CN201180004940A CN102656592A CN 102656592 A CN102656592 A CN 102656592A CN 2011800049402 A CN2011800049402 A CN 2011800049402A CN 201180004940 A CN201180004940 A CN 201180004940A CN 102656592 A CN102656592 A CN 102656592A
Authority
CN
China
Prior art keywords
unit
authentication
data
key
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011800049402A
Other languages
English (en)
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 CN102656592A publication Critical patent/CN102656592A/zh
Pending legal-status Critical Current

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

用于保护根据多利益相关者模型的利益相关者引擎内的存储单元的技术以及用于对于支持利益相关者模型的设备的远程认证的协议,该设备提供三个角色的标识的额外证明。

Description

信息处理设备、信息处理系统、软件例程执行方法和远程认证方法
技术领域
本发明涉及查看数据的完整性的信息处理设备、信息处理系统和软件例程执行方法以及在设备之间执行远程认证的远程认证方法。
背景技术
为了保护诸如个人计算机、移动电话等的电子设备,在保持开放性和灵活性的同时,已经建立了可信计算组织(TCG)。可信计算组织聚焦在整体安全解决方案的关键方面的规范,特别是在以下文献中描述的被称为可信平台模块(TPM)的硬件计算机芯片:TPM Main Part 1 Design Principals,Specification Version 1.2,Revision 103(NPL1),其也被公布为ISO/IEC标准11889。可信平台模块是一种硬件设备,除了其他特征之外提供了信息的密码安全存储、在安全环境中执行的一组密码操作和一组完整性度量。
而且,TCG工作组—移动电话工作组(MPWG)已经在TCG MobileReference Architecture version 1.0 12 June 2007(NPL 2)和TCG MobileTrusted Module Specification version 1.0 12 June 2007(NPL 3)中描述了对于以诸如移动电话的设备为目标的TPM的增强,指定了取代硬件TPM的、可以在软件或硬件中实现的移动可信模块(MTM)。
而且,另一个TCG工作组—虚拟平台工作组(VPWG)已经描述了在虚拟平台内可以如何支持TPM。
已经彻底地查看了与移动相关的文献,以保证在设备的整个生命周期中保持可信和安全,因此对于想要实现安全设备的那些人提供了有用的基准。也已经查看了与虚拟化相关的文献以保证在整个虚拟化过程中保持可信和安全,因此对于想要实现可以安全地提供虚拟化的设备的那些人提供了有用的基准。
移动参考架构的一个特征是多利益相关者模型(MSM),它是多个利益方(利益相关者)可以如何各自独立地开发他们自己的移动可信模块和周围服务(这组MTM外加相关联的服务被称为引擎)并且将它们安装到单个设备上的规范。例如,设备制造商具有通过使用其MTM来控制系统内的所有基本硬件以保证可信和安全的引擎。接着,承载者引擎提供了MTM保护的高级连接服务,运营商引擎提供了MTM保护的服务,诸如电子邮件或SNS,并且最后,银行引擎提供了MTM保护的银行服务,诸如安全可信的银行客户端应用。一个引擎可以向第二引擎请求服务,或向第二引擎委派能力。为了实现这样的基于MSM的系统,可以使用虚拟化,并且可以用硬件或用软件在具有其他引擎的MTM的硬件支持的可信环境中来实现基本设备制造商的MTM,该环境例如是ARM的TrustZone或芯片上系统(SoC)解决方案。替代地,引擎的MTM可以在硬件化的操作系统的内核模式中或甚至在由操作系统提供的正常应用执行环境内无虚拟化地运行。
根据在TCG移动参考架构内的推荐,仅应当对于程序代码查看完整性;数据完整性应当基于使用数据的代码,这是因为,如参考架构陈述的,“实际上不可能预先确定什么是“好”数据(并且因此防止对其的改变)或在该事实后确定什么是“差”数据(并且因此触发反应)”。
引用列表
专利文献
PTL 1:美国专利No.7,457,951
非专利文献
NPL 1:TPM Main Part 1 Design Principals,Specification Version 1.2,Revision 103
NPL 2:TCG Mobile Reference Architecture version 1.0 12 June 2007
NPL 3:TCG Mobile Trusted Module Specification version 1.0 12 June2007
发明内容
技术问题
Proudler等的美国专利No 7,457,951(PTL 1)试图通过下述方式来解决上述确定好和差数据的问题:假定数据当被存储在属于可信环境的存储器中时应当不改变,然后在存储介质中的在统计上没有意义的缺陷(所谓的比特衰减,由于使用时间、电尖峰没冲或甚至宇宙射线而引起的随机比特反转的趋势)和有意义的改变之间进行区别,但是该专利未提及如何以除了产生警告显示之外的任何方式来对有意义的但是预期的对于数据的改变进行响应。
然而,对于特定数据,诸如在以软件实现的MTM内存储的平台配置寄存器(PCR),很可能在好和差数据之间区分,这是因为仅一些特定的API可以改变这些PCR,因此好的改变必须仅在这些API的执行期间出现。
因此,所需的是一种用于检验数据存储器的块的完整性的方法,该方法将允许当预期进行改变时改变数据,但是将检测在预期间隔之外的数据改变,使得可以保持数据中的信任。
而且,改变PCR的这些特定API以由API的参数描述的方式进行操作,因此也仅允许在特定API期间的改变,有可能仅允许在特定API期间的预期改变。
进一步所需的是一种用于预测改变API的PCR的结果,使得完整性监控软件可以验证实际上只出现对于PCR的预期改变。
由TCG描述的MTM的另一个重要特征是能够执行远程认证,这是允许第三方挑战者查询由PCR内保持的完整性度量描述的MTM的当前状态的特征。返回的状态与防止重放攻击的随机数组合,并且用MTM保有的密钥签名,并且被第三方认证中心(CA)认证。然而,虽然PCR完整性度量包含关于平台的状态的信息,但是对于远程认证的结果的保密性并不存在保护。
因此,进一步需要的是一种供引擎利益相关者向希望执行远程认证的第三方提供认证加密密钥的手段。也需要一种手段,通过该手段,该认证加密密钥可以独立于其他认证加密密钥地被取消。
在多利益相关者模型以及对于利益相关者的引擎的MTM的认证中,在设备制造商的引擎内的MTM也可能需要被认证以便验证利益相关者的引擎运行的环境。然而,由于这两个引擎是由两个不同的利益相关者提供的,所以需要设备制造商的引擎使挑战者确信所报告的利益相关者的引擎的认证结果是可信的。因此,多利益相关者模型定义了父子关系,其中,父是设备制造商的引擎,并且所有的其他利益相关者的引擎是子。
然后,进一步需要的是一种供挑战者要求父设备制造商的引擎证明挑战者从利益相关者接收的认证结果(只要设备制造商能够验证)是正确的的手段。
而且,在多利益相关者模型中,当挑战者向子利益相关者的引擎请求远程认证之后向父设备制造商的引擎请求远程认证时,父引擎可能不希望返回与在设备上存在的其他利益相关者引擎相关的PCR内的特定完整性值。
因此,进一步需要的是一种供设备制造商的引擎基于挑战者先前向其请求远程认证的子利益相关者,来限制设备制造商的MTM所持有的、返回给挑战者的完整性值的集合。
因此,在本申请中提出了用于通过复引擎在子引擎内实现数据完整性维持和预测的方法、系统和计算机程序产品。而且,在本申请中提出了用于在多利益相关者模型的环境内实现远程认证的方法、系统和计算机程序产品。
问题的解决方案
广义而言,本发明涉及用于保护在计算机可读介质上存储的数据的改进技术。
本发明的一个方面提供的技术用于保护在子可信环境内存储的数据,以便至少通过使得具有更高级的信任和/或安全的父可信环境监控子的数据以查找非预期的改变来防止恶意黑客改变子可信环境所拥有的数据。本发明的另一个方面提供的技术用于暂时禁止这样的数据保护以允许对于被监控的数据的授权或预期更新。本发明的另一个方面提供的技术用于接受这样的预期更新并且重新使能数据监控,使得可以保护更新的数据。
本发明的另一个方面提供的技术用于预测授权或预期更新的结果,以便至少检测恶意黑客同时对被监控的数据执行授权或非预期更新。
本发明的另一个方面提供的技术用于在父可信环境内维持子可信环境内的授权或预期改变的正在进行的累积,以便至少防止恶意黑客将子可信环境复位回先前的状态。
本发明的另一个方面提供的技术供利益相关者指定可以向第三方给出的公共和私有密钥对,以便至少控制哪些第三方被允许执行远程认证。
本发明的另一个方面提供的技术供子可信环境向父可信环境通知它已经与第三方执行了认证,并且供父验证子正确地描述了操作,以便至少提供在子中对父的高度信任。
本发明的另一个方面提供的技术供第三方向父可信环境通知其已经与子可信环境执行的认证,并且供父验证第三方的信息与从子直接地接收的信息一致,以便至少提供在子中对父的高度信任。
本发明的另一个方面提供的技术供父可信环境根据第三方先前已经与之进行认证的子向第三方仅报告PCR数据的子集,以便至少向设备提供高度的隐私控制。
例如,根据本发明的一个方面的一种信息处理设备包括:利益相关者引擎,其包括:i)程序存储单元,其被配置为存储可执行的代码;以及ii)数据存储单元,其被配置为在存储器设备内存储要进行完整性校验的数据;以及设备制造商引擎,其包括:i)完整性校验值存储单元,其被配置为存储所述要进行完整性校验的数据的参考完整性校验值;ii)完整性校验单元,其被配置为相对于在所述完整性校验值存储单元中的参考值来校验数据的完整性;iii)完整性校验值计算单元,其被配置为计算数据的完整性校验值;以及iv)失败处理单元,其被配置为当未被禁止时调用错误响应,其中,所述利益相关者引擎进一步包括数据修改单元,所述数据修改单元被配置为修改在所述数据存储单元中存储的数据,并且当从在所述程序存储单元内存储的执行代码接收到修改要进行完整性校验的数据的请求时,所述数据修改单元被配置为:a)禁止所述失败处理单元;b)执行对所述数据存储单元中的数据的请求的修改;c)请求所述完整性校验值计算单元计算所述数据存储单元中的数据的新的完整性校验值;d)在所述完整性校验值存储单元中存储所述新的完整性校验值;并且,e)重新使能所述失败处理单元。
而且,根据本发明的一个方面的一种信息处理设备包括:利益相关者引擎,其包括:i)程序存储单元,其被配置为存储可执行的代码;以及ii)数据存储单元,其被配置为在存储器设备内存储要进行完整性校验的数据;以及设备制造商引擎,其包括:i)完整性校验值存储单元,其被配置为存储所述要进行完整性校验的数据的参考完整性校验值;ii)完整性校验单元,其被配置为相对于在所述完整性校验值存储单元中的参考值来校验所述数据的完整性;iii)完整性校验值计算单元,其被配置为计算数据的完整性校验值;iv)失败处理单元,其被配置为当未被禁止时调用错误响应;以及,v)预测单元,其被配置为预测由数据修改单元进行的操作的结果,其中,所述利益相关者引擎进一步包括所述数据修改单元,所述数据修改单元被配置为修改在所述数据存储单元中存储的数据,并且当从在所述程序存储单元内存储的可执行代码接收到修改要进行完整性校验的数据的请求时,所述数据修改单元被配置为:a)禁止所述失败处理单元;b)请求所述预测单元预测所述请求的结果;c)请求所述完整性校验值计算单元计算所预测的结果的预测的完整性校验值;d)执行对所述数据存储单元中的数据的所请求的修改;e)请求所述完整性校验值计算单元计算要进行完整性校验的数据的新的完整性校验值;f)在所述新的完整性校验值不等于所预测的完整性校验值的情况下,请求所述失败处理单元记录错误;g)请求所述完整性校验单元使用新的完整性校验值来更新所存储的完整性校验值;并且,h)重新使能所述失败处理单元。
而且,根据本发明的一个方面的一种信息处理系统包括:密钥发布设备,其包括密钥发布单元,所述密钥发布单元被配置为发布认证密钥;挑战者设备,其包括挑战者单元,所述挑战者单元被配置为发布远程认证挑战;以及认证设备,其包括认证单元,所述认证单元被配置为响应于挑战,其中:a)所述密钥发布单元被配置为向所述挑战者发布认证密钥,b)所述挑战者单元被配置为使用所述认证密钥的公开部分来向所述认证单元发布挑战,c)所述认证单元被配置为基于所述挑战者的挑战来执行认证,并且d)所述认证单元被配置为向所述挑战者返回使用所述认证密钥的公开部分加密的认证结果。
而且,根据本发明的一个方面的一种信息处理系统包括:密钥发布设备,其包括密钥发布单元,所述密钥发布单元被配置为发布认证密钥;挑战者设备,其包括挑战者单元,所述挑战者单元被配置为发布远程认证挑战;以及认证设备,其包括第一认证单元,所述第一认证单元被配置为对挑战进行响应,其中,所述认证设备进一步包括第二认证单元,所述第二认证单元被配置为对挑战进行响应,所述认证设备进一步包括连接器单元,所述连接器单元被配置为允许所述第一认证单元与所述第二认证单元进行通信,a)所述密钥发布单元被配置为向所述挑战者发布认证密钥;b)所述挑战者单元被配置为使用所述认证密钥的公开部分来向所述第一认证单元发布挑战;c)所述第一认证单元被配置为基于所述挑战者的挑战来执行第一认证;d)所述第一认证单元被配置为向所述挑战者返回使用所述认证密钥的公开部分加密的第一认证结果;e)所述连接器单元被配置为从所述第一认证单元向所述第二认证单元发送所述第一认证结果;f)所述挑战者单元被配置为向所述第二认证单元发布挑战;g)所述第二认证单元被配置为基于所述挑战者的挑战和通过所述连接器单元传送的所述第一认证结果来执行第二认证;以及h)所述第二认证单元被配置为向所述挑战者返回第二认证结果。
而且,根据本发明的另一个方面的一种用于执行软件例程的方法是用于执行可以改变被完整性校验的数据的软件例程的方法,所述方法包括:a)提供完整性校验单元,所述完整性校验单元使用比所述软件例程高的特权来操作;b)提供参考完整性校验值,所述参考完整性校验值描述了所述被完整性校验的数据的有效完整性值;c)提供失败处理单元,在所述参考完整性校验值不等于计算的完整性校验值的情况下,所述完整性校验单元调用所述失败处理单元;d)禁止所述失败处理单元;e)执行所述软件例程;f)计算所述被完整性校验的数据的新的完整性校验值;g)使用所述新的完整性校验值来更新所述参考完整性校验值;以及,h)重新使能所述失败处理单元。
而且,根据本发明的另一个方面的一种用于执行软件例程的方法是用于执行可以改变被完整性校验的数据的软件例程的方法,所述方法包括:a)提供完整性校验单元,所述完整性校验单元使用比所述软件例程高的特权来操作;b)提供参考完整性校验值,所述参考完整性校验值描述了所述被完整性校验的数据的有效完整性值;c)提供失败处理单元,在所述参考完整性校验值不等于计算的完整性校验值的情况下,所述完整性校验单元调用所述失败处理单元;d)禁止所述失败处理单元;f)计算所述软件例程的预测结果;h)计算所述预测结果的预测的完整性校验值;g)执行所述软件例程;h)计算所述被完整性校验的数据的新的完整性校验值;i)在所述新的完整性校验值不等于所述预测的完整性校验值的情况下,调用所述失败处理单元;j)使用所述预测的完整性校验值来更新所述参考完整性校验值;以及k)重新使能所述失败处理单元。
而且,根据本发明的另一个方面的一种用于执行远程认证的方法是用于在挑战者设备和客户机设备之间执行远程认证的方法,所述方法包括:a)提供能够被所述客户机设备使用的密钥发布设备,其向所述挑战者设备发布认证密钥;b)在所述客户机设备上提供认证单元,其从所述挑战者接收对于认证的请求,所述对于认证的请求中的每一个包括由所述密钥发布设备发布的认证密钥的公开部分;c)通过所述认证单元来执行认证以获得认证结果;d)使用认证密钥的公开部分来加密所述认证结果;并且e)向所述挑战者返回被加密的认证结果。
而且,根据本发明的另一个方面的一种用于执行远程认证的方法是用于在挑战者设备和客户机设备之间执行远程认证的方法,所述方法包括:a)提供能够被所述客户机设备使用的第一密钥发布设备,其向所述挑战者设备发布认证密钥;b)在所述客户机设备上提供第一认证单元,其从所述挑战者接收对于认证的请求,所述对于认证的请求中的每一个包括由所述第一密钥发布设备发布的认证密钥的公开部分;b1)在所述客户机设备上提供第二认证单元,其从所述挑战者接收对于认证的请求;c)提供连接器单元,其允许所述第一认证单元与所述第二认证单元进行通信;d)通过所述第一认证单元来执行认证以获得第一认证结果;e)使用所述第一认证密钥的公开部分来加密所述第一认证结果;f)向所述挑战者返回被加密的第一认证结果;g)使用所述连接器单元从所述第一认证单元向所述第二认证单元发送包含所述第一认证结果的消息;h)通过所述第二认证单元执行认证以获得第二认证结果;并且i)向所述挑战者返回所述第二认证结果。
通过结合附图的下面的详细描述,本发明的其他方面和优点将变得显而易见,附图通过示例的方式示出了本发明的原理。
本发明的有益效果
根据本发明,可以防止对数据的操纵,并且可以保持在数据中的信任。
附图说明
当结合下面的附图考虑下面的优选实施例的详细描述时,可以获得本发明的更好的理解,在附图中:
图1示出了根据现有技术的移动设备。
图2示出了根据本发明的移动设备。
图3示出了根据现有技术的引擎证书。
图4示出了引擎之间的交互的时间线。
图5示出了启动时的行为。
图6示出了子引擎表。
图7示出了在定时器事件上的行为。
图8示出了在API进入时钩子函数的行为。
图9示出了在API退出时钩子函数的行为。
图10示出了替换引擎证书的建立。
图11示出了根据另一个实施例的在定时器事件上的行为。
图12示出了根据另一个实施例的在API退出时钩子函数的行为。
图13示出了根据另一个实施例的子引擎表。
图14示出了根据另一个实施例的在API进入时钩子函数的行为。
图15示出了预测操作的结果。
图16A示出了根据另一个实施例的在定时器事件上的行为。
图16B示出了根据另一个实施例的在定时器事件上的行为。
图17示出了根据另一个实施例的在API退出时钩子函数的行为。
图18示出了替换引擎证书。
图19A示出了根据现有技术的远程认证。
图19B示出了根据现有技术的远程认证。
图20A示出了根据本发明的远程认证。
图20B示出了根据本发明的远程认证。
图21示出了根据现有技术的TPM_VERIFICATION_KEY结构。
图22A示出了装载和验证TPM_VERIFICATION_KEY。
图22B示出了装载和验证TPM_VERIFICATION_KEY。
图23A示出了根据本发明的远程多利益相关者认证。
图23B示出了根据本发明的远程多利益相关者认证。
图24A示出了根据本发明的远程多利益相关者认证。
图24B示出了根据本发明的远程多利益相关者认证。
图25示出了验证报告的引用值。
图26示出了待决的认证表。
图27示出了验证由挑战者发布的子认证结果。
图28示出了去除所使用的子认证结果。
图29示出了子引擎PCR访问表。
图30示出了根据另一个实施例的远程多利益相关者认证制造。
图31示出了根据另一个实施例的远程多利益相关者认证。
具体实施方式
下面描述本发明的优选实施例的细节。
图1示出了当系统包括设备制造商(DM)的引擎和两个利益相关者的引擎时根据TCG移动参考架构的实施例的多利益相关者模型现有技术,其聚焦在完整性校验功能。在多利益相关者模型的一个实施例中,第一利益相关者是移动服务承载者,并且第二利益相关者是移动服务运营商。首先,存在移动设备100,其由下述部件组成。从底部开始有:中央处理单元CPU102;设备制造商的移动可信模块104,其包含被编号为PCR0至PCR31的平台配置寄存器106;以及设备硬件108。接着,存在:包含信任根112的设备制造商引擎110;用于硬件108的硬件驱动器114;以及,由制造商提供以由在系统内的其他部件使用的各种设备制造商服务116。本领域普通技术人员将看到,DM MTM 104和PCR 106可以不必在不同的部件上,而是可以在设备制造商引擎110中以软件或固件来实现。接着,存在DM校验器118,如TCG移动参考架构所描述的,DM校验器118负责不仅监控其自己的引擎内的服务的完整性,而且还监控利益相关者1引擎122和利益相关者2引擎132内的利益相关者校验器124和134的完整性。这些利益相关者校验器124和134分别校验利益相关者1引擎122和利益相关者2引擎132内的部件的完整性。利益相关者校验器的操作与在TCG移动参考架构内所描述的SRMVA的操作相同。如果DM校验器118检测到完整性错误,则存在失败处理器120,其通过采取适当的行为来处理失败,该适当的行为诸如是禁止所有引擎内的所有可信操作或重新引导设备,并且失败处理器的操作与在TCG移动参考架构内所描述的TCG_Reactivbe能力的操作相同。
接着,利益相关者1引擎122包含如上所述的利益相关者校验器124,该利益相关者校验器124校验利益相关者1服务126的完整性。这些服务根据需要与利益相关者的SH MTM1 128对接以向客户机提供可信的服务。应当注意,利益相关者1服务126和SH MTM1 128是被配置为存储可执行代码的程序存储单元的示例。SH MTM1 128具有被编号为PCR0至PCR15的一组PCR 130。应当注意,SH MTM1 128是数据存储单元的示例,其被配置为在存储器设备内存储要进行完整性校验的数据。TCG规范仅描述了单个可信模块内的最小数量的PCR,因此,本发明的实施例针对每一个可信模块可以具有更多或更少的PCR。利益相关者2引擎132具有类似结构的利益相关者校验器134、利益相关者2服务136、SH MTM2 138和PCR0至PCR23 140。虽然将三个引擎110、112和132在图1内示为不同的实体,但是它们的分离可以是纯粹的逻辑划分,或者,它们可以各自在分离的虚拟机内,或者它们可以使用处理分离的基于策略的强制,或者上述或本领域中公知的其他技术的任何组合。与该三个引擎的实现无关,也存在逻辑分级,其中,设备制造商引擎110是更可信的父,并且利益相关者引擎122和132是不太可信的子。应当注意,设备制造商引擎110以比利益相关者引擎122和132更高的特权来运行。换句话说,设备制造商引擎110包括完整性校验单元,该完整性校验单元以比由利益相关者引擎122和132执行的软件例程高的特权来运行。在附图内,虚线箭头的线的使用指示由更可信的部件对不太可信的部件执行的完整性校验。可以异步地执行这些完整性校验。如TCG移动参考架构所定义的,通过下述方式来执行完整性校验:计算要保护的数据的密码散列值,然后将该值与参考值作比较。
图2示出了根据本发明并且基于在图1中所述的现有技术的多利益相关者模型。由DM校验器118与利益相关者校验器124和134支持的现有完整性校验功能被保留,但是另外,父设备制造商引擎110已经增加了引擎校验器200以实现子利益相关者引擎122和132内的另外的数据完整性的维持。根据本发明,以软件实现利益相关者MTM1 128和MTM2 138,并且在非硬件保护的存储器中实现多组PCR 130和140。引擎校验器200异步地监控利益相关者的引擎MTM的PCR 130和140的完整性,使用引擎证书202存储用于检测对于PCR集130和140的非预期改变的完整性参考值,并且如果检测到非预期的改变,则使用失败处理器120来处理失败情况。应当注意,引擎证书202是完整性校验值存储单元的一个示例,该完整性校验值存储单元被配置为存储要进行完整性校验的数据的参考完整性校验值。而且,引擎校验器200是完整性校验单元的示例,该完整性校验单元被配置为相对于完整性校验值存储单元中的参考值来校验数据的完整性。另外,引擎校验器200是完整性校验值计算单元的一个示例,该完整性校验值计算单元被配置为计算数据的完整性校验值。例如,作为完整性校验值计算单元的一个示例的引擎校验器200被配置为计算密码散列值。而且,失败处理器120是被配置为当未被禁止时调用错误响应的失败处理单元的示例。
图3示出了根据现有技术的引擎证书的结构。该引擎证书格式300在格式上与移动电话工作组的RIM证书结构的现有技术相同,但是一些字段被不同地解释。首先,标签302、标志304和rimVersion字段306保留它们的预定义的含义。在优选的实现方式中,所使用的标志字段304是'ShExx_yy',其中,字符'ShE'指示这个证书是利益相关者的引擎的数据证书,'xx'是用于表示特定利益相关者的引擎的数字标识符,并且'yy'是用于表示引擎内的哪个特定数据项正在被保护的数值标识符。rimVersion字段306包含计数器,其在重新引导后以零开始并且每次更新具有给定的标志的新的引擎证书时递增1。referenceCounter 308被定义为保存单调计数器,但是在一个优选实现方式中,这个单调计数器是不需要的;因为单调计数器是共享和有限的资源,所以一种优选实现方式使用用于建立证书的通行的替代方法,因为在系统重启时不必保留该通行。状态字段310被定义为描述预期的PCR状态;这是设备制造商引擎110的状态;在一种优选实现方式中,它描述了包括PCR31或被分配用于防止回滚攻击的其他寄存器的状态。在一种优选实现方式中,measurementPCRIndex字段312保持有值31,该值31用于表示将PCR 31作为使用measurementValue字段314中保持的值的扩展操作的目标。通过设备制造商来选择哪个寄存器用于防止回滚攻击。如在下面的附图中详细所示,在对于由引擎证书202监控的数据进行更新后,所指示的measurementValue 314通过下述方式被扩展到由measurementPCRIndex 312描述的寄存器内:对于设备制造商MTM 104中的适当的PCR 106执行累积散列操作。因此,攻击者不能回滚利益相关者的引擎的状态,然后回滚用于保护它的引擎证书202,这是因为状态字段310将描述错误的measurementPCRIndex 312寄存器的值。这个measurementValue 314在它正在监控的利益相关者的引擎内的数据的代表值,该代表值在一个优选实现方式中是诸如PCR 130或140之类的数据的已知的好密码散列值,并且这个值用于验证被监控数据的完整性是否已经被破坏。如果在设备上存在多个利益相关者引擎,则本领域普通技术人员将认识到,每一个引擎可以被分配独立的PCR以记录其状态。parentID字段316被设置为标记值TPM_VERIFICATION_KEY_ID_INTERNAL,以指示使用在现有技术中描述的内部验证密钥对integrityCheckData字段324进行签名。在一个优选实现方式中,extensionDigestSize字段318是0,因此extensionDigest字段320是0字节长。最后,integrityCheckSize字段322和integrityCheckData字段324包含字段302至320的剩余部分的完整性校验值,如现有技术所描述的。
图4示出了根据本发明的在设备上的事件的示例流。下面提供事件中的每一个的详细描述。该图的左侧指示利益相关者引擎122内的关于利益相关者服务126和利益相关者MTM 128的事件的序列,并且右侧指示设备制造商引擎110内的关于引擎校验器200的事件序列。根据现有技术,在引擎引导400时,存在对于TPM_Startup API的调用402。这执行在现有技术中定义的启动操作404,但是在返回控制前,它调用引擎校验器200中的API,该API请求建立初始引擎证书406。在设备制造商的引擎内的引擎校验器模块建立引擎证书,挂钩到可能改变PCR值的利益相关者的引擎的MTM API内,并且在检测到由引擎证书监控的存储器的完整性校验失败时启动失败处理例程408。在图5中示出了这个处理的细节。然后将控制传回利益相关者服务126。在其他操作出现的同时,存在异步事件产生器,该异步事件产生器调用完整性校验例程,该完整性校验例程验证引擎证书保护的存储器还没有改变,但是如果它检测到所保护的存储器中的改变,则它将失败410,从而调用失败处理器120。
接着,利益相关者服务126希望通过使用适当的参数调用MTM_VerifyRIMCertAndExtend API 412来改变由该利益相关者管理的一组PCR 130内的PCR。在利益相关者MTM可以处理该请求之前,调用先前安装的钩子函数414,并且引擎校验器200禁止失败处理416,使得异步校验不引起PCR改变情况下的失败410。控制被传回利益相关者MTM 128,利益相关者MTM 128执行参数的所需验证和PCR的更新418,并且在将控制返回到调用者前,调用退出钩子420,并且引擎校验器更新引擎证书内报存的散列值,以反映更新的PCR,并且在异步校验424时重新启动失败处理422,然后可以将控制传回调用利益相关者服务126。
接着,为了说明如何处理利益相关者的引擎通过API来改变该利益相关者管理的一组PCR 130内的PCR的失败,利益相关者服务126调用TPM_Extend API 426。在利益相关者MTM可以处理该请求前,预先安装的钩子函数被调用428,并且引擎校验器200禁止失败处理430,使得如果利益相关者的引擎内的PCR 130改变424,则异步校验不会引起失败。控制被传回利益相关者MTM 128,利益相关者MTM 128试图执行TPM_Extend操作,但是失败432。失败通知被传送到退出钩子函数434,因此引擎校验器200仅重新启动失败处理436,这是因为由于被完整性校验的PCR不改变的错误,所以在422处先前产生的引擎证书仍然表示PCR的预期值。最后,控制被传送回利益相关者服务126。
应当注意,利益相关者MTM 128是数据修改单元的一个示例,该数据修改单元被配置为修改在数据存储单元中存储的数据。如上所述,当从在程序存储单元内存储的可执行代码接收修改要进行完整性校验的数据的请求时,数据修改单元被配置为:a)禁止失败处理单元;b)对数据存储单元中的数据执行所请求的修改;c)请求完整性校验值计算单元计算数据存储单元中的数据的新的完整性校验值;d)在完整性校验值存储单元中存储新的完整性校验值;并且,e)重新启动失败处理单元。
图5示出了在TPM_Startup API期间初始化引擎校验器的流程图。在左手侧上是在子利益相关者引擎122中出现的处理,并且在右手侧上是父设备制造商引擎的引擎校验器200内出现的处理,其形成了本发明的一部分。在进入TPM_Startup API 500内后,如现有技术所限定的那样,执行用于MTM启动的过程502。然而,就在该例程返回前,该例程向DM引擎传送由利益相关者管理的PCR 130的存储器地址504。控制被传送到在DM引擎内的引擎校验器200,其中,首先确定进行调用的子利益相关者引擎的标识506。在一种优选实现方式中,调用函数的返回地址用于查找在图6中所示的子引擎表600。根据所选择的用于分离利益相关者引擎122和设备制造商引擎110的方法,设备制造商可能需要使用在本领域中已知的技术来转换进行调用的子的地址和PCR的地址,例如虚拟化环境中将利益相关者虚拟地址位置映射到设备制造商物理地址。在确定了子利益相关者引擎标识的情况下,将PCR存储器地址位置信息添加到508子引擎表600。接着,使用诸如MD4、MD5、SHA1或SHA256之类的算法来计算510在子利益相关者引擎内的PCR的散列值。虽然诸如MD4和MD5的算法易于受到碰撞攻击的影响,但是因为PCR存储器大小是固定大小并且散列值测量的寿命较短,所以这样的攻击的范围是有限的。也不必在优选实现方式中散布散列值,这是因为参考散列值被存储在由HMAC保护的引擎证书内,因此参考散列值不容易被攻击。因此,本领域内的普通技术人员将看到选择高性能的密码散列函数并不折中速度以获得安全性。
下一步步骤是建立用于PCR 512的当前散列值的引擎证书。首先,将标签302设置为TPM_TAG_RIM_CERTIFICATE;将标志304设置为'ShExx_yy',其中将'xx'设置为在子引擎表600中指示的值,并且将'yy'设置为'00'以指示PCR校验证书;将rimVersion 306设置为0;对于referenceCounter 308,将counterSelection 字段设置为MTM_COUNTER_SELECT_NONE;将状态310设置为表示PCR索引和PCR的当前值,如在子引擎表600中针对这个引擎ID所指示的;将measurementValue 314设置为在510中计算的散列值,如果该散列值比该字段大小短,则用0填充;将extensionDigestSize 318设置为0,因此使得extensionDigest字段320空。可以使其余的字段保持为空白,当这个结构被传送到MTM_InstallRIM API内时,MTM_InstallRIM API填充丢失的字段,并且对该结构进行签名。接着,引擎校验器安排引擎证书514的定期校验。参考Watchdog定时器和RIM_Run证书在移动参考架构和TCG移动摘要层文件中描述了用于该校验的安排,因此,在优选实现方式中,引擎校验器使用这样的安排来执行作为低强度背景处理的校验,以避免在处理器需求上的尖峰和其他行为的中断。另外,当特定事件出现时,诸如在读取当前PCR值的任何MTM函数之前,进一步校验引擎证书。接着,引擎校验器挂钩516可能改变PCR值的子利益相关者引擎API 518。需要挂钩的这些API包括TPM_Extend、TPM_PCR_Reset和MTM_VerifyRIMCertAndInstall,并且所安装的钩子在每个API的进入和退出上增加了对引擎校验器的调用。TCG规范的具体实现方式可以具有也需要被挂钩的其他PCR改变函数。最后,引擎校验器通过将处理失败标记610设置为真来使能用于所建立的引擎证书的失败处理520。引擎校验器的初始化现在完成,因此控制返回到利益相关者的引擎,利益相关者的引擎通过返回在启动过程502期间产生的状态代码522来完成TPM_Startup处理。
图6示出了由设备制造商引擎使用的子引擎表。子引擎表600由四列组成。首先,引擎ID字段602包含用于建立用于子的引擎证书的标签302的两个字符代码,因此,对于在表中的第一行,标签302是'ShE01_00'。引擎地址范围604指示已经建立了子引擎的地址范围。在一种优选实现方式中,该地址范围是存储器的单个连续块,但是本领域内的普通技术人员可以看到,可以替代地使用多个不连续块,这可能使得寻址方案更复杂。类似地,引擎PCR地址范围606指示子利益相关者引擎的PCR所位于的地址范围。在一种优选实现方式中,该地址范围是存储器的单个连续块,但是本领域内的普通技术人员可以看到,可以替代地使用多个不连续块,这可能使得寻址方案更复杂,诸如在虚拟化的情况中,可以存储物理地址而不是由子利益相关者引擎本身使用的虚拟地址。DM PCR 608包含将要用于在子的引擎证书内的measurementPcrIndex 312的设备制造商引擎PCR。多个子引擎可以共享设备制造商引擎内的同一PCR,如在DM PCR 608列中所示,其中,引擎ID 01和02都使用PCR 31,但是引擎ID 03使用PCR 30。而且,设备制造商进行关于要使用在设备制造商引擎内的哪个PCR的决定;子引擎不必知道所使用的PCR。处理失败字段610指示完整性失败是否应当调用强制错误响应。该表被设备制造商维持,并且本领域内的普通技术人员可以看到,可以执行表的维持的方式之一是与TCG移动参考架构内针对DM强制引擎列表所述的方式类似的方式,并且可以通过存储表的参考散列值以便每当它被使用时就进行验证来维持表的完整性。
图7示出了用于在引擎校验器内处理定时器事件的流程图。该处理全部在DM引擎引擎校验器模块200内进行,并且当从用于在现有技术中所述的PRMVA的现有定时器事件处理被调用时在700开始。该例程处理在子引擎表600内的每个行702,直到它完成和成功地从事件返回704。下面描述错误处理。如上所述,每个行的引擎证书的名字是根据引擎ID字段602产生的,并且,这个名称用于从RIM证书数据库内查找对应的引擎证书706。RIM证书数据库是设备内的所有RIM证书的储存器,其中,引擎证书是RIM证书的一个子集。TCG移动抽象层描述了用于访问在这个储存器内存储的证书的接口。如果未找到该证书708,则控制被传送到强制错误响应710,并且如在现有技术中所述采取适当的行为。否则,事件处理器确定是否需要校验这个引擎证书712。如在图5中的步骤514中所述,引擎校验器安排由引擎证书514保护的存储器的定期完整性校验,因此每次事件出现时不需要对所有的证书都进行校验。如果不需校验,则校验子引擎表中的下一个条目。如果需要校验,则接着验证引擎证书714。该验证包括校验状态字段310描述了设备制造商的MTM的PCR的当前状态,并且校验integrityCheckData字段324是有效签名。如果存在验证失败716,则控制被传送到强制错误响应710,并且如在现有技术中所述采取适当的行为。接着,使用引擎PCR地址范围606信息来产生子引擎的PCR 718的密码散列值,并且,将结果与引擎证书内的measurementValue字段314作比较720。如果值匹配,则已经确定数据还没有被窜改,因此,处理在子引擎表中的下一个条目702。然而,如果值不匹配,则校验处理失败标记610。如果该标记为真,则该控制被传送到强制错误响应710,并且如在现有技术中所述采取适当的行为。如果为假,则将忽略散列值错误,因此控制被传送回事件处理器的顶部,使得可以处理在子引擎表中的下一个条目702。
图8示出了用于从在516处安装的被挂钩例程的进入点开始处理从子引擎向设备制造商的引擎内的调用的流程图。在进入钩子800后,确定被调用者的地址802。根据一种优选实现方式,调用者的地址是作为参数传入的,但是本领域内的普通技术人员可以看到,诸如检查调用堆栈以确定进入点的其他方法也是可能的。该地址(在虚拟化的环境中,首先将虚拟地址转换为物理地址)用于查找子引擎表的引擎地址范围604字段,以找到地址范围包括调用者的地址的行804。如果未找到匹配806,则控制被传送到强制错误响应808,并且如在现有技术中所述采取适当的行为。否则,将用于该行的处理失败标记610设置为假810,并且控制被传回调用者812以继续PCR改变API的处理。
图9示出了用于从在516处安装的被挂钩例程的退出点开始处理从子引擎向设备制造商的引擎内的调用的流程图。在进入钩子900后,确定调用者的地址902。根据一种优选实现方式,调用者的地址是作为参数传入的,但是本领域内的普通技术人员可以看到,诸如检查调用堆栈以确定进入点的其他方法也是可能的。该地址用于查找子引擎表的引擎地址范围604字段,以找到地址范围包括调用者地址的行904。如果未找到匹配906,则控制被传送到强制错误响应908,并且如在现有技术中所述采取适当的行为。现在,校验来自被挂钩的API的返回代码,以查看API是否成功地改变了任何PCR 910。TCG移动可信模块规范和TCG主部分3文件对于每一个命令描述了所有的可能返回代码,返回代码TPM_SUCCESS指示对于PCR的成功改变,并且,所有其他的代码指示对于PCR没有改变。因此,如果返回代码是TPM_SUCCESS,则子引擎的PCR已经改变,因此调用用于建立子引擎表中的这个条目的替换引擎证书的代码912。在这个调用后,或如果被挂钩的API失败,则当前条目也需要使得处理失败标记被设置为真914,以在如图7中所示的定时器事件期间重新启动错误失败处理。
图10示出了用于建立子引擎表600中的给定条目行的替换引擎证书1000的流程图,提供了图4中的更新引擎证书、重新使能失败处理步骤422的细节。如上所述,根据引擎ID字段602产生每行的引擎证书的名称,并且使用这个名称来从RIM证书数据库内查找对应的引擎证书1002。如果未找到1004证书,则控制被传送到强制错误响应1006,并且如在现有技术中所述采取适当的行为。否则,使用MTM_VeritfyRIMCertAndExtend API将引擎证书扩展到设备制造商的MTM 1008内。如果该操作失败,则控制被传送到强制错误响应1006,并且如在现有技术中所述的采取适当的行为。否则,更新1012引擎证书内的状态字段310,以反映对于由measurementPcrIndex 312指示的PCR的改变。接着,使用引擎PCR地址范围606信息来产生子引擎的PCR的密码散列值1014,并且,并将结果分配给引擎证书内的measurementValue字段314 1016。接着,递增1018引擎证书中的rimVersion字段306以指示引擎证书的新版本,并且,请求设备制造商的MTM使用在现有技术中描述的MTM_InstallRIM API来对新的RIM证书进行签名1020。在RIM证书数据库中使用由TCG移动抽象层描述的API用新生成的引擎证书替换将RAM上的旧的引擎证书1022,然后,通过设置用于当前行的处理失败标记610来重新使能1024失败处理,并且最后,控制被传回调用者1024。
在该系统的另一个优选实施例中,不是在更新引擎证书前等待直到API结束,图11示出了用于在定时器事件1100期间建立替换引擎证书的流程图。这个流程图基于图7,在检测到PCR散列值不匹配后提供改变的功能,但是将处理失败标记610设置为假722。不是忽略错误,而是调用在图10中所示的代码以建立用于子引擎表中的这个条目的替换引擎证书1102。接着,将处理失败标记设置为真1104,因此防止对于PCR的进一步改变,而不是延迟更新直到调用退出钩子函数为止。
图12示出了基于图9中示出的流程图的、用于这个替代实施例的退出钩子函数的流程图。改变PCR的子函数的钩子函数1200中的额外步骤是校验处理失败标记的状态1202。如果将该标记设置为假,则这表示定时器事件还没有运行,因此替换引擎证书912的产生可能需要出现。如果该标记被设置为真,则定时器事件已经运行,并且已经产生新的引擎证书,因此不需要额外的处理。
在该系统的另一个优选实施例中,引擎校验器200通过下述方式来预测被挂钩的API的结果:模拟该API的操作,以便保证仅执行对于由API参数描述的PCR的改变。具体地说,引擎校验器200是被配置为预测数据修改单元的操作的结果的预测单元的一个示例。如上所述的,被挂钩的API包括TPM_Extend、TPM_PCR_Reset和MTM_VerifyRIMCertAndInstall。图13示出了由针对这个实施例设备制造商引擎所使用的子引擎表,其基于图6中所示的表。子引擎表1300由四列组成。首先,引擎ID字段602包含用于建立用于子的引擎证书的标签302的两个字符代码,因此对于表中的第一行,标签302将是'ShE01_00'。引擎地址范围604指示已经建立了子引擎的地址范围。在一个优选实现方式中,地址范围是存储器的单个连续块,但是本领域内的普通技术人员可以看到,可以替换地使用多个不连续块,这可能使得寻址方案更复杂。类似地,引擎PCR地址范围606指示子引擎的PCR所位于的地址范围。在一个优选实现方式中,地址范围是存储器的单个连续块,但是本领域内的普通技术人员可以看到,可以替换地使用多个不连续块,这可能使得寻址方案更复杂。DM PCR 608包含要用于子的引擎证书内的measurementPcrIndex 312的设备制造商引擎PCR。预测的引擎证书字段1302存储预测的引擎证书的名称,或者,如果没有待决的预测则存储空。预测的引擎证书具有与在图3中对于引擎证书所示的格式相同的格式。该表被设备制造商保持,并且本领域内的普通技术人员可以看到,可以执行对表的维持的方式之一与TCG移动参考架构内针对DM强制引擎列表所描述的方式类似,并且可以通过存储表的参考散列值以每当使用它时就进行验证来保持表的完整性。
图14示出了从在516处安装的被挂钩例程的进入点开始处理从子引擎向设备制造商的引擎内的调用的流程图,其是基于图8中所示的处理的。在进入钩子1400后,确定802被调用者的地址。根据一种优选实现方式,调用者的地址是作为参数传入的,但是本领域内的普通技术人员可以看到,诸如检查调用堆栈以确定进入点的其他方法也是可能的。该地址用于查找子引擎表的引擎地址范围604字段,以找到地址范围包括调用者的地址的行804。如果未找到匹配806,则控制被传送到强制错误响应808,并且如在现有技术中所述采取适当的行为。否则,调用1402预测结果函数,并且如果成功,则控制被传回调用者812,以继续PCR改变API的处理。
图15示出了用于预测给定引擎上的给定PCR改变操作的结果的流程图。在进入预测结果函数1500时,搜索1502对应的当前引擎证书。如果未找到它,则控制被传送到强制错误响应1506,并且如在现有技术中所述采取适当的行为。如果找到它,则从设备制造商的MTM 1508读取在引擎证书的状态字段310的pcrSelection子字段内所描述的当前设备制造商PCR。通过下述方式来模拟1510由引擎证书描述的扩展操作:使用值measurementValue 314对由measurementPCRIndex 312描述的复制的PCR索引执行复合散列值计算。PCR拷贝然后将它们的散列值计算和分配1512到状态字段310的digestAtRelease子字段。该新的状态以及新的标志被分配到先前检索的引擎证书的拷贝1514。接着,使用引擎PCR地址范围606字段,建立子的PCR的拷贝1516。在子的PCR的拷贝上模拟1518被传入这个函数内的操作。为了模拟被挂钩函数的操作,查阅根据现有技术的对该操作的描述。例如,根据TCG移动可信模块规范,MTM_VerifyRIMCertAndExtend API通过下述方式转换由作为自变量传入API的RIM证书的measurementPcrIndex字段指示的PCR:对于现有值外加在measurementValue字段内保存的值执行累积散列操作。该变换被应用到在1516处获得的子PCR的拷贝。然后,计算1520产生的PCR的散列值。该新值被分配到复制的引擎证书的measurementValue字段1522,并且将rimVersion字段递增1524。通过使用在设备制造商的MTM内的MTM_InstallRIM API,拷贝引擎证书被加上签名1526,并且这个证书的标志被加到1528子引擎表1300的预测的引擎证书字段1302。最后,在RIM证书数据库中保存新的预测的引擎证书1530,并且该例程完成1532。
如上所述,预测单元被配置为:a)从数据存储单元复制要进行完整性校验的数据,以建立数据的拷贝;并且b)对于数据的拷贝执行由对于预测单元的参数定义的操作。
图16A和图16B示出了用于在引擎校验器内处理定时器事件的流程图。在定时器事件出现1600时,处理按照在图7中描述的处理。然而,用于这个实施例的另外的处理是在计算子引擎的PCR的密码散列值并且然后将其与在引擎证书内的measurementValue字段314作比较720后发生的。在失败时,校验1602预测的引擎证书字段,并且如果它被设置为空,则不存在预测的改变,因此这是非预期的错误,所以控制被传送到强制错误响应710,并且如在现有技术中所述采取适当的行为。否则,检索1604相关的证书。如果该检索未能找到所称的引擎证书1606,则控制被传送到强制错误响应710,并且如在现有技术中所述采取适当的行为。否则,将在718处计算的PCR散列值与在图15中所示的引擎证书内存储的预测散列值作比较1608。如果新的实际散列值不匹配预测的散列值,则控制被传送到强制错误响应710,并且如在现有技术中所述采取适当的行为,否则,预测的改变已经出现,因此控制被传回事件处理器的顶部,使得可以处理702在子引擎表中的下一个条目。
图17示出了用于处理从在516处安装的被挂钩例程的进入点开始从子引擎向设备制造商的引擎内的调用的流程图。在进入钩子1700后,处理初始按照在图9中所述的处理,确定调用者的地址902。根据一种优选实现方式,作为参数来传入调用地址,但是本领域内的普通技术人员可以看到,诸如检查调用堆栈以确定进入点的其他方法也是可能的。该地址用于查找子引擎表的引擎地址范围604字段,以找到地址范围包括调用者的地址的行904。如果未找到匹配906,则控制被传送到强制错误响应908,并且如在现有技术中所述采取适当的行为。接着,校验1702的预测的引擎证书字段1302,并且如果它是空的,则没有预测的引擎证书,所以例程可以返回916。如果存在预测的引擎证书,则校验来自被挂钩的API的返回代码,以看它是否成功910。如果成功了,则子引擎的PCR已经改变,因此调用用于将引擎证书替换为子引擎表中的这个条目的预测引擎证书的代码1704。在这个调用后,或如果被挂钩的API失败,则子引擎表中的当前条目需要将预测的引擎证书字段设置为空1706,以指示预测不再有效。代码可以现在返回到调用者916。
如上所述,当从在程序存储单元内存储的可执行代码接收到用于修改要进行完整性校验的数据的请求时,作为数据修改单元的示例的利益相关者MTM 128被配置为:a)禁止失败处理单元;b)请求预测单元预测该请求的结果;c)请求完整性校验值计算单元计算预测的结果的预测的完整性校验值;d)对数据存储单元中的数据执行所请求的修改;e)请求完整性校验值计算单元计算要进行完整性校验的数据的新的完整性校验值;f)在新的完整性校验值不等于预测的完整性校验值的情况下,请求失败处理单元记录错误;g)请求完整性校验单元使用新的完整性校验值来更新存储的完整性校验值;并且,h)重新启动失败处理单元。
图18示出了用于将引擎证书替换为子引擎表1300中的给定条目行的传入预测引擎证书1800的流程图。如对于图10所描述的,从引擎ID字段602产生每行的引擎证书的名称,并且使用这个名称来从RIM证书数据库内查找对应的引擎证书1002。如果未找到证书1004,则控制被传送到强制错误响应1006,并且如在现有技术中所述采取适当的行为。否则,使用MTM_VeritfyRIMCertAndExtend API将引擎证书扩展到设备制造商的MTM内1008。如果操作失败,则控制被传送到强制错误响应1006,并且如在现有技术中所述采取适当的行为。否则,将传入的预测的引擎证书内的标志字段302设置1802为在1002处检索的引擎证书的标志字段,并且,使用在现有技术中描述的MTM_InstallRIM API请求设备制造商的MTM对更新的预测引擎证书进行签名1804。最后,预测的引擎证书替换RIM证书数据库内的之前的引擎证书1806,并且控制被传回调用者1024。
图19A示出了根据现有技术的远程认证的概述。三个角色是:私有认证中心1902,其负责发出和验证密钥证书;在移动设备上的利益相关者引擎122;以及,挑战者1900,其将向利益相关者引擎122请求认证。在这些角色之间的三个关键交互是:首先,利益相关者引擎122向私有认证中心1902注册它本身产生的AIK证书1950,然后,响应于来自挑战者1900的远程认证请求而返回其使用AIK签名的PCR状态以及通过私有认证中心1902认证的AIK证书1952。最后,挑战者1900使用私有认证中心1902来验证AIK证书1954。
图19B详细示出了根据现有技术的远程认证。四个角色是作为挑战者1900的远程服务、私有认证中心1902、在设备1904上的利益相关者的可信软件堆栈(TSS)或抽象层等和在设备1906上的利益相关者的MTM。TSS是处理如在现有技术中所述的应用和可信模块之间的接口的利益相关者服务126和136的一部分。注意,来自图19A的利益相关者引擎122已经被划分为两个独立的部件1904和1906,以使得能够描述移动设备的行为的进一步的细节。挑战者1900可以是提供该设备希望使用的服务的服务器,或者它可以是另一个对等设备,或者它可以是诸如智能卡的外围设备或具有和不具有可信部件的任何其他形式的计算设备。存在两个阶段:首先是设定1908,其中,利益相关者建立AIK(认证标识密钥),并且将其向私有CA注册;第二是认证本身1910。如在现有技术中所述,AIK是由可信模块(TPM或MTM)拥有的密钥,该可信模块具有公知的证书,该证书可以被用作认证的可信模块已经事实上处理了认证请求的证明。一旦设备已经完成了设定AIK,则它就可以支持多个认证请求。该设定处理出现在诸如设备的第一次启动时、在希望执行认证但是检测到缺少AIK的程序的请求时或从由用户明确地启动的应用请求获得设备“认证准备好”开始之类的时间。一旦调用了用于在利益相关者TSS 1904内建立AIK的处理,则首先,TSS使用在现有技术中所述的TPM_MakeIndentity API请求MTM建立AIK 1912。TSS然后建立适当的AIK证书1914,该适当的AIK证书以X.509或其他格式描述了这个密钥,并且TSS将该证书传递到私有CA 1916,私有CA将验证设备的密钥结构和授权,并且副署该证书,并且将其返回到利益相关者TSS。为了执行远程认证,已知如何建立到利益相关者TSS的通信信道的挑战者首先任意地产生随机数1918,并且在认证请求1920中向利益相关者发送该随机数。TSS使用在现有技术中描述的TPM_Quote2 API来请求MTM使用AIK来对MTM内的PCR的子集的引用以及该随机数进行签名。该引用结果和在1914中产生的用于签名密钥的AIK证书被返回到挑战者1924。挑战者验证签名是使用返回的AIK产生的1926,并且向私有CA验证1928 AIK确实是有效签名的AIK。
图20A示出了根据本发明的远程认证的概述。三个角色是:负责建立AIK以及其证书和TPM_VERIFICATION_KEY密钥证书的利益相关者2000;在移动设备上的利益相关者引擎122;以及,将向利益相关者引擎122请求认证的挑战者1900。挑战者1900是挑战者设备的一个示例,其包括被配置为发出远程认证挑战的挑战者单元。挑战者单元被配置为使用认证密钥的公开部分来向认证单元发出挑战。在三个角色之间的三个关键交互是:首先,利益相关者2000建立AIK,并且将其嵌入2050利益相关者引擎122内。利益相关者2000是密钥发布设备的示例,其包括被配置为发出认证密钥的密钥发布单元。密钥发布单元被配置为向挑战者发出认证密钥。在一种优选实现方式中,嵌入处理在设备的制造期间出现。接着,利益相关者2000向挑战者1900传递其AIK证书和TPM_VERIFICATION_KEY 2052,并且最后,利益相关者引擎122响应于远程认证请求而向挑战者1900返回使用AIK签名并且使用从挑战者1900发送的TPM_VERIFICATION_KEY加密的其PCR状态2054。利益相关者引擎122是认证设备的一个示例,其包括被配置为响应于挑战的认证单元。认证单元被配置为基于挑战者的挑战来执行认证,并且向挑战者返回使用认证密钥的公开部分加密的认证结果。
图20B详细示出了根据本发明的远程认证。该四个角色是作为挑战者1900的远程服务、设备外部的利益相关者服务器2000、在设备上的利益相关者的可信软件堆栈(或抽象层等)1904和在设备上的利益相关者的MTM1906。注意,来自图20A的利益相关者引擎122已经被划分为两个独立的部件1904和1906,以使得能够描述移动设备的行为的进一步的细节。挑战者1900可以是提供该设备希望使用的服务的服务器,或者它可以是另一个对等设备,或者它可以是诸如智能卡的外围设备或具有和不具有可信部件的任何其他形式的计算设备。利益相关者可以是设备制造商或由多利益相关者模型限定的另一个利益相关者。存在三个阶段:首先是制造,其中,利益相关者建立AIK(认证标识密钥),并且将其嵌入2002在设备上;其次是设定2004,其中,利益相关者建立由现有技术描述的TPM_VERIFICATION_KEY,并且将其传递到挑战者;以及,第三,认证本身2006。应当注意,认证密钥(AIK)的公开部分包括认证密钥是认证设备已知的密钥的证据。认证单元验证认证密钥的公开部分。而且,认证密钥是认证设备已知的证据包括对于认证设备已知的第二密钥的参考。根据现有技术,不需要稀有认证中心,虽然在本发明的另一个优选实施例中,向私有CA注册AIK证书。一旦利益相关者已经结束了制造具有AIK的设备,它就可以支持去往一个或多个挑战者的TPM_VERIFICATION_KEY结构的设定。一旦利益相关者已经结束了去往挑战者的TPM_VERIFICATION_KEY的设定,则挑战者就可以执行多个认证请求。制造处理出现在诸如硬件制造或在设备被发行到客户前的其他处理期间之类的时间。设定处理出现在诸如当第三方向利益相关者请求它希望对于利益相关者的设备执行认证挑战时的时间。在制造时2002,利益相关者建立AIK和匹配证书2008,并且将AIK的私有部分嵌入2010利益相关者的MTM内。对于硬件MTM,这可以是向安全存储器物理地写入信息,并且对于软件MTM,这可以是向可执行文件内注入数据,并且对它进行签名。对于设定2004,建立2012从RVAI得出的、由移动可信模块规范定义的TPM_VERIFICATION_KEY 2100。usageFlags 2104被设置为TPM_VERIFICATION_KEY_USAGE_REMOTE_ATTESTATION,以指示使用这个密钥来加密认证请求。在一种优选实现方式中,keyAlgorithm字段2112指示该数据是用于对称加密算法的密钥,因此没有任何稀有密钥部分;在另一个优选实现方式中,使用公开密钥,因此也有稀有密钥部分。使用指示的父密钥来对TPM_VERIFICATION_KEY 2100结构进行签名,该父密钥在一个优选实现方式中对于利益相关者是保密的。所建立的AIK证书TPM_VERIFICATION_KEY和利益相关者的私有密钥(如果存在的话)被传递2014到作为认证挑战者的第三方。当被发送的数据允许接收者明白认证请求的结果时,必须保持在运输中的数据的安全性。对于电子传送,基于SSL的系统将确保对移动中的数据进行保护;对于物理传送,可以使用通过独立的带外信道同意的密钥来加密在传送介质上的数据。为了执行远程认证2006,知道如何建立至利益相关者TSS的通信信道的挑战者首先任意地产生随机数2016,并且在认证请求2018中向利益相关者发送该随机数和先前设定的TPM_VERIFICATION_KEY。如果keyAlgorithm 2112是对称的,则本领域内的普通技术人员可以看到,需要例如通过使用基于SSL的方案来保护通信信道。TSS使用在现有技术中描述的TPM_Quote2 API请求MTM使用在制造时嵌入的AIK来对MTM内的PCR的子集的引用以及该随机数进行签名2020。接着,从挑战者传递的TPM_VERIFICATION_KEY被装载到2022利益相关者的MTM内,并且通过校验处理成功而被验证。在利益相关者的TSS内加密2024来自引用操作2020的结果,因为TPM_VERIFICATION_KEY不能被MTM用于通用的加密,并且被发回挑战者2026。挑战者解密返回的消息2028,然后验证2030被签名的消息是由先前设定的AIK证书密钥签名的。如果验证成功,则挑战者现在已经远程认证了利益相关者的MTM PCR的状态。应当注意,由挑战者单元发出的认证挑战进一步包括用于描述要返回的认证信息的子集的指示符。
图21示出了根据TCG移动可信模块规范现有技术的TPM_VERIFICATION_KEY的结构。首先,标签2102存储TPM_TAG_VERIFICATION_KEY。usageFlags 2104具有TPM_VERIFICATION_KEY_USAGE_REMOTE_ATTESTATION比特集,其被本发明定义为0x1000。parentId 2106、myId 2108、referenceCounter 2110、keyAlgorithm 2112和keyScheme 2114如现有技术所述。根据本发明,未定义扩展数据,因此extensionDigestSize 2116和extensionDigest 2118可以分别是0和空。最后,剩余字段keySize 2120、keyData 2122、integrityCheckSize2124和integrityCheckData 2126也如现有技术所述。根据优选实施例,parentId 2106不是根密钥,而是中间密钥,允许利益相关者设定许多TPM_TAG_VERIFICATION_KEY,但是通过调用中间TPM_TAG_VERIFICATION_KEY来调用它们的全部,如在现有技术中所述。
图22A和图22B示出了根据本发明装载和验证TPM_VERIFICATION_KEY。该附图详细示出了图20中的步骤2022。这个递归例程的进入点要求作为参数安装密钥2200。首先,校验parentId字段2106以看它是否保存用于指示这个密钥是根密钥的TPM_VERIFICATION_KEY_ID_NONE 2202。如果它不是根密钥,则该例程试图使用给定的parentId来检索TPM_VERIFICATION_KEY 2204。根据现有技术,要求利益相关者管理在系统上存在的TPM_VERIFICATION_KEY。如果未找到父密钥2006,则已经出现错误,并且例程返回TPM_KEYNOTFOUND错误代码2208。而且,根据现有技术,也要求利益相关者管理这些密钥的撤消状态,因此,如果找到密钥,则也需要校验其撤消状态2210。如果确定已经撤消了密钥,则例程返回TPM_AUTHFAIL错误代码2212.。以这种方式,密钥发布单元被进一步配置为发出认证密钥的撤消证书。另外,认证单元被配置为在接收到撤消证书时使得认证密钥无效。接着,对该例程进行递归调用2214,使得可以装载和验证父密钥。具体地说,认证单元被配置为验证认证密钥的父密钥的公开部分。例如,认证单元被进一步配置为认证表示认证单元的状态的一组信息项的值。在此,每一个项包括用于描述认证单元的方面的数值。具体地说,每一个项是由可信计算组定义的平台配置寄存器(PCR)。如果父装载和验证失败2216,则该例程返回失败错误代码2218。否则,对传入到该函数内的TPM_VERIFICATION_KEY进行校验以看它是否已经被装载到MTM 2220内。对于优选实施例,诸如使用诸如myId字段2108向TPM_VERIFICATION_KEY_HANDLE的映射之类的本领域中公知的技术来记录装载的密钥。如果还没有装载密钥,则调用MTM_LoadVerificationKey API 2222以执行装载和验证处理。如果安装失败2224,则该例程返回失败错误代码2218。否则,在一个优选实施例中通过向装载的密钥的映射添加myId字段2108和TPM_VERIFICATION_KEY_HANDLE 对来记录返回的TPM_VERIFICATION_KEY_HANDLE 2226。最后,该例程向调用者返回TPM_SUCCESS代码2228,以在递归调用的情况下继续子密钥的装载,或者在顶级调用的情况下向认证处理报告已经验证了密钥层级。
图23A示出了根据本发明的远程多利益相关者认证的概述。5个角色是:利益相关者2000,其负责为移动设备上的利益相关者引擎122建立AIK及其证书和TPM_VERIFICATION_KEY密钥证书;设备制造商2300,其负责为移动设备上的设备制造商引擎110建立AIK和其证书;以及,挑战者1900,其向两个引擎122和110请求认证。具体地说,利益相关者2000和设备制造商2300是密钥发布设备的示例,该密钥发布设备包括密钥发布单元,该密钥发布单元被配置为发出认证密钥。而且,挑战者1900是挑战者设备的一个示例,该挑战者设备包括被配置为发出远程认证挑战的挑战者单元。认证设备包括:利益相关者引擎122,其是被配置为响应于挑战的第一认证单元的一个示例;以及,设备制造商引擎110,其是被配置为响应于挑战的第二认证单元的一个示例。而且,认证设备进一步包括连接器单元,该连接器单元被配置为允许第一认证单元与第二认证单元进行通信。在这些角色之间的关键交互是:首先,利益相关者2000建立AIK,并且将其嵌入2350利益相关者引擎122内,并且设备制造商2300建立AIK并且将其嵌入2352设备制造商引擎110内。在一个优选实现方式中,嵌入处理在设备的制造期间出现。接着,利益相关者2000向挑战者1900传递其AIK证书和TPM_VERIFICATION_KEY 2354,并且设备制造商2300向挑战者1900传递其AIK证书2356。最后,利益相关者引擎122响应于远程认证请求而向挑战者1900返回其PCR状态,该PCR状态被使用AIK签名并且使用从挑战者1900发送的TPM_VERIFICATION_KEY加密2358。简而言之,密钥发布单元被配置为向挑战者发出认证密钥,并且,挑战者单元被配置为使用认证密钥的公开部分向利益相关者引擎122发出挑战,利益相关者引擎122是第一认证单元的一个示例。第一认证单元被配置为基于挑战者的挑战来执行第一认证,并且向挑战者返回使用认证密钥的公开部分加密的第一认证结果。然后,设备制造商引擎110响应于远程多利益相关者认证请求而向挑战者1900返回使用AIK签名的其PCR状态2360。简而言之,连接器单元被配置为从第一认证单元向作为第二认证单元的一个示例的设备制造商引擎110传送第一认证结果,挑战者单元被配置为向第二认证单元发出挑战,并且第二认证单元被配置为基于挑战者的挑战和通过连接器单元传送的第一认证结果来执行第二认证,并且向挑战者返回第二认证结果。
图23B详细示出了根据本发明的用于远程多利益相关者认证的制造和设定,其中,挑战者希望查询利益相关者的MTM的状态,然后向设备制造商的MTM确认结果。5个角色是作为挑战者1900的远程服务、设备外的利益相关者服务器2000、在设备上的利益相关者的MTM 1906、设备外的设备制造商服务器2300和在设备上的利益相关者的MTM 2302。在制造时间2304,利益相关者建立AIK和匹配证书2308,并且在设备制造商MTM内嵌入2301 AIK的私有部分。应当注意,认证密钥(AIK)的公开部分包括认证密钥是认证设备已知的密钥的证据。作为第一认证单元的示例的利益相关者引擎122被配置为验证认证密钥的公开部分。而且,认证密钥是认证设备已知的证据包括对于认证设备已知的第二密钥(TPM_VERIFICATION_KEY)的引用。对于硬件MTM,这可以是向安全存储器物理地写入信息,并且对于软件MTM,这可以是向可执行文件内注入数据,并且对它进行签名。接着,利益相关者建立AIK和匹配证书2312,并且在利益相关者的MTM内嵌入2314 AIK的私有部分。对于硬件MTM,这可以是向安全存储器物理地写入信息,并且对于软件MTM,这可以是向可执行文件内注入数据,并且对它进行签名。对于设定2306,建立2316从RVAI得出的、由移动可信模块规范定义的TPM_VERIFICATION_KEY2100。usageFlags 2104被设置为TPM_VERIFICATION_KEY_USAGE_REMOTE_ATTESTATION,以指示使用这个密钥来加密认证请求。在一种优选实现方式中,keyAlgorithm 2112是对称密钥,因此没有任何私有密钥部分;在另一个优选实现方式中,使用公开密钥,因此也有私有密钥部分。使用指示的父密钥来对TPM_VERIFICATION_KEY 2100结构进行签名,该父密钥在一个优选实现方式中对于利益相关者是保密的。所建立的AIK证书、TPM_VERIFICATION_KEY和TPM_VERIFICATION_KEY的私有密钥(如果存在的话)被传递2318到作为认证挑战者的第三方。当被发送的数据允许接收者明白认证请求的结果时,必须保持在运输中的数据的安全性。对于电子传送,基于SSL的系统将保证对移动中的数据进行保护;对于物理传送,可以使用通过独立的带外信道同意的密钥来加密传送介质上的数据。对于设备制造商,仅设定2320 AIK证书,这是因为如下所示,并不需要设备制造商的MTM的TPM_VERIFICATION_KEY。然而,本领域内的普通技术人员可以认识到,替代实施例可以使用TPM_VERIFICATION_KEY认证设备制造商的MTM。
图24A和图24B详细示出了根据本发明的远程多利益相关者认证,其中,挑战者希望查询利益相关者的MTM的状态,然后向设备制造商的MTM确认结果。5个角色是作为挑战者1900的远程服务、在设备上的利益相关者的可信软件堆栈1904、在设备上的利益相关者的MTM 1906、在设备上的设备制造商的可信软件堆栈2400和在设备上的设备制造商的MTM2302。注意,来自图23A的利益相关者引擎122已经被划分为两个独立的部件1904和1906,并且来自图23A的设备制造商引擎110已经被划分为两个独立的部件2400和2302以使得能够描述移动设备的行为的进一步的细节。在图23中示出的利益相关者服务器2000和设备制造商服务器2300在实际认证中不扮演角色,因此在该附图中未示出。当了解如何建立到利益相关者TSS 1904和基础设备制造商TSS 2400的通信信道的挑战者1900任意地产生利益相关者随机数2402并且在认证请求中向利益相关者发送该随机数和先前设定的利益相关者TPM_VERIFICATION_KEY 2404时,图24A中的远程多利益相关者认证2006开始。应当注意,由挑战者单元向第一认证单元发出的挑战进一步包括用于描述要返回的认证信息的子集的指示符。如果keyAlgorithm 2112字段指示该密钥是对称的,则本领域内的普通技术人员将看到需要例如通过使用基于SSL的方案来保护通信信道。利益相关者TSS使用在现有技术中所述的TPM_Quote2来请求利益相关者MTM 1906使用在制造时嵌入的利益相关者的AIK来对MTM内的PCR的子集的引用以及利益相关者随机数进行签名2406。接着,从挑战者传递的利益相关者TPM_VERIFICATION_KEY被装载2408到利益相关者MTM内并且通过校验该处理成功来被验证。具体地说,第一认证单元被配置为验证第一密钥的父密钥。例如,第一认证单元被进一步配置为认证用于表示第一认证单元的状态的一组信息项的值。在此,用于表示第一认证单元的状态的每一个项包括用于描述认证单元的方面的数值。具体地说,用于表示第一认证单元的状态的每一个项是由可信计算组定义的平台配置寄存器(PCR)。利益相关者TSS向设备制造商TSS 2400通知引用操作2408的结果2406和利益相关者随机数2410。设备制造商TSS然后验证所报告的引用结果2412,并且存储利益相关者随机数和利益相关者的PCR引用的结合和用于表示利益相关者的标识符2414;下面描述这些操作的细节。接着,来自引用操作2406的结果在利益相关者的TSS内被加密2416,因为TPM_VERIFICATION_KEY不能被MTM用于通用的加密,来自引用操作2406的结果并且被发回到挑战者2418。挑战者解密返回的消息2420,然后验证2422被签名的消息是被先前设定的利益相关者AIK证书密钥签名的。如果验证成功,则挑战者现在已经远程认证了利益相关者的MTM的PCR的状态,并且准备好对设备制造商的MTM执行远程多利益相关者认证,如图24B中所示。
挑战者1900接着任意产生设备制造商随机数2424,并且将该随机数以及先前产生的利益相关者随机数2402和产生的PCR引用数据2406的串联的密码散列值作为远程多利益相关者认证请求2426进行发送。应当注意,由挑战者单元向第二认证单元发出的挑战进一步包括用于描述要返回的认证信息的子集的指示符。在一个优选实施例中,密码散列值例程是SHA1。设备制造商TSS验证这个密码散列值表示先前执行的有效利益相关者认证2428;下面描述这个操作的细节。简而言之,第二认证单元被配置为认证表示第二认证单元的状态的一组信息项的值。在此,表示第二认证单元的状态的项中的每一个包括用于描述认证单元的方面的数值。具体地说,表示第二认证单元的状态的项中的每一个是由可信计算组定义的平台配置寄存器(PCR)。如果验证失败,则在一个优选实施例中,设备制造商TSS结束具有适当错误的认证会话。接着,设备制造商TSS通过下述方式来计算新的设备制造商随机数2430:评估先前产生的利益相关者随机数2402、产生的PCR引用数据2406和设备制造商随机数2424的串联的密码散列值。使用在现有技术中所述的TPM_Quote2 API将这个新的随机数与在制造时嵌入的设备制造商的AIK的句柄一起传送到设备制造商MTM 2302,以与随机数一起产生在MTM内的PCR的子集的被签名的引用2432。这个被签名的新随机数外加PCR引用数据被返回到2434挑战者,该挑战者可以使用由设备制造商先前设定的AIK证书验证签名2346。通过本地执行与设备制造商TSS在2430处执行的计算相同的计算来验证返回的新随机数2440,挑战者也具有利益相关者TSS正确地向设备制造商TSS通知了挑战者在2404发送的随机数的证明。最后,因为设备制造商已经成功地完成了远程多利益相关者认证协议,所以设备制造商TSS注意到已经使用了2438先前在2414记录的利益相关者随机数和PCR;下面描述这个操作的细节。
图25示出了根据本发明验证来自子利益相关者引擎的报告的引用结果,详细描述了步骤2412的处理。换句话说,第二认证单元验证所发送的第一认证结果。具体地说,第二认证单元可以直接地访问第一认证单元的认证信息。从子利益相关者的TSS传送的、由现有技术定义的TPM_PCR_INFO_SHORT结构是用于验证所报告的引用结果2500的函数的参数。首先,确定2502调用者的地址。根据优选实现方式,调用者地址是作为参数传入的,但是本领域内的普通技术人员可以看到,诸如检查调用堆栈以确定进入点的其他方法也是可能的。这个地址用于查找子引擎表的引擎地址范围604字段,以找到地址范围包括调用者地址的行2504。如果未找到匹配2506,则控制被传送到强制错误响应2508,并且如在现有技术中所述采取适当的行为。否则,使用引擎PCR地址范围字段606数据,从子MTM的地址空间复制子PCR 2510,并且使用传入的TPM_PCR_INFO_SHORT内的pcrSelection字段,评估复制的PCR的散列值2512。如果这个计算的散列值不等于传入的TPM_PCR_INFO_SHORT内的digestAtRelease字段2514,则例程返回用于指示失败的值2516,否则,如果散列值匹配,则来自子引擎表的当前行的引擎ID字段602和传入的TPM_PCR_INFO_SHORT参数被加到待决的认证表2518,并且该例程返回用于指示成功的值2520。本领域内的普通技术人员可以看到,也可以使用根本不包括验证的、用于验证的替代方法,只要在成功执行的情况下将参数加到待决的认证表2518即可。
图26示出了保存当前进行的认证请求的待决认证表2600。首先,引擎ID字段602包含描述具有待决认证请求的利益相关者引擎的两个字符代码,接着,利益相关者随机数字段2602保存挑战者向认证例程供应的随机数,并且最后,TPM_PCR_INFO_SHORT字段2604保存利益相关者TSS向设备制造商TSS报告的验证的认证值。注意,因为利益相关者随机数字段2602是随机值,所以同一引擎ID可以在表中多次出现,而不引起任何问题。
图27示出了验证对于设备制造商TSS的远程多利益相关者认证请求包含有效的子利益相关者值。被传入到该例程内的是:由挑战者供应的值,该值声称是用于子利益相关者的随机数的密码散列值;以及,由子利益相关者报告的PCR值,用于待决的多利益相关者认证2700。对于在待决认证表2600内的每行2702,利益相关者随机数字段2602与来自TPM_PCR_INFO_SHORT字段2604的digestAtRelease串联的散列值被计算2706,并且与传入的值作比较2708。如果这两个值相等,则传入的值表示待决的多利益相关者认证请求,因此,利益相关者随机数字段2602和TPM_PCR_INFO_SHORT字段2604与用于指示成功的状态标记一起被返回到调用者2710。如果另一方面校验了所有的行并且未发现匹配,则传入的值不表示待决的多利益相关者认证请求,因此,替代地返回用于指示失败的状态标记2704。
图28示出了注释已经执行了待决的远程多利益相关者认证请求。被传入到该例程内的是:已经使用的利益相关者随机数和PCR引用值2800。对于在待决认证表2600内的每行2802,将被传入到该例程内的利益相关者随机数和PCR引用值与待决认证表2600的当前行中的对应数据作比较2806。如果它们匹配,则该行需要被标注为已经使用,在优选实现方式中这是从表删除当前行2808,并且该例程成功地返回到调用者2810。如果未发现匹配,则校验下一行,并且如果达到表的结尾而没有匹配,则该例程使用错误来返回到调用者2804。
在该系统的另一个优选实施例中,设备制造商TSS当在每一个利益相关者引擎基础上执行远程多利益相关者认证时限制它向挑战者报告回的PCR。图29示出了子引擎PCR访问表2900。首先,引擎ID字段602包含描述利益相关者引擎的双字符代码,并且,TPM_PCR_SELECTION字段2902指示设备制造商MTM内的允许远程多利益相关者认证请求引用的PCR。在该表内,可以有引擎ID字段被设置为EID_DEFAULT的行2904,EID_DEFAULT被定义为从不出现的引擎ID值,并且在一个优选实施例中内,被设置为字符串'!!'。如果要搜索的引擎ID不存在于该表中,则该行描述要使用的TPM_PCR_SELECTION 2902。
图30示出了根据本发明准备远程多利益相关者认证的过程中的制造处理的子集,聚焦在设备制造商当执行远程多利益相关者认证时执行的以便限制它向挑战者报告回的PCR的步骤。三个角色是:设备外的设备制造商服务器2300、设备上的设备制造商的TSS 2400和设备上的设备制造商的MTM 2302。在制造时间2304,设备制造商建立AIK和匹配证书2308,并且在设备制造商MTM内嵌入AIK的私有部分2310。对于硬件MTM,这可以是向安全存储器内物理地写入信息,并且对于软件MTM,这可以是向可执行文件内注入数据,并且对它进行数字签名。接着,设备制造商建立用于可以在设备上存在的所有已知利益相关者引擎的子引擎访问表3000,并且通过向每行的TPM_PCR_SELECTION字段2902分配期望值来选择允许每一个访问哪个PCR。这然后被嵌入3002设备制造商的TSS内。本领域内的普通技术人员可以看到,需要对该表进行完整性校验,并且诸如密码签名之类的本领域内已知的技术将足以用于这个目的。
图31示出了根据本发明的远程多利益相关者认证的一部分,其中,挑战者希望向设备制造商的MTM来确认利益相关者认证的结果。与利益相关者的认证按照在图24A中所示的序列,因此在这个实施例内,这个附图替换图24B。如上所述,挑战者1900任意地产生设备制造商随机数2424,并且将随机数和先前产生的利益相关者随机数2402和产生的PCR引用数据2406的串联的密码散列值作为远程多利益相关者认证请求2426进行发送。在一个优选实施例中,密码散列值例程是SHA1。设备制造商TSS验证这个密码散列值表示先前执行的有效利益相关者认证2428;下面描述这个操作的细节。如果验证失败,则在一个优选实施例中,设备制造商TSS使用适当的错误来结束认证会话。接着,设备制造商TSS通过下述方式来计算新的设备制造商随机数2430:评估先前产生的利益相关者随机数2402、产生的PCR引用数据2406和设备制造商随机数2424的串联的密码散列值。如在图27中所述,在步骤2428和2430期间,确定子利益相关者的引擎的引擎ID。这个引擎ID用于查找子引擎访问表2900中的引擎ID字段602,并且检索3100对应的TPM_PCR_SELECTION字段2902。如果未找到引擎ID,则替代地使用EID_DEFAULT行。如果也没有EID_DEFAULT行,则使用空的TPM_PCR_SELECTION。接着,评估要引用的PCR子集3102。在一个优选实施例中,不需要处理,这是因为该子集总是刚好是子引擎访问表的相关行内的字段,但是在一个替代实施例中,挑战者向认证请求添加期望的TPM_PCR_SELECTION,并且通过在两个TPM_PCR_SELECTION pcrSelect字段之间执行逐比特的与运算,从挑战者的请求消除不允许的字段。接着,使用现有技术中所述的TPM_Quote2 API将新的随机数和所计算的PCR子集与对于在制造时嵌入的设备制造商的AIK的句柄一起传递到设备制造商MTM 2302,以与随机数一起产生MTM内的PCR的子集的被签名的引用3104。这个被签名的新的随机数外加PCR引用数据被返回2434到挑战者,该挑战者可以使用由设备制造商先前设定的AIK证书来验证签名2436。通过本地执行与设备制造商TSS在2430处执行计算相同的计算来也验证返回的新随机数2440,挑战者也具有利益相关者TSS正确地向设备制造商TSS通知了挑战者在2404处发送的随机数的证明。而且,因为返回的PCR引用信息包含本身包含TPM_PCR_SELECTION的TPM_PCR_INFO_SHORT,所以挑战者可以发现实际上引用了PCR的哪个子集。最后,因为设备制造商已经成功地完成了远程多利益相关者认证协议,所以设备制造商TSS注释已经使用了2438先前在2414处记录的利益相关者随机数和PCR。
应当注意,虽然基于上述实施例而描述了本发明,但是本发明显然不限于这样的实施例。下面的情况也被包括在本发明中。
(1)上述实施例按照移动可信模块和安全引导规范的要求。然而,本发明可以被应用到以下系统:该系统包含可信平台模块和/或支持由可信计算组织的TCG基础架构工作组架构部分II——完整性管理规范版本1.0定义的可信引导规范。
(2)在上述实施例中,以与MTM规范类似的方式来执行认证。然而,本发明可以被应用到另一种认证系统,只要该认证系统维持表示系统的状态的一组值即可。
(3)上述装置中的每一个具体地说是计算机系统,该计算机系统包括微处理器、ROM、RAM、硬盘单元、显示单元、键盘、鼠标等。计算机系统被存储在RMA或硬盘单元中。各个装置根据计算机程序通过微处理器的操作来实现它们的功能。在此,通过组合用于指示用于计算机的指令的多个指令代码来配置该计算机程序。
(4)可以从单个LSI系统(大规模集成)配置构成各个装置的组成元件的一部分或全部。LSI系统是通过在一个芯片上集成多个组成单元而制造的超级多功能LSI,并且具体地说是通过包括微处理器、ROM和RAM等而配置的计算机系统。在RAM中存储计算机程序。LSI系统通过根据计算机程序通过微处理器的操作来实现其功能。
而且,可以使得配置各个装置的组成元件中的每一个单元作为独立的单独芯片,或者作为单个芯片以包括其一部分或全部。
而且,在此,描述了LSI系统,但是存在下述情况:其中,因为在集成度上的差别,使用名称IC、LSI、超级LSI和超LSI。
而且,用于电路集成的手段不限于LSI,并且使用专用电路或通用处理器的实现方式也是可用的。另外,使用现场可编程门阵列(FPGA)和可重新配置的处理器也是可接受的,其中现场可编程门阵列(FPGA)在已经制造了LSI后是可编程的,在可重新配置的处理器中,LSI内的电路单元的连接和设置是可重新配置的。
而且,如果替换LSI的集成电路技术通过在半导体技术或其他衍生技术中的进步而出现,则可以自然地使用该技术来执行组成元件的集成。生物技术预期适用。
(5)构成各个装置的组成元件的一部分或全部可以被配置为IC卡,该IC卡可以与各个装置附接或脱离或作为单独的模块。IC卡或模块是从微处理器、ROM和RAM等配置的计算机系统。IC卡或模块也可以被包括在上述的超级多功能LSI中。该IC卡和模块根据计算机程序通过微处理器的操作实现其功能。该IC卡或模块也可以被实现为防窜改的。
(6)本发明可以是用于使用计算机来实现之前所述方法的计算机程序,并且也可以是包括计算机程序的数字信号。
而且,也可以通过下述方式实现本发明:在诸如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(蓝光盘)和半导体存储器之类的计算机可读记录介质中存储计算机程序或数字信号。而且,本发明也包括在这些记录介质中记录的数字信号。
而且,也可以通过经由电信线路、无线或有线通信线路、由因特网表示的网络和数据广播等传输上述计算机程序或数字信号来实现本发明。
本发明也可以是包括微处理器和存储器的计算机系统,其中,存储器存储上述的计算机程序,并且微处理器根据计算机程序来运行。
而且,通过经由向上述记录介质上进行记录来传送程序或数字信号,或者通过经由上述的网络等来传送程序或数字信号,也使得使用另一个独立的计算机系统的执行成为可能。
(7)本领域内的技术人员容易明白,在实质上不偏离本发明的新颖教导和优点的情况下,在示例性实施例中可能进行许多修改。因此,上述修改和实施例的任意组合被包括在本发明的范围内。
工业上的适用性
本发明可以用在更新程序数据的信息通信设备和家用电器中,诸如个人计算机、蜂窝电话、音频播放器、电视机和视频记录器。
参考标记列表
100 移动设备
102 CPU
104 DM MTM
106 平台配置寄存器(PCR)
108 设备硬件
110 设备制造商引擎
112 可信根
114 硬件驱动器
116 设备制造商服务
118 DM校验器
120 失败处理器
122 利益相关者1引擎
124、134 利益相关者校验器
126 利益相关者1服务
128 SH MTM1
130、140 PCR集
132 利益相关者2引擎
136 利益相关者2服务
138 SH MTM2
200 引擎校验器
202 引擎证书
1900 挑战者
2000 利益相关者
2300 设备制造商

Claims (75)

1.一种信息处理设备,包括:
利益相关者引擎,其包括:
i)程序存储单元,其被配置为存储可执行的代码;以及
ii)数据存储单元,其被配置为在存储器设备内存储要进行完整性校验的数据;以及
设备制造商引擎,其包括:
i)完整性校验值存储单元,其被配置为存储所述要进行完整性校验的数据的参考完整性校验值;
ii)完整性校验单元,其被配置为相对于所述完整性校验值存储单元中的参考值来校验所述数据的完整性;
iii)完整性校验值计算单元,其被配置为计算数据的完整性校验值;以及
iv)失败处理单元,其被配置为当未被禁止时调用错误响应,
其中,所述利益相关者引擎进一步包括数据修改单元,所述数据修改单元被配置为修改在所述数据存储单元中存储的数据,并且当从在所述程序存储单元内存储的执行代码接收到修改所述要进行完整性校验的数据的请求时,所述数据修改单元被配置为:
a)禁止所述失败处理单元;
b)对所述数据存储单元中的所述数据执行所请求的修改;
c)请求所述完整性校验值计算单元计算所述数据存储单元中的所述数据的新的完整性校验值;
d)在所述完整性校验值存储单元中存储所述新的完整性校验值;以及
e)重新使能所述失败处理单元。
2.根据权利要求1所述的信息处理设备,
其中,所述设备制造商引擎以比所述利益相关者引擎更高的特权来运行。
3.根据权利要求1所述的信息处理设备,
其中,所述完整性校验值计算单元被配置为计算密码散列值。
4.一种信息处理设备,包括:
利益相关者引擎,其包括
i)程序存储单元,其被配置为存储可执行代码;
ii)数据存储单元,其被配置为在存储器设备内存储要进行完整性校验的数据;以及
设备制造商引擎,其包括:
i)完整性校验值存储单元,其被配置为存储所述要进行完整性校验的数据的参考完整性校验值;
ii)完整性校验单元,其被配置为相对于所述完整性校验值存储单元中的参考值来校验所述数据的完整性;
iii)完整性校验值计算单元,其被配置为计算数据的完整性校验值;
iv)失败处理单元,其被配置为当未被禁止时调用错误响应;以及
v)预测单元,其被配置为预测由数据修改单元进行的操作的结果,
其中,所述利益相关者引擎进一步包括所述数据修改单元,所述数据修改单元被配置为修改在所述数据存储单元中存储的所述数据,并且
当从在所述程序存储单元内存储的执行代码接收到修改所述要进行完整性校验的数据的请求时,所述数据修改单元被配置为:
a)禁止所述失败处理单元;
b)请求所述预测单元预测所述请求的结果;
c)请求所述完整性校验值计算单元计算所述预测的结果的预测的完整性校验值;
d)对所述数据存储单元中的所述数据执行所请求的修改;
e)请求所述完整性校验值计算单元计算所述要进行完整性校验的数据的新的完整性校验值;
f)在所述新的完整性校验值不等于所述预测的完整性校验值的情况下,请求所述失败处理单元记录错误;
g)请求所述完整性校验单元使用新的完整性校验值来更新所述存储的完整性校验值;以及
h)重新使能所述失败处理单元。
5.根据权利要求4所述的信息处理设备,
其中,所述设备制造商引擎以比所述利益相关者引擎更高的特权来运行。
6.根据权利要求4所述的信息处理设备,
其中,所述完整性校验值计算单元被配置为计算密码散列值。
7.根据权利要求4所述的信息处理设备,
其中,所述预测单元被配置为:
a)从所述数据存储单元复制所述要进行完整性校验的数据,以建立所述数据的副本;
b)对于所述数据的副本执行由针对所述预测单元的参数定义的操作。
8.一种信息处理系统,包括:
密钥发布设备,其包括密钥发布单元,所述密钥发布单元被配置为发布认证密钥;
挑战者设备,其包括挑战者单元,所述挑战者单元被配置为发布远程认证挑战;以及
认证设备,其包括认证单元,所述认证单元被配置为对挑战进行响应,
其中:
a)所述密钥发布单元被配置为向所述挑战者发布认证密钥,
b)所述挑战者单元被配置为使用所述认证密钥的公开部分向所述认证单元发布挑战,
c)所述认证单元被配置为基于所述挑战者的挑战来执行认证,并且
d)所述认证单元被配置为向所述挑战者返回使用所述认证密钥的公开部分加密的认证结果。
9.根据权利要求8所述的信息处理系统,
其中,所述认证密钥的公开部分包括所述认证密钥是所述认证设备已知的密钥的证据。
10.根据权利要求9所述的信息处理系统,
其中,所述认证密钥对于所述认证设备是已知的所述证据包括对于所述认证设备已知的第二密钥的引用。
11.根据权利要求8所述的信息处理系统,
其中,所述认证单元进一步被配置为验证所述认证密钥的公开部分。
12.根据权利要求11所述的信息处理系统,
其中,所述密钥发布单元进一步被配置为发布针对所述认证密钥的撤消证书。
13.根据权利要求12所述的信息处理系统,
其中,所述认证单元进一步被配置为在接收到所述撤消证书时使得所述认证密钥失效。
14.根据权利要求13所述的信息处理系统,
其中,所述认证单元进一步被配置为验证所述认证密钥的父密钥的公开部分。
15.根据权利要求14所述的信息处理系统,
其中,所述认证单元进一步被配置为认证表示所述认证单元的状态的一组信息项的值。
16.根据权利要求15所述的信息处理系统,
其中,所述一组信息项中的每一项包括用于描述所述认证单元的方面的数值。
17.根据权利要求16所述的信息处理系统,
其中,所述一组信息项中的每一项是由可信计算组织定义的平台配置寄存器。
18.根据权利要求15所述的信息处理系统,
其中,由所述挑战者单元发布的所述认证挑战进一步包括:用于描述要返回的认证信息的子集的指示符。
19.一种信息处理系统,包括:
密钥发布设备,其包括密钥发布单元,所述密钥发布单元被配置为发布认证密钥;
挑战者设备,其包括挑战者单元,所述挑战者单元被配置为发布远程认证挑战;以及
认证设备,其包括第一认证单元,所述第一认证单元被配置为对挑战进行响应,
其中,所述认证设备进一步包括第二认证单元,所述第二认证单元被配置为对挑战进行响应,
所述认证设备进一步包括连接器单元,所述连接器单元被配置为允许所述第一认证单元与所述第二认证单元进行通信,
a)所述密钥发布单元被配置为向所述挑战者发布认证密钥;
b)所述挑战者单元被配置为使用所述认证密钥的公开部分向所述第一认证单元发布挑战;
c)所述第一认证单元被配置为基于所述挑战者的挑战来执行第一认证;
d)所述第一认证单元被配置为向所述挑战者返回使用所述认证密钥的公开部分加密的第一认证结果;
e)所述连接器单元被配置为从所述第一认证单元向所述第二认证单元传送所述第一认证结果;
f)所述挑战者单元被配置为向所述第二认证单元发布挑战;
g)所述第二认证单元被配置为基于所述挑战者的挑战和通过所述连接器单元传送的所述第一认证结果来执行第二认证;以及
h)所述第二认证单元被配置为向所述挑战者返回第二认证结果。
20.根据权利要求19所述的信息处理系统,
其中,所述认证密钥的公开部分包括所述认证密钥是所述认证设备已知的密钥的证据。
21.根据权利要求20所述的信息处理系统,
其中,所述认证密钥对于所述认证设备是已知的所述证据包括对于所述认证设备已知的第二密钥的引用。
22.根据权利要求19所述的信息处理系统,
其中,所述第一认证单元进一步被配置为验证所述认证密钥的公开部分。
23.根据权利要求22所述的信息处理系统,
其中,所述密钥发布单元进一步被配置为发布针对所述认证密钥的撤消证书。
24.根据权利要求23所述的信息处理系统,
其中,所述第一认证单元进一步被配置为在接收到所述撤消证书时使得所述认证密钥失效。
25.根据权利要求24所述的信息处理系统,
其中,所述第一认证单元进一步被配置为验证所述第一密钥的父密钥。
26.根据权利要求25所述的信息处理系统,
其中,所述第一认证单元进一步被配置为认证表示所述第一认证单元的状态的一组信息项的值。
27.根据权利要求26所述的信息处理系统,
其中,表示所述第一认证单元的状态的所述一组信息项中的每一项包括用于描述所述认证单元的方面的数值。
28.根据权利要求27所述的信息处理系统,
其中,表示所述第一认证单元的状态的所述一组信息项中的每一项是由可信计算组织定义的平台配置寄存器。
29.根据权利要求26所述的信息处理系统,
其中,由所述挑战者单元向所述第一认证单元发布的所述挑战进一步包括:用于描述要返回的认证信息的子集的指示符。
30.根据权利要求19所述的信息处理系统,
其中,所述第二认证单元进一步被配置为认证表示所述第二认证单元的状态的一组信息项的值。
31.根据权利要求30所述的信息处理系统,
其中,表示所述第二认证单元的状态的所述一组信息项中的每一项包括用于描述所述认证单元的方面的数值。
32.根据权利要求31所述的信息处理系统,
其中,表示所述第二认证单元的状态的所述一组信息项中的每一项是由可信计算组织定义的平台配置寄存器。
33.根据权利要求32所述的信息处理系统,
其中,由所述挑战者单元向所述第二认证单元发布的所述挑战进一步包括:用于描述要返回的认证信息的子集的指示符。
34.根据权利要求33所述的信息处理系统,
其中,所述第二认证单元也包括:用于描述所述挑战者被允许请求的认证信息的子集的指示符。
35.根据权利要求19所述的信息处理系统,
其中,传送所述第一认证结果进一步包括所述第二认证单元验证所传送的第一认证结果。
36.根据权利要求35所述的信息处理系统,
其中,验证所传送的第一认证结果进一步包括所述第二认证单元直接地访问所述第一认证单元的认证信息。
37.一种用于执行能够改变被完整性校验的数据的软件例程的方法,所述方法包括:
a)提供完整性校验单元,所述完整性校验单元以比所述软件例程高的特权来运行;
b)提供参考完整性校验值,所述参考完整性校验值描述了所述被完整性校验的数据的有效完整性值;
c)提供失败处理单元,在所述参考完整性校验值不等于计算的完整性校验值的情况下,所述完整性校验单元调用所述失败处理单元;
d)禁止所述失败处理单元;
e)执行所述软件例程
f)计算所述被完整性校验的数据的新的完整性校验值;
g)使用所述新的完整性校验值来更新所述参考完整性校验值;以及
h)重新使能所述失败处理单元。
38.根据权利要求37所述的方法,
其中,所述计算新的完整性校验值包括:计算所述被完整性校验的数据的密码散列值。
39.一种用于执行能够改变被完整性校验的数据的软件例程的方法,所述方法包括:
a)提供完整性校验单元,所述完整性校验单元以比所述软件例程高的特权来运行;
b)提供参考完整性校验值,所述参考完整性校验值描述了所述被完整性校验的数据的有效完整性值;
c)提供失败处理单元,在所述参考完整性校验值不等于计算的完整性校验值的情况下,所述完整性校验单元调用所述失败处理单元;
d)禁止所述失败处理单元;
e)计算所述软件例程的预测结果;
f)计算所述预测结果的预测的完整性校验值;
g)执行所述软件例程;
h)计算所述被完整性校验的数据的新的完整性校验值;
i)在所述新的完整性校验值不等于所述预测的完整性校验值的情况下,调用所述失败处理单元;
j)使用所述预测的完整性校验值来更新所述参考完整性校验值;以及
k)重新使能所述失败处理单元。
40.根据权利要求39所述的方法,
其中,所述计算新的完整性校验值包括:计算所述被完整性校验的数据的密码散列值。
41.根据权利要求39所述的方法,
其中,所述计算所述软件例程的预测结果包括:
a)复制所述被完整性校验的数据以建立所述数据的副本;以及
b)对于所述数据的副本执行由针对所述软件例程的参数定义的操作。
42.根据权利要求41所述的方法,
其中,所述计算所述软件例程的预测结果进一步包括:
a)计算并存储所述数据的副本的密码散列值,以作为所述预测的完整性校验值,以及
b)丢弃所述数据的副本。
43.一种用于在挑战者设备和客户机设备之间执行远程认证的方法,所述方法包括:
a)提供密钥发布设备,其向能够被所述客户机设备使用的所述挑战者设备发布认证密钥;
b)在所述客户机设备上提供认证单元,所述认证单元从所述挑战者接收对于认证的请求,所述对于认证的请求中的每一个包括由所述密钥发布设备发布的认证密钥的公开部分;
c)所述认证单元执行认证以获得认证结果;
d)使用所述认证密钥的公开部分来加密所述认证结果;以及
e)向所述挑战者返回所述加密的认证结果。
44.根据权利要求43所述的方法,
其中,所述认证密钥包括所述认证密钥是所述客户机设备已知的密钥的证据。
45.根据权利要求44所述的方法,
其中,所述认证密钥对于所述客户机设备是已知的所述证据包括对于所述客户机设备已知的第二密钥的引用。
46.根据权利要求43所述的方法,
其中,所述认证单元在执行认证之前验证所述认证密钥的公开部分。
47.根据权利要求46所述的方法,
其中,所述密钥发布单元发布针对所述认证密钥的撤消证书。
48.根据权利要求47所述的方法,
其中,在所述认证单元接收到所述撤消证书时,使得所述认证密钥失效。
49.根据权利要求48所述的方法,
其中,所述验证所述认证密钥包括验证所述密钥的父密钥。
50.根据权利要求49所述的方法,
其中,所述认证单元认证表示所述认证单元的状态的一组信息项的值。
51.根据权利要求50所述的方法,
其中,所述信息项中的每一项包括用于描述所述认证单元的方面的数值。
52.根据权利要求51所述的方法。
其中,所述信息项中的每一项是由可信计算组织定义的平台配置寄存器。
53.根据权利要求52所述的方法,
其中,所述认证挑战包括:用于描述要返回的认证信息的子集的指示符。
54.一种用于在挑战者设备和客户机设备之间执行远程认证的方法,所述方法包括:
a)提供第一密钥发布设备,其向能够被所述客户机设备使用的所述挑战者设备发布认证密钥;
b)在所述客户机设备上提供第一认证单元,其从所述挑战者接收对于认证的请求,所述对于认证的请求中的每一个包括由所述第一密钥发布设备发布的认证密钥的公开部分;
b1)在所述客户机设备上提供第二认证单元,其从所述挑战者接收对于认证的请求;
c)提供连接器单元,其允许所述第一认证单元与所述第二认证单元进行通信;
d)所述第一认证单元执行认证以获得第一认证结果;
e)使用所述第一认证密钥的公开部分来加密所述第一认证结果;
f)向所述挑战者返回所述第一加密认证结果;
g)使用所述连接器单元从所述第一认证单元向所述第二认证单元传送包含所述第一认证结果的消息;
h)所述第二认证单元执行认证以获得第二认证结果;并且
i)向所述挑战者返回所述第二认证结果。
55.根据权利要求54所述的方法,
其中,所述认证密钥包括所述认证密钥是所述客户机设备已知的密钥的证据。
56.根据权利要求55所述的方法,
其中,所述认证密钥对于所述客户机设备是已知的所述证据包括对于所述客户机设备已知的第二密钥的引用。
57.根据权利要求54所述的方法,
其中,所述第一认证单元在执行认证之前验证所述认证密钥的公开部分。
58.根据权利要求57所述的方法,
其中,所述第一密钥发布设备发布针对所述认证密钥的撤消证书。
59.根据权利要求58所述的方法,
其中,在所述第一认证单元接收到所述撤消证书时,使得所述第一认证密钥失效。
60.根据权利要求59所述的方法,
其中,所述验证认证密钥包括验证所述第一密钥的父密钥。
61.根据权利要求60所述的方法,
其中,所述第一认证单元认证表示所述第一认证单元的状态的一组信息项的值。
62.根据权利要求61所述的方法,
其中,表示所述第一认证单元的状态的所述一组信息项中的每一项包括用于描述所述第一认证单元的方面的数值。
63.根据权利要求62所述的方法,
其中,表示所述第一认证单元的状态的所述一组信息项中的每一项是由可信计算组织定义的平台配置寄存器。
64.根据权利要求61所述的方法,
其中,对于所述第一认证单元的所述挑战包括用于描述要返回的认证信息的子集的指示符。
65.根据权利要求54所述的方法,
其中,所述第二认证单元认证表示所述第二认证单元的状态的一组信息项的值。
66.根据权利要求65所述的方法,
其中,表示所述第二认证单元的状态的所述一组信息项中的每一项包括用于描述所述第二认证单元的方面的数值。
67.根据权利要求66所述的方法,
其中,表示所述第二认证单元的状态的所述一组信息项中的每一项是由可信计算组织定义的平台配置寄存器。
68.根据权利要求67所述的方法,
其中,对于所述第二认证单元的所述挑战包括用于描述要返回的认证信息的子集的指示符。
69.根据权利要求68所述的方法,
其中,所述第二认证单元还包括用于描述所述挑战者被允许请求的认证信息的子集的指示符。
70.根据权利要求54所述的方法,
其中,所述传送包含所述第一认证结果的消息包括:所述第二认证单元验证所述传送的第一认证结果。
71.根据权利要求70所述的方法,其中
其中,所述验证所述传送的第一认证结果包括:所述第二认证单元直接地访问所述第一认证单元的认证信息。
72.一种程序,其使得计算机执行用于执行能够改变被完整性校验的数据的软件例程的方法,所述方法包括:
a)提供完整性校验单元,所述完整性校验单元以比所述软件例程高的特权来运行;
b)提供参考完整性校验值,所述参考完整性校验值描述了所述被完整性校验的数据的有效完整性值;
c)提供失败处理单元,在所述参考完整性校验值不等于计算的完整性校验值时,所述完整性校验单元调用所述失败处理单元;
d)禁止所述失败处理单元;
e)执行所述软件例程
f)计算所述被完整性校验的数据的新的完整性校验值;
g)使用所述新的完整性校验值来更新所述参考完整性校验值;以及
h)重新使能所述失败处理单元。
73.一种程序,其使得计算机执行用于执行能够改变被完整性校验的数据的软件例程的方法,所述方法包括:
a)提供完整性校验单元,所述完整性校验单元以比所述软件例程高的特权来运行;
b)提供参考完整性校验值,所述参考完整性校验值描述了所述被完整性校验的数据的有效完整性值;
c)提供失败处理单元,在所述参考完整性校验值不等于计算的完整性校验值时,所述完整性校验单元调用所述失败处理单元;
d)禁止所述失败处理单元;
e)计算所述软件例程的预测结果;
f)计算所述预测结果的预测的完整性校验值;
g)执行所述软件例程;
h)计算所述被完整性校验的数据的新的完整性校验值;
i)在所述新的完整性校验值不等于所述预测的完整性校验值时,调用所述失败处理单元;
j)使用所述预测的完整性校验值来更新所述参考完整性校验值;以及
k)重新使能所述失败处理单元。
74.一种集成电路,包括:
利益相关者引擎,其包括:
i)程序存储单元,其被配置为存储可执行代码;以及
ii)数据存储单元,其被配置为在存储器设备内存储要进行完整性校验的数据;以及
设备制造商引擎,其包括:
i)完整性校验值存储单元,其被配置为存储所述要进行完整性校验的数据的参考完整性校验值;
ii)完整性校验单元,其被配置为相对于所述完整性校验值存储单元中的参考值来校验所述数据的完整性;
iii)完整性校验值计算单元,其被配置为计算数据的完整性校验值;以及
iv)失败处理单元,其被配置为当未被禁止时调用错误响应,
其中,所述利益相关者引擎进一步包括数据修改单元,所述数据修改单元被配置为修改在所述数据存储单元中存储的数据,并且
当从在所述程序存储单元内存储的执行代码接收到修改所述要进行完整性校验的数据的请求时,所述数据修改单元被配置为:
a)禁止所述失败处理单元;
b)对所述数据存储单元中的所述数据执行所请求的修改;
c)请求所述完整性校验值计算单元计算所述数据存储单元中的所述数据的新的完整性校验值;
d)在所述完整性校验值存储单元中存储所述新的完整性校验值;以及
e)重新使能所述失败处理单元。
75.一种集成电路,包括:
利益相关者引擎,其包括
i)程序存储单元,其被配置为存储可执行代码;
ii)数据存储单元,其被配置为在存储器设备内存储要进行完整性校验的数据;以及
设备制造商引擎,其包括:
i)完整性校验值存储单元,其被配置为存储所述要进行完整性校验的数据的参考完整性校验值;
ii)完整性校验单元,其被配置为相对于所述完整性校验值存储单元中的参考值来校验所述数据的完整性;
iii)完整性校验值计算单元,其被配置为计算数据的完整性校验值;
iv)失败处理单元,其被配置为当未被禁止时调用错误响应;以及
v)预测单元,其被配置为预测由数据修改单元进行的操作的结果,
其中,所述利益相关者引擎进一步包括所述数据修改单元,所述数据修改单元被配置为修改在所述数据存储单元中存储的数据,并且
当从在所述程序存储单元内存储的执行代码接收到修改所述要进行完整性校验的数据的请求时,所述数据修改单元被配置为:
a)禁止所述失败处理单元;
b)请求所述预测单元预测所述请求的结果;
c)请求所述完整性校验值计算单元计算所述预测的结果的预测的完整性校验值;
d)对所述数据存储单元中的所述数据执行所请求的修改;
e)请求所述完整性校验值计算单元计算所述要进行完整性校验的数据的新的完整性校验值;
f)在所述新的完整性校验值不等于所述预测的完整性校验值时,请求所述失败处理单元记录错误;
g)请求所述完整性校验单元使用新的完整性校验值来更新所述存储的完整性校验值;以及
h)重新使能所述失败处理单元。
CN2011800049402A 2010-02-16 2011-01-27 信息处理设备、信息处理系统、软件例程执行方法和远程认证方法 Pending CN102656592A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010031706 2010-02-16
JP2010-031706 2010-02-16
PCT/JP2011/000448 WO2011102087A1 (en) 2010-02-16 2011-01-27 Information processing device, information processing system, software routine execution method, and remote attestation method

Publications (1)

Publication Number Publication Date
CN102656592A true CN102656592A (zh) 2012-09-05

Family

ID=43868876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800049402A Pending CN102656592A (zh) 2010-02-16 2011-01-27 信息处理设备、信息处理系统、软件例程执行方法和远程认证方法

Country Status (4)

Country Link
US (1) US20120246470A1 (zh)
JP (1) JP2013519929A (zh)
CN (1) CN102656592A (zh)
WO (1) WO2011102087A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857092A (zh) * 2020-06-22 2020-10-30 杭州群核信息技术有限公司 一种家居参数化模型的实时错误检测系统及方法
WO2021249359A1 (zh) * 2020-06-09 2021-12-16 华为技术有限公司 数据完整性保护的方法和装置
WO2023273933A1 (zh) * 2021-06-30 2023-01-05 寒武纪行歌(南京)科技有限公司 用于对片上系统进行认证的方法及相关产品

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9490984B2 (en) * 2009-09-14 2016-11-08 Interdigital Patent Holdings, Inc. Method and apparatus for trusted authentication and logon
US9171162B2 (en) * 2011-03-29 2015-10-27 Microsoft Technology Licensing, Llc Random file request for software attestation
US9787667B2 (en) * 2012-10-16 2017-10-10 Nokia Technologies Oy Attested sensor data reporting
US9747471B2 (en) * 2012-12-12 2017-08-29 Cisco Technology, Inc. Secure switch between modes
CN105637486B (zh) * 2013-10-31 2018-11-13 慧与发展有限责任合伙企业 内存完整性检查
US9219722B2 (en) * 2013-12-11 2015-12-22 Globalfoundries Inc. Unclonable ID based chip-to-chip communication
US9635014B2 (en) * 2014-02-21 2017-04-25 Samsung Electronics Co., Ltd. Method and apparatus for authenticating client credentials
US9301185B1 (en) * 2014-04-10 2016-03-29 Sprint Communications Company L.P. Mobile communication extended error codes and dynamic error handling
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9705879B2 (en) * 2014-09-17 2017-07-11 Microsoft Technology Licensing, Llc Efficient and reliable attestation
US20160098555A1 (en) * 2014-10-02 2016-04-07 Arm Limited Program code attestation circuitry, a data processing apparatus including such program code attestation circuitry and a program attestation method
CN104504346B (zh) * 2014-12-17 2017-08-11 清华大学 远程数据完整性概率检验方法及系统
US10015014B2 (en) * 2014-12-27 2018-07-03 Intel Corporation Technologies for secure presence assurance
US10803175B2 (en) * 2015-03-06 2020-10-13 Microsoft Technology Licensing, Llc Device attestation through security hardened management agent
DE102015214696A1 (de) 2015-07-31 2017-02-02 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Verwenden eines Kunden-Geräte-Zertifikats auf einem Gerät
US10169591B2 (en) * 2015-12-07 2019-01-01 Amazon Technologies, Inc. Chained security systems
US10193858B2 (en) * 2015-12-22 2019-01-29 Mcafee, Llc Attestation device custody transfer protocol
GB2548599B (en) * 2016-03-23 2020-02-12 Jaguar Land Rover Ltd Apparatus and method for device authentication
US11165565B2 (en) 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code
US10311224B1 (en) * 2017-03-23 2019-06-04 Amazon Technologies, Inc. Digitally sealing equipment for authentication of components
US9992029B1 (en) * 2017-04-05 2018-06-05 Stripe, Inc. Systems and methods for providing authentication to a plurality of devices
US10917237B2 (en) * 2018-04-16 2021-02-09 Microsoft Technology Licensing, Llc Attestable and destructible device identity

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1056010A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
US20020141592A1 (en) * 2000-06-09 2002-10-03 Aull Kenneth W. Preventing ID spoofing with ubiquitous signature certificates
US8201240B2 (en) * 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
US8782801B2 (en) * 2007-08-15 2014-07-15 Samsung Electronics Co., Ltd. Securing stored content for trusted hosts and safe computing environments

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021249359A1 (zh) * 2020-06-09 2021-12-16 华为技术有限公司 数据完整性保护的方法和装置
CN111857092A (zh) * 2020-06-22 2020-10-30 杭州群核信息技术有限公司 一种家居参数化模型的实时错误检测系统及方法
CN111857092B (zh) * 2020-06-22 2024-04-30 杭州群核信息技术有限公司 一种家居参数化模型的实时错误检测系统及方法
WO2023273933A1 (zh) * 2021-06-30 2023-01-05 寒武纪行歌(南京)科技有限公司 用于对片上系统进行认证的方法及相关产品

Also Published As

Publication number Publication date
WO2011102087A1 (en) 2011-08-25
JP2013519929A (ja) 2013-05-30
US20120246470A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
CN102656592A (zh) 信息处理设备、信息处理系统、软件例程执行方法和远程认证方法
US9594909B2 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
US8464347B2 (en) Software updating apparatus, software updating system, alteration verification method and alteration verification program
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
EP1805571B1 (en) Verifying binding of an initial trusted device to a secured processing system
US7788487B2 (en) Data processing apparatus
US8171275B2 (en) ROM BIOS based trusted encrypted operating system
US8417964B2 (en) Software module management device and program
US20110289294A1 (en) Information processing apparatus
CA2618544C (en) Rom bios based trusted encrypted operating system
CN109313690A (zh) 自包含的加密引导策略验证
US8516574B2 (en) Software update system, management apparatus, recording medium, and integrated circuit
US8769312B2 (en) Tampering monitoring system, protection control module, and detection module
US8745735B2 (en) Monitoring system, program-executing device, monitoring program, recording medium and integrated circuit
CN102947795A (zh) 安全云计算的系统和方法
CN110348204A (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
JP6951375B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20120213370A1 (en) Secure management and personalization of unique code signing keys
US8972745B2 (en) Secure data handling in a computer system
US9135449B2 (en) Apparatus and method for managing USIM data using mobile trusted module
CN102833296A (zh) 用于构建安全的计算环境的方法和设备
CN106415565B (zh) 保护软件项目
WO2020157482A1 (en) Task engine
CN115098227B (zh) 一种安防设备动态信息更新的方法及装置
CN116974536A (zh) 一种多方协作的开发处理方法、装置以及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120905