1.可信计算的概念
可信的概念:状态在预期范围内,就是可信。可信不等同于安全。重点在于发生的错误是不是可以预期的
可信计算可以从以下几个方面去理解:
- 用户的身份认证 目标:使用者
- 平台硬件配置正确性 目标:平台硬件
- 应用程序的完整性和合法性 目标: 运行在平台上的软件
- 平台之间的可验证性 目标: 在网络上交互的双方是否互相可信
依照上述标准, TCG制定可信计算的三个属性:
- 鉴别:计算机系统的用户可以确定与他们进行通信的对象身份
- 完整性:用户确保信息能够被正确传输
- 私密性:用户相信系统能保证信息的私密性
2.TCG组织
HP,IBM,Intel,Microsoft牵头,可信计算组织 TCPA(Trusted Computing Platform Alliance)
专注于从计算机系统体系结构上增强安全性,2001年一月发布了TPM规范。
2003年发布 1.2 主规范
2013年 TPM2.0规范发布
中国的组织为TCM,采用了自主算法
远景目标:
3.TPM
3.1TPM简介
软件做的再好,硬件也可以被攻破。TPM是以上安全性规范的实现,从硬件上保护系统。
这个时候就有一个问题了,有人肯定会说,以前我把数据放在平台上,然后进行加锁不就完了?为什么一定要一个芯片呢? 这种思想基于一个信任:平台信任。假若平台本身就有问题该怎么办呢?
而硬件层面就可以解决这个问题,有了TPM芯片之后,秘钥或者私密信息放在芯片上,只有我TPM确认你这个平台没问题,是我所认可的,我才会释放私密信息。有点类似于CA证书了。
3.2 TPM设计原则和体系结构
设计原则:
- 安全性原则
- 对指定的关键数据进行受控的访问
- 可靠的度量并报告系统的安全性质
- 报告机制要在所有者的安全控制下
- 私密性原则
- 可互操作性原则:在保证安全性的前提下,要求能操作空间尽量大
- 数据的可移植性原则:应该允许用户在不同的平台上迁移需要保护的数据
- 可控性原则:所有者对属于他们的TCG功能的使用以及操作能够进行有效的控制和选择
- 易用性原则
3.3TPM构架
TPM芯片介绍
- 实际上是一个含有密码运算部件和存储部件的小型计算系统
- 它的工作要优先于操作系统和CIOS,不能使用计算机的内存和外存,因此必须内部实现一些公开的安全算法,以便于其他部件的接口标准化和提供内部一些安全操作中的密码运算
TPM必须要具备四个主要功能
- 对称:任意算法 /非对称加密:RSA算法
- 安全储存:存储私密数据
- 完整性度量:对平台进行验证,靠不靠谱 SHA-1散列算法
- 签名认证:用于完整性度量,平台对度量值进行签名,TPM对其签名进行验证
TPM提供受保护的函数以及被隔离的位置
意思就是,要访问TPM的数据,只能通过一组特定的命令。TPM芯片内部的寄存器,内存是安全的,只能通过这特定的一组命令访问。
TPM物理组件:
这里主要概述一下几个模块:
- 密码协处理器:实现加密,解密,签名和签名验证。
- HMAC引擎:提供数据认证码和消息认证码两部分信息来分别保证数 据和命令消息的完整性。
- 非易失性存储器:用来存储永久标识(如EK)和TPM相关的状态
除了以上大模组以外,还有一个很重要的寄存器
PCR平台配置寄存器:一个典型的TPM中一般有24个PCR寄存器,每个寄存器都存储特定的散列治。如: 0~ 7用于记录系统启动的状态,8~ 15 记录操作系统以及其上层应用状态,16~ 23用于动态可信根的建立。
但是这里出现了一个问题:在一个TPM芯片中,PCR寄存器只有24个,但是在操作系统中的应用程序可能有100个,那应该怎么记录这么多的状态呢?
使用迭代运算,若出现了一个新的状态,则用 hash(old+new)这种方式进行哈希,因为哈希出来的结果基本可以说是惟一的,那么此哈希码实际上包含了新旧状态的信息,这样就可以用有限位存储几乎无限的状态。
3.4 TPM密钥,信任状和所有权
(一).TPM的几个密钥:
- Endorsement Key( EK ): 由厂商交付给用户之前生成,是TPM的唯一标识,类似于MAC。作用是帮助生成AIK。EK是私密的,不能被访问。
- Attestation Identity Keys(AIK): 是EK的别名,在一个TPM中可以有多个,为了保护EK的私密性而生成的替代品。
- Storage Root Key(SRK): 存储根密钥,每个可信计算平台只对应一个惟一的SRK。在改变所有者时会改变。
(二).信任链:
在计算机系统中,建立一个信任根,从信任根开始,到硬件平台、操作系统、应用,一级度量一级,一级信任一级,把这种信任扩展到整个计算机系统,并采取防护措施,确保计算资源的数据完整性和行为的预期性,从而提高计算机系统的可信性。
(三).信任链信任根:
信任根是可信计算机的可信起基点,也是实施安全控制的点。在功能上有三个信任根组成。
可信度量根(root of trust for measurement, RTM)。RTM是可信平台进行可信度量的基点,在TCG的可信平台中,是平台启动时首先执行的一段软件,用以对计算机可信度量。又被称为可信度量根核(crtm)。具体到可信计算PC中,是BIOS中最开始的代码。
可信存储根(root of trust for storage,RTS)。RTS是对可信度量值进行安全存储的基点。由TPM芯片中一组被称为平台配置寄存器(paltform configuration register, RCP)和存储根密钥(storage root key,SRK)组成。
可信报告根(RTR,report)。由pcr和背书秘钥(endorsement key)的派生密钥AIK(attestaion identity key)组成。
可信计算平台由TPM芯片机器密钥和相应软件作为期信任根。
(四)可信平台中的有关信任状:
- 认可信任状(Endorsement or EK credential ):颁发者证明对应EK所在的TPM是他们生产的
- 平台信任状(Platform credential):颁发者证明带有某一特征的平台是他们生产的。
- 一致性信任状(Conformance credential):证明某个带有TPM的可信平台符合TCG的相关规范
- 确认信任状(Validation credential ):证明可信平台的某
组件是他们生产的 - 证实标识信任状(Attestation Identity or AIK credential ):证明带有对应AIK密钥的平台经证明已经确认是一个可信平台
(五)平台所有权的获得
- 可信平台最初交付时都没有所有者
- 获得所有权的过程实际上是将一个共享秘密插入TPM的屏蔽位置,插入时考虑:
- 机密性:用TPM的PUBEK进行加密,只有相应TPM可以获得
-完整性、可验证性:插入后,由TPM提供插入值的证明 - 可远程执行:通过机密性和完整性实现
- 机密性:用TPM的PUBEK进行加密,只有相应TPM可以获得
- 在获得所有权的同时,TPM生成新的SRK和一个新的TPMProof值,供可信存储根机制使用。
- 获得所有权后,TPM的所有者提供与TPM之间的共享秘密就可以执行
·些特权命令。 - “物理存在”:TPM中的可信路径,平台提供机制证明用户目前是在平台上直接操作,而不是通过网络连接。
- TPM所有权的清除:可以由所有者进行,也可以通过“物理存在”来进行。获得所有权后,可以禁止进行TPM所有权清除工作。
- TPM所有者可以将特权命令委托给持有其他共享秘密的实体使用。