天融信

来源:百度文库 编辑:神马文学网 时间:2024/05/07 09:05:09
TCG 的基本情况
引言
现在使用的个人计算机、服务器及其它嵌入式计算设备软硬件结构比较简化,可能导致资源被任意使用,尤其是执行代码可修改,恶意程序可以被植入病毒程序利用操作系统对执行代码不检查一致性弱点,将病毒代码嵌入到执行代码程序,实现病毒传播黑客利用被攻击系统的漏洞窃取超级用户权限,植入攻击程序,肆意进行破坏更为严重的是对合法的用户没有进行严格的访问控制,可以进行越权访问,造成不安全事故。
为了解决计算机上的不安全,从根本上提高其安全性,必须从芯片、硬件结构和操作系统等方面综合采取措施,由此产生出可信计算的基本思想,其目的是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性。
在当今的信息时代,保护信息的私密性、完整性、真实性和可靠性,提供一个可信赖的计算环境已经成为信息化的必然要求。为此,必须做到终端的可信,从源头解决人与程序、人与机器还有人与人之间的信息安全传递,进而形成一个可信的网络,解决当前以防火墙、入侵监测和病毒防范为主的传统网络安全系统存在的被动防御的不足。
TCG 组织
1999 年 10 月为了解决 PC 机结构上的不安全,从基础上提高其可信性,由几大 IT 巨头 Compaq 、 HP 、 IBM 、 Intel 和 Microsoft 牵头组织了可信计算平台联盟 TCPA(Trusted Computing Platform Alliance) ,成员达 190 家。 TCPA 定义了具有安全存储和加密功能的可信平台模块( TPM ),致力于数据安全的可信计算,包括研制密码芯片、特殊的 CPU 、主板或操作系统安全内核。 2003 年 3 月 TCPA 改组为“可信计算组织” TCG(Trusted Computing Group) , TCG 在原 TCPA 强调安全硬件平台构建的宗旨之外,更进一步增加了对软件安全性的关注,旨在从跨平台和操作环境的硬件组件和软件接口两方面,促进不依赖特定厂商开发可信计算环境。
TCG 已发表与将发表在多种计算机平台上如何建立可信计算体制的执行规范及定义,包括:体系结构、功能、界面等。对于特定的计算平台,如: PC , PDA ,蜂窝电话及其他计算设备, TCG 将发表更详细的执行规范。
基于 TCG 标准的计算平台,将符合更高可信标准的功能和可靠性标准。 TCG 将发表评估标准和准确的平台结构作为使用了 TCG 技术的设备的评估尺度。
可信计算系统在投入使用后同样需要持续的操作完整性维护以达到可信度的持续改良。 TCG 将推荐系统投入使用后的(改良)程序和方法。
TCG 规范确保了完整性、私密性和真实性,防止了泄密和攻击对信息资产带来的风险。
在可信计算领域,具有 TPM 功能的 PC 机已经上市( IBM 、 HP 等),微软提出了 NGSCB ( Next-Generation Secure Computing Base )的可信计算计划,并在操作系统 VISTA 部分实现。 Intel 为支持可信计算推出相应的新一代处理器。
2004 年,武汉瑞达公司推出自主知识产权的可信计算机产品。 2005 年 4 月联想集团和中科院计算所安全芯片完成安全芯片和可信 PC 平台开发。 2005 年 4 月,兆日科技也推出符合可信计算联盟( TCG )技术标准的 TPM 安全芯片。
2008 年 4 月底,中国可信计算联盟 (CTCU ) 在国家信息中心成立。
TCG 倡导的可信计算已逐步由理论逐步转化为产业,转入到实质性的实现阶段。
几个工作组
现在 TCG 组织分成下列几个工作组:
认证工作组。该组定义可信计算平台的认证机制的规范,包括生物识别与认证、智能卡等。
硬件复制工作组。该组定义用于硬件复制设备的、开放的、与厂商无关的规范,硬件复制设备可利用 TCG 组建构建自己的可信根。
基础结构工作组。该组定义结构框架以及整合结构的接口标准和元数据。
移动工作组。该组定义可信的移动设备,包括手机、 PDA 等。
PC 客户端工作组。该组为使用 TCG 组件的 PC 客户端提供公共的功能、接口及安全性私密性相关的必要支撑条件。
服务器工作组。该组为 TCG 技术实现服务器提供定义、规范、指南等。
软件栈工作组:该组为利用 TPM 的应用系统厂商提供一组标准的 API 接口, 目标是对使用 TPM 功能的应用程序提供一个唯一入口:提供对 TPM 的同步访问;管理 TPM 的资源;适当的时候释放 TPM 的资源等
存储工作组。该组重点制定专用存储系统的安全服务标准。
可信网络联接( TNC )工作组。该组重点在端点接入网络时和接入之后端点的完整性策略符合性上。
可信平台模块 (TPM) ( Trusted Platform Module ) 工作组。该组制定 TPM 规范。 TPM 是可信根,该根是其它工作组的基础。
虚拟化平台工作组。该组着重虚拟化平台上的可信计算
TCG 组织以 TPM 为核心,逐步把可信由 TPM 推向网络和各种应用。下图是 TCG 正在或计划从事的领域:

