可信计算中的动态远程证明综述
- 格式:pdf
- 大小:320.71 KB
- 文档页数:5
可信计算的研究与发展一、概述随着信息技术的快速发展,计算机和网络系统已经成为现代社会不可或缺的基础设施。
这些技术的广泛应用也带来了严重的信息安全问题,如数据泄露、恶意软件攻击、网络钓鱼等。
为了应对这些挑战,可信计算(Trusted Computing)技术应运而生。
可信计算是一种通过硬件和软件结合,确保计算机系统自身安全可信,从而保护存储在其中的信息不被非法访问和篡改的技术。
可信计算技术起源于上世纪末,随着计算机体系结构的演进和信息安全需求的提升,其研究和发展逐渐受到全球范围内的关注。
作为一种综合性的安全防护机制,可信计算旨在构建一个安全可信的计算环境,使得计算机系统在执行关键任务时能够抵御各种安全威胁。
近年来,可信计算技术取得了显著的进展。
一方面,可信计算平台(Trusted Platform Module,TPM)的广泛应用为计算机系统提供了硬件级别的安全支持另一方面,可信计算软件技术(如可信操作系统、可信数据库等)的不断发展,为上层应用提供了更加安全可靠的运行环境。
可信计算技术还涉及到了密码学、访问控制、身份认证等多个领域,形成了一套完整的安全防护体系。
尽管可信计算技术取得了显著的研究成果,但其在实际应用中仍面临着诸多挑战。
例如,如何确保TPM的安全性和可靠性、如何平衡系统性能与安全性之间的矛盾、如何适应不断变化的安全威胁等。
未来可信计算技术的研究和发展仍需要不断探索和创新,以满足日益增长的信息安全需求。
本文将对可信计算技术的研究与发展进行综述,分析当前的研究热点和难点问题,并展望未来的发展趋势。
通过对可信计算技术的深入了解和研究,有望为信息安全领域的发展提供新的思路和方向。
1. 可信计算的概念定义可信计算(Trusted Computing)是一种计算模式,旨在增强计算机系统的安全性、可靠性和完整性。
其核心思想是在硬件、软件和系统之间建立一个可信任的基础,以确保数据和代码在执行过程中的保密性、完整性和可用性。
云计算凭借其强大的计算能力、高可靠性、低成本、按需收费等特点受到企业和用户的大力支持。
云计算技术是以虚拟化为基础、网络为载体,提供平台、软件、基础设施和管理等服务的超级计算模式。
随着云计算的发展,大量的用户信息存储于云存储中,云计算在减轻计算和存储负担的同时,也不可避免带来了安全问题,在远程证明方面存在着诸多的漏洞和隐患。
如何通过云计算环境下的数据安全保护机制,保证用户得到安全、可信的服务,确保用户数据、计算任务的安全性,使云计算健康快速地发展和普及,已成为当前研究和探讨的重点。
可信计算技术为解决云计算中数据安全问题提供了一种新的思路。
可信计算的核心思想是从终端和平台的根源解决现有的安全问题[1-3]。
将可信计算中的远程证明机制引入云计算,通过面向云计算的基于属性证书的远程证明方法,实现用户对云计算服务平台的可信性验证,保证用户在接受云计算服务之前,能够有效地证明云计算服务平台的安全属性,确保其委托的任务运行于可信的云计算平台。
1 可信计算技术可信计算组织(T C G)提出了可信计算的概念。
可信的定义为一个实体在实现给定的目标时,若其行为总是如同预期,则该实体是可信的。
可信计算技术的出现是为了保证终端设备的安全。
可信计算的基本思想是可信根通过信任链的可信传递。
可信计算平台是整个信任链的根源,从终端源的初始可信根出发,通过对信任链的不断扩展,最终延伸到整个计算机系统和计算机网络,从而确保整个系统的可信。
信任链构建的依据是可信度量,通过可信度量实现信任链下级对上级的扩展。
在TCG规范中,可信计算平台技术的核心是一个被称为可信平台模块(T PM)的安全芯片[3]。
T P M是一个具有硬件保护功能的,含有密码运算部件和存储部件的小型片上系统。
T P M的内部对象只能被其属主通过安全方式并调用T PM规定的接口来访问。
可信平台以T P M作为可信度量根和可信存储根,向用户报告本平台的硬件配置和软件状态,用户以此来判断平台是否处于安全状态。
可信计算概论⼀、概念可信计算的基本思想:在计算机系统中,建⽴⼀个信任根,从信任根开始,到硬件平台、操作系统、应⽤,⼀级度量⼀级,⼀级信任⼀级,把这种信任扩展到整个计算机系统,并采取防护措施,确保计算资源的数据完整性和⾏为的预期性,从⽽提⾼计算机系统的可信性。
通俗的解释:可信≈可靠 + 安全现阶段的可信计算应具有确保资源的数据完整性、数据安全存储和平台远程证明等功能。
⼆、关键技术信任根:信任根是可信计算机的可信起基点,也是实施安全控制的点。
在功能上有三个信任根组成。
1、可信度量根(root of trust for measurement, RTM)。
RTM是可信平台进⾏可信度量的基点,在TCG的可信平台中,是平台启动时⾸先执⾏的⼀段软件,⽤以对计算机可信度量。
⼜被称为可信度量根核(crtm)。
具体到可信计算PC中,是BIOS中最开始的代码。
2、可信存储根(root of trust for storage,RTS)。
RTS是对可信度量值进⾏安全存储的基点。
由TPM芯⽚中⼀组被称为平台配置寄存器(paltform configuration register, RCP)和存储根密钥(storage root key,SRK)组成。
3、可信报告根(RTR,report)。
由pcr和背书秘钥(endorsement key)的派⽣密钥AIK(attestaion identity key)组成。
可信计算平台由TPM芯⽚机器密钥和相应软件作为期信任根。
度量存储报告机制:基于信任根,对计算机平台的可信性进⾏度量,并对度量的可信值进存储,当客体访问时提供报告。
是计算机平台确保⾃⾝可信,并向外提供可信服务的⼀项重要机制。
1、度量⽬前尚未有点单⽅法对计算平台的可信性进⾏度量,因此TCG的可信性度量是度量系统重要资源数据完整性的⽅法。
对与系统重要资源数据,实现计算散列值并安全存储;在可信度量时,重新计算重要资源数据的散列值,并欲实现存储的散列值⽐较。
面向云计算模式的运行环境可信性动态验证机制【摘要】云计算作为一种新兴的信息服务技术,目前已经凭借着自身诸多优势在社会多个领域中得到了广泛应用。
在云计算模式下,用户需要将与自己相关的信息通过虚拟机存储起来,然而在纷乱复杂的网络环境下,这些信息难免会遭受到恶意的篡改和窃取,在这种情况下,建立相应的可信性动态验证机制是不容忽视的。
本文首先对云计算以及相关技术进行简要介绍,并在此基础上探讨如何建立相应的可信性动态验证机制。
【关键词】云计算模式;可信性;动态验证机制云计算是基于互联网的一种信息服务技术,网络用户可以通过该技术获取到网络上共享的资源。
由于在该过程中,用户需要将自己的数据在虚拟机上存储,这就涉及到了对用户数据的保护问题。
目前,对于该问题的解决方案主要有两种,一种是利用加密的方法直接对用户的数据和应用程序进行保护,另外一种是通过验证和设计基础设施云的可信性来确保用户数据及应用程度的可信性。
本文主要对第二种方案进行研究,根据用户数据和应用程序的安全标准建立相应的可信性动态验证机制,从而为今后基础设施云的可信性。
1.云计算简介1.1云计算的概念及交付模式所谓云计算,主要指的是通过互联网以服务的方式提供动态可伸缩的虚拟化的资源的计算模式,其不仅能够使网络中的资源得以更好的分享,而且还可以从根本上降低资源的获取成本。
就我国目前云计算的交付模式来看,主要包括三种。
第一种是基础设施云,在这种交付模式中,用户只需要按照自己租赁的资源数量和使用时间来付费即可,而不需要对相关的服务器进行维护,这类交付模式的软件主要有EC2和vSphere等。
第二种是平台云,用户在使用过程中,可以通过租赁计算平台的方式来对相关的应用程序进行部署,除此之外,不用对任何问题进行考虑,这类交付模式的软件主要有Google App Engine和Azure平台等。
最后一种软件云,在这种交付模式下,用户可以按照自身的需求申请使用服务,待申请通过之后,用户就可以对软件进行任意使用,甚至还可以通过组合的方式将多种软件一起使用,这类交付模式的软件主要有CRM、ERP和Zoho Office等。
可信计算机技术与应用综述武汉大学计算机学院 张焕国 罗 捷 金 刚 朱智强摘 要 可信计算是当前信息安全领域的一个新潮流。
该文综合介绍国内外可信计算机技术与应用的发展。
关键词 计算机 可信计算 可信计算机 信息安全一、从确保源头微机的安全做起21世纪是信息时代。
一方面,信息技术和产业高速发展,呈现出空前繁荣的景象;另一方面,危害信息安全的事件不断发生,形势是严峻的。
信息安全事关国家安全、社会稳定。
因此,必须采取措施确保我国的信息安全。
确保信息安全要从微机源头做起。
据美国安全杂志“SECURE CYBERSPACE”调查,89%的用户安装了防火墙,60%的用户安装了入侵检测系统,但其中仍有90%用户的系统安全受到破坏。
另据统计,80%的信息安全事故为内部人员或内外勾结所为,其中很多问题都是微机结构和操作系统不安全引起的。
人们已经认识到,大多数安全隐患来自于微机终端,因此确保源头微机的安全是重要的,必须从微机的结构和操作系统上解决安全问题。
这样,绝大多数不安全因素将从终端源头被控制。
众所周知,硬件结构的安全和操作系统的安全是信息系统安全的基础,密码、网络安全等技术是关键技术。
只有从信息系统的硬件和软件的底层采取安全措施,从信息系统的整体上采取措施,才能比较有效地确保信息系统的安全。
对于应用最广泛的微机系统,只有从芯片、主板等硬件结构和BIOS、操作系统等底层软件做起,综合采取措施,才能比较有效地提高微机系统的安全性。
二、可信计算机技术的发展1、可信计算机技术的发展可信计算机技术已经经历了从初级到高级的发展历程。
(1)初级阶段早在计算机发展的初期,人们就开始重视可信电路(dependable circuit)的研究。
那个时候对计算机安全性的理解主要是硬件设备的安全,而影响计算机安全的主要因素是硬件电路的可靠性,因此研究的重点是电路的可靠性,并把高可靠性的电路称为可信电路。
(2)中级阶段1)彩虹系列的出现1983年美国国防部制定了世界上第一个《可信计算机系统评价准则》TCSEC(Trusted Computer System Evalua-tion Criteria)。
可信计算概述⽬录⼀、为什么需要可信计算?⼆、什么是可信计算?三、可信计算的发展概况四、可信计算技术五、围绕可信计算的⼀些争议参考⽂献⼀、为什么需要可信计算?如今信息技术已经成为了⼈们⽣活中不可分割的⼀部分,⼈们每天都通过计算机和互联⽹获取信息、进⾏各种活动。
但计算机与⽹络空间并不总是安全的,⼀⽅⾯⿊客们会通过在⽹络中散布恶意病毒来对正常⽤户进⾏攻击,例如2017年5⽉爆发的勒索病毒;另⼀⽅⾯许多不良⼚商会在⾃⼰的软件中“开后门”,趁⽤户不注意时获取⽤户的隐私或者弹出弹窗⼴告,这些都给维护⽹络空间的信息安全带来了巨⼤的挑战。
为了使⼈们能够正常地通过计算机在互联⽹上进⾏各种活动,我们必须建⽴⼀套安全、可靠的防御体系来确保我们的计算机能够按照预期稳定地提供服务。
⽬前⼤部分⽹络安全系统主要由防⽕墙、⼊侵检测、病毒防范等组成。
这种常规的安全⼿段只能在⽹络层、边界层设防,在外围对⾮法⽤户和越权访问进⾏封堵,以达到防⽌外部攻击的⽬的。
由于这些安全⼿段缺少对访问者源端—客户机的控制,加之操作系统的不安全导致应⽤系统的各种漏洞层出不穷,其防护效果正越来越不理想。
此外,封堵的办法是捕捉⿊客攻击和病毒⼊侵的特征信息,⽽这些特征是已发⽣过的滞后信息,属于“事后防御”。
随着恶意⽤户的攻击⼿段变化多端,防护者只能把防⽕墙越砌越⾼、⼊侵检测越做越复杂、恶意代码库越做越⼤,误报率也随之增多,使得安全的投⼊不断增加,维护与管理变得更加复杂和难以实施,信息系统的使⽤效率⼤⼤降低,⽽对新的攻击毫⽆防御能⼒。
近年来,“震⽹”“⽕焰”“Mirai”“⿊暗⼒量”“WannaCry勒索病毒”等重⼤安全事件频频发⽣,显然,传统防⽕墙、⼊侵检测、病毒防范等“⽼三样”封堵查杀的被动防御已经过时,⽹络空间安全正遭遇严峻挑战。
安全防护⼿段在终端架构上缺乏控制,这是⼀个⾮常严重的安全问题,难以应对利⽤逻辑缺陷的攻击。
⽬前利⽤逻辑缺陷的漏洞频繁爆出,如“幽灵”“熔断”,都是因为CPU性能优化机制存在设计缺陷,只考虑了提⾼计算性能⽽没有考虑安全性。
TrustZone在远程证明中的应用研究李晓策;陈飞【摘要】分析了TrustZone技术在远程证明中的应用.TrustZone是ARM公司提出的一种实现安全环境与通用环境硬件隔离的安全解决方案,从提出以来得到了广泛的研究和应用.可信计算与TrustZone技术相结合是目前研究的热点,本文分析了在TrustZone架构下建立可信执行环境的主要需要解决的问题及解决思路,以及在此环境上实现远程证明等可信技术的关键环节,总结了使用软件平台进行TrustZone研究的可行方法.【期刊名称】《电子世界》【年(卷),期】2016(000)020【总页数】2页(P42,46)【关键词】可信计算;远程证明;移动平台;TrustZone【作者】李晓策;陈飞【作者单位】武警工程大学;武警工程大学【正文语种】中文网络空间安全已经成为国家的“第五疆域”,在国家安全中起着越来越重要的地位。
但是网络安全问题却阻碍了网络技术在关键领域的应用,可信计算应运而生。
可信计算是从底层开始,就建立起信任关系并一级级传递,直至确保整个平台安全可信,而其中的远程证明则是将信任从一个平台传递到另一个平台的技术。
远程证明技术在桌面平台的研究已经趋于成熟,二进制的证明、基于属性的证明、基于行为的证明等证明模型都得到了广泛的研究,但是移动平台中远程证明发展却困难重重。
本文主要分析了在移动平台中远程证明存在的问题以及使用TrustZone技术来解决这些问题的方法。
远程证明方案和其他可信技术往往都是基于TPM芯片的,这在桌面及服务器领域应用不存在问题,但是在移动平台和嵌入式设备中却很难直接应用,主要原因是限于空间和成本,移动平台和嵌入式设备中并没有安装专门安全芯片的条件,也就没有配备TPM芯片。
对于可信移动终端,TCG发布了移动可信模块规范,但由于同样依赖额外的硬件芯片,而且被认定会对系统性能产生影响,设备生产商兴趣不大,MTM并没有得到广泛的应用。
所以在移动平台的进行远程证明时,首先要解决安全硬件即信任根的问题。
软件学报ISSN 1000-9825, CODEN RUXUEW E-mail: jos@Journal of Software,2014,25(6):1273−1290 [doi: 10.13328/ki.jos.004414] +86-10-62562563 ©中国科学院软件研究所版权所有. Tel/Fax:∗一种可信终端运行环境远程证明方案谭良1,2, 陈菊11(四川师范大学计算机学院,四川成都 610068)2(中国科学院计算技术研究所,北京 100190)通讯作者: 谭良, E-mail: jkxy_tl@摘要: 可信终端的远程证明无论是基于二进制的证明方案还是基于属性的证明方案,针对的均是终端的静态环境,反映的是终端的软件配置结构,并不能证明终端运行环境的真正可信.针对这一问题,提出了一种终端可信环境远程证明方案.针对静态环境,该方案考虑了满足可信平台规范的信任链以及相关软件配置的可信属性证明;针对动态环境,该方案考虑了终端行为的可信属性证明.并分别给出了信任链、平台软件配置和终端行为等属性证明的可信性判定策略和算法,以及终端运行环境远程证明的综合性判定策略和算法.另外,在Windows平台上,设计和实现了该方案中的两个核心实体:证明代理和验证代理,并设计了证明代理和验证代理之间的通信协议.最后,介绍了该方案在Windows平台上的一个典型应用案例以及证明代理在该应用实例中的性能开销.应用实例验证了该方案的可行性.关键词: 可信计算;远程证明;属性证明;终端行为;证明代理;验证代理中图法分类号: TP309中文引用格式: 谭良,陈菊.一种可信终端运行环境远程证明方案.软件学报,2014,25(6):1273−1290./1000-9825/4414.htm英文引用格式: Tan L, Chen J. Remote attestation project of the running environment of the trusted terminal. Ruan Jian XueBao/Journal of Software, 2014,25(6):1273−1290 (in Chinese)./1000-9825/4414.htmRemote Attestation Project of the Running Environment of the Trusted TerminalTAN Liang1,2, CHEN Ju11(College of Computer, Sichuan Normal University, Chengdu 610068, China)2(Institute of Computing Technology, The Chinese Academy of Sciences, Beijing 100190, China)Corresponding author: TAN Liang, E-mail: jkxy_tl@Abstract: Remote attestation, whether binary-based or property-based, mostly undertakes the static environment of the trusted terminalwhere only part of software configurations in the trusted terminal are demonstrated, leaving trustworthiness of the dynamic runningenvironment unproved. To resolve the problem, a new property-based remote attestation project for the dynamic running environment ofthe trusted terminal is presented. The project focuses not only on trusted chain and software configuration for the static environment of thetrusted terminal, but also on the behaviors of the trusted terminal for the dynamic environment. Moreover, the decidability and algorithmfor the trustworthiness of each property by each specific trusted policy is analyzed, and the comprehensive decision strategy is putforward. After that, attestation agent and verification agent which are critical entities in the project, are designed and implemented onWindows, and the communication protocol between them are designed too. Finally, an application case of the project on Windows isintroduced, the performance of attestation agent in this application is studied, and the feasibility of the project is demonstrated.Key words: trusted computing; remote attestation; property attestation; behaviors on terminal; attestation agent; verification agent当前,基于TPM[1]和TCM[2]构建可信计算环境已经成为可信计算的研究热点.基于TPM/TCM的可信度量、∗基金项目: 国家自然科学基金(60970113); 四川省青年科技基金(2011JQ0038)收稿时间:2012-05-20; 修改时间: 2012-07-23; 定稿时间: 2013-03-111274 Journal of Software软件学报 V ol.25, No.6, June 2014报告和远程证明功能实现了通信双方信任关系建立,因此成为了构建分布式可信计算环境的核心功能.目前,关于远程证明的研究主要包括基于实体标识的二进制证明[3−7]和基于属性的远程证明[8−14].在二进制证明过程中,证明请求包含一系列关于被证明系统中当前运行实体的声明,其中,每个实体都通过度量机制生成的唯一性标识来表示.接收到证明请求后,验证方基于表示实体标识间信任传递关系的信任链组成的可信策略,从而确定被证明系统状态是否可信.TCG体系中,远程证明的主要作用是针对平台部件的完整性进行测量,包括检查部件代码内容的非授权篡改以及鉴别部件的提供者身份,实质是一种基于二进制的完整性验证.其优点是证明过程简单、可靠,不需要可信第三方的参与,而验证方则能够可靠地构建起证明平台上从硬件信任根开始的信任链.但是,它最大的缺点是对平台配置隐私的暴露,证明过程中要求出示整个平台配置的完整性度量值.针对二进制证明的上述缺点,研究者们设想从抽象的属性或者语义上去理解和构建证明平台.基于属性的远程证明中,证明方只需要根据验证方的目标属性给出相应的属性声明,不需要将实体唯一性标识暴露给验证方;同时,由于系统中运行实体的唯一性标识也可认为是系统的属性之一,因此基于属性的远程证明在保护系统隐私的同时也提高了证明方案的灵活性.但基于属性的远程证明只有抽象的概念模型,难以度量、比较和推导,从而无法构建类似二进制度量的信任链传递信任的功能.值的注意的是,无论是二进制证明方案还是基于属性证明方案,针对的均是终端的静态环境,即反映的是终端的软件配置结构,并不能证明终端运行环境的真正可信.例如,即使是经过度量的应用程序,也不可能保证终端整个运行环境的可信,因为对应用程序进行完整性度量只能保证该应用程序没有被恶意程序修改,但不能保证该应用程序本身是否破坏终端的运行环境,如泄露内存、劫持网络、破坏文件等;再如,即使终端配置有符合可信策略的软件,但如果这个软件本身存在漏洞,终端的运行环境也会存在被破坏的可能.针对这一问题,本文提出了一种新的终端可信环境远程证明方案.该方案不仅考虑了满足可信平台规范的信任链以及相关软件配置的可信属性证明,而且针对运行环境考虑了终端行为的可信属性证明,并分别给出了信任链、相关软件配置和终端行为等属性证明的可信性判定策略和算法以及终端运行环境远程证明的综合性判定策略和算法,从而证明终端运行环境的真正可信.本文第1节给出相关工作的描述.第2节给出基于属性的远程证明模型.第3节给出本模型中可信策略的可判定性定理及证明.第4节给出终端运行环境的远程证明方案在Windows平台上的实现.第5节给出终端运行环境远程证明方案的应用案例研究.第6节是比较与评价.最后是本文的总结.1 相关工作终端远程证明最初是由TCG组织给出的[1],TCG组织一直是这一工作积极的主导者和推动者.在TCG的远程证明过程中,主要包括证明方与验证方,假设平台使用者想要向验证方证明自己的平台上有一个合法的TPM,并利用这个TPM对平台的PCR(platform configuration register)进行签名,实现向第三方证明其平台的合法性.最直接的方法是:平台用EK私钥对PCR签名并发送给验证方,验证方验证签名后信任平台为一个可信平台,且其配置信息PCR为可信.上述方法的问题在于:平台使用者的EK固定,当他/她与不同的验证方多次进行上述协议时,其交易记录可被第三方关联起来(linkable),从而无法保护平台使用者的隐私.TCG组织在TPM规范1.1版本中提出了以(privacy CA)认证ID密钥(attestation identity key,简称AIK)的方案来解决上面的问题.在该方案中,平台不再以EK作为签名的密钥,而是每次临时生成一个新的AIK作为签名密钥.为了证明AIK的合法性,平台必须首先向隐私CA申请一个AIK证书.当隐私CA收到平台的申请后,隐私CA用自身的私钥对AIK签名.平台获得这个签名后可以发送给第三方的验证者,验证者根据隐私CA的公钥验证AIK是否合法,合法的AIK对PCR的签名被视为TPM的合法签名.Privacy CA方案的致命缺陷在于:其必须在保证PrivaCy CA可信的同时,还必须有高响应能力,所以其应用必将成为可信平台验证的瓶颈.TCG定义TPM规范1.2版中提出了直接匿名认证(direct anonymous attestation,简称DAA)协议[15],该协议在实现TPM芯片认证的同时,保证了认证的匿名性,验证方无法得到芯片的唯一标示.但该协议非常复杂,包含4次零知识证明,运算量非常大,包括大量的谭良等:一种可信终端运行环境远程证明方案1275模指数运算,因此,该协议还缺乏实用性.目前,对该协议的优化工作是一个研究热点[16−27].除此以外,国内外众多研究机构和学者提出了许多不同的远程证明方法.从遵循TCG规范的直接二进制证明,到基于高级语言的语义证明;从嵌入式设备的基于软件证明,到Web Service的证明.在这众多的证明方法中,研究成果最多的还是基于实体标识的二进制证明(binary attestation)[3−7]和基于属性的远程证明[8−14].在实体标识的二进制证明方面,IBM研究院提出了完整性度量方案IMA[4],该方案对于Linux系统加载的可运行实体进行度量,从而生成该实体的唯一性标识符.在证明时,验证方以可信计算平台作为信任根,从而建立对于证明方包含实体标识的判定.基于IMA方案,Jager等人提出了基于策略规约的远程证明方案PRIMA[5],该方案基于C-W信息流模型对远程证明过程中需证明的实体进行规约,从而在一定程度上防止了远程证明过程中平台配置的隐私暴露.基于属性的远程证明方面,2004年,德国波鸿鲁尔大学的Sadeghi等人提出了基于属性的远程证明概念和模型[10],给出了基于属性的远程证明方案的软硬件实现方法,该方法在可信引导程序Trusted Grub的基础上对基于属性的远程证明方法、属性验证和撤销等实现技术进行了研究.随后,为了从框架上解决远程证明过程中隐私泄露问题,同时保证证明方案的灵活性,Poritz等人率先从体系架构层次提出了基于属性的远程证明[11],在该框架中,Poritz等人讨论了基于属性远程证明在隐私保护、扩展性等方面的优点.在属性证明的实现方面,波鸿鲁尔大学利用在线可信第三方颁发了属性证书,实现了引导过程中的二进制度量转换为属性,基于属性实现了系统的证明和封装.该方案建立在在线的可信第三方基础上,便于完整性管理和安全属性管理,并采用CRL验证属性的撤销.随后,他们又对这个方案进行改进,实现了基于属性的系统引导器解决属性证明过程中的属性证书的版本回滚问题.在协议方面,Chen提出了基于属性的远程证明协议(简称PBA协议)[9].文献[26]提出了使用远程证明扩展SSL协议的方案,通信终端通过协商安全参数和在SSL协议上证明平台配置,以此达到建立远程可信通道.该方案的提出,为基于现有通信协议实现远程证明过程中证明请求的发送给出了很好的解决方法.文献[13]提出了一种基于属性的远程证明模型.该模型将传统远程证明中信任链模型扩展为信任图,使得模型能够表达更为灵活的可信策略;文献[14]基于可信计算中的二进制系统完整性测量模型,增加证书权威和可信属性权威,提出一种属性远程证明系统完整性测量模型,并利用谓词逻辑证明其可信性.2 终端运行环境的远程证明方案终端运行环境的远程证明方案包含5个实体:证明代理、验证代理、属性证书颁发中心、可信策略库管理方和服务提供方.验证过程如图1所示.其中,(1)证明代理将终端完整性测量值、软件配置以及终端用户行为发送给验证代理;(2)验证代理根据完整性测量值、软件配置结构以及终端用户行为,对照其可信策略库中的安全策略,包括平台组件属性及完整性特征值、软件配置目录结构以及恶意行为特征.如果均满足可信策略库的属性安全策略,则向属性证书颁发中心申请一个终端运行环境的可信属性证书;(3)属性证书颁发中心颁发终端运行环境的可信属性证书,并返回给证明代理;(4)终端向服务方证明自己的可信属性,并获得服务方资源.在此远程证明过程中,证明代理的主要功能是获取TPM的PCR二进制标示、软件配置以及终端环境中的用户行为;验证代理的主要功能是基于可信策略库对证明代理收集的信息进行确认,包括满足可信平台规范确认、软件配置确认、行为确认以及属性证书申请;属性证书颁发中心的主要功能是颁发和管理属性证书.显然,此远程证明过程不仅具有基于属性的远程证明方案的所有优点,如:(1) 易实现复杂开放网络环境下的异构平台之间的验证;(2) 无论厂商是谁,具备相同属性的任何配置均被赋予相同的属性证书;(3) 避免直接暴露平台配置给未知验证方,使恶意对手攻击平台更容易等等,而且还具有如下特征:①增加了对终端环境用户行为的可信属性证明,使得该远程证明方案不仅能证明终端的静态环境可信,而且通过对终端活动进程的行为属性分析远程证明终端的动态环境可信;②远程证明过程中,证明代理、验证代理、可信策略库、证书颁发中心和服务方的关系更加具体明确.1276 Journal of Software软件学报 V ol.25, No.6, June 2014Fig.1 Remote attestation project of the running environment of the trusted terminal图1 终端运行环境的远程证明过程方案值得注意的是,在一个安全域中,验证代理、可信策略库以及属性证书颁发中心通常可以看成为可信第三方.一方面,它们接受此域中各个可信终端无条件信任,接收来自可信终端的PCR二进制标示、软件配置以及终端环境中的用户行为,并保证这些信息不被泄漏;另一方面,它们接受此域中各种服务提供方无条件信任,均把它们发出的属性证书作为获得服务的主要凭证和相关授权的主要凭证;第三,验证代理、可信策略库以及属性证书颁发中心本身是安全可靠的.3 终端运行环境远程证明的判定策略终端运行环境远程证明方案的核心是判定问题.判定依赖于具体的策略,而策略必须与终端实际环境相吻合.因此,必须详细分析终端环境的信任链传递、软件配置和用户行为,为远程证明的判定策略提供基础保证.为了便于叙述,我们先形式化定义软件组件、属性、属性集等基本概念.定义1. 终端环境的软件组件定义为c i={(c i-code,c i-d-code,c i-cofile),(c i-f,c i-v,c i-o)},其中,(c i-code,c i-d-code,c i-cofile)表示软件的代码特征,c i-code代表软件c i的源代码,c i-d-code代表软件c i的依赖,如其依赖的静态库、动态库或第三方代码库,c i-cofile代表软件c i的策略配置文件.(c i-f,c i-v,c i-o)表示软件c i的功能特征,c i-f表示c i的功能,c i-v表示测组件c i 的版本号,c i-o表示软件组件c i的其他相关属性,比如软件名、开发者、发布时间等.依据定义1,软件组件集为C={c1,c2,…,c n,…}.定义2. 属性是指软件组件满足某一功能要求而具有的内在特征,形式化为p i;属性集P是指包含各种属性的集合,即P={p1,p2,…,p n,…}.我们用p tpm表示终端运行环境满足信任链传递的可信平台规范属性,p soft-configration表示终端运行环境满足一定可信策略需要的软件配置属性,p behavior表示终端运行环境满足一定可信策略需要的用户行为属性.下面将分析属性p tpm,p soft-configration和p behavior及其判定策略.3.1 属性p tpm的分析与判定属性p tpm的实质含义是指终端系统满足基于完整性测量的信任链传递.从第2节的分析可以看出,在本方案的远程证明过程中,证明代理T Agent运行在被验证平台上,起着非常重要的作用.为了保证T Agent可信,我们扩展终谭良 等:一种可信终端运行环境远程证明方案1277端的信任传递过程为CRTM →BIOS →OS Loader →OS →T Agent →Application . 如图2所示,将T Agent 作为可信平台链式度量的重要一环.这种方式是可行的,T Agent 的度量可由OS 主导完成,并由OS 将T Agent 程序作为第1个应用程序首先启动.Fig.2 Measurement of attestation agent by TPM图2 基于TPM 的证明代理T Agent 的可信度量在图2中,实现信任传递的相关参数主要包括:(1) 系统配置:将完整性测量组件的哈希值存入TPM 的24个PCR 中;(2) 存储测量值日志(storage measurement log,简称SML),其中包含了存储在TPM 中的所有测量值的事件结构以及被测量的软件组件的(c i -f ,c i -v ,c i -o ).为了详细描述系统完整性测量模型,我们定义信任根、完整性测量组件两个概念以及测量函数、完整性验证函数和完整性传递函数.定义3. 信任根集(trusted root set)为一个由特殊属性组成的集合,包含所有其可信性无需进行证明的属性,形式化表示为TRS ={r |r ∈P }.根据定义3,由图2可知,可信终端的信任根集只有一个元素,即具有“首先启动、防被物理攻击以及能度量BIOS 等功能”的CRTM,即TRS t ={CRTM }.定义4. 完整性测量组件集I ={i 1,i 2,…,i n ,…},其中,i n ∈C .由图2可知,终端的完整性测量组件集I t ={CRTM ,BIOS ,OS Loader ,OS Kernel ,T Agent ,Applications },显然,I t ⊂C . 定义5. Measure (i n ,i n +1,PCR n +1,sml n +1)表示在完整性测量过程中,i n 对i n +1的完整性进行测量,其增量哈希值存储于PCR n +1,相对应的存储测量值日志为sml n +1,n 是正整数且0≤n ≤23.定义6. 完整性验证函数Verify (i n ,i n +1,PCR n +1,LPCR n +1)表示将i n 对i n +1的完整性测量值PCR n +1与可信策略库中对应的标准LPCR n +1进行比较.如果完全匹配,返回true;否则,返回false.定义7. 完整性传递函数Integrity (i n ,i n +1)表示完整性能够从i n 有效地传递至i n +1,而不遭受破坏与损失. 根据以上定义,我们得出属性p tpm 的判定算法,如图3所示.图3算法首先判断信任根集是不是空,然后判断信任根集里的信任根是不是唯一.如果这两个条件均成立,则调用measure 函数对CRTM →BIOS →OS Loader →OS →T Agent 进行完整性测量,并调用完整性验证函数Verify 进行验证,如果成立,则调用Integrity 进行完整性可信传递,然后输出为p tpm ,表示终端运行环境满足信任链传递的可信平台规范属性;否则,输出NULL .OptionROMS BIOSCRTM OS loader OS Agent Application TPM Hardware Memory 存储度量值度量日志报告信赖度量核心根1278Journal of Software 软件学报 V ol.25, No.6, June 2014Fig.3 Decidability algorithm of P tpm图3 属性P tpm 的判定算法3.2 属性p soft -configration 的分析与判定属性p soft -configration 的实质含义是指终端运行环境的软件配置满足一定可信策略.为了详细分析属性p soft -configration ,我们首先定义平台软件配置、基本配置等基本概念以及Draw (), Search -property ()和Verify _softwareconfiguration ()函数.定义8. 平台软件配置是一个平台运行的软件序列,记为σ={c 1,c 2,…,c m },其中,c i ∈C .显然,σ⊂C .一个平台在不同任务要求下可能运行不同的软件,也可能以不同的顺序运行软件.因此,可能有多个不同的软件配置,所有的平台软件配置记为C 的幂集P (C ).一个配置σ={c 1,c 2,…,c m }中,若c i 在c j 的前面执行,记为.i j c c σ⎯⎯→定义9. 设σ是一个配置,c i ,c j ,…,c k ∈C 并且...i j k c c c σσσ⎯⎯→⎯⎯→⎯⎯→,那么τ=〈c i ,c j ,…,c k 〉是σ的一个平台基本 软件配置.例如,对于配置σ=〈c 1,c 2,…,c m 〉,〈c i 〉(1≤i ≤n )是σ的基本配置;由于1n c c σ⎯⎯→,因此〈c 1,c n 〉也是σ的一个基本配 置.平台基本软件配置与软件配置不同基,平台基本软件配置是一个有序集合.如果去掉平台基本软件配置的有序性,则有τ⊂σ.属性p soft -configration 由终端运行环境中满足一定可信策略需要的基本软件配置提供,验证代理将证明代理获得的平台基本软件配置转换成对应的属性p soft -configration .值的注意的是,属性p soft -configration 与平台的绑定不是直接到单个软件,而是绑定到每个平台基本软件配置上,因为许多属性是由几个软件按照一定顺序运行才提供的.比如,SELinux 提供MLS 支持需要完整的Linux 内核基础上装载LSM 钩子模块,然后再装载MLS 模块才能使得配置具有MLS 能力.因此说,平台基本软件配置〈kernel ,LSM ,MLS 〉提供MLS 属性.定义10. Draw (Processes )表示从平台的Processes 列表中获取平台基本软件配置.定义11. Search -property (p )表示从可信策略库中查询属性p 对应的平台基本软件配置.定义12. 软件配置验证函数Verify _softwareconfiguration (τ1,τ2)的功能是验证平台基本配置τ1,τ2是否匹配:如果匹配,返回ture;否则,返回false.根据以上定义,我们得出属性p soft -configration 的判定算法,如图4所示.图4算法首先判断终端平台的已启动进程列表是不是空,如不是空,就从该进程列表中获取平台基本软件配置,将此基本软件配置与可信策略库中需要的基本软件配置进行比较:如果匹配,则输出为p soft -configration ,表示终端运行环境满足一定可信策略需要的软件配置属性;否则,输出NULL .算法1. 属性P tpm 的判定算法Check-trusted Platform Specification (I t ). 输入:I t ;输出:p tpm 或NULL . 1. IF (TRS t ==∅) OR (|TRS t |==0) THEN return NULL ENDIF; //|I t |表示集合I t 的元素个数 2. IF (|TRS t |==1) AND CRTM in TRS tTHEN //判断信任根是否存在且唯一 3. i 1=CRTM 4. FOR n =1 to |I t | DO 5. Measure (i n ,i n +1,PCR n +1,sml n +1)6. IF (Verify (i n ,i n +1,PCR n +1,LPCR n +1)==true) THEN7. Integrity (i n ,i n +1);8. ELSE 9. RETURN NULL ; 10. ENDIF11. RETURN p tpm 12. ENDFOR13. E NDIF谭良 等:一种可信终端运行环境远程证明方案1279Fig.4 Decidability algorithm ofP software -configuration 图4 属性P software -configuration 的判定算法3.3 属性p behaviour 的分析和判定属性p behavior 的实质含义,是指终端运行环境中的主体行为满足一定可信策略.为了详细描述主体行为属性,我们首先定义与主体行为相关的基本概念.定义13(基本变量). S 为主体集合,也可看作是用户和用户启动的进程集合,在此,把已启动的进程称为活动主体;O 为客体集合,对于单个客体o ,有o ∈O ,客体可以是文件、程序、设备等资源.定义14(行为集合). 行为集B =(S ×O ×A ),∀b ∈B 表示主体对客体的操作行为.S ={s 1,s 2,…,s m ,…}表示该状态下所有行为主体集合.在终端系统中,主体包括用户和进程,用户启动程序后产生进程,进程代表用户执行访问操作,O ={o 1,o 2,…,o m ,…}表示行为的客体集合,A ={r ,w ,e }表示访问操作集合,包括读、写和执行.定义15. 恶意行为特征是指破坏终端运行环境的主体行为表现出来的特征,用r i 表示,其中,i 是正整数;恶意行为特征集是所有恶意行为特征的集合,记为R ={r 1,r 2,…,r m ,…},其中,m 是正整数.对于确定的终端运行环境,恶意行为普遍存在共同属性,无论是内部威胁、恶意代码和还是病毒,最终表现出来的恶意行为特征可以概括为自传播性(感染文件、自我复制等)、自激活性(注册启动项、文件关联)、自保护性(隐藏目录、守护进程)、破坏性(篡改破坏文件、破坏主机相关设备等)、非法连接性(非法连接并发起网络攻击等).这里,我们可以用r 1表示自传播性,可以用r 2表示自激活性,可以用r 3表示自保护性,可以用r 4表示破坏性,可以用r 5表示非法连接性,则终端运行环境恶意行为特征R ={r 1,r 2,r 3,r 4,r 5}.定义16. 行为记录函数RecordAct (s i ,x ,o ,t )表示在t 时刻将主体s i 对o 执行的动作x 记录到系统日志log 中. 定义17. Get -Badbehavior (s i ,log )表示从系统日志log 中获取平台主体s i 的行为集.定义18. h (s i ,x ,o )表示根据主体s i 的行为〈s i ,x ,o 〉计算恶意行为指数.用12345{(,,),(,,),(,,),(,,),(,,)}r i r i r i r i r i h h s x o h s x o h s x o h s x o h s x o =表示主体s i 的行为〈s i ,x ,o 〉对终端运行环境的恶意影响,其中,1234(,,),(,,),(,,),(,,)r i r i r i r i h s x o h s x o h s x o h s x o 和5(,,)r i h s x o 分别表主体行为〈s i ,x ,o 〉体的自传播指数、自 激活指数、自保护指数、破坏指数以及非法连接指数.值为0表示对系统无影响;值越大,表示影响越大.用α,β,χ,δ和γ分别表示自传播指数、自激活指数、自保护指数、破坏指数以及非法连接指数在计算主体行为恶意指数中所体现的权重,则主体行为〈s i ,x ,o 〉的恶意行为指数为12345(,,)(,,)(,,)(,,)(,,)(,,).i r i r i r i r i r i h s x o h s x o h s x o h s x o h s x o h s x o αβχδγ=++++当终端运行环境中的任意主体s i 的恶意行为指数超过设定的安全阈值H 时,终端运行环境就不满足属性p behavior .根据以上定义,我们得出属性p behavior 的判定算法,如图5所示.图5算法首先判断终端平台的行为日志是否为空,如果不为空,调用Get -Badbehavior 函数从系统行为日志log 中获取平台主体s i 的行为集,并计算其恶意行为指数,如果没有超过安全阈值,则输出为p behavior ,表示终端运行环境中的主体行为满足一定可信策略的需要;否则,输出NULL .算法2. 属性P software -configuration 的判定算法Check -softewareconfigration (Processes ). 输入:Processes ;输出:P software -configuration 或NULL . 1. IF (Processes ==∅) THEN return NULL ENDIF 2. α1=Draw (Processes )3. IF (α1==∅) THEN return NULL ENDIF4. α2=Search -property (p soft -configration )5. IF (α2==∅) THEN return NULL ENDIF6. IF (Verify _softwareconfiguration (α1,α2)) THEN7. RETURN p soft -configration ;8. ELSE9. RETURN NULL ; 10. ENDIF。