logo好方法网

一种基于文件多镜像的嵌入式操作系统可信引导方法及系统


技术摘要:
本发明公开了一种基于文件多镜像的嵌入式操作系统可信引导方法及系统,采用基于散列算法的文件一致性校验镜像生成机制、基于加密算法的镜像可信认证机制以及基于预校验结果的快速定位扇区的引导机制,完成嵌入式系统的可信引导和一致性备份恢复。
背景技术:
随着泛在电力物联网的建设和发展,边缘物联终端的研制提上了议事日程。边缘 物联终端一般采用户外安装,且无人看管和无隔离空间的保护,容易被侵入和破坏。另外边 缘物联终端的运行环境苛刻,也易造成边缘物联终端的运行异常和损坏。因此如何确保边 缘物联终端的安全性和可靠性成为电力物联网建设的重要工作内容。边缘物联终端多数采 用嵌入式操作系统运行业务软件。嵌入式操作系统的镜像可能被替换,导致边缘物联终端 被第三方控制,造成用户数据或电力机密数据泄漏,严重时可能造成输电网络的不稳定或 小区停电事故。另外边缘物联终端的操作系统也可能因环境或其他原因,导致操作系统镜 像损坏,使边缘物联终端无法正常工作,影响整个电力物联网的正常运行。 嵌入式系统启动过程可分为BootLoader运行、uImage导入内存、内核初始化、应用 程序运行等几个过程。 涉及操作系统安全引导的方案,大多数都采用TPM(Trusted  Platform  Module,可 信赖平台模块)安全芯片进行操作系统镜像的认证,其中典型的操作系统引导可信的方法 为一种基于TPM构建可信启动控制的方法。它通过利用TPM的NV(Non-Volatile  memory,非 易失性存储空间)保存可信度量的策略,利用TPM的PCR(Platform  Configuration  Register,平台配置寄存器)保存可信度量结果,然后利用可信引导模块实现自定义的系统 启动模式,度量BIOS(Basic  Input  Output  System,基本输入输出系统)、Kernel(内核)、到 OS(Operating  System,操作系统)启动过程中的关键信息,然后比对度量值与基准值得到 当前主机的可信状态,完成主机的完整性检测和控制,完成可信启动控制,该方法基于TPM 保存可信度量策略和可信度量结果,构建系统启动时的安全可信,确保主机在操作系统启 动之前的完整性,利用安全芯片存储策略选项,增强了策略数据的安全性,通过可信引导控 制,提高了系统启动时的安全性,通过可配置的度量策略,增加了可信启动控制方法的可用 性。 当前大多数操作系统引导方面的专利技术和解决方案,有些是针对服务器等大型 系统的,不能适用嵌入式微型系统的场合;有些是采用硬件可信芯片,增加了硬件成本和处 理环节,且没有可靠性的解决方案,不能全面解决可信度和可靠性的问题。例如 CN110197073A公开了一种基于自校验机制的保护主机完整性的方法与系统、CN106127057A 公开了一种基于TPM构建可信启动控制的方法、CN101038556公开了一种可信引导方法及其 系统、CN104751063A公开了一种基于实模式技术的操作系统可信引导方法和CN109491712A 公开了一种适用于VxWorks环境的可信引导方法均需要借助TPM芯片,且其只解决了可信的 问题,没有解决镜像文件的可靠性问题,当引导区程序损坏后,将导致系统启动失败。 CN108021798A公开了一种基于USBkey的可信操作系统和CN101645127公开了一种 4 CN 111597558 A 说 明 书 2/8 页 建立基于EFI的可信引导系统的方法,以上方法均采用借助外部硬件认证的方案,没有涉及 镜像文件的可靠性问题。 CN104794393A公开了一种嵌入式分区映像安全认证及内核可信引导方法及其设 备和CN102830990A公开了一种计算机系统启动方法及计算机终端,以上方法均通过软件计 算的方法获取镜像,也没有解决镜像损毁的问题。 因此需要寻找既能保障引导的操作系统镜像安全可信又能解决操作系统镜像文 件损坏恢复的方法,提高嵌入式系统的安全可靠性能。
技术实现要素:
本发明目的:为解决嵌入式系统镜像的完整性和可信度问题,本发明提出了一种 基于文件多镜像的嵌入式操作系统可信引导方法及系统,涉及镜像文件预处理方法、镜像 文件存放方法、镜像文件一致性校验、镜像文件可信校验、镜像文件的快速定位和引导等, 适用于嵌入式可信计算环境,通过多区引导,降低镜像被破坏或被更换的风险,确保导入 uImage过程可靠、可信。 技术方案:一种基于文件多镜像的嵌入式操作系统可信引导方法,包括以下步骤: 步骤1:采用散列算法和非对称密钥算法生成操作系统镜像文件uImage的签名码 和公钥,将操作系统镜像文件uImage和其签名码下载到目标嵌入式系统中,并将公钥编译 进目标嵌入式系统所用到的二进制程序里; 步骤2:在目标嵌入式系统上,采用散列算法和非对称密钥算法对下载的操作系统 镜像文件uImage和其签名码进行真伪和完整性校验,若验证不一致,则删除该操作系统镜 像文件uImage及其签名码,等待下次下载;否则,将操作系统镜像文件uImage及其签名码进 行备份,得到uImage1、uImage2、sig1和sig2,分别将其存储至四个备份区; 步骤3:利用目标嵌入式系统空闲时间,不间断验证uImage1和sig1、uImage2和 sig2的一致性,当其中一组验证结果为不一致,则采用验证结果为一致的备份区内容覆盖 验证结果为不一致的备份区;当两组验证结果均为不一致,则继续验证uImage1和sig2、 uImage2和sig1的一致性,若其中一组验证结果为不一致,则采用验证结果为一致的备份区 内容覆盖验证结果为不一致的备份区;若组验证结果均为不一致,则停止引导过程,等待操 作系统镜像文件及其签名码的再次下载; 步骤4:在探测到目标嵌入式系统即将掉电的情况下,验证uImage1和sig1、 uImage2和sig2、uImage1和sig2、uImage2和sig1的一致性,并将各自的验证结果写入可掉 电保存的预校验结果存储区; 步骤5:当目标嵌入式系统上电启动后,U-Boot程序进行操作系统镜像文件和其签 名码的再次校验,若任何一组校验通过,则结束校验流程,并将验证过的操作系统镜像文件 导入操作系统运行内存;若四组组合均验证失败,则停止引导,等待操作系统镜像文件及其 签名码的再次下载; 步骤6:操作系统镜像文件导入操作系统运行内存后,启动第一个运行进程,引导 整个嵌入式系统进入正常运行状态,结束引导过程;若引导出现异常,则停止引导过程,等 待操作系统镜像文件及其签名码的再次下载。 进一步的,所述步骤5中,当目标嵌入式系统上电启动后,U-Boot程序从预校验结 5 CN 111597558 A 说 明 书 3/8 页 果存储区读取预校验结果,选择校验结果正确的组合首先进行操作系统镜像文件和其签名 码的校验。 进一步的,所述的采用散列算法和非对称密钥算法生成操作系统镜像文件uImage 的签名码和公钥的步骤包括: 采用散列算法计算原始操作系统镜像文件的摘要; 采用非对称密钥算法生成一组公钥和私钥对; 采用私钥计算操作系统镜像文件的摘要得到签名码。 本发明还公开了一种基于文件多镜像的嵌入式操作系统可信引导系统,包括离线 处理系统和目标嵌入式系统; 所述离线处理系统包括签名码离线生成模块,所述签名码离线生成模块用于生成 非对称密钥算法的公私钥以及计算操作系统镜像文件uImage的签名码; 所述目标嵌入式系统包括在线验证及备份模块和写入U-Boot程序的在线校验和 引导模块; 所述在线验证及备份模块包括原始验证备份子模块、不间断验证恢复子模块和掉 电前验证子模块; 所述原始验证备份子模块,用于对下载的操作系统镜像文件uImage和其签名码进 行真伪和完整性校验,对验证通过的操作系统镜像文件uImage及其签名码进行备份,得到 uImage1和sig1、uImage2和sig2,分别将其存储至四个备份区; 所述不间断验证恢复子模块,用于在目标嵌入式系统的空闲时间,不间断验证 uImage1和sig1、uImage2和sig2、uImage1和sig2、uImage2和sig1的一致性,采用验证通过 的备份区内容覆盖验证未通过的备份区内容; 所述掉电前验证子模块,用于当探测到目标嵌入式系统即将掉电的情况时,验证 uImage1和sig1、uImage2和sig2、uImage1和sig2、uImage2和sig1的一致性,并将各自的验 证结果写入可掉电保存的预校验结果存储区; 所述在线校验和引导模块包括在线校验子模块和引导模块; 所述在线校验子模块,用于当目标嵌入式系统上电后,从预校验结果存储区读取 预校验结果,选择校验结果正确的组合首先进行校验,将再次校验通过的操作系统镜像文 件传递给引导模块; 所述引导模块,用于将来自在线校验子模块的操作系统镜像文件导入操作系统运 行内存,启动第一个运行进程,引导整个嵌入式系统进入正常运行状态,完成系统引导。 进一步的,所述操作系统镜像文件uImage和其签名码由离线处理系统中的签名码 离线生成模块生成。 进一步的,所述签名码离线生成模块基于散列算法和非对称密钥算法得到操作系 统镜像文件的签名码; 所述散列算法,用于计算原始操作系统镜像文件的摘要; 所述非对称密钥算法,用于生成一组公钥和私钥对,私钥用于对操作系统镜像文 件的摘要进行计算生成签名码,公钥用于编译进目标嵌入式系统所用到的二进制程序里。 有益效果:本发明具有以下优点: 1、本发明采用散列算法和非对称密钥算法,使用私钥离线计算操作系统镜像文件 6 CN 111597558 A 说 明 书 4/8 页 的签名码,且私钥离线秘密保存,不可能被在线截获,被解密的可能性很小,因此使用公钥 验证通过的操作系统镜像文件,即可认定为可信赖的系统镜像文件,提高了操作系统引导 的安全性; 2、本发明通过将操作系统镜像文件和其签名码双区保存且交叉验证的方法,提高 了镜像文件或签名码被破坏情况下系统恢复的概率,四个存储区(分别是uImage1、sig1、 uImage2、sig2)中任意一个或两个(uImage1和uImage2中的一个加上sig1和sig2中的一个) 被损坏,不影响系统的正常启动,增强了系统引导的可靠性; 3、本发明利用系统的空闲时间不间断地对四个存储区进行交叉验证,如果有任意 一组验证通过,则用验证通过的备份区内容覆盖没有验证通过的区,实现了数据被破坏后 的及时恢复; 4、本发明通过掉电前预先计算四种组合(uImage1和sig1、uImage2和sig2、 uImage1和sig2、uImage2和sig1)的验证结果,并在上电验证中基于预校验结果的顺序校 验,加快校验过程,提高程序引导效率,有效缩短引导过程,特别是缩短其中一个存储区损 坏情况下的引导过程; 5、本发明在提高系统引导安全性的同时,无需引入新的硬件系统,节约了系统硬 件成本。 附图说明 图1为本发明的嵌入式操作系统可信引导流程图; 图2为本发明的离线生成签名码流程图; 图3为本发明的镜像文件装载及备份流程图; 图4为本发明的备份恢复流程图; 图5为本发明的掉电前验证流程图; 图6为本发明的U-Boot校验引导流程图。
下载此资料需消耗2积分,
分享到:
收藏