摘 要:提出三阶三路 (3P3C) 计算机架构防护理论, 基于该理论实现了可信平台控制模块 (TPCM) 度量, 系统控制、构建和保持可信运行环境.从系统架构角度解决计算机启动源头、平台及运行环境的不可信问题.该方法确保作为信任根的TPCM芯片首先上电, 主导计算机电源控制系统, 度量确认启动代码的可信性和完整性.在计算机启动过程中进行可信链的传递, 若检测到BIOS等固件被恶意篡改或平台环境受到攻击, 则根据预先写在TPCM内部的安全策略让计算机进入受控非可信工作模式或阻止其上电等.当可信操作系统及可信软件基 (TSB) 加载后, 运行应用软件过程中, 能实时动态保持计算机的可信运行环境, 直至系统关机.依该方法设计的TPCM芯片对计算机有主动的、绝对的控制权.极端情况下, 一旦恶意代码入侵而导致系统失控的情况发生, TPCM可以采取切断物理通道、关闭计算机电源等绝对性保护措施保护数据及网络安全.
关键词:三阶三路;可信平台控制模块;安全可信;主动防御;动态度量;可信运行环境;
0 引言
随着大数据、云计算、工业4.0、物联网的发展, 人们对互联网的依赖越来越大, 网络安全受到人们的重视.由于软件系统的日益复杂化和数据量巨增, 传统的被动的保障网络安全的方法诸如采用封堵查杀病毒之类的软件应用来监视运行环境安全, 监控恶意入侵, 需要占用大量CPU等资源进行扫描比对, 已不能满足现实需要.另一方面由于缺乏底层可信基础支撑, 防护软件本身易受到病毒攻击和恶意篡改.拥有顶级权限的防护软件自身的安全都无法得到保证, 系统的安全更无法保障.
为解决计算机平台可信问题, 国际TCG组织推出了可信平台模块 (trusted platform module, TPM) [1,2].但TPM是受主板支配的模块, 不能提供主动度量, 没有自主控制计算机的能力, 无法从根本上保证启动代码 (如BIOS代码) 的完整性.在主板启动代码越来越容易受到攻击和篡改的今天, 由于不具备对源头级别的安全验证, 无法很好地防止对处理器、内存、硬盘之类重要部件的篡改替换, 无法防御采用已经被篡改的硬件设备来构建伪可信运行环境, 传统的TPM及延伸保护已不能从根本上保证计算机基础平台的可信性.
国内文献也提出不少平台可信度量控制方法和思路[3,4].这些方法和思路大多针对TPM缺乏主动度量控制能力进行功能增强, 没有考虑到计算机运行全过程的可信计算环境保护, 特别是运行过程中的动态防护.
基于广义计算机的全生命周期, 本文提出三阶三路 (3P3C, three phases three channels) 安全可信平台架构防护方案.本方案从计算机内存的主动动态度量思路出发, 完善了从待机、启动、运行直到关机移除电源的计算机工作全过程可信计算环境保护机制.将此构架应用于可信平台控制模块 (TPCM) , 使之具备自主防御能力, 对计算机系统平台整个运行过程进行保护.
1) 利用计算机的待机电源给TPCM模块供电, 无需增加额外电源模块;
2) 设计不再局限于x86系统, 适用于广义计算机平台;
3) 基于电源系统结构和物理信道设计在计算机运行全程为模块提供对计算机的控制能力;
1 可信安全平台防护架构
1.1 设计思路
以机顶盒工作过程来说明计算机的运行过程.机顶盒从上电到应用可分为三个阶段:接上电源后机顶盒待机等待接收开机指令;当收到开机指令后机顶盒主电源供电, 主CPU及外围设备进行初始化工作;当运行环境准备好后, 加载应用程序播放电视节目.
相应地, 广义计算机从系统的启动到应用可分为三个阶段:待机, 启动和运行.在这三个阶段中都需要相应防护及信任承接传递:待机阶段, 对启动代码的度量确认;启动阶段, 可信平台度量确认, 可信运行环境的建立;运行阶段, 可信平台的维护, 动态监控重要数据及运行代码的安全可信.
定义1以广义计算机三个启动执行阶段为依据, 即待机、启动、运行, 通过配合三类物理接口通路设计, 即主控度量控制总线通道、低速从属通讯总线通道、高速通讯总线通道, 实现对计算机可信环境的建立及可信运行环境的主动动态监测称为三阶段三通路安全可信平台架构防护方案, 简称三阶三路架构 (图1) .
新一代中国自主主动防御可信平台控制模块 (trusted platform control module, TPCM) [5]以三阶三路架构为理论基础, 对计算机系统平台整个运行过程进行保护, 是具备自主防御能力及安全可信服务的广义计算机全生命周期闭环主动防御系统模块.
根据三阶三路理论设计的芯片模块TPCM, 能够以低安装成本和硬件成本的方式建立并实时监测可信平台运行状况, 防止底层启动代码芯片存储代码的恶意篡改.为系统提供从第一条指令开始建立可信链, 在系统启动过程中防止使用经篡改的硬件来构建可信运行环境, 并且能在系统运行中动态地保护可信的安全运行环境.
1.2 架构设计
1.2.1 启动代码的主控度量及控制
TPCM首先上电, 主导计算机电源控制系统, 度量确认启动代码的可信性和完整性.如果发现BMC代码、启动代码等底层固件被篡改替换, 则启动安全防范策略, 阻止计算机上电, 或在宽松安全策略下进入非可信运行环境, 或由TPCM重新更新启动代码重构可信环境等.
1.2.2 可信平台的启动保护
当计算机在启动代码可信的前提下启动时, 通过在启动代码中植入的驱动及保护策略对启动环境进行检查确认.其中包括但不限于:CPU特征, 内存特征, 外接设备, 存储设备以及所有设备上所带入的固件程序.在计算机启动的后期, 在保证加载代码及内核的完整可信基础上, 把信任传递给对应的可信软件基 (trusted software base, TSB) 和/或可信操作系统[6].
图1 三阶三路架构Fig.1 Architecture of three phases three channels
1.2.3 计算机动态运行环境的监测
系统软件或核心应用软件在执行过程中, TPCM动态防御模块通过高速总线动态监测内存的数据和代码, 并根据保护测量进行管控.
计算机在与外界建立通讯过程中, 通过设备物理特征和通讯行为对接入设备进行监管, 配合物理通道控制, 实现可信执行环境的实时保护.
1.2.4 端口物理控制
计算机对外的通讯物理通道权限被TPCM命令配置成为用户信息存储于TPCM, 由TPCM完成物理信道的自主隔离控制管理.通过作为可信根的TPCM系统来综合评估可信环境后, 设置用户对物理端口的访问权项.
TPCM的平台环境功能还可被配置为通过将用户绑定的硬件配置信息与所收集的平台信息相比较来判断该用户是否有权访问本计算机平台或者是否有权进入本计算机平台的可信工作模式.通过该功能, 可以可靠地实现用户访问权项管理.
2 系统实现
本文提出的TPCM三阶三路方案并不局限于特定的计算机平台及领域, 可应用于x86、龙芯[7]、飞腾、申威、PowerPC等广义计算机系统的不同领域.以下实现以ATX标准主板[8]的计算机平台为例.
系统模块组成及可信传递如图2所示.系统主要由主动度量模块, 平台度量模块, 动态度量模块和控制模块组成.当计算机接通市电 (220V) 时, 利用ATX电源待机电源首先为TPCM提供电能.通过可信根TPCM确认启动代码可信性.宿主系统在TPCM的控制下开机启动, 通过可信启动代码逐步传递扩展可信链到达TSB, 操作系统.最后通过动态度量模块支撑, 保持宿主系统的安全可信运行状态.
2.1 启动代码度量模块
无需独立电源供电, 本模块借用计算机待机电源为TPCM提供电能上电, 通过控制模块主导计算机电源控制系统, 度量确认启动代码及关键数据的可信性和完整性[9].SPI控制器单元通过SPI总线与闪存连接并仅向闪存供电.SPI控制器单元被配置为在可信平台控制模块上电后, 从闪存读取代码数据, 例如BIOS、BMC等, 生成代码散列值的主控单元模块.散列值的生成可以按照现有技术的方法来进行, 如SM3、SHA256等[10,11].将散列值与参考散列值相比较, 若散列值与参考散列值一致, 则向控制单元发送上电信号.这里代码数据可根据用户防护策略选择为存储在闪存代码中的关键代码, 如用于控制各硬件上电的代码.也可以选择其他关键数据、配置信息等, 如涉及系统安全性的代码或名单数据等.
图2 模块组成及平台可信传递过程Fig.2 Module constituent and trust transition
2.2 平台度量模块
在确保启动代码的可信性和完整性基础上, 通过启动代码中植入的驱动及保护策略对启动环境进行检查确认[12].若检测到可信环境遭受破坏或设备固件代码被恶意篡改, 则根据预先写在TPCM内部的安全策略进入非可信工作模式或阻止计算机继续启动等.
SPI控制器单元通过SPI总线与计算机连接交换数据信息.SPI控制器单元的内容被配置为在可信平台控制模块上电后, 从计算机获得设备物理特征信息及代码信息, 如CPU、内存、硬盘、USB设备、网卡、显卡等等, 生成散列值.将散列值与参考散列值相比较, 在散列值与参考散列值一致的情况下, 保持时序单元控制信号处于接通状态.这里设备及代码数据可根据用户防护策略进行分级度量防护.
2.3 动态度量模块
动态内存监测:TPCM动态内存模块通过总线时序控制对系统内存数据内容进行主动直接读取, 而不经过系统CPU转送.这样可以防止经由CPU对内存的转存, 造成发送过程中的作弊, 伪造风险.同时, 大大降低了系统资源的消耗特别是CPU资源的占用.动态内存监测过程基本上和CPU执行无关, 完全是一个自主防御行为.系统CPU仅仅需要向TPCM下发安全策略指令所需的少量数据.
动态设备监测:TPCM利用已经过前阶段信任检验及实时保护的可信操作系统内核或可信软件基程序收集计算机的设备物理特征实时进行动态监测.有任何超出预期的异常行为, TPCM将根据保护策略进行上报, 甚至切断其物理接口, 实时保护系统的可信执行环境.
2.4 控制模块
控制单元与计算机电源模块连接, 由电源模块向时序控制单元提供待机电压作为可信平台控制模块的工作电压.主动度量完成并确认无异常后, 指示电源模块对计算机主板电源上电.计算机在启动和运行过程中, 控制单元时刻监视计算机的可信执行环境, 一旦遭受破坏, 确认宿主系统的失控情况, 根据管理策略通过电源模块对计算机主板电源进行控制.
通过主板端口控制系统配合, TPCM根据预设信息进行用户设备使用权限部署, 不同用户给予不同的设备访问权限.此外, 对于重要的通信部件, TPCM根据策略进行流量监视和物理信道的控制.在TSB判断机制系统的协助下, 当TPCM确认通信或流量异常的情况下, 将根据预先设定的策略进行信道干预.极端情况下, 切断其物理信道或关闭通信设备电源.
3 测试
3.1 测试设备
表1 测试设备Table 1 Equipment
图3 测试平台Fig.3 Test platform
3.2 测试过程与结果
TPCM芯片连接板插入主板PCIE插槽, TPCM通过控制线控制主电源对主板是否供电.显示器通过插线与主板连接, 主板上连接有硬盘、鼠标、键盘等电脑外设.TPCM SPI总线连接主板SPI信号, 进行BIOS的读取.
从接入城市电网220V AC电源开始监测记录过程.
首先, 录入可信整机信息.电源的待机电源为可信平台控制模块芯片提供工作电源.可信平台控制模块自检通过后, 主动读取启动代码并确认可信性和完整性.启动代码检验通过后, 控制计算机主板上电.由前阶段确认包含植入了可信模块驱动代码及管理策略的可信BIOS录入可信平台的设备及操作系统加载代码摘要信息并保存于可信平台控制模块中.
其次, 计算机正常开机使用测试.重复上述开机过程, 保持整机启动运行环境不变, 正常开机进入操作系统.
接下来进行模拟恶意替换设备或篡改设备固件实验.在计算机启动前人为地替换相同型号的不同设备, 如CPU、内存、硬盘、USB、网络设备等.另外, 对操作系统加载代码进行篡改.可信平台控制模块在计算机启动过程中立刻捕捉到周边设备及加载代码的变化, 阻止计算机启动并及时关闭计算机.
计算机在安全可信的环境运行时, 进行模拟攻击内存实验.利用开发好的TPCM配置工具下发内存区域保护指令, 并提供防护策略.TPCM接到指令后, 激活内存防护模块, 使之处于监控状态.此时, 使用黑客软件入侵该内存区域数据.防护模块迅速发现异常并根据策略报告TSB、后台系统或者根据行为判断系统进行内存干预控制, 甚至对计算机电源实施控制 (图4) .
此外, 还对可信设备进行实时替换或添减实验.当可信设备发生改变时, 动态防御模块很快感知系统平台的变化, 并根据策略做出对应的控制.比如当一个未知USB设备接入平台时, TPCM则迅速关闭该设备端口, 禁止其连接系统.
采用以上测试在多个主流芯片组平台上经过多天的压力测试, 均达到防护目的.当运行环境正常可信时, 丝毫不影响原主板系统的启动运行机理和状态, 计算机系统工作正常稳定.
图4 动态内存监控Fig.4 Memory monitor dynamically
4 结论
TPCM主动防御可信技术是主动免疫可信系统的基石.主动免疫是我国可信计算革命性创新的集中体现.在双系统体系框架下, 采用自主创新的非对称结合的密码体制, 作为免疫基因[13];通过主动度量自主控制TPCM芯片植入可信源根, 在可信密码模块 (trusted cryptography module, TCM) 基础上加以可信根控制功能, 实现密码与控制相结合, 将可信平台控制模块设计为可信计算控制节点, 实现了TPCM对整个平台的主动控制;在可信平台主板中增加了可信度量节点, 实现了计算和可信双节点融合;实现软件基础层宿主操作系统和TSB的双重系统核心, 通过在操作系统核心层并接一个可信的控制软件接管系统调用, 在不改变应用软件的前提下实施主动防御, 可扩展应用于可信服务器, 物联网, 个人电脑防护, 移动终端保护, 工业终端, 工业PC等计算机应用领域.
最后需要指出的是, 可信平台控制模块主动防御可信技术是完全自主创新的安全可信底层基础防护技术.设计和实现需要不断地在实践中优化改进, 最终形成稳定完善的安全可信解决方案.
参考文献
[1] TRUSTED COMPUTING GROUP.TPM Main Specification[EB/OL].[2011-03-01].http://www.trustedcomputinggroup.org/tpm-main-specification/.
[2] TRUSTED COMPUTING GROUP.PC Client Platform TPM Profile (PTP) Specification[EB/OL].[2015-01-01].http://www.trustedcomputinggroup.org/pc-client-platform-tpm-profile-ptp-specification.
[3] 张兴, 沈昌祥.一种新的可信平台控制模块设计方案[J].武汉大学学报 (信息科学版) , 2008, 33 (10) :1011-1014.DOI:10.13203/j.whugis2008.10.007.ZHANG X, SHEN C X.A novel design of trusted platform control module[J].Geomatics and Information Science of Wuhan University, 2008, 33 (10) :1011-1014.DOI:10.13203/j.whugis2008.10.007 (Ch) .
[4] 郭颖, 毛军捷, 张翀斌, 等.基于可信平台控制模块的主动度量方法[J].清华大学学报 (自然科学版) , 2012, 52 (10) :1465-1473.GUO Y, MAO J J, ZHANG C B, et al.Active measures base on a trusted platform control module[J].Journal of Tsinghua University (Sci and Tech) , 2012, 52 (10) :1465-1473 (Ch) .
[5] 黄坚会, 喻剑, 赵保华, 等.可信平台控制模块规范[R].北京:中关村可信计算产业联盟, 2016.HUANG J H, YU J, ZHAO B H, et al.Trusted Platform Control Module Specification[R].Beijing:Zhongguancun Trusted Computing Industry Alliance, 2016 (Ch) .
[6] SHI W C.On design of a trusted software base with support of TPCM[C].Trusted Systems (LNCS6163) .Berlin:Springer, 2010:1-15.
[7] 中国科学院计算技术研究所.龙芯3A处理器数据手册[R].北京:北京龙芯中科技术服务中心有限公司, 2009.Institute of Computing Technology, Chinese Academy of Sciences.Godson-3A Processor Data Book[R].Beijing:Beijing Godson Zhongke Technology Service Center Co., Ltd (Ch) .
[8] 韩佶洋.主板常用芯片及电路维修手册[M].北京:清华大学出版社, 2008.HAN J Y.Motherboard Common Chip and Circuit Maintenance Manual[M].Beijing:Tsinghua University Press, 2008 (Ch) .
[9] 黄坚会, 石文昌.基于ATX主板的TPCM主动度量及电源控制设计[J].信息网络安全, 2016 (11) :1-5.DOI:10.3969/j.issn.1671-1122.2016.11.001.HUANG J H, SHI W C.The TPCM active measurement and power control design for ATX motherboard[J].Netinfo Security, 2016 (11) :1-5.DOI:10.3969/j.issn.1671-1122.2016.11.001 (Ch) .
[10] 国家密码管理局.SM3密码杂凑算法:GM/T 0004-2012[S].北京:中国标准出版社, 2012.National Password Administration.Information Security Techniques-SM3 Cryptographic Hash Algorithm:GM/T0004-2012[S].Beijing:China Standard Press, 2012 (Ch) .
[11] 国家密码管理局.可信计算密码支撑平台功能与接口规范:GB/T29829[S].北京:标准出版社, 2013.National Password Administration.Information Security Techniques-Functionality and Interface Specification of Cryptographic Support Platform for Trusted Computing:GB/T29829-2013[S].Beijing:China Standard Press, 2013 (Ch) .
[12] 黄坚会.TPCM平台度量及控制设计[J].信息安全研究, 2017 (4) :310-315HUANG J H.The TPCM platform measurement and control design[J].Journal of Information Security Research, 2017 (4) :310-315 (Ch) .
[13] 沈昌祥.用可信计算3.0筑牢网络安全防线[J].信息安全研究, 2017 (4) :290-298.SHEN C X.Building cyber security defense by trusted computing 3.0[J].Journal of Information Security Research, 2017 (4) :290-298 (Ch) .
编辑:罗添 校对:唐菁莲 预审:施羽晗 终审:聂竹明