一种高性能可信平台控制模块的设计和实现

  • A+
所属分类:安全闲碎
摘要:针对可信平台控制模块主要技术主动度量的实现过程中改造工作量大,不易适配,启动时间长、性能偏低等问题,提出了一种优化设计方法,将可信BIOS与TPCM进行一体化设计,增强了 BIOS固件的安全性,提升了BIOS固件代码认证速度,减少了主板修改工作量。同时在实现中使用了基于PCIe总线接口的可信安全芯片,具备较高的运算性能。经过测试一体化TPCM的功能和性能有较大的提升,达到了优化设计的目的和要求,具有性能高、适配快、改动小等优点。

00

引 言

可信平台控制模块(Trusted Platform Control Module, TPCM)的前身可信平台模块(Trusted Platform Module, TPM )是一种基于可信计算技术的硬件设备。模块与宿主机相连,用于验证用户、 硬件、系统的身份信息,并处理宿主机可信计算相关的业务请求。
可信计算联盟(Trusted Computing Group, TCG ) 提出的可信平台模型的可信度量根是可信启动代 码,可信模块受宿主机支配,属于被动度量。模块无法保证宿主机启动代码和处理器启动时的可信状态。如果启动代码遭到篡改,可以使宿主机绕 过可信平台模块运行而不受控制,可信功能完全失 效。现在以 BIOS ( Basic Input Output System,基本输入输出系统)、UEFI ( Unified Extensible Firmware Interface,统一可扩展固件接口)等启动代码为目标 的攻击越来越多,TPM不足以应对这类威胁。
我国在可信计算技术领域上居于世界先进水平,提出了将可信模块作为可信根的主动度量技术。模块在开机后中断主机的启动操作,度量认证启动代码,认证通过后解除控制,主机正常启动。近年来出现了很多关于TPCM实现启动代码度量技术的研究成果。这些方法实现了计算机启动控制和启动代码度量认证,为可信应用提供了更好的支撑。
目前主要有两种启动代码度量的方式:一种思路是控制电源电路,先度量启动代码,然后让主板上电;另一种思路是控制CPU的复位信号暂缓 CPU的启动,在启动代码度量通过后让CPU读取启动代码。两种主动度量实现方式都不可避免地需要在主板上集成控制电路和启动代码,必须修改主板硬件。前者需要修改主机的电源电路和主板两部分硬件,还需要加装电源控制模块。后者需要在主板上实现控制电路,工作量也比较大。
本文基于上述第二种思路,提出一种优化方案, 将可信BIOS放置在TPCM内部,TPCM在上电自检时对BIOS的度量认证,之后使能CPU完成BIOS 的启动。通过这种方式可进一步减少主板的改动, 增强平台的安全性。同时由于采用了 PCIe接口作为业务接口,密码服务速率高,可以承担更多应用。

01

可信平台控制模块

1.1 技术背景和发展
随着社会生活日益信息化网络化,对计算机的 攻击日益增加。例如WANNACRY勒索病毒,仅一 次攻击就涉及150个国家的上百万台计算机,造成 多个国家政府部门和大企业信息系统瘫痪,影响了 社会运转并导致了巨大经济损失。而传统的安全防护措施(杀毒软件、防火墙、入侵检测等)过于被动, 只能根据既定策略对网络攻击进行探测和阻断,导致在新型攻击发生时,无法及时研制新对策并部署实施,攻击被中止或结束时,已产生较大损害。可信计算技术作为一种采用主动防御机制可较好的 解决以上问题。
通过在计算机内安装专用硬件可信模块,并注入确认安全的软硬件预期值信息,在开机后使用度量认证方式对软硬件进行检测,与模块内置预期状态相同时判断为可信,可以加载运行,所有与预期状态不同的均不能运行,从而及时有效地防止了病毒、木马、篡改软件等非法攻击,保证 计算机运行于可信状态。
国际上的可信计算联盟在1999年提出了可信 平台模块(TPM)的概念,并制定大量标准规范, TPM实现了计算机本机可信的主要功能,标志着可 信计算技术进入产业化阶段,但仍存在着两个较大 问题:(1)模块加密采用非对称加密,速率较低;(2)可信BIOS作为度量可信根,可信模块处于被 动地位,安全性较低。
我国在可信技术研究领域位于国际领先水平。我国成立的中关村可信产业联盟提出了可信平台控制模块(TPCM )及其相关标准。TPCM大量采用对称加密方式完成业务,提升了业 务工作效率,模块采用主动度量技术,模块作为度 量信任根,在主机启动时先度量BIOS,提升了可 信体系的可靠性。近年来,我国推出了大量基于国产密码体制的可信计算芯片,有效地支持了可信计算产业的研究和发展。
1.2 TPCM和主动度量
根据2016年中关村可信产业联盟发布的相关 标准, TPCM的工作流程如图1所示。

