文献标识码: A
文章编号: 0258-7998(2015)01-0115-03
0 引言
针对计算机系统的安全问题,TCG组织发布了TPM1.1规范[1],该规范制定了静态可信度量根(SRTM)的标准。然而使用SRTM的计算机系统存在以下安全隐患:(1)引导装载程序(BootLoader)作为系统引导程序是整个平台启动的关键,但是其存在的一些漏洞使其容易受到攻击[2];(2)针对BIOS的攻击源于计算机生产厂家允许使用者对BIOS进行固件升级,这就给攻击者创造了条件,通过BIOS实现对计算平台的攻击;(3)针对恶意重启TPM的攻击,通过重启TPM,破坏其建立的信任链,实现攻击的目的。
为了弥补SRTM功能的不足,TCG发布了TPM1.2规范,该规范在TPM1.1的基础上增加了平台配置寄存器(PCR)以便能够实现动态可信度量根(DRTM)。基于TPM1.2规范的DRTM由可信硬件出发,同TPM一起构建起一个动态可信度量架构。TPM1.2规范中新增的8个PCR可以在需要重新构建信任链时将信任链重置而不需要重启整个平台[3]。但是TPM1.2规范中只是定义了DRTM,而没有给出具体的实现。
本文基于TPM1.2规范中的DRTM,提出一种基于FPGA动态可重构技术的DRTM设计实现方法,同时基于嵌入式系统的计算环境对其进行验证。
1 信任链的构建
1.1 信任链的选择
基于TPM模块构建可信计算的信任链是建立可信计算环境的核心,SRTM只在系统启动时参与建立信任链,系统启动完成后以及系统运行中不再对信任链进行评估。而DRTM可以在任意时刻重新构建信任链,这是与SRTM根本的区别,同时DRTM重构信任链时对系统的正常运行没有影响。SRTM是BIOS软件的一部分[4],而DRTM始于CPU的安全指令跟BIOS无关,因此可以避免针对BIOS的攻击,同时基于DRTM的信任链也能够保证BootLoader的可信。因此基于DRTM的可信计算度量是真正意义上的完整性度量,为可信计算平台建立了坚实可信的信任链。
TCG的信任链中可信度量根(CRTM)是在TPM之外存在于BIOS中的第一个软件模块, TPM有3个可信根:度量可信根RTM(a Root of Trust for Measurement)、报告可信根RTR(a Root of Trust for Reporting)和存储可信根RTS(a Root of Trust for Storage)。基于软件的可信度量根容易被攻击,而硬件则不容易被篡改,如果将RTM、RTS以及RTR全部集成在TPM芯片中,可以避免遭到软件攻击,提高平台安全性[5],国内也有针对这方面的相关内容研究[6-7]。本文基于上述分析给出基于硬件实现CRTM的方案,其基本结构如图1所示。
基于这种结构的信任链的可靠性得到很大的提高,但是RTM、RTS以及RTR全部集成在TPM芯片中,硬件资源负担较重,并且需要对现有计算平台的系统结构重新设计,成本较高。为实现安全可靠且节约硬件成本开销的目的,采用加入第三方度量模块,即使用FPGA动态可重构技术来实现CRTM。FPGA既是硬件同时又可以利用软件编程的方式来配置其内部结构,实现硬件的可编程能力,而基于FPGA的动态可重构技术可以在不重启系统的情况下改变其硬件配置结构,完全适合这里的需求。本文使用星形动态信任链结构,信任链结构如图2所示。
1.2 动态信任链的模型
对于信任链模型的建立需要考量两方面:(1)对应用程序的动态行为进行行为建模;(2)判断建模后该应用程序的行为是否以所期望的方式朝着预期目标发展。这里提出了一种基于DRTM的完整性度量模型(Dynamic Integrity Measurement Model,DIMM)。DIMM采用度量代理,在加载应用程序后对运行的进程进行实时的监控,以完成真正意义上的动态度量。
根据进程所产生的行为是否对系统的完整性造成破坏,分为观察行为和修改行为。DIMM将进程分为可信、可疑、攻击三类:针对修改行为进行判断,如果进程可信,则在该进程执行完毕之后更新完整性基准库和安全策略;如果不能确定为可信进程,则进行隔离;对于攻击性的进程则立即停止其运行。DIMM构架如图3所示。
应用程序在载入时,首先要通过度量模块度量其完整性,然后将结果与标准值相比较,如果相同,则其得到信任并且获得控制权。针对修改的进程,度量代理将该进程交给以下四个模块进行完整的动态度量:判定模块依据制定的安全策略判定该进程是否被许可,并进一步判定是否可信;度量模块的作用是针对进程展开完整性度量;核实模块检测系统的完整性是否遭到破坏;隔离模块将异常进程隔离起来以免影响正常的系统进程。
2 设计及验证
2.1 基于FPGA的动态可重构
基于DRTM的动态可信度量分析需要在系统运行时能够根据需要重建信任链并且又不影响系统的运行,这里采用FPGA的动态可重构技术来实现。动态可重构技术是指拥有特殊结构的FPGA,使用SRAM编程技术,在特殊情况下能够实现电路的功能和逻辑结构进行重新配置的特性。FPGA动态可重构技术本质是对FPGA的内部结构或者逻辑连接进行部分或者整体的更新,这些更新的运行是实时的,并且不会影响到整个系统的正常运行。
2.2 系统搭建
根据动态信任链的构建方式,基于ARM嵌入式系统及可重构FPGA搭建了一个系统验证平台,其架构如图4所示。系统上电后,控制权首先掌握在FPGA手中,FPGA将ARM复位,阻止其与其他设备的通信并启动TPM,然后将指令发送给TPM并调用SHA-1算法;TPM启动之后其PCR[0]内会获得一段摘要值,FPGA将这段值与存储在片内的标准值进行比对,如果不相同则平台将不会被启动,并且会更新存储日志,否则将继续对系统变量进行度量。若FPGA获得摘要值均可信,则FPGA将平台控制权移交给ARM。
ARM启动后加载BootLoader,初始化各种外设并且调用代码度量模块。度量模块调用SHA-1算法,并且将扩展值存储在PCR[4]中,FPGA再次进行比对,只有度量值和标准库的值一样时,FPGA才正式将控制权交给ARM,然后才正式启动系统内核。基于FPGA的系统整体结构如图5所示。
其中CM模块是整个系统的核心,该模块负责控制其他模块的运行,因此对该模块的稳定性要求很高,这里使用有限状态机来实现CM模块的设计。针对CM状态机进行仿真的时序波形如图6所示。
3 测试及分析
本文算法部分采用Xilinx公司的Virtex-5系列FPGA进行验证,运用AES算法对DRTM中的重要数据进行加密。通过对密钥、明文和密文进行测试,图7为仿真结果。
针对建立的DRTM的测试从以下几个方面进行:(1)DRTM是否可以正常运行;(2)模拟各种类型的攻击,测试DRTM抵御攻击的能力;(3)添加有DRTM模块的可信验证平台比未安装的优势在哪里。通过搭建测试平台,分别模拟针对TPM命令、标准库、引导程序、内核与根文件的攻击,对应这些攻击的日志返回值分别为:0x00、0x01、0x02、0x03和0x04,如果正常启动则返回0xaa。
测试流程包括:打开TPM命令,将原文的第二个字节改为不同的值;将修改后的命令文件加载到NAND Flash中,然后重启系统;下载不含CM模块的程序到FPGA内,然后重启系统;将未修改的TPM命令文件和完整的FPGA程序下载到对应芯片中,然后重启系统。
通过测试,添加DRTM模块的平台启动后有着较好的抵御攻击的能力,这种能力主要体现在:在保证平台安全启动的同时,将动态度量延伸到程序加载之后对进程的度量,这就实现了实时的动态可信度量分析。
4 结束语
通过模拟攻击实验可以发现,添加有DRTM系列模块的可信验证平台有着很好的抵御攻击的能力;可信计算验证平台的启动时间比普通平台慢3 s左右,这个时间不会对平台的使用者产生明显的影响。本系统在保证平台安全启动的同时,将动态度量延伸到程序加载之后的阶段,达到了预期目标。
参考文献
[1] HOFMANN O,DUNN A,KIM S.Ensuring operating system
kernel integrity with OSck[C].Proceeding of the 16th Inter-
national Conference on Architectural Sup- port for Progra-
mming Languages and Operating Systems,2011:164-177.
[2] Feng Dengguo,Qin Yu.A property-based attestation pro-tocol for TCM[J].Science China(Information Sciences),2010(3):243-255.
[3] AZAB A M,Peng Ning,SEZER E C.HIMA:a hypervisor-based integrity measurement agent[C].Proceedings of the 2009 Annual Computer Security Application Conference,2010:1356-1360.
[4] Xu Ziyao,He Yeping,Deng Lingli.An integrity assurance mechanism for run-time programs[C].Lecture Notes in Computer Science,2009:45-53.
[5] 詹静,张焕国,徐卜伟,等.基于状态机理论的可信平台模块测试研究[J].武汉大学学报(信息学版),2008,33(10):1067-1069.
[6] 苏培培,刘宝明.基于国产处理器的可信系统研究与实现[J].电子技术应用,2012,38(1):136-138.
[7] 倪乐,戴紫彬,杨同杰,等.可重构双基双域模乘器设计与实现[J].电子应用技术,2012,38(10):136-139.