3.1 可信计算发展概貌
早在20 世纪70年代末,尼巴尔第(G.H. Nibaldi)就对可信计算的概念进行了探讨,建立了可信计算基(TCB,Trusted Computing Base)的思想。该思想为美国国防部的TCSEC标准的制订奠定了重要的基础。可信计算基思想的重要启示之一是通过硬件、固件和软件的合作来构筑系统平台的安全性和可信性。
可信计算要研究的根本问题是信任问题。信任问题的本质是实体行为的可预测性和可控制性,即实体的完整性。因此,如何度量和维护实体的完整性自然是可信计算的关键。
软件与硬件结合是实现完整性度量的重要途径,以可信平台模块(TPM,Trusted Platform Module)为基础的可信计算技术是这方面的代表性成果之一。
定义3.1 可信平台模块(TPM,Trusted Platform Module)是TCPA/TCG定义的可信计算平台的核心基础部件,通常以硬件的形态存在,提供系统完整性度量功能及完整性度量信息的存储和报告功能,同时提供密码运算、密钥生成和管理、数据封装等功能。
1999年,可信计算平台联盟(TCPA,Trusted Computing Platform Alliance)的创立是该技术发展的重要推动因素。起初,TCPA由微软、英特尔(Intel)、IBM等190家公司参加,它致力于数据安全的可信计算,包括研制密码芯片、特殊的CPU、主板或操作系统安全内核。
2003年4月,TCPA演变为可信计算组织(TCG,Trusted Computing Group),它在TCPA强调安全硬件平台构建的宗旨之外,更进一步地增加了对软件安全性的关注,旨在从跨平台和操作环境的硬件组件和软件接口两方面,促进不依赖特定厂商的可信计算平台工作标准的制订。
3.1.1 TCG可信计算的典型前期基础
TCPA和TCG把可信计算向实用化推进了一大步,而业界在它们成立之前开展的很多研究工作,则为TCPA和TCG的技术体系的建立打下了重要的基础。以下几项工作具有典型的意义。
1991年,卡内基梅隆大学的泰格(J.D.Tygar)等人提出了基于安全协处理器的Dyad系统模型。该模型的安全协处理器硬件为系统提供私密性和完整性支持。它通过数字签名检验操作系统和其他系统软件的完整性,为进入运行状态的操作系统提供完整性验证和加解密等服务,并支持操作系统验证其他组件的完整性、实现信息的加解密、建立与远程系统的加密连接。
1994年,美国可信信息系统公司的克拉克(P.C. Clark)和乔治华盛顿大学的霍夫曼(L.J. Hoffman)给出了基于智能卡的引导完整性令牌系统(BITS,Boot Integrity Token System)模型。该模型把系统的主引导程序存放在智能卡中,以保护主引导程序的完整性。存放在智能卡中的还有其他引导文件的哈希值及用户口令和主机标识。系统启动时,首先验证用户使用智能卡的合法性和智能卡与主机的匹配关系,然后从智能卡中读取主引导程序,开始引导过程。主引导程序从主机中读取其他引导文件,完成引导过程。存放在主机中的文件的完整性借助智能卡中的哈希值进行验证。
1997年,宾夕法尼亚大学的阿玻(W.A. Arbaugh)等人提出了AEGIS安全引导体系结构模型。该模型修改了主机系统的BIOS,并增加一个AEGIS ROM,以实现对可执行代码的完整性检查,如果完整性检查失败,则提供系统恢复支持。该模型把引导过程涉及的系统组件划分为6层,第0层是基础BIOS和AEGIS ROM,包含验证代码、公钥证书和系统恢复代码;第1 层是其余的BIOS;第2 层是扩充的只读存储;第3 层是操作系统的引导块;第4层是操作系统;第5层是应用软件。第0层中的软件是可信软件,用做完整性检查链的根。其余各层的可执行代码在执行之前,由低层进行完整性检查。完整性检查通过哈希值和数字签名实现。
2001年,IBM沃森研究中心的代尔(J.G. Dyer)、达特茅斯学院的史密斯(S.W. Smith)和美国Cryptographic Appliances公司的魏因加特(S. Weingart)等人研制了IBM 4758安全协处理器。它在一个物理装置中封装了三组成分:硬件、固件和软件。硬件通过PCI接口与主机系统连接;固件包含POST和微引导程序;软件包含操作系统装载程序、操作系统和应用软件。IBM 4758是一个独立的缩微计算机系统,支持应用软件在其内部运行,安全应用软件可以部署在其内部,并通过安全协议与主机系统中的软件通信,构成大的应用系统。IBM 4758内部把组件划分为若干层,借助数字签名实现内部系统的安全引导。
实际上,对IBM 4758的研究工作远在1999年TCPA成立以前就已经启动了。以上这些,都是可信计算相关的具有代表性的系统方面的研究工作,它们对TCG的可信计算技术体系的建立具有重要的意义。
3.1.2 TCG可信计算的发展思路
TCG继承了TCPA的技术规范,它的目标是为计算机系统平台的可信性提供强有力的支持,基本方法是在现有计算机系统的基础上增加TPM功能模块,把现有计算机系统平台扩充为可信计算平台,相应的可信计算平台参考模型如图3.1所示。
图3.1 基于TPM的可信计算平台参考模型
TCG从一开始就致力于可信终端及相关技术的应用,其规范为未来的可信计算勾勒出一个大体的框架,该框架的重要思想之一是通过增强现有的终端体系结构的安全性来保证整个系统的安全。其主要思路是在各种终端(包含PC、手机及其他移动智能终端等)硬件平台上引入可信架构,通过其提供的安全特性来提高终端系统的安全性。
终端可信的核心是TPM可信芯片。以TPM为基础的可信计算蕴涵着以下几个方面的思想:
● 用户的身份认证是对使用者的信任;
● 平台的完整性体现使用者对平台运行环境的信任;
● 应用程序的完整性体现应用程序运行的可信性;
● 平台之间的可验证性体现网络环境中终端之间的相互信任。
3.1.3 响应TCG规范的热点研究
TCPA和TCG的可信计算体系规范的推出,引起了工业界和学术界的广泛关注,大量的研究工作和研究成果不断涌现。
2004年,IBM公司的丸山(H. Maruyama)等人在他们设计实现的TPod体系结构中利用可信计算平台实现了系统的可信引导。在TPod实现的可信引导中,基础BIOS作为信任根首先执行并度量其余BIOS的完整性,其余BIOS执行并度量操作系统装载程序GRUB的完整性,GRUB度量操作系统(这里包括SE-Linux内核和/etc/init脚本等)的完整性。
在完整性度量中,把操作系统等作为简单组件对待属于粗粒度的问题处理方法。从操作系统层开始,直到应用软件层,若把度量对象的粒度细化到与实际应用系统比较一致的程度,则需要解决更多的问题。细粒度的完整性度量是当前的热点研究问题。
2004年,IBM沃森研究中心的塞勒(R. Sailer)等人提出了完整性度量的IMA(Integrity Measurement Architecture),设计实现了Linux系统的组件细化完整性度量原型系统。IMA原型以可信计算平台为可信硬件,给出了系统BIOS、操作系统装载程序GRUB、Linux内核、Linux模块、应用软件等各层组件执行前的完整性度量方法,重点给出了Linux内核、Linux可装载内核模块、动态可装载库、结构化数据和可执行用户程序等的度量方法。
2005年,卡内基梅隆大学的史(E. Shi)和IBM沃森研究中心的范·多恩(L.Van Doorn)等人提出了为分布式系统建立可信环境的BIND(Binding Instructions aNd Data)框架。BIND把代码的完整性证明细化为关键代码段的完整性证明,并为关键代码段产生的每一组数据生成一个认证器。认证器附着到相应的数据上,从而实现关键代码段的完整性证明与其所产生的输出数据的绑定。因此,BIND可以通过关键代码段及其输入数据的完整性证明来达到系统完整性证明的目的。
2006年,宾夕法尼亚州立大学的耶格(T. Jaeger)、IBM沃森研究中心的塞勒和加州大学伯克利分校的山克(U. Shankar)提出了基于信息流的PRIMA(Policy-Reduced Integrity Measurement Architecture)完整性度量体系结构,并研究了以SE-Linux为基础的原型系统。PRIMA项目的研究工作在IMA研究成果的基础上引入CW-Lite信息流模型来处理组件依赖关系,在基于信息流的系统完整性动态度量方面进行了卓有成效的尝试。
在开放式、分布式的全球计算环境中,建立信任关系是现实应用的迫切需求。可信计算受到了工业界和学术界的高度重视,很多成果已经进入我们的视野。然而,在可信信息系统建设的道路上,依然“路漫漫其修远兮”,尚需大家“上下而求索”。