具有可信计算架构的安全操作系统实现方法

2015-11-02 05:57刘智臣
计算机工程 2015年9期
关键词:私钥公钥非对称

刘智臣

(长沙湘计海盾科技有限公司嵌入式产品研发部,长沙410100)

具有可信计算架构的安全操作系统实现方法

刘智臣

(长沙湘计海盾科技有限公司嵌入式产品研发部,长沙410100)

为解决嵌入式系统设备的安全性问题,在操作系统内核一级建立信息安全体系,提出一种安全可信操作系统的实现方法。在Linux基础上实现非对称加密认证、地址隐藏、安全存储、进程可信认证等关键技术,从而构造出可信计算架构,使得操作系统内核可从行为安全方面对系统驱动、应用程序等进程提供可信认证,阻止认证失败的进程在系统上运行。实验结果证明了可信计算架构的正确性,并能实现对嵌入式系统设备的安全保护。

可信计算;非对称加密认证;地址隐藏;安全存储;可信认证

1 概述

自从棱镜门事件后,信息系统或终端的安全性受到广泛关注,如何让系统或终端具有较高的安全性,已成为从事有安全要求的应用领域的设计师们优先考虑的问题。对大部分智能化系统或终端而言,需要一套软件系统,而其核心便是操作系统,因此,如果确保了操作系统及其上运行的应用程序的安全性,那么将有力保障系统或终端的安全。直到今日还没有较好的国产操作系统可供选择,即便它能可靠稳定地运行,但在安全性方面仍存在不足,这就使得很多场合只能采用国外操作系统,从而带来了潜在的安全漏洞或隐患,而其上运行的应用程序安全性更无从保证。为实现具有安全特性的操作系统,本文将可信计算理论引入到操作系统中,提出一种具有可信计算架构的安全操作系统实现方法。

2 研究背景

为保护操作系统及其应用程序的关键数据不受恶意程序的破坏,出现了杀毒软件、数据加密等技术,虽然这些技术能够在一定程度上对操作系统进行保护,但它们是建立在操作系统之上的应用程序,其本身不属于操作系统内核的组成部分,因此,安全保护作用具有一定局限性,而且这些程序本身是否安全也有待考证。在棱镜门事件之后,许多著名的应用软件、操作系统都可能存在后门,因此,操作系统本身是否安全,以及其上运行的应用程序是否安全等问题已成为迫在眉睫要解决的问题。

保证系统的安全特性有很多种方法,至今公认比较可行的办法是采用基于可信赖平台模块(Trusted Platform M odule,TPM)[1-2]的可信计算体系结构,该体系结构从硬件系统着手,然后一直向上延伸到软件系统,从而建立信息安全体系[3],但基于TPM模块的可信计算体系结构[4]依赖于对TPM硬件模块的构造,并根据TPM的特性在其上建立软件系统[5],因此,这种建立在特定硬件系统下的安全体系虽然安全性较高、性能较强,但是开发难度较大,技术壁垒较多,不利于推广和自主研发。为了避免对硬件系统的较大依赖,可从软件系统如操作系统内核着手,建立可信计算体系,因此,安全可信操作系统就是根据这一思路进行研制的,其具有可信计算理论特征,也是可信计算架构的一种实例化。

安全可信操作系统是在传统意义的Linux基础上,创造性加入可信计算理论[6],从操作系统(Operating System,OS)一级建立信息安全体系。该操作系统可从行为安全方面对系统驱动、应用软件等进程提供可信认证[7-8]。该OS的优势在于安全性高,且便于开发和技术推广,对硬件系统没有特殊依赖,但不足之处在于对私钥存放的器件有安全性要求,且硬件资源对OS的执行性能有影响[9]。

3 解决方案及其实现

3.1 硬件系统架构

安全可信操作系统的实现方法可以不依赖于硬件体系结构,但考虑到非对称加密认证的私钥存放的安全性问题,建议在硬件系统中采用一块加密芯片,并利用地址隐藏技术对关键数据进行安全存储。图1是硬件系统架构。

图1 硬件系统架构

