黄秀文
(武汉纺织大学 信息技术中心,湖北 武汉 430074)
基于可信计算的远程证明的研究
黄秀文
(武汉纺织大学 信息技术中心,湖北 武汉 430074)
可信计算作为一种信息系统安全新技术,为克服单纯依靠软件安全防范方式的不足提供了新的思路,在平台上通过软硬件结合的方式构建可信计算环境。远程证明是可信计算平台的重要功能之一,是发出证明请求的一方确认远程平台的身份和平台状态配置信息的过程。本文围绕可信计算的远程认证进行研究,从可信平台模块、可信软件栈及其在实际中的应用进行探讨、分析和改进,为基于可信计算的远程认证的设计和实现提供了新的途径。
信息安全;可信计算;可信计算平台;可信软件栈;远程证明
随着计算机技术的发展,信息安全技术也在不断变化和发展中,传统的安全技术如防火墙、杀毒软件、入侵检测己不能保证信息的安全。面对各种各样的恶意攻击和病毒,虽然通过加大病毒库,砌高防火墙,增加入侵检测的复杂度,但依然有层出不穷的问题出现,尤其对于在电脑硬盘中驻存的一些恶意程序运行更显得无能为力,这些恶意程序破坏系统,在网络肆意传播。整个信息安全状况令人担忧,误报率多、安全投入增加、维护与管理成本高且更加复杂,使用信息系统的效率降低。尤其对一些新的病毒攻击,入侵检测毫无防御能力。
可信计算 TC ( Trusted Computing)通过在平台内部引入可信硬件设备作为可信根,采用软硬件相结合的技术,建立一条信任链,一级认证一级,一级信任一级,把信任关系扩大到整个计算机系统,这样就能确保计算机系统的可信。远程证明是指一个节点将自己平台的某些信息使用约定的格式和协议向另一个节点报告,使得另一节点能够获得这些信息,并判定该平台的可信状态。其目的是保证两个节点的身份和安全属性符合对一方的要求,其平台状态是可靠的。而在可信计算平台上的“远程证明”是指在平台上使用身份认证密钥AIK对当前存储的PCR值进行签名,然后报告给远程挑战者其平台的状态,是建立在可信度量、可信报告基础之上的技术。
可信就是一个主体可以信赖一个客体,可信计算组织(TCG)用实体行为的预期性来定义可信:如果一个实体的行为是以预期的方式符合预期的目标,则该实体是可信的。这个定义中,信任是一种对设备有信心的期望,认为它的执行会符合主体对它的预期,能够实现预定的目标。
可信计算是一种信息系统安全新技术,包括可信硬件、可信软件、可信网络和可信计算应用等诸多方面。可信计算的思想源于人类社会,是把人类社会成功的管理经验用于计算机信息系统和网络空间,以确保计算机信息系统和网络空间的安全可信。TCG认为,可信计算的总体目标是提高计算机系统的安全性。现阶段的主要目标是确保系统数据的完整性、数据的安全存储和平台可信性的远程证明。
可信计算的基本思想是:
(1)首先在计算机系统中建立一个信任根。信任根的可信性由物理安全、技术安全与管理安全共同确保。
(2)再建立一条信任链。从信任根开始到硬件平台,到操作系统,一级测量认证一级,一级信任一级,把这种信任扩展到整个计算机系统,从而确保整个计算机系统的可信。
在TCG的架构规范中,可信计算平台的定义为:“A Trusted Computing Platform is a computing platform that can be trusted to report its properties”(可信计算平台就是能够让人信赖地报告自己属性的计算平台)。它不仅指能提供可信计算的硬件体系,还需要在这之上实现软件接口。目前,可信计算平台架构从上到下分别由应用软件、TSS和TPM构成。
可信平台架构如图1所示:
图1 可信平台架构
可信计算平台至少要提供下列三个功能:保护功能、完整性度量功能与完整性报告功能,与这三个功能紧密相关的就是三个信任根:可信存储根(Root of Trust for Storage,RTS)、可信度量根(Root of Trust for Measurement,RTM)与可信报告根(Root of Trust for Reporting,RTR)。
2.1可信平台模块TPM
在可信计算技术体系中,最核心的就是可信平台模块TPM(Trusted Platform Module)芯片,它是一个内置在系统中的硬件模块。TPM可以看做是一个完整的计算机,包括处理器,协处理器。存储单元和操作系统等。TPM是可信根的基础,具备四个主要功能:对称/非对称加密、安全存储、完整性度量和签名认证。TPM安全芯片可以进行范围较广的加密。除了能进行传统的开机加密以及对硬盘进行加密外,还能对系统登录、应用软件登录进行加密。比如目前咱们常用的 MSN、QQ、网游以及网上银行的登录信息和密码,都可以通过TPM加密后再进行传输,这样就不用担心信息和密码被人窃取。
TPM的架构如图2所示:
图2 TPM架构
TPM提供安全存储功能,能够对密钥提供非常好的保护,密钥的生成和处理都在TPM内部完成。TPM内部的非易失性存储器中可以存放少量的密钥。存储根密钥(Storage Root Key,SRK)和背书密钥(Endorsement Key,EK)就存储于非易失性存储器中。可信存储根通过SRK构建一个密钥层次架构,中间节点为存储密钥,叶子节点为任意需要加密的数据。由于TPM存储容量有限,因此一般在磁盘上构建一个持久存储区(Persist Storage,PS),使用SRK进行加密保护,这样受保护的数据可以进行扩充。
2.2可信软件栈TSS
在可信计算的体系结构中,处于上层应用程序和底层 TPM之间的是可信软件栈 TSS(TCG Software Stack),无论什么样的操作系统和系统平台,都不会影响平台与TSS模块的接口关系,TSS独立于平台。其设计的目标为:为应用程序访问TPM提供接口,同时实施对TPM的管理。
其系统架构图如图3所示:
图3 可信软件栈架构图
从图3中我们可以看出,TSS被划分为四个功能层次:驱动层TDD(TPM Device Driver)、设备驱动库层TDDL(TPM Device Driver Library)、核心服务层TCS(TSS Core Services)和服务提供层TSP(Trusted Service Provider),通过接口进行调用和封装。TSS为应用程序使用TPM的功能提供了丰富的接口,把所有TPM的命令都封装起来。
越来越多的与互联网相关的应用需要用户借助远程主机运行的特定服务程序来完成,如网上银行等。用户通过网络与远程主机的服务程序交互之前,如果无法确信远程主机和服务程序没有被非法入侵,那么可能因为使用了该服务而造成损失。利用 TPM 芯片和 TSS 软件栈,可以构建一个通用的可信平台。以TPM 作为可信度量根、可信存储根和可信报告根,可信平台具有这种潜能:可以向外来用户证实本平台所处的状态,包括硬件配置和软件的状态,以让外来用户判断本平台是否出于一个安全的状态。TCG 组织其规范将这种潜能定义为远程证明(Remote Attestation),并描述了一个简单的远程证明机制。
3.1远程证明的原理
简单远程证明过程的完成要经历两个阶段:可信度量与可信报告。可信度量是平台组件完整性度量值的计算与存储,可信报告是将平台组件的度量值报告给外来用户,然后用户通过验证度量值来判断平台和应用程序是否被篡改。
3.1.1可信度量
平台可信度量是指通过一定的方法按步骤度量并报告平台的状态。从系统加电启动,一直到最后应用程序每一步都需要度量,整个启动序列都遵循“先度量,再执行”的原则。当前阶段的代码负责度量下一阶段即将要执行的代码,然后再将度量值扩展到PCR中,这样一级信任一级,以此保证平台的可信,保证环境的安全。当然任何信任关系中总是存在某种基础性的假设,必然存在默认环节的信任关系的基石。在一个信任关系依次传递的链条中,源头在启动的过程中是被假设为安全可信的,不会受到度量。
3.1.2可信报告
在系统进行可信度量时,除了度量结果要在PCR中进行扩展之外,还将具体每一步的度量操作、中间状态和度量结果保存下来,可以作为系统可信度量的详细步骤进行参考,存储度量日志(Storage Measurement Log,SML)用于存储这些信息。由于PCR被认为是不可篡改的,并且它所保存的值可以通过SML重新计算出来,因此SML一般不需要安全保护。
可信计算平台使用PCR的值来生成完整性报告。由于PCR的值保存在TPM中,并且在报告生成的过程中要防止被篡改,需要设计一套密码协议保证PCR值的秘密性、真实性和完整性,同时还要考虑平台配置的隐私性。TCG提出解决方案是使用平台的匿名身份证书,既保证该信息来源于一个可信计算平台,又保证该平台的匿名性。同时,使用签名机制保证信息的完整性和真实性。
3.2远程证明的协议
远程证明是对平台做全面的度量,向远程通信方证明自身运行环境是可信的。它是一个综合完整性校验和身份鉴别的过程,同时向验证者提供了一份可信的平台状态报告。TPM是报告的可信根,能够保证对当前完整性度量值作可信的报告。远程证明是通过典型的“挑战——应答”协议来实现的。
图4 远程证明协议
远程证明的协议如图4所示:
一个平台(挑战者)向另一个平台(证明者)发送一个挑战证明的消息和一个随机数(nonce),要求获得一个或多个PCR值以便对证明者的平台状态进行验证。每个TPM拥有唯一的背书密钥(Endorsement Key, EK),用来唯一标识可信平台的身份。对于可信平台的身份认证,在需要个人隐私来证明其身份的同时还要尽可能的少暴露个人隐私。所以TCG规定EK不用于身份认证,而使用EK生成并通过隐私CA(Certificate Authority)签发的AIK证书来完成身份认证。证明者利用AIK对挑战者指定的PCR值进行签名后,附加上对应的度量日志(SML)表项和AIK证书一起发送给挑战者。挑战者对证明值进行验证,验证过程包括根据度量日志重新计算哈希值、对AIK证书进行验证,以及将签名值和期望值进行匹配三个步骤。经过这三个步骤就可得出远程证明的结果,即证明者是否是可信的。
3.3远程证明总体设计
此次远程证明大概分为以下几个部分:
(1)度量请求。首先,发送度量请求,客户端接到度量请求后,通过webservice向服务器发送随机数请求;
图5 远程证明系统架构图
(2)服务器接到请求后,生成随机数,并返回给客户端节点;客户端节点得到随机数后,提取度量模块的PCR值,生成完整性报告并发送给服务器;
(3)服务器接收到客户端生成的完整性报告(完整性报告report包括PCR值、随机数等)后,对report进行解析。
具体架构如图5所示。
图6 远程证明流程图
远程证明的过程如图6所示。
(1)服务器触发客户端对平台进行完整性验证。客户端监听,服务器发出连接请求,建立套接字连接。
(2)服务器产生一个随机数,指定要求的PCR编号,发送给客户端。
(3)平台度量值存在PCR里,度量日志写入文件里,客户端读指定PCR获取度量值,读日志文件获取度量日志。
(4)配备TPM的客户端载入AIK,将度量值和随机数串联,用SHA1算法求出哈希值,再用AIK私钥对其进行签名,形成完整性报告,报告包括随机数、度量值、哈希值、签名值、AIK证书等。
(5)最后将完整性报告和度量日志一起发送给服务器。
(6)服务器验证签名、检查随机数,通过比较签名值和期望值判断平台是否可信。
在实现用户身份验证的过程中,系统利用 MD5信息摘要算法对用户口令进行加密以防止用户口令被窃取,用以加强保证系统的安全性。
首先获得MD5摘要算法的 MessageDigest 对象,然后使用指定的字节更新摘要,digest()最后确定返回md5 hash值,返回值为8为字符串,因为md5 hash值是16位的hex值,实际上就是8位的字符。最后把密文转换成十六进制的字符串形式返回。
用户身份认证就是通过搜索用户信息表,对用户登录的 ID和密码进行鉴别,从而判定该用户合法还是非法。
随着信息技术的发展,可信化成为信息安全技术发展的趋势之一,信息安全逐渐成为获得可信环境和可信计算的手段,除了重点发展认证技术外,计算机安全也已经从传统的系统保护阶段过渡到以可信计算为下一步发展目标的阶段。尤其在分布式计算、云计算环境下,研究适用于平台间的远程证明需求会越来越多,因此,有必要深入研究可信计算中的远程证明技术。本文围绕可信计算的远程认证进行研究,从可信平台模块、可信软件栈、及其在实际中的应用进行探讨、分析和改进,为基于可信计算的远程认证的设计和实现提供了新的途径。
[1] 李昊,冯登国. 可信密码模块符合性测试方法与实施[J]. 武汉大学学报(理学版), 2009, 55: 31-34.
[2] 崔奇,石文昌. 一种通过应用程序验证TPM标准符合性的方法[J]. 中国科学院研究生院学报,2008, 25(5): 649-656.
[3] 张焕国,严飞,傅建明,等. 可信计算平台测评理论与关键技术研究[J]. 中国科学::F辑信息科学,2010, 40(2): 167-188.
[4] 朱智强,余发江,张焕国,等. 一种改进的可信计算平台密码机制[J]. 武汉大学学报(理学版), 2009, 55(1): 011-016.
[5] 詹静,张焕国,徐士伟,等. 基于状态机理论的可信平台模块测试研究[J]. 武汉大学学报(信息学版), 2008, 33(10): 1067-1069.
[6] 陈小峰,冯登国. 可信密码模块的模型检测分析[J]. 通信学报,2010, 31(1): 59-65.
[7] TNCwebsite. [EB/OL]. http://www.trustedcomputinggroup.org/developers/trusted network cone ect. [2011-11-17].
[8] Trusted Computing Group. TCG Specification Architecture Overview[S]. USA: Trusted Computing Group, 2007. 5-40.
Study on Remote Attestation Based on Trusted Computing
HUANG Xiu-wen
(Modern Education Centre, Wuhan Textile University, Wuhan Hubei 430074, China)
As a new technology of the information system security, Trusted Computing provides a new method to overcome the shortage of solely relying on software security mode. It builds Trusted Computing Environment through a combination of hardware and software on this platform. Remote attestation is one of the critical functions, which is a process of verifying the identity and configuration information of a remote platform by attestation requester. The remote attestation based on trusted computing is discussed and analyzed from TPM, TSS and its application in this paper. The principal achievements of the paper present a new approach for the design and implementation of trusted remote attestation.
Information Security; Trusted Computing; Trusted Computing Platform; TCG Software Stack; Remote Attestation
TP309
A
2095-414X(2015)06-0084-06
黄秀文(1967-), 女,工程师,研究方向:计算机信息管理系统.