TCG 的基本情况 为了解决计算机上的不安全,从根本上提高其安全性,必须从芯片、硬件结构和操作系统等方面综合采取措施,由此产生出可信计算的基本思想,其目的是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性。 在当今的信息时代,保护信息的私密性、完整性、真实性和可靠性,提供一个可信赖的计算环境已经成为信息化的必然要求。为此,必须做到终端的可信,从源头解决人与程序、人与机器还有人与人之间的信息安全传递,进而形成一个可信的网络,解决当前以防火墙、入侵监测和病毒防范为主的传统网络安全系统存在的被动防御的不足。 TCG 组织 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 组建构建自己的可信根。 基础结构工作组。该组定义结构框架以及整合结构的接口标准和元数据。 移动工作组。该组定义可信的移动设备,包括手机、 PDA 等。 PC 客户端工作组。该组为使用 TCG 组件的 PC 客户端提供公共的功能、接口及安全性私密性相关的必要支撑条件。 服务器工作组。该组为 TCG 技术实现服务器提供定义、规范、指南等。 软件栈工作组:该组为利用 TPM 的应用系统厂商提供一组标准的 API 接口, 目标是对使用 TPM 功能的应用程序提供一个唯一入口:提供对 TPM 的同步访问;管理 TPM 的资源;适当的时候释放 TPM 的资源等 存储工作组。该组重点制定专用存储系统的安全服务标准。 可信网络联接( TNC )工作组。该组重点在端点接入网络时和接入之后端点的完整性策略符合性上。 可信平台模块 (TPM) ( Trusted Platform Module ) 工作组。该组制定 TPM 规范。 TPM 是可信根,该根是其它工作组的基础。 虚拟化平台工作组。该组着重虚拟化平台上的可信计算 TCG 组织以 TPM 为核心,逐步把可信由 TPM 推向网络和各种应用。下图是 TCG 正在或计划从事的领域: 可信的定义 可信计算的主要手段是进行身份确认,使用加密进行存储保护及使用完整性度量进行完整性保护。基本思想是在计算机系统中首先建立一个信任根,再建立一条信任链,一级测量认证一级,一级信任一级,把信任关系扩大到整个计算机系统,从而确保计算机系统的可信。由于引入了 TPM 这样的一个嵌入到计算机平台中的嵌入式微型计算机系统, TCG 解决了许多以前不能解决的问题。 TPM 实际上就是在计算机系统里面加入了一个可信第三方,通过可信第三方对系统的度量和约束来保证一个系统可信。 TCG体系结构 图 具有可信平台模块( TPM )的 PC 平台参考图 可信计算平台的基本特征 保护能力: 证明: 完整性的度量存储和报告: 完整性测量、存储和报告的基本原理是:一个平台可能会被允许进入任何状态,但是平台不能对其是否进入或退出了这种状态进行隐瞒和修改。一个独立的进程可以对完整性的状态进行评估并据此作出正确的响应。 1 )完整性测量 完整性度量的过程是:对影响平台完整性(可信度)的平台部件进行测量,获得测量值,并将测量值的信息摘要记入平台配置寄存器 PCR 。 度量的开始点称为可信度量根。静态的可信度量根开始于对机器的起始状态进行的测量,如上电自检状态。动态的可信度量根是以一个不被信任的状态变为可信状态的测量作为起始点。 平台 BIOS 及所有启动和操作系统模块的摘要值都将存入特定的 PCR ,在进行网络通信时,可以通过对对方 PCR 值的校验确定对方系统是否可信(即是否感染了病毒、是否有木马、是否使用盗版软件等) 2 )完整性存储:包括了存储完整性测量值的日志和在 PCR 中存储这些测量值的信息摘要。 3 )完整性报告:用于证实完整性存储的内容。 可信平台模块TPM TPM 由输入和输出、密码协处理器、散列消息认证码 HMAC 引擎等组件构成。 TPM 芯片首先验证当前底层固件的完整性,如正确则完成正常的系统初始化,然后由底层固件依次验证 BIOS 和操作系统完整性,如正确则正常运行操作系统,否则停止运行。之后,利用 TPM 芯片内置的加密模块生成系统中各种密钥,对应用模块进行加解密,向上提供安全通信接口,以保证上层应用模块的安全。 任何可信都是建立在某一个层次上的,如果你能直接访问更低的层次,那么上一个层次的保护将是毫无作用的。传统的系统中,密钥和授权信息都直接存储在内存和硬盘之中,攻击者有很多的方法来获取它们。在可信计算的体系中,所有这些秘密数据都是由 TPM 来保护的。这样,只有攻击者能够攻破 TPM 才能攻破系统的防护。这样, TPM 成为了系统可信的最低层次,它提供了整个系统可信的基础。 信任传递 (Transitive Trust) 与可信边界 (Trust Boundary) 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 。
可信平台密钥与证书 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 的真实性。 可信计算平台 一个典型的 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 。 结论 在信息安全领域, TCG 的思想和实践都是向前迈了一大步。 TCG 对由被动防御向主动防御,由重视防外转向同时重视防内都做出了重要贡献, TCG 的理论价值或市场价值必将越来越大,特别在信任链可控的专网中将会很快得到广泛采用。 TCG 虽然取得了很大的进展,但要解决的问题也很多。 至今,没有公认的可信计算理论模型 ,业界也没有完全实现 TCG 的 PC 技术规范可信计算机,也缺少操作系统、网络、数据库和应用的可信机制配套。 |
|
来自: iceberg_horn > 《概述综合》