RSS订阅信息安全技术跟踪与研究:技术、平台、会议、论文、产业
你现在的位置:首页 / 学术研究 / 正文

TCG TPM 2.0规范研读之:可信平台理解、可信平台模块

0 学术研究 | 2014年12月11日
转载申明:本站原创,欢迎转载。但转载时请保留原文地址。
原文地址:http://www.vonwei.com/post/trustedplatform.html

基本概念

可信(Trust)

TCG的可信意味着传达一个期望的行为,并不是可以预测的行为。为了确定平台的期望行为,有必要确定平台的身份以及相关的平台行为。不同的物理平台可能拥有相同的行为(软硬件都拥有相同的行为),相同的物理平台在不同时期可能拥有完全不同的行为(软硬件配置的任何更改)。

标识(identify)平台的硬件和软件组件,TCG基于该方法来建立构建平台可信的安全机制。TPM提供收集和报告这些标识信息(身份信息)的方法。这些标识实际上就是平台期望行为的一种表示。

可信构建块(Trusted Building Block,TBB)

TBB是一个组件或者一系列组件,用来实例化一个信任根。TBB通常被期望其表现不会妥协可信平台的目标。

一个TBB的例子是下列组件的组合:CRTM,CRTM存储和主板之间的连接,CRTM和CPU之间的路径,TPM和主板之间的连接,CPU和TPM之间的路径。这个组合构成了平台报告信任根(Root of Trust for Reporting,RTR)。

可信计算基(Trusted Computing Base,TCB)

TCB是一个基本的系统环境和资源(包含一些硬件和软件),TCB可以保护自己不被TCB之外的软硬件所破坏。

在可信计算体系中,通常BIOS,Bootloader和OS被认为构成系统的TCB;而TPM并不属于TCB,不过TPM独立于该TCB,可以用来确定系统的TCB是否被破坏,如果TCB被破坏,TPM可以帮助防止系统进一步启动和运行。TPM作为信任根,必须无条件的信任,而且其位于TCB的底层,对TCB有一定的保障作用。

可信边界(Trust Boundaries)

TBB和信任根形成一个可信边界,在可信边界内,度量、存储和报告可以实现一个最小的配置。在复杂的系统中,有必要用CRTM建立其它代码的可信,如度量其它代码并记录在PCR中。如果CRTM将系统控制权传给了其它代码,而没有考虑度量值是否匹配,那么认为信任边界被扩展了(可信引导的机制);如果CRTM在执行其它代码前,先验证其度量值是否是预期值,那么认为信任边界保持不变,因为被度量的代码是对CRTM的一个预期的扩展。

显然,在可信引导情况下,随着信任链的扩展,信任边界也在扩展,因为信任链后面执行的代码并没有经过验证;而在安全引导情况下,信任边界是保持不变的,信任链后面执行的每段代码都是经过验证的,是预期的。

信任传递(Transitive Trust)

信任传递是一个过程,信任根建立一个可执行函数的初始可信,然后该函数中的可信用于建立下一个可执行函数的信任。即一级度量一级概念。

一个建议,启动TCB时,采用安全引导的方式(度量后还要进行检测验证,才能传递信任);而TCB构建起来后,可以采用可信引导的方式,可信引导的度量值可以进行远程报告。

可信权威(Trust Authority)

当RTM开始执行CRTM时,能够担保TBB正确性的实体只能是TBB的创建者,即典型的平台制造商。显然,平台制造商是一个有效TBB的权威机构,其信誉直接影响到用户是否相信该TBB。

随着信任传递链的增加,系统执行会从CRTM转到其他代码。如果是安全引导的方式,可信权威保持不变,即平台制造商在执行其他代码时,对其他代码进行了度量值的验证,证明其是可信的,安全引导方式下平台制造商可以担保这一点

