掌桥专利:专业的专利平台
掌桥专利
首页

一种基于可信TCM的嵌入式操作系统可信增强系统

文献发布时间:2024-04-18 19:58:53


一种基于可信TCM的嵌入式操作系统可信增强系统

技术领域

本发明属于信息安全技术领域,特别是一种基于可信TCM的嵌入式操作系统可信增强机制。

背景技术

嵌入式系统发展迅速,已经逐渐进入更多领域:军事,教育等,对人们生活的影响力逐渐显现,但其仍然存在的巨大的安全隐患:薄弱的计算能力和处理调度速度。目前对嵌入式设备较为传统的安全防护措施主要是事后响应、人工处理,难以保证设备的安全性和处理准确性。为此,通过实现可信的安全加密模块eTCM(嵌入式设备可信计算模块)作为硬件支持,以此来解决嵌入式平台要面临的一些安全问题。基于国密算法SM3杂凑、SM4分组加密保证涉密信息处理的安全性,同时按照UART串口通信协议完成物理可信基eTCM和嵌入式设备的信息交互。目前比较传统的操作系统安全性保障主要是对启动后的边界处理,如:强密码、外部防火墙、路由器等,对于操作系统内核等的非法篡改不能起到很好的防护,因此,通过采用可信链技术,以实现的eTCM作为物理可信基,对操作系统关键性启动文件进行完整性检测,通过层级验证后启动,能有效地检测到系统是否遭受到篡改,同时eTCM内部实现的涉密与非涉密权限IP核能针对不同权限级别的用户采取不同的安全防护手段,结合虚拟层容器隔离技术,有效保护涉密信息安全性。

发明内容

本发明的目的在于针对目前嵌入式设备存在的计算能力薄弱、处理调度性能低的问题,提供针对嵌入式设备操作系统安全性的基于国密算法TCM的可信链流程检测机制,能够安全、迅速、高效地针对操作系统进行安全性检测,并区分不同用户权限给予相应安全性功能。

实现本发明目的的技术解决方案为:一种基于可信TCM的嵌入式操作系统可信增强系统,所述系统包括基于TCM的处理涉密信息eTCM模块、操作系统文件完整性度量模块和虚拟域管理模块;

所述基于TCM的处理涉密信息eTCM模块,用于基于eTCM进行信息涉密验证加密;

所述操作系统文件完整性度量模块,以eTCM为核心,起点为BIOS引导程序,即X-loader程序作为信任根验证每一级引导文件的完整性,通过完整性检测后再递交CPU控制权;

所述虚拟域管理模块,用于完成虚拟化隔离层以及用户权限分离。

进一步地,所述基于TCM的处理涉密信息eTCM模块包括涉密IP核模块、非涉密IP核模块以及ID处理模块;

所述ID处理模块,用于读取存储传入的操作系统用户ID,以及对比处理用户ID散列值;

所述涉密IP核模块包括:第一RS232串口通信模块,用于实现eTCM与嵌入式设备信息交互;第一ROM-PCR值存储模块,用于存储待检测涉密文件的散列值;国密算法实现可信密码模块,用于加密处理涉密信息;涉密信息通过第一RS232串口通信模块传输至eTCM设备内,eTCM调用国密算法实现可信密码模块对涉密值进行散列处理,传输结果作为输入传输至第一ROM-PCR值存储模块,在第一ROM-PCR值存储模块以进行匹配校验,验证计算所得PCR值和之前存储的PCR值是否一致,处理涉密信息的散列验证;

所述非涉密IP核模块包括第二RS232串口通信模块、第二ROM-PCR值存储模块,用于使得经过ID验证非权限用户进入,给予权限越界警告,以阻止涉密信息加密操作;其中第二RS232串口通信模块,用于实现eTCM与嵌入式设备信息交互;第二ROM-PCR值存储模块,用于存储非涉密文件的散列值。

进一步地,所述虚拟域管理模块包括虚拟TCM模块、docker容器和eTCM接口;所述docker容器用于存储关键性内容检测脚本,包括用户信息、容器环境关键性文件以及应用程序关键性文件;所述eTCM接口用于调用基于TCM的处理涉密信息eTCM模块,为虚拟层使用物理层eTCM调用接口;所述虚拟TCM模块,用于基于openssl标准库实现MD5散列、国密椭圆曲线分组加密算法SM2、杂凑加密算法SM3和分组密码算法SM4,包括:密钥管理模块、密码引擎模块、物理TCM调用接口,所述密钥管理模块用于生成随机的个人私钥;所述密码引擎模块用于对涉密信息进行散列得到PCR值;所述物理TCM调用接口用于使用eTCM的功能模块。