可信的定义
TCG 对“可信”的定义是:“一个实体在实现给定目标时,若其行为总是如同预期,则该实体是可信的”( An entity can be trusted if it always behaves in the expected manner for the intended purpose )。这个定义将可信计算和当前的安全技术分开:可信强调行为结果可预期,但并不等于确认行为是安全的,这是两个不同的概念。如,你知道你的电脑中有病毒,这些病毒会在什么时候发作,了解会产生如何的后果,同时病毒也确实是这么运行的,那么这台电脑就是可信的。从 TCG 的定义来看,可信实际上还包含了容错计算里可靠性的概念。可靠性保证硬件或者软件系统性能可预测。
可信计算的主要手段是进行身份确认,使用加密进行存储保护及使用完整性度量进行完整性保护。基本思想是在计算机系统中首先建立一个信任根,再建立一条信任链,一级测量认证一级,一级信任一级,把信任关系扩大到整个计算机系统,从而确保计算机系统的可信。由于引入了 TPM 这样的一个嵌入到计算机平台中的嵌入式微型计算机系统, TCG 解决了许多以前不能解决的问题。 TPM 实际上就是在计算机系统里面加入了一个可信第三方,通过可信第三方对系统的度量和约束来保证一个系统可信。
TCG体系结构
TCG 的参考体系结构如图所示:

图 具有可信平台模块( TPM )的 PC 平台参考图
可信计算平台的基本特征
一 个可信平台要达到可信,最基本的原则就是必须真实报告系统的状态,同时决不暴露密钥和尽量不表露自己的身份。这就需要三个必要的基础特征:保护能力( Protected Capabilities )、证明( Attestation )、完整性度量存储和报告( Integrity Measurement, Storage and Reporting )。
保护能力:
保护能力是通过建立平台屏蔽保护区域( shielded locations )(比如内存,寄存器等),实现敏感数据的访问授权,从而控制外部实体对这些敏感数据的访问。 TPM 实现了保护能力和屏蔽区域。
证明:
证明是确认信息正确性的过程。通过这个过程,外部实体可以确认保护区域、保护能力和信任源。通过证明,可以完成网络通信中身份的认证,而且由于引入了 TPM 中的平台配置寄存器 PCR 值,在身份认证的同时还鉴别了通讯对象的平台环境配置。 TCG 的身份证明包括三个层次: TPM 可信性证明( by the TPM )、平台身份证明( to the platform )、平台可信状态证明( of the platform )。证明过程主要用到了身份证明密钥 AIK , AIK 是一个签名密钥, TPM 使用 AIK 来证明自己的身份,凡是经过 AIK 签名的实体,都表明已经经过 TPM 的处理。
完整性的度量存储和报告: 完整性测量、存储和报告的基本原理是:一个平台可能会被允许进入任何状态,但是平台不能对其是否进入或退出了这种状态进行隐瞒和修改。一个独立的进程可以对完整性的状态进行评估并据此作出正确的响应。
1 )完整性测量
完整性度量的过程是:对影响平台完整性(可信度)的平台部件进行测量,获得测量值,并将测量值的信息摘要记入平台配置寄存器 PCR 。
度量的开始点称为可信度量根。静态的可信度量根开始于对机器的起始状态进行的测量,如上电自检状态。动态的可信度量根是以一个不被信任的状态变为可信状态的测量作为起始点。
平台 BIOS 及所有启动和操作系统模块的摘要值都将存入特定的 PCR ,在进行网络通信时,可以通过对对方 PCR 值的校验确定对方系统是否可信(即是否感染了病毒、是否有木马、是否使用盗版软件等)
2 )完整性存储:包括了存储完整性测量值的日志和在 PCR 中存储这些测量值的信息摘要。
3 )完整性报告:用于证实完整性存储的内容。
可信平台模块TPM
在 TCG 系统中,可信根 (Root of trust) 是无条件被信任的,系统并不检测可信根的行为,因此可信根的是否真正值得信任,是系统的可信关键。 TPM 是可信根的基础。 TPM 是一个含有密码运算部件和存储部件的小型片上系统,它既是密钥的生成器,又是密钥管理器件,同时还提供了统一的编程接口。 TPM 通过提供密钥管理和配置管理等特性,与配套的应用软件一起,主要用于完成计算平台的可靠性认证、用户身份认证和数字签名等功能。
TPM 由输入和输出、密码协处理器、散列消息认证码 HMAC 引擎等组件构成。 TPM 芯片首先验证当前底层固件的完整性,如正确则完成正常的系统初始化,然后由底层固件依次验证 BIOS 和操作系统完整性,如正确则正常运行操作系统,否则停止运行。之后,利用 TPM 芯片内置的加密模块生成系统中各种密钥,对应用模块进行加解密,向上提供安全通信接口,以保证上层应用模块的安全。