不过在现代计算平台体系下,固件和软件组件通常来自不同的提供方,平台制造商不可能知道运行在其平台上所有代码的签名者。这种情况下,平台制造商不可能长期保持为平台状态的权威,有两种方法(度量值或者签名)来评估平台的可信权威

  1. 代码被度量,值被记录到RTS,代码的运行并没有考虑其度量值,这样可信权威就是RTR报告的代码的摘要值(即由代码的度量值来担保代码是否可信),而度量值由验证者(Verifier)来检查。实际上,可信权威变成了验证者。

  2. 代码被签名,这样其可信权威的身份是已知的。如果可信权威身份记录在RTS中,就由该可信权威来担保这个代码的可信运行。

 就算是可信权威,其产生的代码也可能存在漏洞或者脆弱性,因此需要支持撤销机制(revocation)。对于使用度量值的情形,很难知道哪个代码被撤销了,最好需要一个中心数据库来记录所有被撤销代码的度量值。对于使用签名的情形,可以直接使用相关代码的哈希值联系厂商,看其是否撤销了。


可信平台模块TPM,Trusted Platform Module

 TPM是一个系统组件,其状态与主机系统独立,可以收集、度量和报告主机的环境。TPM与主机之间的交互通过TPM规范定义的一系列接口进行。

TPM的实现需要依靠物理资源,构建基于硬件的可信。一些TPM实现为独立的芯片组件,通过LPC(Low Pin Count)等接口连接到主机系统。这样的TPM芯片拥有独立的处理器、RAM、ROM和闪存Flash memory。主机系统无法直接改变TPM存储的值,除非通过TPM接口的I/O缓冲区。

另一种实现TPM的方式,是让其运行在主机的处理器上,不过处理器需要处于特殊的执行模式。这样的TPM中,系统内存被硬件进行了划分,TPM使用的内存是无法被主机处理器访问的,只有在处理器的特殊模式下,才能访问TPM的内存。实现这种TPM的机制包括:系统管理模式(System Management Mode,SMM),ARM的TrustZone,处理器硬件虚拟化技术等。


题外话

当一个人拥有至高无上的权限时,首先这个人自身得够强大,这叫做服众;其次,这个人秉性必定优良,否则坏的本质或者被小人利用,都会造成不可预计的后果。

类似地,TPM芯片拥有主机无法比拟的权限,很多方面必须经得起考验,这估计也是其面临各方面质疑的一个主要原因。

首先,TPM本身是否足够安全,各种软件攻击要能够防范,大部分硬件攻击(如侧信道攻击)也要能够防范,如何证明其拥有这些能力实际上是很困难的,从形式化方面对TPM的接口、协议等进行证明是一个方面,最重要的还是要在实践中接受检验,特别是经受各种暴力攻击的测试。

其次,TPM是否一定可信(其本质是否属良),目前TPM的使用实际上被动的,主机调用其接口才会使用其功能,但是很难评估TPM是否内置了一些主动功能或者后门,如果有,一旦触发,其凌驾于主机TCB之上的权限将会带来致命的后果。因此,可以理解国内必定会全力发展自己的密码算法和TCM芯片。但是,个人感觉目前国内产业界在可信产品方面还是比较浮躁,冷时不管不问,热时群起趋之,利益驱使特别严重。静下心来积累可信计算的技术,打下坚实的基础才是最重要的。


参考

[1] Trusted Computing Group, TPM Library Specification, http://www.trustedcomputinggroup.org/resources/tpm_library_specification


  • ------------------分隔线----------------

  • 如果感兴趣,欢迎关注本站微信号,跟踪最新博文信息,手机微信扫一扫下面的二维码,即可关注!
  • 微月信公众号
  • 推荐您阅读更多有关于“ 可信平台模块  可信计算  TPM   ”的文章

    请填写你的在线分享代码
    上一篇:将TPM用作虚拟智能卡、验证Token下一篇:TCG TPM 2.0规范研读之:信任根 或者 可信根

    猜你喜欢

    评论列表:

    发表评论

    必填

    选填

    选填

    必填,不填不让过哦,嘻嘻。

    记住我,下次回复时不用重新输入个人信息

    本站介绍
    最近发表
    本年最热文章
    本月最热文章
    网站分类
    文章归档