Nor Flash可作为启动设备;Nand Flash可以存放数据,并作为地址隐藏技术的载体;加密芯片能提供2 048 Byte的私钥,并支持非对称(密钥)加密算法(RSA)[10],可以是异步收发传输器(Universal Asynchronous Receiver/Transm itter,UART)接口,也可以是USB接口[11]等。

3.2 安全可信操作系统架构

安全可信OS内核加入了安全可信认证机制,从而实现了可信计算的OS体系结构,创造性建立了安全可信的OS系统[12]。目前,国内至今尚无基于可信计算体系结构的安全可信操作系统,而在国外,微软、苹果等公司在相应的桌面OS中曾提出过可信OS,但一直未公开实现方法。

安全可信操作系统的软件系统架构如图2所示,其中,双箭头线表示双向数据交互;单箭头线表示单向数据交互。

图2 安全可信操作系统软件架构

安全可信认证机制由OS内核中的进程管理模块和认证管理模块协作完成。进程管理模块要求应用程序进行认证,并根据认证结果对应用程序进行相应处理。当应用程序提交认证请求时,进程管理模块将调度认证管理模块进行认证,认证管理模块会根据非对称加密算法进行认证,并将认证结果返回给进程管理模块。非对称加密认证算法中的私钥由加密芯片中获取,公钥由应用程序提交。

在Linux内核中实现可信计算架构,需完成以下工作:

(1)实现地址隐藏,对加密芯片的私钥给以安全存储;

(2)实现非对称加密认证算法,提供对进程的公钥认证;

(3)实现进行的可信认证过程。

3.2.1 地址隐藏及安全存储

安全可信OS具备地址隐藏及安全存储技术,主要是对加密芯片的私钥,及其涉及私钥的操作进行存储和保护。通过Linux的Boot Loader启动程序对存储器的物理地址空间进行分配,可分为被隐藏的地址段和不受限制的地址段,隐藏地址段又可称为受限制的地址段。在Boot Loader启动程序中,通过配置处理器的寄存器以及地址映射关系,使得Linux操作系统在建立内存管理单元(Memory Management Unit,MMU)管理时,只在不受限制的地址段上进行,而被隐藏的地址段不参与MMU建立。在Linux系统启动后,MMU只能管理不受限制的物理地址段。而被隐藏地址段对MMU不可见,经过以上处理后,除指定驱动程序外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址段。指定驱动程序不通过MMU的地址映射而是采用物理地址(实地址)对该被隐藏的地址段进行操作。

由于隐藏地址段对操作系统和应用程序不可见,只接受指定的驱动程序访问,此时该隐藏地址段中保存的数据或信息也受到了保护,增加了系统的安全特性,实现原理如图3所示。

图3 地址隐藏及安全存储实现

3.2.2 非对称加密认证

安全可信OS具备非对称加密认证机制,主要是使用加密芯片的私钥,对进程的公钥进行RSA认证。可在硬件系统中设置一个用于生成私钥的加密芯片,并在存储器中开辟一块特定存储区域用于存储与加密和解密相关的数据,该存储区域需隐藏,增加安全性。

当操作系统收到应用程序或进程传来的公钥时,激活认证程序以完成认证。认证过程包括:

(1)通过加密芯片的驱动程序从加密芯片中读出私钥;

(2)将私钥保存到所述的特定存储区域;

(3)使用RSA算法解密,完成认证,并将认证结果返回。

特定存储区域只由认证程序使用,在解密过程中,私钥及与私钥相关的数据均存储在该特定存储区域内,而不使用系统临时内存进行存储,解密完成后对特定存储区域进行清空。应使用加密芯片的驱动程序完成对加密芯片的接口驱动以及芯片内部寄存器的读写。

认证程序应作为内核态程序运行在Linux操作系统中,受操作系统进程调度,其他内核程序或进程不能调用该程序。当操作系统启动后,认证程序就开始运行,并一直处于等待状态。当操作系统收到公钥后,会激活该认证程序运行,实现原理如图4所示。

图4 非对称加密认证实现

3.2.3 进程可信认证

