一种基于安全芯片的嵌入式操作系统运行环境监控方法

文档序号:153031 发布日期:2021-10-26 浏览:21次 >En<

阅读说明:本技术 一种基于安全芯片的嵌入式操作系统运行环境监控方法 (Embedded operating system operating environment monitoring method based on security chip ) 是由 程伟华 徐超 承轶青 王纪军 张明远 于 2021-07-01 设计创作,主要内容包括:本发明公开了一种基于安全芯片的嵌入式操作系统运行环境监控方法,包括如下步骤:安全启动;启动时将内核度量模块加载入内核;获取知识库;在用户层提供应用程序管理接口;系统内核模块获取可执行程序度量结果记录在度量日志中;开启管控模式,系统内核模块读取白名单中的内容,并查找对应文件的度量值,如果找到并比对成功则允许程序启动,否则阻止程序启动并将程序名和其度量值记录到报警日志中;应用程序利用安全芯片来进行算法测试。本发明提供一个安全可靠的程序运行时度量与管控机制,保证指定的可执行文件在运行时受到验证,保障其运行时未受到篡改,或发生篡改时能够及时留证。(The invention discloses a method for monitoring the running environment of an embedded operating system based on a security chip, which comprises the following steps: starting safely; loading the kernel measurement module into the kernel when starting; acquiring a knowledge base; providing an application program management interface at a user layer; the system kernel module acquires the measurement result of the executable program and records the measurement result in a measurement log; starting a control mode, reading the content in a white list by a system kernel module, searching the metric value of a corresponding file, if the content is found and compared successfully, allowing the program to start, and otherwise, preventing the program from starting and recording the program name and the metric value thereof into an alarm log; the application utilizes the security chip for algorithmic testing. The invention provides a safe and reliable program operation measurement and control mechanism, which ensures that the specified executable file is verified during operation, and ensures that the specified executable file is not tampered during operation or can be timely left for evidence when tampering occurs.)

一种基于安全芯片的嵌入式操作系统运行环境监控方法

技术领域

本发明属于计算机操作系统安全增强技术领域,具体涉及一种基于安全芯片的嵌入式操作系统运行环境监控方法。

背景技术

随着各类计算机系统的不断发展,各种形式的计算机系统已经深入到社会各个领域、各个层面,扮演着越来越重要的角色,特别是近年来移动智能终端和平板电脑等已经通过移动支付、移动办公等应用场景广泛用于承载和处理各类隐私和机密信息。由于所涉及信息的价值越来越高,计算机系统日益成为攻击者进行系统破坏和信息窃取的目标。

可信计算技术是一种基于硬件信任根、以度量和信任链为主要技术手段的新型安全技术。通过从硬件信任根开始,可信计算技术通过一级加载一级、一级度量一级的方法构造设备内部或设备与设备之间的信任链,从而及时、可靠的发现系统中运行的非授权程序(潜在的恶意程序)并进行相应的处理(审计、管控和远程证明)。可信计算技术特别适用于对具有较高安全要求的计算设备进行保护。

作为可信计算技术所构建的信任链的重要一环,操作系统内核需要度量所启动的每个可执行程序。目前,最具有代表性的内核度量技术是美国IBM TJ.Wason研究院于2004年提出的IMA(Integrity Measurement Architecture)度量架构,该架构自2.6.30版本之后被Linux基金会接受为内核主线代码并在不断更新中。

IMA架构采用的是一种启动时度量技术,即对可执行程序的度量时机选择在程序启动时。由于该类度量技术可以在很大程度上保障所执行程序的完整性,但是不会对程序(启动之后的)运行产生任何影响,在系统安全性和性能之间取得了良好权衡,因而被广泛任何和接受。嵌入式操作系统由于其底层使用的是Linux内核,可以使用IMA架构对其上层应用进行安全防护。但是现有技术尚存在以下几个问题:

1.安全芯片在嵌入式移动终端的集成与使用。现有嵌入式移动终端通常由于成本等原因没有集成安全芯片,即使集成有安全芯片在软件层面也没有提供太多的支持和使用。但由于安全芯片本身的高安全性,需要构建以安全芯片为基础的可信应用和安全管理。

2.完整性度量技术在嵌入式平台的实现。传统的完整性度量技术主要关注于PC平台,嵌入式平台虽然其内核使用的是通用的Linux内核,但是其与具体的应用层面仍然有一定的距离,需要构建从内核级到应用级的完整安全防护体系。

发明内容

本发明的目的在于提供一种基于安全芯片的嵌入式操作系统运行环境监控方法,利用Linux程序启动时度量技术(例如Linux的完整性度量架构,即IMA架构)来为嵌入式系统的上层应用提供安全防护。将嵌入式可执行程序在启动时进行度量,从而为使用Linux操作系统的计算机设备提供一个安全可靠的程序运行时度量与管控机制,保证指定的可执行文件在运行时受到验证,保障其运行时未受到篡改,或发生篡改时能够及时留证。