进一步地,所述操作系统文件完整性度量模块包括改造X-loader、U-Boot、Kernel以及配置文件。

进一步地,所述第一RS232串口通信模块、第二RS232串口通信模块通过实现通用异步收发器UART,以实现eTCM与嵌入式设备信息交互。

进一步地,在进行涉密信息加密处理之前,先匹配验证传输涉密信息的ID信息,匹配过程为:

eTCM芯片对用户ID信息进行散列加密,与ID信息散列存储库中信息进行匹配;若在ID信息散列存储库中没有匹配到字段,TCM进入非涉密IP核模块;若在ID信息散列存储库中匹配到对应字段,TCM进入涉密IP核模块。

进一步地,所述涉密信息加密处理分为A,B两类,其中A类为具有涉密权限用户进行加密信息,B类为普通权限用户加密信息;

(1)具有涉密权限用户进行加密信息的过程为:

eTCM进入涉密IP核模块;涉密信息作为密码引擎模块输入,散列得到PCR值;若传入的PCR值在第一ROM-PCR值存储模块中没有对应的匹配,系统阻止对计算PCR信息进行串口传输回嵌入式设备;若传入的PCR值在第一ROM-PCR值存储模块中有对应的匹配,将PCR值合并发送回嵌入式设备;

(2)在具有普通权限用户进行加密信息的过程为:

eTCM进入非涉密IP核模块;给予权限越界警告,系统阻止对涉密信息进行加密,表示本次eTCM信息涉密验证加密失败。

进一步地,该系统进行完整性检测分为A,B两类,A类为未经篡改的操作系统启动,B类为遭到篡改的操作系统启动;

(1)对未经篡改的操作系统启动的过程为:

eTCM和嵌入式设备上电;之后ROM执行,发送经过MD5散列的X-loader待检测文件数据;传输后进行eTCM散列并与本地存储的PCR值进行比较;若匹配到相应PCR值,将结果发送给嵌入式设备,移交cpu控制权给下一阶段X-loader;X-loader、U-Boot以及Kernel按照相同的流程进行检测,若都通过完整性检测,启动操作系统,进入虚拟层用户端;

(2)对遭到篡改的操作系统启动的过程为:

eTCM和嵌入式设备上电;之后ROM执行,发送经过MD5散列的X-loader待检测文件数据;传输后进行eTCM散列并与本地存储的PCR值进行比较;若未匹配到相应PCR值,将结果发送给嵌入式设备,阻止操作系统启动;若匹配相应PCR值,移交cpu控制权给X-loader;X-loader、U-Boot以及Kernel按照相同的流程进行检测,若未通过完整性检测,停止操作系统启动。

进一步地,所述虚拟域管理分为A,B两类,A类为具有涉密权限用户进行加密信息,B类为普通权限用户加密信息;

(1)对具有涉密权限用户进行虚拟域管理的过程为:

调用启动容器的脚本文件;脚本文件调用eTCM接口,对容器关键文件以及应用程序关键文件散列匹配;若通过匹配验证,安全启动容器;若未通过验证,待检测文件遭到篡改,拒绝启动容器;

(2)对具有普通权限用户进行虚拟域管理的过程为:

直接为其启动docker容器,不对docker容器以及应用程序关键文件进行完整性检测。

本发明与现有技术相比,其显著优点为:

(1)通过实现涉密IP核模块、非涉密IP核模块、国密算法实现可信密码模块、串口通信模块、ROM-PCR值存储模块以及处理调度模块来保证eTCM作为物理可信基的安全性。

(2)实现操作系统启动流程可信链设计修改,对X-Loader、Bootloader、U-Boot、Kernel文件进行修改,实现对启动文件完整性PCR值检测,层级管理通过安全性检测递交控制权,保证操作系统文件完整性。

(3)针对不同用户进行不同权限涉密信息检测,利用docker容器隔离特性,保证不同用户的相应文件使用权限防止越界操作,使得对嵌入式设备的安全检测更加安全、迅速、高效。

下面结合附图对本发明作进一步详细描述。

附图说明

图1是本发明设计的基于TCM的处理涉密信息eTCM原理结构图。

图2是本发明设计的操作系统文件完整性度量流程图。

图3是本发明设计的虚拟域管理工作流程图。

图4是本发明设计的嵌入式操作系统可信增强原型图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提供了一种基于可信TCM的嵌入式操作系统可信增强系统,所述系统包括基于TCM的处理涉密信息eTCM模块、操作系统文件完整性度量模块和虚拟域管理模块;

