第31卷 第9期2008年9月
计 算 机 学 报广东麻将规则
C HIN ESE J OU RNAL OF COM PU TERS
Vol.31No.9
Sept.2008
收稿日期:2008205221.本课题得到国家“九七三”重点基础研究发展规划项目基金(2007CB311202)、国家自然科学基金(60673083)和国家“八六三”高技术研究发展计划项目基金(2007AA01Z412)资助.冯登国,男,1965年生,博士,教授,博士生导师,主要研究领域为网络与信息安全.E 2mail :feng @is.iscas.ac.秦 宇,男,1979年生,博士研究生,研究方向为信息与网络安全、可信计算.
可信计算环境证明方法研究
冯登国 秦 宇
(中国科学院软件研究所信息安全国家重点实验室 北京 100190)
摘 要 首先分析了可信计算环境下多远程证明实例执行的动态性、并发性、一致性等问题,提出了一个完整的可信计算环境多远程证明实例动态更新证明方案,以保证通信双方终端计算环境的可信.然后阐述了主要由计算环境组件度量算法、会话组件树计算算法和多远程证明实例证明协议组成可信计算环境证明方法.最后对该证明方法的安全性和效率进行分析,并构建原型系统论证证明方案的可行性和高性能.关键词 可信计算;远程证明实例;组件度量;会话组件树;更新证明中图法分类号TP309
R earch on Attestation Method for T rust Computing Environment
FEN G Deng 2Guo Q IN Yu
(S tate Key L aboratory of I nf ormation Securit y ,I nstit ute of S of t w are ,Chi ne A cadem y of S ciences ,Bei j i ng 100190)
Abstract At first ,t he aut hors analyze t he p roblems of dynamic characteristic ,concurrency and consistency for Multiple Remote Attestation Instance (Multi 2RA I )in t rust comp uting environ 2ment ,and p ropo a complete dynamic update attestation scheme for Multi 2RA I in t rust comp u 2ting environment ,which guarantees t he t rustwort hiness of endpoint s ′comp uting environment.Then t he aut hors illust rate attestation met hod of trust comp uting environment which is comp rid of measurement algorit hm for comp uting environment ,comp uting algorit hm for ssion compo 2nent
t ree and attestation protocol for Multi 2RA I.At last t he aut hors analyze t he curity and effi 2ciency of Multi 2RA I attestation met hod ,and const ruct t he p rototype system for proving scheme ′s feasibility and high 2performance.
K eyw ords t rust comp uting ;remote attestation instance ;co mponent measurement ;ssion com 2ponent t ree ;up date attestation
1 引 言
分布式应用对开放系统环境下的计算平台的安
全性要求越来越高,分布式应用中包括众多的利益和安全冲突方,因此建立平台间的相互信任,证明计算环境可信已经成为当前信息安全的一大迫切需
求.另一方面运行有恶意程序代码的计算平台表现
出任意的攻击行为,例如拜占庭攻击,这使得平台之间无法保持长久的静态信任,目前通用的思路是使用远程代码证明来标识远程平台运行的软件配置和状态,乃至计算环境状态,检测出被损坏的参与平台,保证可信运行环境的平台间的正常通信.TCG 组织制定了可信计算平台、可信存储和可信网络的一
系列工业标准[1],其方法是在主机平台、移动平台和嵌入式平台上嵌入专用的安全芯片TPM(Trusted Platform Module),以此为系统信任根解决可信计算平台信任的建立和证明问题.我国也制定了具有自主知识产权的TCM(Trust Cryptograp hic Module)相关标准[2],国内IT厂商相继研制出支持TCM标准的安全芯片,与TPM标准和芯片类似,TCM标准和芯片同样支持可信计算平台计算环境的证明,本文将TPM/TCM的这种证明平台状态的安全功能通称为远程证明(temote attestation)[3].
1.1 相关工作
TC G框架下的远程证明方案得到了国内外众多学者、研究机构的广泛关注,众多的研究成果中较为典型的有IBM研究院提出的完整性度量框架IMA[425].这些远程证明方案中,基于属性的远程证明方案具有明显的发展优势,它克服了原有远程证明方案的复杂性、隐私泄漏和滥用证明结果等缺陷. IBM研究院的Poritz等在文献[6]中引入可信第三方转换属性,提出了基于属性的远程证明框架.随后该院的Sadeghi等在文献[7]中给出了基于属性的远程证明方案的软硬件实现方法.Chen提出了基于属性的远程证明协议(简称PBA协议)[8].文献[9]在可信引导器Trusted Grub的基础上,对基于属性的远程证明方法、属性验证和撤销等实现技术进行了研究.这些研究不断地推动了基于属性的远程证明方案的发展.
上述工作改进了TCG远程证明方案的各方面不足之处,扩展了远程证明方法,但对于远程证明的动态性和并发性研究很少.文献[10]讨论了计算环境配置改变和封装数据不可用的问题,提出了基于属性封
装的解决方法,实际上远程证明也存在同样的问题.当系统软硬件配置和状态发生改变时,原有的远程证明将无效,必须再次动态地进行更新证明,这就涉及了远程证明动态性的问题.可信计算平台远程信任建立实际应用过程中,系统中可能存在着多个远程证明会话实例(Multiple Remote Attesta2 tion Instance,Multi2RA I),这就要求Multi2RA I能够并发证明不同的RA I关联运行环境的可信性.与单个远程证明应用相比,又存在许多新的复杂问题.本文在TPM/TCM平台下主要针对可信计算环境证明的动态性、并发性等问题展开研究.
解决现有网络安全最常用的安全协议有SSL 协议(或TL S协议)[11]和IPSec协议[12].SSL协议和IPSec协议认证终端用户身份,保证网络通信数据的机密性和完整性,而远程证明保证终端运行环境的可信性,将这二者结合可以极大地增强网络应用的安全性,TC G的体系结构互操作规范[13]和TNC 规范[14]都涉及到了相关问题的讨论.文献[15]提出了使用远程证明扩展SSL协议的方案,通信终端通过协商安全参数和在SSL协议上证明平台配置,以此达到建立远程可信通道的目标.TC G工作组也正着力于建立TL S协议上的远程证明扩展规范[16]. Multi2RA I安全连接的讨论也是建立在TL S协议扩展的远程证明基础之上.
系统环境复杂多变,需要采用多种安全机制来保护和标识软件运行环境,虚拟技术①提供的强隔离机制为保护和维护计算环境的完整性,提供了良好的基础.无论是以Xen[17]为代表的虚拟技术、微内核技术[18],Intel的L T技术②,还是Microsoft的N GSCB技术③,都是在可信虚拟机监控器上将系统划分
为不同安全级的计算隔间(Compart ment),严格限制Compart ment间的信息流,以达到控制和维护计算环境安全性的目的.Multi2RA I证明的可信计算环境是以Compart ment为基本单元,证明Compart ment中组件构建的运行环境是否可信. 1.2 问题描述
系统打补丁、应用程序的升级,乃至恶意程序的篡改等致使可信计算平台的状态发生改变,状态的改变导致必须进行状态更新证明.Multi2RA I的并发性和平台状态的动态性,极大地增加了远程证明的复杂度.TC G规范提出的远程证明方法主要针对平台静态状态的远程证明,无法解决平台状态动态改变的远程证明问题.Multi2RA I证明将对可信计算环境动态改变进行全面研究,重点解决Multi2 RA I远程证明的动态性、一致性、并发性和防重发攻击等问题.Multi2RA I证明最直观的解决方法便是扩展单个RA I证明,但这种简单扩展会引发许多新问题,图1归纳了简单RA I扩展用于Multi2RA I 证明的常见问题.
图1中Multi2RA I(a)描述的是非一致性证明,在第4步应该证明的RA I_A计算环境状态β,可是证明时RA I_B改变Compart ment状态为γ,RA I_A 实际证明的状态为γ,证明状态不一致,这是由于Multi2RA I计算环境状态相互影响造成的TC G规
1461
9期冯登国等:可信计算环境证明方法研究
①②③Intel.Virtualization technology,/ technology/computing/vptech/,2005
Intel.La Grande technology architectural overview. /technology/curity/downloads/L T_ Arch_Overview.pdf
Microsoft.Microsoft N GSCB home page,www. /resources/ngscb,2003
1.PLA TFORM:可信状态α
2.(i)REQU ESTER→RAI_A:Nonce值n1
(ii)RAI_A→REQU ESTER:A ttest(α,n1)
3.PLA TFORM:α→β,RAI_A状态改变
4.(i)REQU ESTER→RAI_A:Nonce值n2
(ii)PLA TFORM:β→γ,RA I_B状态改变(iii)RAI_A→REQU ESTER:A ttest(γ,n2)1.PLA TFORM:可信状态α
2.(i)REQU ESTER→RAI_A:Nonce值n1
(ii)RAI_A→REQU ESTER:A ttest(α,n1) 3.(i)PL A TFORM:α→β,RAI_A改变状态
(ii)RAI_A→REQU ESTER:U p dateA ttest(β) 4.(i)PL A TFORM:β→γ,RAI_A改变状态
(ii)RAI_A→REQU ESTER:U p dateA ttest(β)
Multi2RAI(a)Multi2RAI(b)图1 Multi2RA I证明常见问题
范采用服务器发送新鲜值Nonce,防止远程证明的重放攻击,但是这种方法在Multi2RA I的更新证明中将不再适用,除首次证明外更新证明都是在Requester不知道的情形下发生,如果通知Requester 发送Nonce,Compart ment此时可能已经改变为另一状态,这将出现Multi2RA I(a)的非一致性证明. Multi2RA I(b)描述的是RA I证明的重放攻击证明,第4步RA I_A计算环境状态已经改变为γ,而不诚实的用户可以重放状态β的证明.Multi2RA I可信计算环境对于远程证明提出了新的安全要求.
(1)证明的动态性.可信计算环境的软硬件配置和状态动态发生改变时,RA I必须动态地向Requester证明更新后的新状态可信.
5820(2)证明的一致性.RA I_A证明可信计算环境中它关联的运行状态时,不能由于其他RA I改变了可信计算环境的状态,而导致RA I_A错误的证明改变后的新状态,RA I_A的证明必须与RA I_A的关联状态一致.
(3)证明的并发性.Multi2RA I环境下同时存在多个并发运行的、向不同Requester证明计算环境的可信性的RA I.不能因为RA I证明而锁定当前计算环境,亦即RA I证明时,不允许平台状态更新,不允许其他RA I同时进行证明.不管平台的运行环境经过了多少次改变,Multi2RA I还能够并发证明其不同的最新关联状态.
(4)防重放攻击.RA I的关联状态与RA I证明一一对应,但是当关联状态改变为不安全时,不诚实的用户,或恶意程序能够重用原有的证明数据,使Requester相信RA I仍然可信,这就是Multi2RA I 的重放攻击.
1.3 我们的工作
我们提出了一个Multi2RA I可信计算环境证明方案,该方案主要包含可信计算环境组件度量描述、会话组件树构建和Multi2RA I证明流程,较好地解决了多个远程证明实例执行的并发性和一致性等问题.本文第2节介绍TPM/TCM的基础知识,概述Multi2RA I的证明模型和简要流程;第3节具体阐明详细的Multi2RA I证明方案;第4节介绍基于Multi2RA I证明方案的原型系统实现;第5节对全文进行总结.
2 证明模型
2.1 TPM/TCM基础
TPM/TCM是一个安全芯片(实质上是一个密码芯片),可提供密码操作、完整性管理、密钥管理、安全存储、远程证明等安全功能.本文主要涉及TPM/TCM的完整性配置管理、单调计数器、TPM/TCM身份密钥等功能.
TPM/TCM内部包含一组不可篡改的平台配置寄存器(PCR),TPM/TCM度量可信计算环境的软硬件状态,将度量结果保存在这些PCR寄存器中.PCR寄存器的主要操作包括扩展、重置、签名等,当系统启动后,PCR不能重置和篡改,只能进行杂凑值的扩展,其扩展方法为T PM_Ex tend(α,β)= (α‖β),其中α为PCR的旧值,β为扩展值,输出PCR的新值,TC G规范指定的Hash算法为SHA1.令={0,1}160,将PCR扩展操作定义为点积“・”运算,则×→:(α,β)a(α‖β)=α・β.
以可信计算平台的初始环境创建过程为例,主机平台的B IOS杂凑运算的度量结果为β,OS Loader 为λ,OS kernel为κ,OS加载的内核模块(例如特定硬件的驱动、内核服务模块等)度量结果为χ1,…,χ
m,加载的用户空间的应用程序为
χ无工作证明
m+1,…,
χ
m+n,那么对整个信任链进行的扩展操作是
PCR=((…((((0160‖β)‖λ)‖κ)‖
χ
1
)‖…)‖χm+n)=0160・β・λ・κ・χ1・…・χm+n
(1)
TPM/TCM单调计数器(Monotonic Counter)值保存在TPM/TCM内部的NV存储区域内,且计数器只能够被增加.创建一个新计数器需要Owner 的授权,增加一个计数器值需要计数器相关授权口
2461计 算 机 学 报2008年
令,删除计数器要么需要Owner 授权,要么需要计数器相关的授权口令.创建一个新计数器后,计数器被赋予了一个初始值,通常初始值不从零开始.计数器可用来标识可信计算环境状态的更新顺序和防止证明数据的重放攻击.2.2 体系结构
组件通过度量变量来衡量其安全属性,我们为组件颁发属性证书,来验证组件是否可信,图2(a
)
是以组件为证明单位的体系结构图,系统包含组件
生产厂商、用户(简记为U )和证书发布权威().组件生产厂商生产和发布组件,提供组件度量类别和度量变量(参考3.1.1节);证书发布权威机构评估组件安全属性,发布、验证和撤销组件属性证书;用户平台由主机系统和TPM/TCM 安全模块组成,组件属性证明和可信计算环境的更新证明发生在用户平台安全通信过程中.
图2 可信计算环境证明模型和体系结构
设的公私钥为(S K T ,P K T ),经过评估认证的组件安全属性集合为,
国庆周记包含有长度为l 的代表
不同组件安全属性的字符串,具体形式为
={p 1,p 2,…,p n }<{0,1}l \{0l }.
组件用三元组(i d ,χ,p )表示,i d 是组件的ID ,χ是组件全部度量变量按照组件度量算法(参照31112节)得到的度量值,p 是组件经过评估满足
的安全属性,p ∈.为组件(i d ,χ,p )颁发的属性
证书记为
cert (
,i d ,χ,p )=(i d ,χ,p ,S i gn (S K T ,(i d ,χ,p ))
炒锅怎么选
(2)
为了便于组件属性撤销查询,周期性颁发组件属性撤销列表CRL ,同时提供在线证书查询服务OCSP 等.
图2(b )为用户平台的体系结构,可信服务层、虚拟机监控层、可信硬件层共同构成了用户可信计算平台的可信计算基(TCB ),TCB 的上面是运行各个相互隔离的隔间(Compart ment ),Compart ment 可以采用Xen 提供的隔离虚拟机,或N GSCB 提供的保护分区,或微内核系统实现,我们的系统使用Xen 可信平台上的虚拟机实现Compart ment.远程证明时,首先证明TCB 的可信,然后证明Compart ment 中RA I 实例关联的组件安全属性.可信服务层提供了组件证明必须的存储、会话、度量管理等服务.
(1)MA (Measurement Agent ):进行平台组件
的完整性度量,组件更新时对被更新的组件重新度量.
(2)CM (Component Manager ):管理系统中各个组件的安装注册、删除卸载和更新升级等,保存有注册组件的组件属性证书.CM 负责处理Compart 2ment 中组件的更新请求,如果组件的安全属性发生
变化,则触发MA 对组件重新度量,确保组件满足属性证书中所声明的安全属性.CM 用组件列表来保存组件注册信息和组件属性证书信息,多个Compart ment 拥有相同的组件,CM 共享该组件列
表项,若组件发生更新,CM 使用COW (Copy On Write )机制修改组件列表项.
(3)TSM G (TL S Session Mana Ger ):管理系统
中全部远程证明TL S 会话实例,每个远程证明实
例RA I ∈总是绑定一个会话关联组件集合C ,这些会话关联组件为叶节点组成一棵会话组件树.Compart ment 中Πc ∈C ,如果组件c 发生更新,CM
会检查更新后的组件c 的安全属性是否发生改变,如果改变则通知TSM G 进行更新证明,验证成功则重用原有的SSL 会话,但使用新的会话密钥.
(4)TCM G (TPM/TCM Context Mana Ger ):TPM/TCM 的上下文管理负责维护各个Compart 2ment 的TPM/TCM 操作环境,包括Compart ment
徐东明3
4619期冯登国等:可信计算环境证明方法研究
关联的密钥、会话、数据以及各个Co mpart ment 绑
定的物理PCR ,各个RA I 关联的V PCR (Virt ual PCR ).Compart ment 每创建一个RA I 时,TCM G 在
相应的Compart ment 的上下文中创建一个V PCR 用来描述RA I 关联的组件配置和状态,V PCR 值为组件会话树的根节点扩展物理PCR 后
的值.2.3 证明流程概述
图3描述了可信计算环境证明的生命周期过程.可信计算平台每
创建一个Compart ment 时,
TCM G 就为该Compart ment 创建一个TPM/TCM 上下文(context ).当发起一个新的TL S 会话时,TCM G 需要为该会话分配保存组件配置和状态的V PCR ,TSM G 则建立与该会话安全相关的会话组
件树,会话组件树的组件用来衡量RA I 会话是否满足某种安全属性.当一个RA I 会话实例执行时,将触发MA 对会话关联组件进行度量,度量完成后TSM G 将计算会话组件树,然后TPM/TCM 对证明数据签名,最后RA I 运行扩展了远程证明的TL S 协议完成证明.
图3 Multi 2RA I 证明生命周期
可信计算环境的证明周期中,Multi 2RA I 证明主要包括3个主要步骤:
(1)组件度量.由MA 执行的对组件的度量变量进行度量、评估的算法.MA 度量的组件应在CM 保存的组件属性证书包含的度量变量范围之内,MA 完成度量后使用组件度量属性证书验证组件配
置状态,如果二者不符,则由CM 通知系统管理员组件已经不符合组件属性证书声明的安全属性.
(2)会话组件树计算.RA I 会话要求满足安全属性p ,CM 将会话安全属性映射为平台组件安全属性,如p ]∧
n i =1p i =p 1∧…∧p n ,p i 是组件c i 的安全
属性.TSM G 为这些与会话相关组件创建组件树,被度量的组件经过验证后,将用组件度量值(或属性值)扩展计算会话组件树.
(3)Multi 2RA I 证明.包括RA I 证明和RA I 更新证明.
RA I 证明是首次建立远程证明网络通信时必
须进行计算环境可信性的证明.RA I 会话实例证明
协议建立在TL S (SSL )协议的基础上,在证明用户
身份、密钥协商的同时,证明组件安全属性和TPM/TCM 平台身份.
RA I 更新证明发生在RA I 证明之后,是对可信计算环境改变后的状态进行证明.无论是用户合法的组件更新,还是恶意攻击导致组件配置和状态的改变,都会导致可信计算环境变化,此时将无法保障原有RA I 会话运行环境是否可信,组件更新时CM 将驱动MA 重新度量更新组件,TSM G 进行更新组件证明.
有海的成语3 具体方案
秉承
第2.3节描述了可信计算环境证明总体过程,本节我们将提供具体的实现算法和协议,来保证通信双方的计算环境可信.可信计算环境证明方案Γ=(G,M ,A ,A V ,U ,U V )是由一系列概率Oracle [19]算法构成.这些算法运行在组件度量、会话组件树计算、Multi 2RA I 证明等主要步骤中,其中密钥生成算
4461计 算 机 学 报2008年