本发明的目的通过以下技术方案实现:

一种基于安全芯片的嵌入式操作系统运行环境监控方法,其特征在于该方法包括以下步骤:

1)安全启动:基于硬件安全芯片在系统启动时对OS Bootloader以及操作系统镜像进行完整性度量并将度量值与存储在平台上的固件证书中的标准完整性值进行比较,同时基于设备上的根证书对OS Bootloader和操作系统镜像的固件证书进行验证,具有比软件实现方法更高的安全性,同时固件和证书无法被远程篡改,从而保证只有符合完整性要求和设备制造商授权的固件才能启动,实现了从硬件启动代码到操作系统内核的信任链功能,保证了设备初始运行环境的可信;

2)启动时将内核度量模块加载入内核:内核在启动时将内核度量模块加载,该内核度量模块负责在系统运行阶段在程序启动时度量程序启动文件并进行管控,不影响正常程序执行的效率;

3)获取知识库:系统启动后,在当前可信状态下,对所有的可执行文件进行扫描,形成知识库;知识库主要用来收集进程、so等关键系统信息的标准参考值,为白名单的制定提供基准数据。可信嵌入式主机配置完毕进行任何操作之前(假设初始状态可信),采用知识库收集工具对操作系统组件、安全模块组件、嵌入式应用系统组件进行逐一收集,收集的信息包含文件名、文件路径、SM3完整性度量值等,并对收集的数据进行统一记录,该数据为制定白名单和可信策略时提供基准可信数据,该步骤在开启业务功能前进行,不影响正常程序执行效率;

4)在用户层提供应用程序管理接口;

5)系统内核模块获取可执行程序度量结果记录在度量日志中;

6)开启管控模式,系统内核模块读取白名单中的内容,并查找对应文件的度量值,如果找到并比对成功则允许程序启动,否则阻止程序启动并将程序名和其度量值记录到报警日志中;

7)应用程序随后通过读取度量日志和报警日志,来向用户输出当前已执行过的程序的度量结果和试图启动但不在白名单中的程序;

8)应用程序利用安全芯片来进行算法测试。

进一步,步骤1)中,在安全启动过程中使用安全芯片保存密钥、哈希和签名验证。

步骤2)中,该内核度量模块利用LSM(Linux安全模块)接口中的mmap hook接口,度量需要进行映射的文件内容,并记录在securityfs中的度量日志中;其中度量使用安全芯片提供的sm3算法。

步骤3)中知识库获取过程中,对嵌入式应用中的代码段部分进行获取并度量。知识库中每一项为可执行程序文件路径及其哈希度量值,度量算法使用sm3算法;扫描对象为通过判断其文件头是否是可执行文件的文件头来决定是否度量并记录。

步骤4)中应用程序接口包括白名单管理(知识库读取为白名单,白名单增删改查,白名单导入到内核),日志管理(度量日志读取,报警日志读取),系统配置(管控模式开启关闭),算法功能测试(测试安全芯片提供的密码算法性能)。

步骤5)中系统内核模块获取要启动的程序的文件名,并且读取相应的文件内容,之后利用安全芯片的SM3算法对文件内容进行度量。

步骤6)中,通过procfs将白名单文件中的内容导入到系统内核模块中,系统内核模块在程序执行前,利用安全芯片对程序代码段进行度量,并通过判断其是否是合法的来决定是否允许启动。

步骤8)中,测试包括哈希、加解密、签名,其哈希算法使用sm3,签名算法使用sm2,加解密算法使用sm4。

本发明中,在系统运行阶段,任何程序启动运行时都将调用mmap()系统调用从而将可执行程序(代码段)映射到内存,利用获取的知识库,在这个阶段对程序进行判断和管控。

程序度量:首先获取要启动的程序的文件名,并且读取相应的文件内容,之后利用安全芯片的SM3算法对文件内容进行度量,并获取其度量结果。

程序管控:根据获取的文件名,在知识库中查找相应的完整性度量结果,并与程序度量中最后计算得到的度量结果比对,此时有三种情况:

(1)查找不存在:表明该程序不在知识库中,可能是攻击者创建的程序,阻止启动;

(2)查找存在但结果不相同:表明程序受到了篡改,可能是攻击者对文件内容进行了修改,阻止启动;

(3)查找存在并且结果相同:表明程序与启动时的内容一致,允许启动;

用户管理:应用层提供接口,供用户开启或关闭安全引导程序、操作系统内核中的程序度量或程序管控功能。

本发明的优点如下:

1.本发明使用安全芯片辅助安全启动以及在系统运行时对程序进行度量,相比于现有的程序完整性度量和管控技术,具有更高的安全性,避免了算法被敌手篡改的风险,同时效率相对于软件的方式也有一定的提升。

