1、2023 年第 10 期182信息技术与信息化网络与信息安全机载嵌入式系统数据安全防护软件设计与实现杨 玻1 尉嘉维1 韩贺松1 刘镡稚1 YANG Bo YU Jiawei HAN Hesong LIU Xinzhi 摘要 面对机载嵌入式系统数据存储能力方面日益增长的安全防护需求,在不改变硬件资源设计的基础上,基于国密 SM2 和 SM4 的双重加密算法,设计了适应于机载嵌入式系统目标机端和地面数据维护终端的数据安全防护软件,可以保证数据传输过程中的完整性,防止目标机上驻留的可执行程序被逆向工程破解,存储的数据被非法篡改和获取,提高了系统数据存储功能的安全等级。通过对目标机端和地面维护终端软
2、件的测试验证分析,能满足机载嵌入式系统数据安全性要求。关键词 机载嵌入式系统;数据安全;软件防护;SM2 国密算法;SM4 国密算法 doi:10.3969/j.issn.1672-9528.2023.10.0391.航空工业西安航空计算技术研究所 陕西西安 7100650 引言机载嵌入式系统具备数据存储功能的介质主要包括程序Flash、NVRAM 以及大容量电子盘等。Flash 一般作为程序启动盘,驻留引导软件、模块支持软件、操作系统软件、应用程序以及配置文件等;NVRAM 用于存储设备的 BIT 测试信息及故障信息等;大容量电子盘部署高可靠文件系统用于存储应用运行过程中产生的日志文件等。系
3、统中所有的持久化数据按照数据类型可分为两大类,一类是系统驻留的可执行程序,通常以二进制文件(BIN)和程序符号文件(ELF)格式存在,一类是普通的日志文件,包括配置文件,按照用户自定义的格式存在。这些数据在机载嵌入式系统中均以明文形式存在,当这些设备被不法分子获得时,通过技术手段很容易获取其中的数据,其中系统中驻留的可执行程序一旦被窃取,可以通过逆向工程技术理解程序的设计,系统中的日志文件通过编辑器打开,可以通过日志信息了解系统的运行状态,因此,机载嵌入式系统的数据安全性设计显得尤为重要。在不增加硬件成本的基础上,通过软件的安全性设计,提高系统的数据安全性是一种行之有效的方法,密码防护是软件防
4、护中确保数据存储安全的一种重要方法1,本文分析了机载嵌入式系统数据安全性设计需求,综合多种国密算法的优点,设计了符合机载嵌入式系统要求的数据安全软件防护方法,提高了机载数据安全防护等级,从而提高了嵌入式系统安全性。1 数据安全性需求系统中驻留的可执行程序按照用户是否可更改,分为两大类。一种是用户在外场不可更改的,比如系统引导程序,该类程序功能比较关键,一旦失效将导致系统启动失败,一般不允许用户在未授权状态对其进行修改,该部件的升级需板卡供应商完成;另一种是用户可以自行升级的,比如模块支持软件、应用软件等。针对第一类可执行程序,为了防止程序被篡改,需对该程序所在的程序 Flash 区进行写权限限
5、制;第二类可执行程序,需经常进行迭代升级,完成功能升级,在系统启动阶段,为了保证待加载程序的完整性和正确性,需进行数据一致性校验,校验通过,引导程序才可以按照设定的模式加载启动,如果校验失败,系统启动异常处理程序,并在终端输出设备进行错误信息提示。数据完整性校验是为了防止系统从主机端到目标机端传输过程中,导致的数据不一致。为了数据本身的安全,还需进行密码防护。机载待加密的数据主要分为两大类,一种是目标机上运行的可执行程序及配置文件,另一种是应用运行过程中产生的需要存储的日志数据。在本设计中,将可执行程序及程序运行依赖的配置文件,统称为明文数据,这些数据未经过加密,通常可以直接识别出,将明文数据
6、通过国密算法运算,生成对应的密文数据。密文通常为一堆无序字符,形式复杂难以识别及理解,因此密文通过逆向工程很难被破解。2 国密算法介绍国密算法2是国家密码管理局制定的系列标准加解密数据安全防护算法,其中包括了椭圆曲线非对称加密算法、杂凑算法和对称加密算法等,具体包括 SM1、SM2、SM3 和SM4 国密算法等。SM1 国密算法是一种对称加密算法,该算法不公开,调用该算法时,需要通过加密芯片的接口进行调 2023 年第 10 期183信息技术与信息化网络与信息安全用;SM2 国密算法是一种非对称加密算法,该算法基于 ECC实现,算法实现已公开;SM3 是一种消息摘要算法,只能单向加密;SM4
7、是一种对称加密算法,是无线局域网标准的分组数据算法。2.1 SM4 国密算法SM4 国密算法,明文加密和密文解密使用同一个密钥3-4。该类算法实现加解密流程简单,加密解密容易,效率高,执行快,适用于对整块数据的整体加密,比如嵌入式系统上驻留的可执行程序以及系统配置文件等;缺点是该类算法加解密使用同一个密钥,安全等级较低,只有一把密钥,密文和密钥如果被非法获取,数据很容易被破译。SM4 国密算法是一种分组加解密算法,分组加密就是将明文数据按固定长度进行分组,然后再使用同一密钥逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码,其中明文分组的长度称为该分组加解密的分组规模。国密 SM4
8、 算法整体结构图如图 1 所示,在国产 SM4 算法计算过程中增加非线性变换,理论上能大大提高其算法的安全性。密钥扩展密钥扩展128位密钥128位密钥基本轮询函数基本轮询函数128位明文128位明文128位密文128位密文迭代控制迭代控制图 1 SM4 算法整体结构图2.2 SM2SM2 国密算法有一对密钥5,即公钥和私钥,明文加密使用公钥,密文解密用私钥。公钥和私钥成对存在,如果对明文使用公钥加密,则只能使用对应的私钥才能解密,这样即使加密密钥被公开,解密私钥也无法被获取。该类加解密算法相对于对称密钥算法,安全级别更高,即使密文和公钥被同时获取,无法获取到私钥,也就无法破译数据密文。虽然非对
9、称加密算法流程复杂,安全性依赖算法与密钥,而且加密和解密效率很低,无法满足嵌入式系统数据量大时的加密实时性要求,但是能弥补对称密钥算法的密钥管理不足。SM2 算法密钥通过一系列算法获取一长串随机数,通常随机数的长度越长,加密信息越安全。SM2 算法采用椭圆曲线加密,在我们国家商用密码体系中被用来替换 RSA 算法,相比于国际上的 RSA 算法,其签名速度与密钥生成速度都快于RSA。通过以上分析,从密钥管理和加密实时性需求角度考虑,单一的国密算法不能满足系统的密码防护功能需求,因此本设计中将 SM4 算法加密高效性和 SM2 算法密钥管理简单性相结合,进行软件安全防护功能设计。3 功能设计机载嵌
10、入式系统数据安全防护软件功能主要包括密码口令验证功能、数据加解密功能以及数字签名认证功能。3.1 密码口令验证功能系统空间规划时,将程序 Flash 按照写权限的不同,划分为两大区域。区域 1,称为系统数据区,用于驻留引导程序和板卡厂商的配置文件,用户如果需要执行 Flash 写操作,需首先进入管理员模式,在管理员模式下,Flash 写操作生效前经过用户名和密码验证,只有用户名和密码均正确,系统才可以进行 Flash 写操作,在该区域,读取数据,不需要管理员权限;区域2,称为用户数据区,用于驻留模块支持软件、应用程序及用户配置数据等,用户在该区域具有所有访问权限,可以对该区域进行正常读写操作。
11、3.2 数据加解密功能数据加解密功能为地面维护终端软件和机载目标机端软件分别提供了加解密服务。地面维护终端软件将明文数据通过 SM4 算法生成密文数据,将机载目标机端产生的加密后的日志文件在地面完成解析,转换成明文,在地面维护阶段完成的加解密功能称为离线加解密。机载目标机端软件将通过数据完整性校验的密文数据,解密转换成明文数据,完成系统的启动,同时调用加密服务功能,将系统运行过程中产生的日志文件,通过及时加密功能,完成数据加密存储,在机载目标端完成的加解密功能称为在线加解密。加密和解密最重要的是密钥,软件利用随机数生成器生成一个 128 bit 的密钥,采用 SM4 对称算法,加密和解密使用相
12、同的秘钥,其公式为:E(p,k)=c (1)D(c,k)=p (2)式中:E 为 SM4 加密算法;D 为 SM4 解密算法;p 为待加密的明文数据;k 为加密密钥;c 为加密后的密文。SM4 算法在加解密过程中,加密和解密使用了同一个密钥,密钥安全性得不到保证,密钥的安全性设计显得尤为重要,因此利用 SM2 非对称加密算法的优点,对密钥 k 进行加密存储。首先通过符合 SM2 的密钥生成算法的密钥生成工具生成一对密钥,分别为“公钥”和“私钥”,公钥为 64 bit,私钥为 32 bit,将 SM4 算法使用的密钥 k 通过公钥进行加密,需要获取密钥 k 时,利用私钥进行解密。具体过程为:E(
13、k,ku)=c (3)D(c,kr)=k (4)2023 年第 10 期184信息技术与信息化网络与信息安全式中:E 为 SM2 加密算法;D 为 SM2 解密算法;k 为 SM4加解密所用的密钥;ku为 SM2 算法加密使用的公钥;kr为SM2 算法解密使用的私钥。机载嵌入式系统的配置文件及可执行代码软件安全防护,采用地面维护终端设备在地面对明文数据进行离线加密,机载目标机端设备完成机上在线解密功能,数据加密和解密整体流程示意图如图 2 所示。图 2 离线加密在线解密功能示意图地面维护终端设备执行流程如下。(1)首先利用特定工具生成一对公钥和私钥,以及SM4 加解密算法使用的密钥。(2)准备
14、好待加密的明文数据。(3)通过地面维护终端的设备的 SM4 加密功能,将明文数据和密钥作为输入,将明文加密输出为密文。(4)将 SM4 的密钥和公钥作为输入通过 SM2 加密算法生成 SM4 的密钥的密文。(5)将密文数据和密钥的密文通过维护升级工具固化到程序 Flash。说明:为了保证私钥的秘密性,私钥已预先分段存储在程序 Flash 和 NVRAM 中,程序运行过程中可以从设置的固定位置读取获取私钥。目标机端设备执行流程如下。(1)目标机上电后从存储介质中加载 SM4 的密钥密文数据和私钥到内存。(2)将 SM4 的密钥密文数据和私钥作为输入,调用SM2 的解密算法,获取 SM4 的明文密
15、钥。(3)从存储介质中加载密文数据。(4)将解密的密钥和密文数据作为输入,调用 SM4 的解密算法,获取可执行程序和配置文件的明文数据。(5)校验明文数据的正确性。(6)如果明文数据校验正确,则跳转到预定设定的程序入口开始执行。机载嵌入式系统运行过程中,产生的日志数据如果需加密,需将数据转发给系统安全管理器模块,系统安全管理器调用 SM4 算法的加密功能,完成数据的加密存储,在地面维护阶段,通过地面维护终端的数据卸载功能,完成数据密文的卸载和解密,具体流程示意图如图 3 所示。图 3 在线加密离线解密功能示意图目标机端设备程序运行加密流程如下。(1)应用初始化阶段,从存储介质中加载私钥和 SM
16、4密钥的密文到内存。(2)将私钥和 SM4 密钥的密文作为解密的输入信息,调用 SM2 的解密算法,获取 SM4 密钥的明文。(3)应用完成文件系统初始化及文件系统功能测试后,创建空文件,用于本次系统运行的日志记录数据。(4)应用运行过程中,不断产生不同等级的日志数据,根据设置的日志级别,如果满足加密条件,则由日志管理模块将数据转发给安全管理模块。(5)安全管理模块将待加密的数据和初始化阶段解析出的 SM4 密钥调用 SM4 的加密接口函数,完成数据的加密,输出对应的密文。(6)将密文数据记录到文件系统中。(7)循环执行(4)、(5)和(6)步骤。2023 年第 10 期185信息技术与信息化
17、网络与信息安全地面维护终端设备运行解密流程如下。(1)通过地面维护终端设备将目标机端的密文数据进行卸载。(2)校验卸载的密文数据完整性。(3)将卸载下来的密文数据和预设的 SM4 密钥作为输入,工具端调用 SM4 解密算法,获取明文。(4)将明文在本地存储,以备数据分析。3.3 数字签名认证功能待加密的明文数据通过加密工具将明文转换成密文后,地面数据加载工具通过网络或者串行总线发送给目标机端,为了防止传输过程中导致的数据不一致,需对数据进行完整性和正确性校验。本设计中,采用一对密钥对(公钥和私钥)对待传输的数据进行数字签名和验证签名,为了便利密钥的管理,该过程使用的密钥对与前文 SM2 算法加
18、解密使用的密钥对一致,数据数字签名及认证的方法具体可分为以下两个过程。(1)生成签名:数据的发送者(地面加载工具)将待传输的数据使用 MD5 消息摘要算法,生成 MD5 码值,然后使用公钥对生成的 MD5 码进行加密,生成对应的数字签名。(2)验证签名:数据的接收者(目标机端)使用私钥对数字签名进行解密,得到 MD5 码值,对接收的数据进行MD5运算,生成计算值。数据的接收者比较这两个MD5码值,如果两个值相等,则说明传输的数据没有被改动,数据内容是可信的。4 测试与验证测试环境目标机端处理器为 P2020,操作系统为 Vx-Works6.8,编写了目标机端加解密功能性能测试用例,通过将数据加
19、密再解密,解密后的数据与明文数据一致,符合加解密功能要求,同时,设置不同大小的数据集合,循环进行加密和解密测试。测试结果如表 1 和表 2 所示,加密和解密性能持平,加解密性能可达 6.45 MB/s。表 1 加密测试性能测试编号测试数据集/Byte加密平均时间/ms性能/(MBs-1)110102419.7621001024146.973102410241536.5442102410243096.4755102410247756.456101024102415506.457201024102431016.458301024102446516.459401024102462016.451050
20、1024102477516.45表 1 解密测试性能测试编号测试数据集/Byte加密平均时间/ms性能/(MBs-1)110102424.8821001024146.973102410241536.5442102410243096.4755102410247756.456101024102415506.457201024102431016.458301024102446516.459401024102462016.4510501024102477516.455 小结本文研究了机载嵌入系统数据安全存储方面能力需求以及常用国密算法的优缺点,通过分解需求功能单元,用软件方法设计实现了密码口令验证功能
21、、数据加解密功能以及数字签名认证功能,经综合测试验证分析,该设计满足机载嵌入系统数据安全性要求。参考文献:1吕舰.基于国密算法的网络通信传输数据安全存储方法J.长江信息通信,2023,36(4):171-174.2 卢秋如.国密算法应用研究综述 J.软件,2023,44(1):123-125.3 魏鹏娟.国密分组算法 SM4 研究综述 J.陕西交通科教研究,2023(1):27-31.4 冯燕强,朱泽智,冯智明.SM4 算法原理及实现 J.有线电视技术,2019(6):94-96.5 王腾飞,张海峰,许森.SM2 算法软件实现的安全性分析与防护 J.计算机应用研究,2021,38(9):2811-2815.【作者简介】杨玻(1990),男,河北邯郸人,硕士研究生,工程师,研究方向:机载嵌入式软件。(收稿日期:2023-05-08 修回日期:2023-05-26)