参考TCG Specification Architecture Overview 1.4 。http://www.trustedcomputinggroup.org/ 检索TCG Specification Architecture Overview
Ø TCG体系结构总体规范(ArchitectureOverview)
总体上说明了与可信计算相关的内容。包括:定义了可信计算目标,可信计算应用场景,TCG(Trusted Computing Grounp)架构-即从平台无关角度全局上阐述了可信平台模块TPM(Trusted Platform Module)的架构,功能,主要模块,工作原理,密钥管理方式等。介绍了基于TPM的可信软件栈TSS(TrustedSoftware Stack)的使用和应用场景,TPM命令的授权协议。
Ø 可信平台模块规范(TrustedPlatform Module Specifications) Parts1-4
阐述了TPM的体系结构,各个部件的功能,设计规范,TPM内部所通讯的数据结构,TPM底层执行的命令规范。主要包括三个标准:TPM Main-Part 1 DesignPrinciples-即TPM的设计原则。 TPM Main Part 2 TPM Structures-即TPM编程中使用的数据结构. TPM Main Part 3 Commands-TPM命令说明。
Ø 软件栈规范(TSSSpecifications)
TSS可以理解为方便可信应用使用TPM功能的软件中间件,向上层应用提供一些标准APT接口,屏蔽底层TPM编程实现细节。该标准说明了软件栈包括内容和作用,以及接口规范。其中从上到下包括:TCGService Provider (TSP),TCG Core Services (TCS),TCG Device Driver Library (TDDL),TCG DeviceDriver (TDD),以及每层模块的接口使用方式。相当于是一个可信应用的标准API。
Ø 基础框架规范(InfrastructureSpecifications)
提高TCG相关技术的互操作性,侧重于可信系统的开发、配置、互操作性方面。
Ø 个人计算机客户端规范(PCClient Specifications)
具体对于PC,TPM的相关规范,主要说明了TPMInterface Specification (TIS)。如果使用PC做可信计算的开发,需要参照该文档。但是这仅是一个规范标准,具体还要参照TPM的生产商的规范和实现方式。
另外如果需要做可信的远程验证,则需要参考IWG(Infrastructure Work Group)标准:TCG TrustedNetwork Connect TNC Architecture for Interoperability。其标准文档系列如下图所示。
注意,这里的架构是平台独立的,可以用于PC,PDA,移动电话等。
TPM平台基本的特色,包括三个方面:一个可信平台要达到可信的目标,最基本的原则就是必须真实报告系统的状态,同时决不暴露密钥和尽量不表露自己的身份。TCG规定一个可信的平台需要三个必要的基础功能:保护能力(ProtectedCapabilities),完整性度量、存储和报告(Integrity Measurement,Storage and Reporting),证明能力(Attestation Capabilities )
保护能力是唯一被许可访问保护区域(shieldedlocations)的一组命令。保护区域是能够安全操作敏感数据的地方(比如内存,寄存器等)。
TPM实现了保护能力和被保护区域,可以用来保护和报告完整性度量(称作平台配置寄存器:PCRs,这种寄存器位于TPM内部,仅仅用来装载对模块的度量值,大小为160bits)。
TPM保护能力还有许多的安全和管理功能,比如密钥管理、随机数生成、将系统状态值封印(seal)到数据等。这些功能使得系统的状态任何时候都处于可知,同时可以将系统的状态与数据绑定起来。
外部实体可以通过该功能验证保护区,保护功能指令,和可信根。也可以验证平台完整性。通过证明,可以完成网络通信中身份的认证,而且由于引入了PCR值,在身份认证的同时还鉴别了通讯对象的平台环境配置。
证明可以在不同层次进行:
基于TPM(Attestation by the TPM)的证明是一个提供TPM数据的校验操作,这是通过使用AIK对TPM内部某个PCR值的数字签名来完成的,AIK是通过唯一秘密私钥EK获得的,可以唯一地确认身份;AIK由私有CA使用或者一个可信的验证协议。
针对平台(Attestation to theplatform)的证明则是通过使用平台相关的证书或这些证书的子集来提供证据,证明平台可以被信任以作出完整性度量报告;
基于平台(Authentication of theplatform)的证明通过在TPM中使用AIK对涉及平台环境状态的PCR值进行数字签名,提供平台完整性度量的证据。
完整性的度量是一个过程,包括:获得一个关于平台的影响可信度的特征值(metrics),存储这些值,然后将这些值的摘要放入PCRs中。
通过计算某个模块的摘要同期望值的比较,就可以维护这个模块的完整性。
在TCG的体系中,所有模块(软件和硬件)都被纳入保护范围内,假如有任何模块被恶意感染,它的摘要值必然会发生改变,使我们可以知道它出现了问题。
另外,平台BIOS及所有启动和操作系统模块的摘要值都将存入特定的PCR,在进行网络通信时,可以通过对通信方PCRs值的校验确定对方系统是否可信(即是否感染了病毒、是否有木马、是否使用盗版软件等)。静态的可信根(SRTM)从一个已知状态开始度量。动态可信根(DRTM)从一个不可信状态度量度量到一个可信状态的转移过程。
完整性报告则是用来证明完整性存储的过程,展示保护区域中完整性度量值的存储,依靠可信平台的的鉴定能力证明存储值的正确性。
TPM本身并不知道什么是正确的值,它只是忠实地计算并把结果报告出来。这个值是否正确还需要执行度量的程序本身通过度量存储日志(Stored Measurement Log,SML)来确定。
此时的完整性报告使用AIK签名,以鉴别PCR的值。