一种高性能可信平台控制模块的设计和实现

图1  TPCM工作流程
计算机顺利启动的流程步骤如下:
( 1 ) 电源启动后,TPCM±电,阻止启动代码 加载。
) TPCM执行状态自检。
) 自检通过后,TPCM对启动代码进行度量。
) 如果启动代码度量结果正确,TPCM结束 控制,启动代码加载执行。
( 5 ) 启动代码根据用户预设策略调用TPCM 对计算机硬件信息进行度量认证。
) 计算机硬件可信,则先后度量操作系统 加载代码和内核代码。
) 度量认证通过后计算机加载操作系统, 计算机工作于可信状态下,计算机系统和软件可以 继续使用TPCM进行用户身份认证、软硬件认证和 数据加密等密码应用。
一旦上述自检或度量认证过程中出现失败, TPCM控制计算机进入异常处理流程,根据预制策略,计算机可能关机、重启或挂起,或在策略允许 的情况下让步运行于非可信状态。目前TPCM的实现主要是采用专用可信嵌入式芯片作为核心实现可信认证流程和密码服务。主要的区别是如何实现TPCM对计算机启动流程的控制,尤其是如何控制启动代码加载。目前主流的启动代码控制机制有电 源控制法和处理器控制法两种。
1. 电源控制法
在计算机内增加由TPCM控制的主板电源控制 电路和启动代码读取电路。TPCM在上电后控制通 过主板电源控制电路控制计算机电源暂缓对主板上电,通过启动代码读出电路对主板上的BIOS芯片上电并度量其内部代码。度量通过后,解除电源控 制,使主板上电,BIOS正常启动。其系统框图如 图2所示。 

一种高性能可信平台控制模块的设计和实现

图2  通过电源控制实现可信启动
2. 处理器控制法
在计算机主板上增加由TPCM主导的启动控制电路,主要实现对处理器的复位控制和BIOS总线开关两项功能。TPCM同主板一同上电,立即控制 CPU的复位信号阻止其读取BIOSo之后TPCM先读取并度量BIOS,完成认证后再使处理器读取启动代码,并正常启动。其系统框图如图3所示。 
一种高性能可信平台控制模块的设计和实现
图3  通过控制处理器实现可信启动
以上两种方法均不可避免地涉及计算机电路改 动。尤其是电源控制法,增加电源控制电路的同时 还需要修改主板的BIOS芯片电路,否则TPCM无法读取BIOS,处理器控制法则需要在主板上增加 了一个逻辑开关电路,改造工作量也比较大。这两种改造方法增加了 TPCM的适配难度,影响了可信计算技术的普及速度。这两种模式下BIOS都位于主板的存储芯片上,容易被读出,同时计算机启动 时,TPCM还需要先读取BIOS,度量后再启动计算 机,也延长了开机时间。

02

模块设计

2.1 需求分析
目前国内实现的一些可信模块普遍存在适配工 作量大,安全性不高,启动时间过长的问题。同时 因为芯片技术的制约,早期的可信芯片性能较低, 运算处理慢,进一步地延长了度量认证和数据加密 等具体功能的时间,无法应用于数据量较高的环境, 影响了可信计算技术的拓展,限制了整个产业的发 展。
为解决以上问题,我们需要设计一种适配简单, 性能强大的TPCMO随着最近几年我国厂商推出一批高性能可信安 全芯片,采用高集成度设计,大幅减少了对外围电 路芯片的需求,同时釆用PCIe等高速接口作为业 务处理接口,密码处理能力有了很大提高。使得设 计和实现性能强大的TPCM有了技术基础。釆用高 性能TCM芯片研制的模块安装在视频处理和网络设备上,不仅可以实现对设备本身的可信保护,还可以利用模块的高性能加密能力对其业务数据实现加密保护。但如何减少硬件适配工作量仍需要重点研究。
2.2 架构设计
结合需求分析,本文以国产高性能可信芯片为 核心设计并实现了一款PCIe可信平台控制模块(下 文简称一体化TPCM)。该设计是通过将可信BIOS 放置于TPCM内部,在完成对BIOS的可信度量的 同时减少BIOS度量的处理时间。利用PCIe总线接 口的预制保留管脚引入CPU。
PCIe模块的总体架构如图4所示。