所述基于TCM的处理涉密信息eTCM模块,用于基于eTCM进行信息涉密验证加密;

所述操作系统文件完整性度量模块,以eTCM为核心,起点为BIOS引导程序,即X-loader程序作为信任根验证每一级引导文件的完整性,通过完整性检测后再递交CPU控制权;

所述虚拟域管理模块,用于完成虚拟化隔离层以及用户权限分离。

进一步地,在其中一个实施例中,所述基于TCM的处理涉密信息eTCM模块包括涉密IP核模块、非涉密IP核模块以及ID处理模块;

所述ID处理模块,用于读取存储传入的操作系统用户ID,以及对比处理用户ID散列值;

所述涉密IP核模块包括:第一RS232串口通信模块,用于实现eTCM与嵌入式设备信息交互;第一ROM-PCR值存储模块,用于存储待检测涉密文件的散列值;国密算法实现可信密码模块,用于加密处理涉密信息;涉密信息通过第一RS232串口通信模块传输至eTCM设备内,eTCM调用国密算法实现可信密码模块对涉密值进行散列处理,传输结果作为输入传输至第一ROM-PCR值存储模块,在第一ROM-PCR值存储模块以进行匹配校验,验证计算所得PCR值和之前存储的PCR值是否一致,处理涉密信息的散列验证;

这里,所述国密算法实现可信密码模块实现国密杂凑加密算法SM3、分组密码算法SM4,收到串口通信传入的待检测文件散列值作为加密输入,先通过SM3杂凑算法256比特杂凑值,分为256-128位与127-0位分别进行SM4分组加密得到结果将所得结果传入ROM-PCR值存储模块以进行匹配校验。

所述非涉密IP核模块包括第二RS232串口通信模块、第二ROM-PCR值存储模块,用于使得经过ID验证非权限用户进入,给予权限越界警告,以阻止涉密信息加密操作;其中第二RS232串口通信模块,用于实现eTCM与嵌入式设备信息交互;第二ROM-PCR值存储模块,用于存储非涉密文件的散列值。

进一步地,在其中一个实施例中,所述虚拟域管理模块包括虚拟TCM模块、docker容器和eTCM接口;所述docker容器用于存储关键性内容检测脚本,包括用户信息、容器环境关键性文件以及应用程序关键性文件;所述eTCM接口用于调用基于TCM的处理涉密信息eTCM模块,为虚拟层使用物理层eTCM调用接口;所述虚拟TCM模块,用于基于openssl标准库实现MD5散列、国密椭圆曲线分组加密算法SM2、杂凑加密算法SM3和分组密码算法SM4,包括:密钥管理模块、密码引擎模块、物理TCM调用接口。

进一步地,在其中一个实施例中,所述操作系统文件完整性度量模块包括改造X-loader、U-Boot、Kernel以及配置文件。

进一步地,在其中一个实施例中,所述第一RS232串口通信模块、第二RS232串口通信模块通过实现通用异步收发器UART,以实现eTCM与嵌入式设备信息交互,包括计数器、并行转串行移位寄存器,波特率定时(计数器)等。

进一步地,在其中一个实施例中,在进行涉密信息加密处理之前,先匹配验证传输涉密信息的ID信息,匹配过程为:

eTCM芯片对用户ID信息进行散列加密,与ID信息散列存储库中信息进行匹配;若在ID信息散列存储库中没有匹配到字段,TCM进入非涉密IP核模块;若在ID信息散列存储库中匹配到对应字段,TCM进入涉密IP核模块。

进一步地,在其中一个实施例中,所述涉密信息加密处理分为A,B两类,其中A类为具有涉密权限用户进行加密信息,B类为普通权限用户加密信息;

(1)具有涉密权限用户进行加密信息的过程为:

eTCM进入涉密IP核模块;涉密信息作为密码引擎模块输入,散列得到PCR值;若传入的PCR值在第一ROM-PCR值存储模块中没有对应的匹配,系统阻止对计算PCR信息进行串口传输回嵌入式设备;若传入的PCR值在第一ROM-PCR值存储模块中有对应的匹配,将PCR值合并发送回嵌入式设备;

(2)在具有普通权限用户进行加密信息的过程为:

eTCM进入非涉密IP核模块;给予权限越界警告,系统阻止对涉密信息进行加密,表示本次eTCM信息涉密验证加密失败。

进一步地,在其中一个实施例中,该系统进行完整性检测分为A,B两类,A类为未经篡改的操作系统启动,B类为遭到篡改的操作系统启动;

(1)对未经篡改的操作系统启动的过程为:

eTCM和嵌入式设备上电;之后ROM执行,发送经过MD5散列的X-loader待检测文件数据;传输后进行eTCM散列并与本地存储的PCR值进行比较;若匹配到相应PCR值,将结果发送给嵌入式设备,移交cpu控制权给下一阶段X-loader;X-loader、U-Boot以及Kernel按照相同的流程进行检测,若都通过完整性检测,启动操作系统,进入虚拟层用户端;

(2)对遭到篡改的操作系统启动的过程为:

eTCM和嵌入式设备上电;之后ROM执行,发送经过MD5散列的X-loader待检测文件数据;传输后进行eTCM散列并与本地存储的PCR值进行比较;若未匹配到相应PCR值,将结果发送给嵌入式设备,阻止操作系统启动;若匹配相应PCR值,移交cpu控制权给X-loader;X-loader、U-Boot以及Kernel按照相同的流程进行检测,若未通过完整性检测,停止操作系统启动。

进一步地,在其中一个实施例中,所述虚拟域管理分为A,B两类,A类为具有涉密权限用户进行加密信息,B类为普通权限用户加密信息;

(1)对具有涉密权限用户进行虚拟域管理的过程为:

调用启动容器的脚本文件;脚本文件调用eTCM接口,对容器关键文件以及应用程序关键文件散列匹配;若通过匹配验证,安全启动容器;若未通过验证,待检测文件遭到篡改,拒绝启动容器;

(2)对具有普通权限用户进行虚拟域管理的过程为:

直接为其启动docker容器,不对docker容器以及应用程序关键文件进行完整性检测。

下面对本发明的工作原理进行进一步详细说明。

使用本发明种eTCM进行信息涉密验证加密时,一共分为两种:

(一)第一类对eTCM涉密信息加密验证的过程:

当第一类用户进行涉密信息加密验证时,系统首先采集用户的ID信息,TCM芯片对用户ID信息进行散列加密,与ID信息散列存储库中信息进行匹配;无法在ID信息散列存储库搜索到匹配字段,TCM进入非涉密IP核模块,给予权限越界警告,系统阻止对涉密信息进行加密并亮起相应错误的LED红灯,表示本次eTCM信息涉密验证加密失败。

(二)第二类对eTCM涉密信息加密验证的过程:

当第二类用户进行涉密信息加密验证时,系统首先采集用户的ID信息,TCM芯片对用户ID信息进行散列加密,与ID信息散列存储库中信息进行匹配;在ID信息散列存储库中匹配到对应字段,TCM进入涉密IP核模块;在涉密模块中将传入涉密信息作为密码引擎模块输入,经过SM3杂凑,SM4分组加密得到对应两组128位PCR值;将得到的两组128位PCR值传入ROM-PCR值存储模块进行匹配;当传入的两组PCR值并没有在ROM-PCR值存储模块中有对应的匹配,则本次验证的涉密信息与存储信息不一致,说明涉密信息遭到篡改,系统阻止对计算PCR信息进行串口传输回嵌入式设备,并亮起相应涉密信息篡改的LED红灯,给予错误提示;当传入的两组PCR值在ROM-PCR值存储模块中有对应的匹配,则本次验证的涉密信息与存储信息一致,说明涉密信息保持完整;此时将两组PCR值合并成256位,作为输入传入串口通信模块,发送回嵌入式设备,并亮起相应的完成验证LED绿灯,说明涉密信息加密验证完成。

如图2所示,本发明实现的操作系统文件完整性度量流程包括可信链设计改造方案。

所述可信链设计改造方案是以TCM为核心,起点为BIOS引导程序,即X-loader程序作为信任根验证每一级引导文件的完整性,通过完整性检测再递交CPU控制权,以这样一级验证一级,一级信任一级的传递,形成一个可信的运行环境。需要对操作系统启动加载部件进行改造。

所述操作系统启动加载部件改造包括X-loader、U-Boot、Kernel、配置文件;嵌入式系统初始化顺序一次是ROM(代码存储器)、X-loader、U-Boot、Kernel等;

完整性检测流程改造后如下,一共分为两种:

(一)第一类对操作系统完整性检测过程:

eTCM、嵌入式设备上电;之后ROM执行,检测设备串口是否打开;若打开发送X-loader待检测文件数据,其中待检测文件数据需先在嵌入式设备进行MD5散列;传输后进行eTCM散列并与本地存储的PCR值进行比较,匹配到相应PCR值,LED绿灯对应显示,将结果发送给嵌入式设备;移交cpu控制权给X-loader,X-loader按照相同的流程对U-Boot文件进行检测,与X-loader检测PCR值合并,传输给eTCM散列匹配,匹配到相应PCR值,LED绿灯显示;同理对U-Boot以及Kernel文件进行完整性检测,LED都显示绿灯,通过完整性检测,启动操作系统,进入虚拟层用户端。

(二)第二类对操作系统完整性检测过程:

eTCM、嵌入式设备上电;之后ROM执行,检测设备串口是否打开;若打开发送X-loader待检测文件数据,其中待检测文件数据需先在嵌入式设备进行MD5散列;传输后进行eTCM散列并与本地存储的PCR值进行比较,未匹配到相应PCR值,LED红灯对应显示,将结果发送给嵌入式设备;嵌入式设备接收到错误提示,说明X-loader文件遭到篡改,阻止操作系统启动,给予错误提示;若匹配相应PCR值,LED绿灯显示,移交cpu控制权给X-loader;X-loader按照相同的流程对U-Boot文件进行检测,与X-loader检测PCR值合并,传输给eTCM散列匹配,若未匹配到相应PCR值,LED红灯显示,将结果发送给嵌入式设备;嵌入式设备接收到错误提示,说明U-Boot文件遭到篡改,阻止操作系统启动,给予错误提示;同理对于U-Boot以及Kernel文件进行完整性检测,LED显示红灯,未通过完整性检测,停止操作系统启动。

如图3所示,本发明实现的虚拟域管理工作方案。

所述虚拟域管理方案包括虚拟TCM、docker容器、eTCM接口,以完成虚拟化隔离层、用户权限分离。

所述docker容器包含用户信息、容器环境关键性文件、应用程序关键性文件。

所述eTCM接口为虚拟层使用物理层eTCM调用接口。

所述虚拟TCM由三大模块组成:密钥管理模块、密码引擎模块、物理TCM调用接口;通过openssl标准库实现TCM基本密码算法:椭圆曲线公钥密码算法SM2,杂凑加密算法SM3,分组密码算法SM4以及散列算法MD5。

使用虚拟域管理一共分为两种:

(一)第一类对虚拟域管理过程:

通过调用启动容器的脚本文件,系统采集用户的ID信息,vTCM即虚拟TCM对用户ID信息进行散列加密,与ID信息散列存储库中信息进行匹配;无法在ID信息散列存储库搜索到匹配字段,系统确认该用户为普通权限用户,直接为其启动docker容器,不对docker容器进行完整性检测。

(二)第二类对虚拟域管理过程:

通过调用启动容器的脚本文件,系统采集用户的ID信息,vTCM对用户ID信息进行散列加密,与ID信息散列存储库中信息进行匹配;在ID信息散列存储库搜索到匹配字段,系统确认该用户为涉密权限用户,脚本文件调用eTCM接口,对于容器传来的/etc/fstab、/etc/inittab、/bin/bash等关键文件以及应用程序关键文件调用密码引擎模块,经过散列杂凑加密最后分组,与存储的标准值进行比对;通过验证,LED绿灯亮,安全启动容器;若未通过验证,LED红灯亮,给出错误提示,待检测文件遭到篡改。

如图4所示,为本发明实现的嵌入式操作系统可信增强原型。

所述嵌入式操作系统可信增强原型包括操作系统可信增强技术、虚拟化的资源隔离技术,通过整理与融合实现基于可信TCM的嵌入式操作系统可信增强机制。

所述基于可信TCM的嵌入式操作系统可信增强机制实现整体流程包括对操作系统完整性检测、虚拟域管理,依照上述流程进行检测,如操作系统启动后LED灯持续绿色,完成可信操作系统启动。

其余非法情况LED均会亮红灯并给出错误信息。

本发明通过硬件TCM模块加速嵌入式设备信息处理能力、通过eTCM作为物理可信基处理操作系统可信链中关键性文件涉密处理、并基于docker容器的隔离特性以及eTCM的加密处理能力完成虚拟域用户信息安全管理,实现不同用户信息管理以及操作系统可信启动。本发明能够快捷、高效、安全的实现嵌入式操作系统可信启动及用户权限隔离检测。

以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于Linux操作系统的可信TCM软件栈的设计方法及系统
  • 一种基于Linux操作系统的可信TCM软件栈的设计方法及系统
技术分类

06120116507428