本篇文章是由《中国电机工程学报》(旬刊)国家一级学报,国内外公开发行,全国中文核心期刊。主要出版动力和电力工程领域的新理论、新方法、新技术和新成果。主要服务对象是电力工业和电工制造领域的广大科技工作者、高级工程技术人员和高等院校师生。
1 引言
可信计算平台技术已成为信息安全领域中的研究热点,可信证明(Remote attestation)是可信计算平台的一个重要内容。目前TCG 发布的远程认证机制是Privacy CA 和DAA,它们都是基于TPM 身份公钥AIK(Attestation Identity Key)和反映可信平台事件记录的顺序的PCR(Platform Configuration Register)。Frederic Stumpf 等人改进了这种基于二进制的认证方案,提出了一种鲁棒的完整性报告协议(Robust Integrity Reporting Protocol)可以有效的验证远程可信平台;但基于二进制的认证方案被证明是有其固定缺陷的,Vivek Haldar等人提出的基于虚拟机的远程语义认证可以验证远程客户机的程序是否真正安全,这种动态的认证方案可以解决二进制认证方案的缺陷, 由于把测试程序的虚拟机放在客户端,中间网络的不可靠性使得验证结果并不是可信的,Liqiang Zhang等人将此工作更进一步,用TPM和密钥来监视虚拟机的接入,这样可以保证程序执行结果的可信。然而认证过的程序要一直认证,这样认证的效率是可想而知的。对于客户端和服务器这样机制是不适合的,因为把虚拟机放在客户端,验证过程必定增加了大量的数据流量,这给服务器带来额外的负担,这是个致命的缺陷。本文正是出于对这些不足的考虑,改进前人的认证方案,提出在客户端和服务器这种特定结构上程序的可信认证,并通过实验对Web 服务器上的程序进行具体的认证,实验结果表明认证结果是可信的且提高了认证效率。
本文组织如下:第二节介绍可信计算的传统认证机制;第三节讨论引入虚拟机概念的可信计算认证;第四节提出服务器上对客户端程序的认证。第五节对所做的工作进行总结;第六节对与本文相关的工作进行了介绍。了解SLA网络拓扑显示论文。
2 可信传统远程认证机制
2.1 TCG 简介TCG 是由包括Intel、微软、IBM 在内的业界大公司在1999 年牵头成立,现有近200个公司相继加入。TCG 的目标是建立并推广一个开放的、与厂商无关的可信计算构建块的工业标准和一套跨平台的软件接口。
在 TCG 规范中,可信计算平台技术的核心是一个被称为TPM(可信平台模块)的安全芯片,TPM 具有硬件保护支持功能,即对TPM 内部对象的访问只能通过TPM 规定的接口实现,并且这些对象只能被其属主(Owner)通过安全方式访问。
TCG 认为如果从一个初始的任信根 (Roots of Trust,RT)出发,在平台计算环境每一次转换时,这种信任状态可以通过传递的方式保持下去而不被破坏,那么平台计算环境始终是可信的,可信环境下的各种操作也不会破坏平台的可信性,平台本身的完整性得到保证,终端安全自然也得到了保证,这就是信任链的传递机制。
TCG 规定在建立用户级进程时,内核将度量其可执行代码和敏感数据,这些度量值被存储在PCR(Platform Configuration Register)寄存器和存储度量日志SML(Stored MeasurementLog)中,每个PCR 可以被定义只与计算平台的某一类系统特定事件状态相关。每次相关事件发生时,计算平台将事件记录结果保存,并将记录结果的Hash 值扩充到TPM 中事件对应的PCR 中。将Hash 值扩充到PCR[n]中的过程为PCR[n]=hash(PCR[n]+R)。显然,PCR值与事件历史过程相关,并与事件记录的顺序有关,因此它的值实际反映了事件发生的历史顺序。每个计算平台都通过其内置的TPM 身份公钥AIK(Attestation Identity Key)标识自己的身份,并利用其AIK 私钥对消息内容签名,证明其来源。
2.2 基于二进制的认证—TCG
发布的认证方案目前 TCG 发布的远程认证方案包括Privacy CA(Privacy Certification Authority)和直接匿名认证DAA(Direct Anonymous Attestation),都是基于二进制的认证方案。它们都是基于把平台的现在的状态报告给远程平台,每个计算平台都通过其TPM 身份公钥AIK 来标示自己,如有必要,存储度量日志SML(Stored Measurement Log)也用来验证平台是否可信。
Privacy CA 是通过可信的第三方来验证自己,首先平台向可信第三方发送自己的AIK,可信第三方验证后发回签名的AIK;然后平台通过自己的AIK 和签名的AIK 向远程平台来证明自己。
DAA 则不需要可信的第三方,并可以给同一个TPM 产生不同的AIK,DAA 还引入了时戳标示。基于二进制的认证方案主要有以下一些缺陷:(1)可扩展性差,(2)对隐私的暴露,(3)缺乏开放性,(4)可能有大量的配置信息的存在,(5)由于时戳标示并不能保证执行的实时性,因此在完整性度量值和完整性报告之间可能有较大的时间差异。
2.3 基于属性的认证
为了克服二进制认证的缺点,A.R.Sadeghi 等人提出的基于属性的证明(property-basedattestation,PBA)方法是一种更加有效且灵活的远程证明解决方案,PBA 方法试图解决平台配置信息暴露以及系统更新和备份问题。这里的属性是针对特定需要的平台行为的表现,每种属性对应多种平台配置信息,从而避免了具体平台配置信息的直接暴露。在此基础上L.Chen 等人提出了一个基于属性证书的证明协议,每种属性以及其对应的每种配置信息对应一个属性配置证书(Property Configuration Certificates),由一个可信的第三方CA 负责管理和发布。这种证明协议仍然使用大量零知识证明实现属性的验证,运算复杂度较高。
这里所说的属性描述了底层对象(平台或应用)关于特定需求的行为的某个方面(如,安全相关的需求)。通常,属性具有不同抽象层次。例如,用平台属性描述平台可以保护隐私。可以描述为,平台具有内建的符合隐私条例的度量,或平台可以保证孤立性(如,将每个处理器严格的分开),也可以描述为平台提供多层安全(Multi-Level Security,MLS)等。
是否具有合理的属性集,主要由用例和需求决定。认证属性的优势是不同的平台,可以提供相同的属性并且满足相同的需求,尽管他们使用不同的构件且配置不同。进行属性认证之前,应该先确定安全属性。
2.4 传统认证的缺陷
不论是基于二进制的还是属性的认证都不能保证远程平台的程序在语义层是安全的,即程序的行为是不是安全的;同时它们都是一次是认证,不能动态的认证远程实体程序的具体执行状态和结果。
3 基于虚拟机的可信认证
为了从更高的语义层去动态的认证远程的程序,克服传统认证方案无法动态的认证程序和一次认证的缺陷,Seshadri 等人提出Pioneer 系统[6],Pioneer 系统提出一种软件的认证,可以对远程代码进行认证,它的核心组成部分是一个运行在远程系统上的校验和功能(函数)。Pioneer 系统通过检查回应时间来防止潜在的攻击,如果回应时间在一个给定的范围内则认为回应是可信的。Vivek Haldar 等人将Pioneer 的核心组成部分--校验和功能(函数)改进为可信的虚拟机,让远程的代码在自己的可信虚拟机上运行得到结果后由认证方来确定结果的可信与否。这种基于虚拟机的认证,比Pioneer 系统的认证结果更可信,文献提出了语义远程认证,这也是一种综合认证方案。先由TPM 对虚拟机进行认证,这里的虚拟机是基于语言的虚拟机,如JVM,然后虚拟机对高层程序的语义属性进行认证。
在这里要提到的Tal Garfinkel 等人提出的Terra 系统,此系统在可信虚拟监视器上建立多个不同健壮性的虚拟机,把不同的应用运行在不同的虚拟机上。它把虚拟机分为“开放的盒子”虚拟机和“关闭的盒子”虚拟机,在“关闭的盒子”虚拟机上运行可信的操作系统,在此系统上运行特定的应用;“开放的盒子”上运行简单应用。Terra 系统被证明是一个成功的运用虚拟监视器上的体系结构。
4 可信客户端程序的认证
4.1 引入过滤机制的虚拟认证
方案虚拟的可信认证能够有效的提高认证的可信性,并能在一定程度上提高认证的效率,但它仍然存在不足之处。就文献[7]中Vivek Haldar 等人的认证策略而言,把可信的虚拟机放在客户端,不能很好的防止中间人攻击,同时认证过程占用了不少宝贵的网络带宽;此认证不够灵活,对每个远程的程序都要进行认证,对于特定的服务器来说,有些程序基本上是不可能存在危险,如访问公共的只读网页数据的程序。
在 Vivek Haldar 等人研究的基础上,结合属性认证的思想和服务器的特殊要求,对前人的认证方案改进,改进后的方案。
此认证系统是针对服务器的特点而进行的改进,因为特定的服务器它的程序大部分是一类的,比如一个Web 服务器,访问它的程序大多数是读数据程序;同时对于服务器而言带宽是很重要的资源,把可信虚拟机放在客户端显然不合适。认证过滤器是负责认证的关键部分,通过它可以动态的确定哪些程序的行为不用认证,哪些程序的行为需要认证。这样认证过滤器的过滤策略就显得至关重要。
针对有些大型服务器,可能承载很多不同的服务,在此借鉴Terra 的系统设计思想,把可信虚拟机分为多个不同的虚拟机,不同的服务用不同的虚拟机来认证在它上运行的程序,同时不同的虚拟机有不同的认证过滤器,这种认证策略更灵活,认证的效率将明显提高。此认证系统的认证结构。
4.2 Web 服务器上认证的实现
实验设计把服务器确定为具体的小型Web 服务器,针对WEB 服务器的特性设计具体的认证过滤器和认证策略,首先把服务器上的程序进行如下分类:1.可执行程序;2.读数据程序;3.写数据程序;4.修改配置程序;5.其它程序。再把服务器上的数据分为公开数据和保密数据。接着给用户设定不同的用户权限。
用户的程序到达服务器端后,先经过过滤器中的程序分类器把程序进行分类,分类后的程序类别加上用户名和程序的HASH 值在程序信任表里查找,若程序信任表有此信息,则可直接访问服务器,若无此信息把程序送到可信虚拟机上进行行为认证,若可信则让其访问服务器,并在过滤器上为此程序建立三元组加入到程序信任表中。具体的认证过程。
实验采用 Tomcat 服务器,把本机上运行的虚拟机作为可信的虚拟机。对其上运行的程序进行认证,对服务器上第一次运行的100 个不同程序进行认证,先认为其行为是可信的,为它们建立程序信任表花费的时间为20 秒,平均每个0.5 秒。接着再把这100 个不同程序进行认证,查找程序是否在程序信任表里花费的时间为3 秒,平均每个0.03 秒,相对于网络延迟来说这个时间在可以忽略的范围内。本计算机职称论文来源于专业的职称论文网,如有业务需求请咨询网站客服人员!
5 结论
与相关工作计算机可信平台是未来计算机发展的方向,网络在现代生活中扮演越来越重要的角色,可信平台的远程认证则必然将是研究的热点。能够从程序的行为上认证程序的语义认证无疑能够使认证结果更可信。本文提出的认证体系结构,结合服务器的特点和语义认证的优点,对传统的认证做出了改进,认证效率和认证的策略上还有待改进。