可信计算技术在操作系统发展中的应用综述
2018-02-07刘莉孟杰徐宁
刘 莉 孟 杰 徐 宁
(中标软件有限公司 上海 200030)(上海基础软件工程技术研究中心 上海 200030)(li.liu@cs2c.com.cn)
操作系统是对计算机软件硬件资源(包括对处理器、存储器、外设、文件和作业等)实施管理的系统软件,是连接计算机硬件与上层软件及用户的桥梁,其安全性至关重要.伴随互联网高度普及,针对操作系统的攻击和威胁,如篡改资源配置、恶意程序被植入执行、利用缓冲区(栈)溢出攻击、非法接管系统管理员权限等,呈现多样化、复杂化趋势.
图1 不带特权虚拟机的虚拟化可信平台
在此背景下,以保证系统资源机密性、完整性和可用性[1]为设计目标的安全操作系统应运而生并快速发展.但其仍有较大提升空间,主要表现在:1)用户体验方面.安全操作系统的使用和安全策略的配置缺乏灵活性和兼容性,影响易用性;由于采用大量安全技术,导致系统的性能和效率有所下降.2)安全技术方面.通过软件方式实现的安全内核越来越复杂和庞大,使得保证安全内核自身正确性和完整性的难度不断增加;恶意攻击手段的升级,对操作系统自身文件、数据和配置信息造成威胁,使得保持操作系统的完整性面临挑战;操作系统运行状态的动态性和安全策略的静态性之间的矛盾,使得安全策略需要匹配更强适应系统环境变化的能力等[2-3].这些问题制约了安全操作系统的发展.
近年,可信计算作为新一代安全技术的重要组成,逐步融入安全操作系统发展,为实现操作系统自身的完整性、主体行为和客体数据的完整性以及优化安全与性能之间的平衡提供有效途径,也成为解决现实网络安全威胁和支撑国产操作系统长远发展的战略举措[4-5].
1 可信计算的应用现状及发展趋势
可信计算是通过保持计算环境及计算逻辑的完整性,为计算平台提供对恶意代码、非法操作的自主免疫能力.该技术已经在虚拟化、云计算、工业控制等领域应用,并与嵌入式设备、物联网及云端等技术方向加速融合.
1.1 可信计算技术的典型应用
基于可信计算技术的应用有很多,如通过与基于虚拟化的平台进行融合,保障虚拟化平台的可信性;将可信从虚拟化扩大至云平台,对云计算环境的主机、虚拟机进行可信度量,以及对虚拟机内部数据的安全进行管理,保障用户能够使用到合法的虚拟机及数据流向安全;基于可信网络连接和远程证明等技术,实现工业控制系统等国家关键基础设施的安全网络数据传送及平台身份证明[6-7].
1) 虚拟化可信平台
虚拟化可信平台是基于虚拟安全隔离技术、通过与可信计算技术有机结合实现的系统平台,使得每个虚拟机(virtual machine, VM)对应一个虚拟可信平台模块(trusted platform module, TPM),保证在虚拟TPM平台之间共享物理TPM平台资源的同时,实现虚拟TPM之间的特性.
虚拟化可信平台的架构分2种[8]:不带特权虚拟机的平台和带特权虚拟机的平台.
① 不带特权虚拟机的平台
如图1所示,不带特权虚拟机的平台是通过在物理平台和虚拟机间增加1个或多个抽象层来实现虚拟化,以与传统的非虚拟化架构实现简单的兼容.
② 带特权虚拟机的平台架构
如图2所示,带特权虚拟机的平台架构是使用特权虚拟机来代替虚拟机监视器进行更复杂或者更危险的操作,以使核心的虚拟机监视器更简单和安全.
2) 可信云
可信云是利用可信计算技术解决云计算安全的有效方案,其应用主要集中在4个方面:
① 基于可信计算技术,对云计算环境的主机、虚拟机进行可信度量,对虚拟机内部数据的安全和虚拟机创建、迁移进行管理,保障用户能够使用到合法的虚拟机及数据流向安全;
② 应用可信计算的密钥管理技术,对云计算环境的密钥统一高强度管理,防止被盗;
③ 针对云平台用户终端的可信识别问题,基于远程身份证明技术(openattestation, OAT),研究云节点身份证明技术,建立统一、集中的验证系统,为网络中的计算机终端提供可信的身份验证;
④ 针对虚拟机迁移问题,研究基于可信度量的虚拟机迁移技术,保证云平台的安全和可信等.
图2 带特权虚拟机的虚拟化可信平台
如图3所示,在可信云计算环境下,由基础设施可信根出发,首先度量基础设施、基础计算平台软硬件的可信性;然后由基础计算平台创建虚拟计算环境,并度量虚拟计算资源的可信性;最后支持虚拟环境下应用服务的可信性,并通过可信云管理平台进行管理.
图3 可信计算在云计算环境下的应用
可信云将主要实现以下功能:
① VM的安全防护.虚拟机监视器(virtual machine monitor, VMM)层对不同VM进行动态和静态度量,并为每个VM提供虚拟的TPM;利用可信计算对云计算平台中的数据进行保护;对云计算节点和VM的运行平台进行平台身份证明,保证云计算节点和VM的可信性.
② 可信资源管理.形成通用云管理模块,对云计算节点的物理可信芯片和为VM提供的虚拟化可信芯片提供的可信资源进行管理.
③ VM可信创建和迁移.在对VM进行操作时进行可信的验证和管理,指定VM在可信的节点上创建或者只在可信的计算节点上进行迁移.
④ 度量和安全策略管理.对云计算节点系统以及对VM的安全和度量策略进行管理.
⑤ 网络管理.依据VM的可信状态对VM之间的网络进行管理,为处于不同可信状态的VM分配相应的虚拟网络资源.
3) 工控领域的可信解决方案
如图4所示,以系统内主机为重点分层构建可信计算体系,并建立可信的网络连接机制.具体来说,将系统内的不同区域进行安全等级划分,实现分层次网络访问;将不同终端进行可信等级划分,实现不同终端的访问权限控制;加入纵向加密认证和横向隔离访问控制机制,实现了网络接入控制;通过可信网络连接机制,可在不安装病毒软件的情况下,从源头杜绝安全事件的发生,保障系统环境的安全,解决系统主机终端的防病毒问题.同时,软硬件投入少于传统的安全加固手段,节约了成本.
图4 可信计算技术在工控系统环境的应用
1.2 可信计算技术发展趋势
1) 可信计算技术在嵌入式设备的应用
嵌入式技术的发展极大地丰富了终端设备接入网络的方式,如GPRSCDMA,WLA,Bluetoot,HomeRF等无线接入技术为获取信息提供便利,同时也对嵌入式设备的安全性提出更高要求.
目前,国际上,可信计算组织(Trusted Computing Group, TCG)已成立如移动电话和PDA等专门的小组来制定嵌入式设备相关的可信标准规范[9];Atmel推出嵌入式TPM;Infineon也致力于嵌入式可信计算平台的研究,并推出可移动的TPM;此外,Escrypt公司积极倡导嵌入式系统的安全性,针对汽车所面临的危险,如遭遇盗窃、车主自身的误操作、下载软件的安全性等,提出面向汽车领域的可信计算技术[10].在国内,高可靠性嵌入式可信芯片、嵌入式实时操作系统的可信软件基体系等方面也取得了部分研究成果[11-15].
2) 可信计算技术在物联网的应用
物联网在接入互联网时将面临众多安全威胁,可信计算技术可确保系统参与者返回的结果的真实性,为保障物联网的信息安全提供有效途径[16].如用于身份认证的生物鉴别设备可使用可信计算技术,确保没有间谍软件安装在电脑或小型计算设备上,防止敏感的生物识别信息被窃取,这对于物联网中的传感器或RFID标签的安全防控尤其重要.此外,对于有人类参与而非完全自动通过传感器和RFID标签采集数据的场景,特别是大型科学实验类的物联网应用,可信计算技术的支持更具有重要意义.
3) 可信计算技术在云端的应用
可信计算技术已在国外公有云以及金融行业等有高安全要求的云计算系统中得到广泛应用,但在国内还处于起步阶段.业内著名IT公司和高校研究力量,如中标软件有限公司(操作系统厂商)、国民技术(芯片厂商)、百敖软件有限公司(BIOS厂商)、英特尔(半导体芯片制造商)以及武汉大学等,联合推动并实现了在TPM2.0标准版本上,中国商用密码标准算法SM2,SM3,SM4在云计算中的实际应用.
2 可信操作系统体系架构和关键技术
2.1 可信操作系统概念及体系架构
可信操作系统是可信计算技术在操作系统产品中应用的成果,它以硬件或固件可信模块为基础,通过保证操作系统自身的完整性、主体行为,以预期的方式和意图发生以及客体的数据完整、保密、可靠,同时支持多种安全策略来适应计算机运行环境变化,最终实现具有主动防御能力的操作平台.
通常,可信操作系统的功能包括:可信引导、可信验证、可信存储和可信管理等,体系架构如图5所示:
图5 可信操作系统的体系架构
2.2 可信操作系统关键技术
1) 系统可信启动
引导过程是实现可信计算平台的基点,基于硬件安全模块,例如TPMTCM或TPCM的可信引导,保证从BIOS、引导程序到操作系统内核,每一个步骤中引导实体的完整性,建立1条从平台加电到操作系统安全启动的可信链.即在系统的初始化开始就对要获得控制权的代码进行可信验证,这样就能保证启动后的操作系统是处于安全可信的状态.
2) 可信引导
Intel可信执行技术(trusted execution technology,TXT)通过硬件内核和子系统来控制被访问的计算机资源.诸如病毒、恶意代码、间谍软件和其他安全威胁将不会对计算机软硬件资源构成影响.可信引导(trusted boot, Tboot)利用TXT技术和TPM对系统内核或者VMM执行度量和认证.Tboot主要包含6个功能:度量启动、度量环境的清除、数据重置保护、TXT内存范围的保护、TXT启动控制策略工具和认证启动,可充分保证系统启动环境的可信.通过TXT,可实现操作系统在运行时,对系统配置和应用软件的多次度量.
3) 可信内核
可信内核是指在原来安全内核基础上增加了可信度量模块(CS2C trust measure module, CTMM),可扫描和度量系统内的所有文件,包括可执行文件、普通文件、模块ko文件、动态链接库文件等.CTMM在initrd中加载白名单策略,其中initrd将在grub阶段被度量,保证此策略在加载之前不会被篡改.系统运行过程中将可对所有访问到的普通文件进行可信度量.如果度量失败,文件的访问或者执行将被拒绝.
一般地,可执行文件在运行前都会进行动态度量,主要包括2个部分:
① 当启动和装载可执行程序时,在内核将可执行文件装载到进程中后,CTMM模块会度量进程的数据段和地址段内容,并存储度量值,用于和该程序下次运行时的度量值进行比较.
② 当内核在进程调度时,CTMM模块会对进程的数据段和地址段进行度量,以确保运行时的度量值与装载时的预期值是相同的.如果不同,CTMM将会终止进程的运行.
4) 可信身份认证
针对传统安全操作系统身份认证机制的问题,基于硬件可信芯片TPM,TCM或TPCM的身份认证主要利用可信芯片提供的Hash算法功能模块和安全信息存储模块,在登录时对系统特权用户进行认证.同时也支持在用户登录时利用可信芯片和IC卡结合的认证接口对系统用户进行多因子可信身份认证.
5) OAT远程证明
OAT作为远程身份验证的平台,可为网络中的计算机终端提供可信的身份验证,OAT由服务器端和客户端这2部分组成.其中服务器端负责收集客户端的身份验证数据,这些数据主要是从客户端的PCR中采集.服务器端部署有CA证书,每个客户端的身份证书都是基于这个CA证书颁发的.
OAT不仅可以对主机平台的完整性进行验证,还可以对云平台中的虚拟机进行身份验证,保证其可信.
6) 信任链在云平台中的扩展
在实现本机信任链的基础上,为进一步保证云平台中虚拟机的安全性,可将信任链扩展到虚拟机中.信任链的扩展如图6所示:
图6 信任链在云平台中的扩展
首先从信任根开始,将BIOS和GRUB度量后开始执行,然后进入Tboot阶段,执行TXT Launch指令时,根据制定的策略对Tboot本身、虚拟机管理器或内核以及SINIT的模块等进行测量,并把测量值扩展到PCR,为后面对平台运行状态的验证奠定了基础.
其中,Agent机制是为了实现可信链向虚拟机内部传递而设计,主要包括2部分:客户端和服务器端.客户端负责帮助服务器端搜集宿主机和宿主机上虚拟机的状态信息;服务器端则负责信息的汇总、解析和处理.
3 总 结
本文介绍了可信计算技术应用在虚拟化、云计算、工业控制等领域的现状及其融入嵌入式设备、物联网及云端等技术方向的可能,重点阐述了可信操作系统(可信计算技术应用于操作系统发展的产物)概念、体系架构和涉及的关键技术,为增强操作系统自身安全、形成可信软硬一体化解决方案、提升用户体验进行有益探索.
[1]郑显义, 史岗, 孟丹. 系统安全隔离技术研究综述[J]. 计算机学报, 2017, 40(5): 1057-1079
[2]石文昌. 安全操作系统开发方法的研究与实施[D]. 北京: 中国科学院软件研究所, 2001
[3]梁洪亮. 支持多安全政策的安全操作系统的研究和实施[D]. 北京: 中国科学院软件研究所, 2003
[4]沈昌祥. 把握操作系统发展契机[EB/OL]. (2014-07-23) [2017-12-10]. http://theory.people.com.cn/
[5]沈昌祥, 张大伟, 刘吉强, 等. 可信3.0战略: 可信计算的革命性演变[J]. 中国工程科学, 2016, 18(6): 53-57
[6]Trusted Computing Group. TCG trusted network connect TNC architecture for interoperability[EB/OL]. (2012-05-03) [2017-12-10]. http://www.trustedcomputinggroup.org
[7] 谭励, 杨明华, 韩婉娇, 等. 面向工控系统的安全可信技术[J]. 计算机工程与设计, 2017, 38(1): 47-52
[8]Trusted Computing Group. TCG virtualized trusted platform white paper version 1.0[EB/OL]. (2007-10-23) [2017-12-10]. http://www.trustedcomputinggroup.org
[9]Trusted Computing Group. TCG applications[OL]. (2016-07-07) [2017-12-10]. http://www.trustedcomputinggroup.org/developers
[10]Trusted Computing Group. Secure embedded platforms with trusted computing: Automotive and other systems in the Internet of things must be protected[EB/OL]. (2012-06-01) [2017-12-10]. https://trustedcomputinggroup.org/secure-embedded-platforms-trusted-computing-automotive-systems-internet-things-must-protected/
[11]潘秋凡. 嵌入式可信计算平台设计技术[D]. 西安: 西安电子科技大学, 2014
[12]张心. 基于可信计算技术的嵌入式安全保护体系研究[D]. 武汉: 华中科技大学, 2009
[13]李然. 基于TPM的可信嵌入式平台的设计与实现[D]. 哈尔滨: 哈尔滨工业大学, 2012
[14]王博. 基于TPM的嵌入式可信终端的研究与设计[D]. 成都: 电子科技大学, 2011
[15]徐明迪, 杨连嘉. 嵌入式实时操作系统可信技术研究[J]. 计算机工程, 2014, 40(1): 130-133
[16]吴振强, 周彦伟, 马建峰. 物联网安全传输模型[J]. 计算机学报, 2011, 34(8): 1351-1364