2.本发明支持对嵌入式应用层程序的完整性度量,拓展了现有的程序完整性度量和管控技术的度量范围,具有更广的适用性。

3.本发明使嵌入式系统管理员能够对系统运行状态进行审计,进一步增强了系统的安全性。

本发明利用内核度量技术——IMA(Integrity Measurement Architecture)度量架构来对嵌入式操作系统进行完整性保护,实现了对嵌入式操作内核和嵌入式操作应用层的完整性度量与收集、完整性管理、进程管控、主动报警等功能,保证系统运行环境的可信。

本发明可以为使用嵌入式操作系统的计算机设备提供一个安全可靠的程序运行时度量与管控机制,保证指定的可执行文件在运行时受到验证,保障其运行时未受到篡改,或发生篡改时能够及时留证。

附图说明

图1是嵌入式系统运行环境监控系统架构图。

具体实施方式

下面结合附图说明本发明的具体实现方式:

一种基于安全芯片的嵌入式系统运行环境监控方法,对于本领域的技术人员而言,可以参考该方法设计、实现出对应的系统安全防护系统。主要包括如下步骤:(1)度量架构收集系统环境完整性数据;(2)管理员通过接口对完整性进行管理;(3)根据自身具体需求制定相应的白名单安全策略并进行部署;(4)部署之后平台进入管控状态,不在白名单上的应用被禁止执行。具体如下:

1.终端设备厂商,嵌入式操作系统厂商:根据安全启动要求,实现操作系统启动过程中的两级数字签名校验(完整性校验),即实现操作系统内核的安全引导。第一级校验,验内核引导程序Bootloader;第二级校验,Bootloader校验内核KERNEL。其中数字签名算法为SM2,密码杂凑算法为SM3。数字签名所使用的密钥,以及数字签名计算本身,由终端设备厂商生成,并预置在安全芯片中。

2.嵌入式操作系统厂商、应用程序厂商:在操作系统中集成内核度量模块,该内核度量模块主要利用LSM(Linux安全模块)接口中的mmap hook接口,度量需要进行映射的文件内容,并记录在securityfs中的度量日志中;其中度量使用安全芯片提供的sm3算法。

3.嵌入式操作系统厂商:在系统启动后,对系统中的所有可执行程序进行扫描,以获取知识库。知识库中每一项为可执行程序文件路径及其哈希度量值,度量算法使用sm3算法。扫描对象为通过判断其文件头是否是可执行文件的文件头来决定是否度量并记录。

4.应用程序厂商:应用程序需要在用户层提供管理接口,包括白名单管理(知识库读取为白名单,白名单增删改查,白名单导入到内核),日志管理(度量日志读取,报警日志读取),系统配置(管控模式开启关闭),算法功能测试(测试安全芯片提供的密码算法性能)。

5.嵌入式操作系统厂商,应用程序厂商:开启管控模式后,应用程序将白名单文件中的内容通过procfs导入到系统内核模块中,系统内核模块获取要启动的程序的文件名,并且读取相应的文件内容,之后利用安全芯片的SM3算法对文件内容进行度量,并获取其度量结果记录在度量日志中。

6.嵌入式操作系统厂商:系统内核模块读取白名单中的内容,并查找对应文件的度量值,如果找到并比对成功则允许程序启动,否则阻止程序启动并将程序名和其度量值记录到报警日志中。

7.应用程序厂商:应用程序随后可以通过读取度量日志和报警日志,来向用户输出当前已执行过的程序的度量结果和试图启动但不在白名单中的程序。

8.应用程序厂商:应用程序可以利用安全芯片来对大小为1k的文件内容进行哈希、加解密、签名等测试,其哈希算法使用sm3,签名算法使用sm2,加解密算法使用sm4。

在系统运行阶段,任何程序启动运行时都将调用mmap()系统调用从而将可执行程序(代码段)映射到内存,利用获取的知识库,在这个阶段对程序进行判断和管控。

程序度量:首先获取要启动的程序的文件名,并且读取相应的文件内容,之后利用安全芯片的SM3算法对文件内容进行度量,并获取其度量结果。

程序管控:根据获取的文件名,在知识库中查找相应的完整性度量结果,并与程序度量中最后计算得到的度量结果比对,此时有三种情况:

查找不存在:表明该程序不在知识库中,可能是攻击者创建的程序,阻止启动;

查找存在但结果不相同:表明程序受到了篡改,可能是攻击者对文件内容进行了修改,阻止启动;

查找存在并且结果相同:表明程序与启动时的内容一致,允许启动。

本发明为现有的嵌入式系统提供了完整的安全防护体系,解决了嵌入式系统的运行信任问题,并能够对系统运行状态进行审计。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种通过在线矩阵画像对运维数据进行无监督异常检测的技术

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!