安全可信OS具备对其上运行的进程或应用程序提供认证的能力,从而保证进程的安全可信。携带公钥的进程(PP)由进程管理模块(PM)启动运行,并提交公钥给操作系统进程管理模块,此后携带公钥的进程进入等待状态。在PM收到公钥后,将公钥提交给认证模块(CA),从而激活CA运行。在CA获得公钥后,从指定位置提取私钥,并使用指定算法进行认证,然后将认证结果返回给PM。如果认证通过,PM允许携带公钥的进程(PP)继续运行,如果认证不通过,PM禁止携带公钥的进程(PP)运行。在这个机制中,CA对PP不可见,只由PM调度。PM以管道或消息队列方式将公钥提交给CA。由硬件系统的私钥生成器提供私钥,认证算法为支持2 048 Byte密钥的RSA非对称加密算法,秘钥长度可根据实际运行情况选择。

在Linux内核中,实现进程的可信认证机制,需要完成以下工作:

(1)优化进程管理模块(PM)。Linux本身具有进程管理调度功能,但基本没有对进程进行认证的能力,因此,需要在PM创建进程之前增加认证过程。

(2)增加认证模块(CA)。此模块新增到OS内核中,用来对进程进行认证。CA只由PM调度,通过消息队列或管道与PM交互信息,对其他进程不可见。

(3)进程携带公钥的方式,由发起方实现。OS中的PM只对公钥进行收集,并提交给CA进行认证,并依据认证结果决定是否创建进程。

整个进程认证过程的原理实现如图5所示。

图5 进程可信认证过程

4 时间性能分析

为了测试本文安全可信OS的执行性能,搭建测试环境如下:

(1)处理器采用PowerPC P2041(四核)处理器,存储器采用S29GL01GP(Nor Flash)和MT29F4G08(Nand Flash),内存采用MT41J256M 16HA(DDR3),另外处理器集成USB,I2C和UART接口。

(2)选用具有UART,I2C或USB任一接口的加密芯片,该加密芯片需能提供2 048 Byte的私钥,因此,加密芯片采用TF32A 09器件。

(3)取用Linux2.6内核操作系统,以及相对应的UBOOT启动程序。在该内核代码中修改进程管理程序,增加认证程序和加密芯片驱动程序。修改UBOOT的地址映射关系,建立隐藏地址段。

4.1 系统启动的执行时间

在通用Linux OS和安全可信OS的启动过程中,用定时器做一个启动时间测试函数,用来检测2个OS的启动时间,并且精简一些启动打印信息,加快启动速度,通过对比获得2个OS的启动时间的差异,测试次数为50次,取平均值,单位为m s。测试得到的数据为:通用Linux OS的启动时间为10 000± 0.1 ms,安全可信OS的启动时间为10 010±0.1 ms。由测得的数据分析可知,增加可信计算架构的安全可信OS比通用Linux OS多花费10 m s的启动时间,多出的时间主要是用来启动或建立认证程序。测试时间偏差在±10%之间。

4.2 进程可信认证的执行时间

在安全可信OS中,生成一些进程用来测试可信认证的执行情况。这些进程将携带公钥,并请求OS中的认证程序进行可信认证。测试进程数从1个到20个再到40个,开启和关闭P2041的多核模式,使用定时器计数认证执行时间,取平均时间,然后将这些数据进行对比,结果如表1所示。

表1 进程可信认证的执行时间μs

考虑到程序的优化以及测试环境的差异可能会导致数据的不同,因此,该表给出了偏差范围力求准确。由表1可知,在多核状态下进程认证程序的综合执行时间要少些,进程个数增加会增加进程认证的综合执行时间。

5 结束语

为解决目前信息系统的安全性问题,本文从信息系统的核心部件操作系统内核着手,提出一种安全可信操作系统的实现方法。在传统Linux的基础上,实现了地址隐藏和安全存储、非对称加密认证算法和进程可信认证机制,从而构建出具有可信计算结构特征的操作系统。其中,地址隐藏和安全存储技术用来解决系统对私钥安全存储及其他操作的问题;非对称加密认证技术用来解决系统安全认证秘钥的问题;进程可信认证技术用来解决系统安全运行及身份认证问题。这些技术使其能从行为安全方面对系统驱动、应用软件等进程提供可信认证,因此,能够保证整个信息系统的安全。测试结果证明了其有效性。今后将继续优化安全可信操作系统的内核,降低时间开销,进一步提高执行性能。