一种高性能可信平台控制模块的设计和实现

图4  一体化TPCM架构
模块以国产TCM芯片为核心,搭配少量电源 芯片、晶体和接口连接器等外围电路构成模块硬件, 为简单起见,图中省略了与本文工作关系不大的电 路。TCM芯片内置算法资源、控制单元、物理接口 以及存储空间。存储空间内置嵌入式软件(固件) 和可信BIOSo采用该架构设计的一体化TPCM与传统的通过复位控制启动的模块相比主要区别是将可信 BIOS存储于TPCM模块中,这样设计主要有以下 三个优点:
( 1 ) 可信BIOS存储于TPCM模块的TCM芯 片中,受芯片安全机制保护,抵御外界攻击的能力 更高,提升平台的安全性。
模块在上电自检时即可对BIOS进行度量 认证,省去了原来从主板上读取BIOS的步骤,减 少了启动时间。
BIOS的启动控制机制可以在模块内实现, 不需要在主板上实现开关电路。仅需从主板引出 BIOS总线信号和CPU的复位信号到模块上。
2.3 平台度量流程
计算机安装一体化TPCM (这里默认模块已写 入可信BIOS和预期值)后启动电源,平台的度量 流程如下:
( 1 ) TPCM 上电自检,关闭模块SPI接口,拉起CPU复位信号。
2 ) 自检完成后TPCM度量BIOS。
3 ) BIOS通过度量确认可信后,TPCM配置 SPI接口为从模式,取消对CPU的复位,CPU加载 BIOS并启动。
4 ) 根据BIOS的策略依次度量硬件信息、操作系统加载代码和内核代码,信任链延伸到操作系统启动阶段。
5 ) 进入操作系统后,TPCM对用户行为和软硬件安装、运行继续进行监控。

03

模块测试

3.1 可信度量功能测试
一体化TPCM在X86、龙芯、飞腾等平台均进行了试用。使用篡改BIOS,更换内存及硬盘,安装未经认证的USB存储设备等恶意操作验证TPCM 模块和平台的可信认证功能。
首先完成TPCM的初始化,将正确的预期值 信息和可信BIOS写入TPCM中,在计算机上安装 TPCM驱动和上层软件。正常启动计算机,保证计算 机的状态不变,计算机顺利通过各项度量认证,顺利进入操作系统。以此验证了可信平台可正常启动。
之后进行攻击测试,在计算机启动前分别进行以下恶意操作:对TPCM导入普通BIOS (不修改 预期值);更换计算机上的硬件,改装同型号,不同物理编号的内存条、硬盘和U盘;修改操作系统加载代码等。之后启动计算机,计算机均不能正常启动。其具体现象如表1所示。
表1  恶意操作以及平台反应

一种高性能可信平台控制模块的设计和实现

通过对类平台的多种处理器平台的试验,验证了 TPCM模块对各类恶意操作做出反制,对平台实 现了保护功能。
3.2 开机时间测试
采用相同处理器平台、硬件设备配置和操作系 统的计算机,分别在使用被动度量机制启动、使用 TPCM控制启动,使用一体化TPCM启动的情况下 测试其进入操作系统登录界面的时间。通过在多类平台的多次测试证明使用传统TPCM明显慢于被动 度量机制启动,采用一体化TPCM与使用被动度量 相近。
3.3 密码服务性能测试
在应用层分别测试了TPCM的对称加密、杂凑、 签名等密码算法的速率,获得了理想数据。一体化TPCM的密码算法性能较好地利用了 PCIe接口的带宽。具备较高的密码服务能力。

04

结 语

采用本方案实现的一体化PCIe可信平台控制模块,已通过技术验证并投入使用,可安装于台式计算机等具备PCIe总线接口的设备上。在实践中还进行了小型化,研制了一款Mini PCIe可信平台控制模块,用于笔记本、工控机等安装空间更小的平台。在未来的研究中,计划进一步简化主板改造工作,提升可信模块的泛用性。


原文来源:信息安全与通信保密杂志社

一种高性能可信平台控制模块的设计和实现

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: