刘安战
中原工学院 河南 450007
国际组织可信计算组织 TCG推出的产品和规范提供了基于硬件可信平台模块 TPM 的数据安全存储和完整性验证解决方案。TCG 开发了一系列可信计算技术方面的技术规范。然而,随着服务计算的发展,在网络环境下如何建立可信的安全机制是个需要研究和探讨的安全问题。
无论是怎样的分布式自治网络系统,在引入可信保护机制时,都存在一个可信硬件的支持问题。在设计自治网络系统的可信保护机制时,考虑到可信硬件 TPM 的支持问题,采用在自治网络系统中引用一个可信网络节点,该节点由镶嵌有可信的硬件芯片TPM,并安装有可信保护机制所需要的可信软件栈TSS。整个自治网络系统采用星型的网络拓扑结构如图1所示。这里称引入可信节点的自治网络系统为可信自治网络系统。
图1 网络拓扑图
可信中心节点提供基本功能:(1)对系统内部节点起到基于TPM安全保护功能;(2)对系统外部提供基于TPM可信报告。
可信自治网络系统保护应用静态依赖配置的完整性也就是检查应用依赖存储介质上执行文件和运行时支持库等文件的完整性。可信自治网络系统采用基于 TPM 的数据保护和签名,达到硬件级别的可信安全,通过利用 TPM 提供的PCR达到系统状态的安全保护。
在可信自治网络系统中,系统首先通过可信初始化,把系统中需要保护的应用的完整性基准值I初始化到可信数据库中,在运行时刻通过计算检测H和I是否相同的方法,判断应用的静态可信性。由于I是作为基准的,因此它的安全性必须得到保障,通过利用可信平台模块TPM的数据安全功能对保存在可信数据库中基准值I进行签名保护,确保其安全。
应用静态可信保护能够确保应用对应的进程处在非运行状态时的进程代码和数据的完整性,但它不能确保应用对应的进程加载到内存后没有被恶意修改或破坏。TCG的可信链机制能够很好保护加载在本地计算机上的应用是可信的,基本过程首先有一个可信根,由可信根开始,每加载一个新的模块之前,都首先度量要加载的模块的完整性,如果检测通过则运行加载模块,然后,进行控制权的转移。这样一步一步逐渐扩大信任域,使得整个体统处于可信的状态。应用的动态可信保护需要在加载应用前进行静态的完整性检查,系统只允许符合静态可信的应用启动,从而达到系统整个运行环境的可信。
在可信自治网络系统中,可信中心节点可以利用传统的可信链机制保障可信安全,但是自治网络系统即使一个一体的系统,同时又是一个分布式的网络,加载在集群普通节点上的应用,由于缺少 TPM 的支持,没有办法通过传统的可信启动方法解决可信安全问题。
对于一个应用A对应的若干个进程P1,P2,…Pm ,通过抽取这些进程运行期间的不变的特征值后,再利用静态可信保护机制保护应用A的运行完整性。这里称应用A对应的进程运行期间的不变数据集为A的静态抽取集,记作SS(A)。如果应用A对应的进程名,进程ID和启动时间在整个运行期间是不会改变的,则可以把这些信息进行保护。因此可信自治网络系统的保护方式不同于传统的检验-->启动(阻止启动)-->检验-->启动(阻止启动)的过程,而是采用启动-->度量-->可信存储-->检验-->阻止启动(无动作)。也就是说,在应用启动后,采用静态抽取的方法抽取出应用进程运行过程中不变的信息进行HASH可信存储,在可信存储后的任何时刻可以通过检验的方法判断应用是否可信。
用上述静态可信保护的方法对于那些运行中变化频繁的应用显然是不适用的,为了弥补其不足,可信自治网络系统还采用授权监控的方式达到动态可信应用保护的目的,如图2,当系统中的应用运行于非可信中心节点UtNode时,通过在检测服务模块Trdm对运行于UtNode上的应用进行可信控制,Trdm通过白名单WL和黑名单BL的方式控制运行于UtNode上的应用,列于WL中的应用采用由Trdm先检查后启动的可信启动方式保证可信,列于黑名单中的应用(一般是破坏程序病毒木马等)Trdm通过检测控制的方式阻止其运行。
为了增加Trdm的安全性,系统使Trdm运行于核心模块。同时Trdm本身也可以看成是系统中的应用,WL和BL是Trdm的静态完整集S(Trdm),可信中心对Trdm采用静态抽取方式和静态可信保护的方式来保护Trdm的可信。
图2 可信链机制
可信自治网络系统的目标是通过引入可信中心为自治网络系统提供可信计算的基本特性,包括保护能力、完整性检测和完整性报告。可信自治网络系统的可信检测与报告流程图如图3所示。
图3 可信检测与报告流程图
图3中,网络用户是访问自治系统的外部用户,通过用户接口享用服务,服务用户接口根据不同的服务有不同的访问形式,用户登录管理负责管理用户。用户可享用的服务分布在自治网络系统中,可信报告服务是系统中一个特殊的用户可享用服务,它工作在可信中心节点上,向用户提供可信报告信息。可信数据库位于可信中心,受 TPM 硬件平台签名保护。Trdm是检测和其自身运行于同一节点上服务的,它主要作用是服务的可信检测以及和检测控制服务通信,检测服务和检测控制服务构成多对一的关系。检测控制服务负责系统中服务的检测值的获取,更新可信数据库和修改平台寄存器等作用。
可信数据库中包括了应用的基本信息和配置信息,基本信息包括应用的ID、应用名、应用所在的服务节点地址、安全级别、完整性状态等,配置信息包括应用ID、路径、类型、依赖文件列表、初始Hash值、检测Hash值等信息。
可信数据库关于应用的可信检测和报告的数据表字段设计如表1、表2所示。
表1 应用基本信息表的字段和说明
表2 应用配置信息表的字段和说明
可信数据库受到TPM的硬件签名保护,签名采用RSA算法对数据库中的数据用 SHA-1算法计算出的数字摘要进行非对称密码的公钥加密,公私密钥对是由可信安全芯片TPM创建,并且只有加载到TPM内部方可进行密钥加密解密运算,签名保护防止数据库被非法篡改。
系统测试是在以太网构成的自治系统节点之间进行的,节点采用Linux2.4内核系统,可信中心通过对运行一个节点上的的firestarter应用进行完整性检测报告测试,如表3所示。
表3 可信检测报告测试
可信数据库存放的主要数据之一就是系统中服务的检测值,即通过SHA1算法得到HASH值。无论是系统可信初始化,还是系统运行过程的 HASH值的更新,都需要进行HASH值的运算,系统的时间效率不仅和计算HASH值的时间有关,而且还和通信速度和通信数据量有关,HASH的运算时间和应用配置项多少有关,同时还和配置文件的大小有关。而通信量主要依赖于应用可信配置的项的多少。表4给出应用在单个配置项及百兆以太网的环境下,可信数据更新和配置文件大小的时间消耗关系图。表5给出应用在多个配置项的情况下,单个配置大小都是1K(1024字节)情况下,可信数据更新和配置文件大小的时间消耗关系图。从测试的结果分析,配置文件的大小对延迟的影响相对较小,配置项的增多对延迟影响较大。
表4 单配置项下的可信更新时间测试
表5 多项配置项下的可信更新时间测试
本文在可信计算思想上,提出了一个基于 TPM 的可信自治网络系统架构,并阐述了在该架构下的具体可信自治网络系统中应用的完整性保护机制。阐述了系统的总体设计和实现方式。可信自治网络系统实现了应用服务可信的启动控制过程,是从全新的角度研究可信计算体系结构的一种尝试。在进一步的工作中,将主要针对可信网络的可信支撑加以研究。
[1]李晓勇,沈昌祥.一个动态可信应用传递模型的研究.华中科技大学学报.2005.
[2]黄涛,沈昌祥.一种基于可信服务器的可信引导方案[J].武汉大学学报(理学版).2004.
[3]朱璇,郑纬民,汪东升等.单一系统映象在机群管理中的实现.计算机工程与应用.2002.