[1] 肖 敬,喻 超,毋国庆.一种基于嵌入式安全系统的可信计算机系统[J].计算机工程,2006,32(13):246-247,279.

[2] 王 博,李 波,高振铁.基于TPM的嵌入式可信计算平台设计[J].单片机与嵌入式系统应用,2011,11(1):13-15.

[3] Potter B.High Time for Trusted Computing[J].Security &Privacy,2009,7(6):54-56.

[4] Goh W,Yeo C K.Teaching an Old TPM New Tricks:Repurposing for Identity-based Signatures[J].Security &Privacy,2013,11(5):28-35.

[5] 刘海雷,王震宇,马鸣锦,等.嵌入式可信终端TPM接口的研究与实现[J].计算机工程与设计,2008,29(13):3316-3319.

[6] David C,Ryan C.可信计算[M].赵 波,译.北京:机械工业出版社,2009.

[7] Rahm atian M,Kooti H,Harris I G,et al.Hardware assisted Detection of Malicious Software in Em bedded System s[J].Em bedded System s Letters,2012,4(4):94-97.

[8] Schaumont P,Raghunathan A.Guest Editors' Introduction:Security and Trust in Embedded-systems Design[J]. Design&Test of Computers,2007,24(6):518-520.

[9] Zhang Huanguo,M u Yi.Trusted Computing and Information Security[J].Communications,2013,10(11).

[10] Oliveira D P R,Andreia F M L,Delisandra F V,et a1. Energy Consumption Analysis of the Cryptographic Key Generation Process of RSA and ECC Algorithm s in Embedded Systems[J].Latin America Transactions,2014,12(6):1141-1148.

[11] Herzog J.Applying Protocol Analysis to Security Device Interfaces[J].Security&Privacy,2006,4(4):84-87.

[12] 徐明迪,杨连嘉.嵌入式实时操作系统可信计算技术研究[J].计算机工程,2014,40(1):130-133.

编辑 刘 冰

Secure Operating System Realization Method with Trusted Computing Architecture

LIU Zhichen
(Em bedded Product Development Department,Changsha Xiangji-Haidun Technology Co.,Ltd.,Changsha 410100,China)

To solve the security problem of the embedded system equipment,this paper establishes information security system at the operating system kernel level,and proposes the implementation of a secure operating system.The key technology of the trusted computing architecture about asymmetric encryption and authentication,address hidden and safety storage,trusted authentication for process is realized and joined to the original Linux Operating System(OS),and the secure OS with the trusted computing architecture is formed.The secure OS can provide the behavior of certification for the process to ensure that the whole information system security.Experimental result proves that the correctness and applicability of trusted computing architecture,and the architecture can provide the security of the embedded system equipment.

trusted computing;asymmetric encryption authentication;address hidden;safety storage;trusted authentication

10.3969/j.issn.1000-3428.2015.09.030

刘智臣.具有可信计算架构的安全操作系统实现方法[J].计算机工程,2015,41(9):164-167.

英文引用格式:Liu Zhichen.Secure Operating System Realization Method with Trusted Computing Architecture[J]. Computer Engineering,2015,41(9):164-167.

1000-3428(2015)09-0164-04

A

TP316

刘智臣(1980-),男,工程师、硕士,主研方向:信息隐藏,身份认证。

2014-09-22

2014-10-23 E-m ail:liu_zhichen@163.com

猜你喜欢
私钥公钥非对称
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
一种基于混沌的公钥加密方案
非对称Orlicz差体
一种基于虚拟私钥的OpenSSL与CSP交互方案
HES:一种更小公钥的同态加密算法
点数不超过20的旗传递非对称2-设计
SM2椭圆曲线公钥密码算法综述
非对称负载下矩阵变换器改进型PI重复控制