任何可信都是建立在某一个层次上的,如果你能直接访问更低的层次,那么上一个层次的保护将是毫无作用的。传统的系统中,密钥和授权信息都直接存储在内存和硬盘之中,攻击者有很多的方法来获取它们。在可信计算的体系中,所有这些秘密数据都是由 TPM 来保护的。这样,只有攻击者能够攻破 TPM 才能攻破系统的防护。这样, TPM 成为了系统可信的最低层次,它提供了整个系统可信的基础。
信任传递 (Transitive Trust) 与可信边界 (Trust Boundary)
在可信计算体系中,建立可信需要先拥有可信根( Roots of Trust ),然后建立一条可信链( Chain of Trust ),再将可信传递到系统的各个模块,之后就能建立整个系统的可信。信任源是一个必须能够被信任的组件。在一个可信平台中有三个可信根:度量可信根、存储可信根( root of trust for storage , RTS) 和报告可信根( root of trust for reporting , RTR) 。
RTM 被用来完成完整性度量,通常使用度量可信根的核心( core root of trust for measurement , CRTM) 所控制的计算引擎。 CRTM 是平台执行 RTM 时的执行代码,一般存在 BIOS 中。 RTM 同时也是信任传递的原点。
RTS 是维护完整性摘要的值和摘要序列的引擎,一般由对存储加密的引擎和加密密钥组成。
RTR 是一个计算引擎,能够可靠地报告 RTS 持有的数据,这个可靠性一般由签名来保证。
这三个根都是可信、功能正确而且不需要外界维护的。这些可信根存在于 TPM 和 BIOS 中,可以由专家的评估来确定是否符合可信的标准。一般,在平台建立之后,我们认为 TPM 和 BIOS 是绝对可信的。
可信平台构造模块 (Trusted Building Blocks , TBB) 是信任源的一部分,包括 RTM 和 TPM 初始化的信息和功能(复位等)。可信构建模块 TBB 和信任根的组合形成了一个基本的可信边界,可用来对 PC 机的最小配置进行完整性的测量、存储和报告。在运行系统中的任何硬件和软件模块之前,必须建立对这些模块代码的信任,这种信任是通过在执行控制转移之前对代码进行度量来确认的。在确认可信后,将建立新的一个可信边界,隔离所有可信和不可信的模块。即使确定模块不可信,也应该继续执行这个模块,但是需要保存真实的平台配置状态值。
建立可信链的过程如图:

可信平台中的信任链度量机制过程如下图所示。 BIOS Boot Block 为完整性度量信任根, TPM 芯片为完整性报告信任根。从平台加电开始, BIOS Boot Block 会度量 BIOS 的完整性值并将该值存储在安全芯片上,同时在自己可写的那块内存中记日志;接着 BIOS 度量 Hardware 和 ROMS ,将度量得到的完整性值存在安全芯片中,在内存中记日志;接着 OS Loader 度量 OS , OS 度量应用和新的 OS 组件。当操作
系统启动后,由用户决定是否继续信任这个系统平台。这样一个信任链的建立过程保证了系统平台的可信性。完整性值通常是一个哈希值,通常采用的哈希算法是 SHA1 。

可信平台密钥与证书
在建立了可信以后,并不是就可以放心把所有权力下放了,还需要证明身份,通过授权和委托来管理信息资产。在这些机制里面,最重要的就是密钥与证书。 TCG 定义了 7 种密钥类型。每种类型都附加了一些约束条件以限制其应用。 TCG 的密钥可以粗略的分类为签名密钥和存储密钥。更进一步的分类有:平台、身份认证、绑定、普通和继承密钥。对称密钥被单独分类为验证密钥。非对称密钥大多要求 2048 位的 RSA 密钥。在整个密钥体系中,每个密钥在开始创建的时候都指定了固定的密钥属性。密钥按照属性不同分为:可移动密钥 (Migratable Key) 、不可移动密钥 ( Non- Migratable ) 。可移动存储密钥并不局限于某个特定平台,可以由平台用户在平台之间互换而不影响信息交互。不可移动密钥则永久与某个指定平台关联,任何此类密钥泄漏到其它平台都将导致平台身份被假冒。不可移动密钥能够用来加密保护可移动密钥,反之则不行。 7 种密钥类型如下:
1 )签名密钥 (Signing Key) :非对称密钥,用于对应用数据和信息签名。
2 )存储密钥 (SK-Storage Key) :非对称密钥,用于对数据或其他密钥进行加密。存储根密钥 (SRK-Storage Root Key) 是存储密钥的一个特例。
3 )平台身份认证密钥 (AIK-Attestation Identity Key) :专用于对 TPM 产生的数据(如 TPM 功能、 PCR 寄存器的值等)进行签名的不可迁移的密钥。
4 )签署密钥 (EK-Endorsement Key) :平台的不可迁移的解密密钥。在确立平台所有者时,用于解密所有者的授权数据和与产生 AIK 相关的数据。签署密钥从不用作数据加密和签名。
5 )绑定密钥 (Binding Key) :用于加密小规模数据(如对称密钥),这些数据将在另一个 TPM 平台上进行解密。
6 )继承密钥( Legacy Key ):在 TPM 外部生成,在用于签名和加密的时候输入到 TPM 中,继承密钥是可以迁移的。
7 )鉴别密钥( Authentication Key ):用于保护引用 TPM 完成的传输会话的对称密钥。
在可信计算平台中,密钥分层体系如图所示。

图 密钥分层体系结构
SRK 作为一级密钥 ( 也称主密钥 ) ,存储在安全区域,用它对二级密钥信息加密生成二级密钥。依次类推,父节点加密保护子节点,构成整个分层密钥树结构。在密钥分层树中,叶子节点都是各种数据加密密钥和实现数据签名密钥。这些动作都应该是连贯的密箱操作。相比之下,纯软件的加密系统难以做到密箱操作。但如果把主密钥、加密算法等关键数据、程序固化在硬件设备 TPM 中,就能解决密箱操作的难题。
密钥的使用和生成都离不开证书。 TCG 定义了五类证书,每类都被用于为特定操作提供必要的信息。证书的种类包括:
1 )签署证书 (Endorsement Credential) 。由生成 EK 的人发表,包含 TPM 制造者名、 TPM 型号、 TPM 版本号和 EK 公钥。由于是鉴别 TPM 身份的唯一证据,所以也是秘密和敏感的,除了生成 AIK ,其它时候都不应该使用它。
2 )一致性证书 (Conformance Credential) 。它指出了评估者认可 TPM 的设计和实现符合评估准则。它由独立的可信机构发布。包含评估者名、平台制造者名、平台型号、平台版本号等。
3 )平台证书 (Platform Credential) 。它由平台制造者发行,确认平台制造者和描述平台属性。
4 )确认证书 (Validation Credential) :由第三防发的对系统中的某个硬件或软件证书。如微软给某显卡的驱动证书。
5 )身份认证证书 (I AIK Credential) : AIK 证书被用来鉴定对 PCR 值进行签名的 AIK 私钥。 AIK 证书由一个可信的、能验证各种证书和保护客户端的隐私的服务发表,比如 privacy CA 。通过发表 AIK 证书,签名者证明提供 TPM 信息的 TPM 的真实性。
可信计算平台
可信计算平台是以 TPM 为核心,但它并不仅仅由一块芯片构成,而是把 CPU 、操作系统、应用软件、网络基础设备融为一体的完整体系结构。
一个典型的 PC 平台上的体系结构如下图所示:

整个体系主要可以分为三层: TPM 、 TSS 和应用软件。
TSS ( TCG Software Stack ) 处在 TPM 之上,应用软件之下,称作可信软件栈,它提供了应用程序访问 TPM 的接口,同时进行对 TPM 的管理。 TSS 分为四层:工作在用户态的 TSP ( TCG Service Provider ) 、 TCS ( TCG Core Services ) 、 TDDL 和内核态的 TDD 。
TCG 服务提供层 (TSP)
TSP 提供应用程序访问 TPM 的 C ++界面,基于一个面向对象的底层结构,驻留在与应用程序一样的进程地址空间(都是用户进程)。授权协议在这一层通过一个在这层编码的用户接口,也可通过 TCS 层的回调机制(如果调用者是远程的话)来实现。
TSP 提供两种服务 : 上下文( context )管理和密码操作。上下文管理器产生动态句柄,以便高效地使用应用程序和 TSP 资源。每个句柄提供一组相关 TCG 操作的上下文。应用程序中不同的线程可能共享一个上下文,也可能每个线程获得单独的上下文。为了充分利用 TPM 的安全功能,这层也提供了密码功能。但是内部数据加密对接口是保密的,例如报文摘要和比特流的产生功能等。
TCG 核心服务层( TCS )
TCS 提供一组标准平台服务的 API 接口。一个 TCS 可以提供服务给多个 TSP 。如果多个 TCG 服务提供者都基于同一个平台, TCS 保证它们都将得到相同的服务。 TCS 提供了 4 个核心服务:
( 1 )上下文管理 - 实现到 TPM 的线程访问。
( 2 )证书和密钥的管理 - 存储与平台相关的证书和密钥。
( 3 )度量事件管理 - 管理事件日志的写入和相应 PCR 寄存器的访问。
( 4 )参数块的产生 - 负责对 TPM 命令序列化、同步和处理。
TCG 设备驱动库( TDDL )
TDDL 是用户态和内核态的过渡,仅仅是一个接口而已。它不对线程与 TPM 的交互进行管理,也不对 TPM 命令进行序列化( serialization )。这些是在高层的软件堆完成。由于 TPM 不是多线程的,一个平台只有一个 TDDL 实例( instance ),从而只允许单线程访问 TPM 。 TDDL 提供开放接口,使不同各厂商可以各自自由实现 TDD 和 TPM 。
结论
可信计算平台能够对用户身份进行鉴别,用户身份不再依赖操作系统,使用假冒的用户身份信息非常困难;第二,其内部各元素之间要对上层进行严密认证,从系统的启动开始、 BIOS 、操作系统的加载模块、操作系统都要被一一验证,确保启动链中的软件未被篡改;最后,可信计算平台具备网络上的唯一身份识别,不再依赖 IP 地址。
在信息安全领域, TCG 的思想和实践都是向前迈了一大步。 TCG 对由被动防御向主动防御,由重视防外转向同时重视防内都做出了重要贡献, TCG 的理论价值或市场价值必将越来越大,特别在信任链可控的专网中将会很快得到广泛采用。
TCG 虽然取得了很大的进展,但要解决的问题也很多。 至今,没有公认的可信计算理论模型 ,业界也没有完全实现 TCG 的 PC 技术规范可信计算机,也缺少操作系统、网络、数据库和应用的可信机制配套。