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

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

Info

Publication number
CN111597558B
CN111597558B CN202010323124.9A CN202010323124A CN111597558B CN 111597558 B CN111597558 B CN 111597558B CN 202010323124 A CN202010323124 A CN 202010323124A CN 111597558 B CN111597558 B CN 111597558B
Authority
CN
China
Prior art keywords
operating system
image file
verification
signature code
sig2
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010323124.9A
Other languages
English (en)
Other versions
CN111597558A (zh
Inventor
李友军
周华良
郑玉平
张吉
丁袁
刘拯
张成彬
滕春涛
张连生
朱彬彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nari Technology Co Ltd
NARI Nanjing Control System Co Ltd
Original Assignee
Nari Technology Co Ltd
NARI Nanjing Control System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nari Technology Co Ltd, NARI Nanjing Control System Co Ltd filed Critical Nari Technology Co Ltd
Priority to CN202010323124.9A priority Critical patent/CN111597558B/zh
Publication of CN111597558A publication Critical patent/CN111597558A/zh
Application granted granted Critical
Publication of CN111597558B publication Critical patent/CN111597558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于文件多镜像的嵌入式操作系统可信引导方法及系统,采用基于散列算法的文件一致性校验镜像生成机制、基于加密算法的镜像可信认证机制以及基于预校验结果的快速定位扇区的引导机制,完成嵌入式系统的可信引导和一致性备份恢复。

Description

一种基于文件多镜像的嵌入式操作系统可信引导方法及系统
技术领域
本发明属于嵌入式系统领域,具体涉及一种基于文件多镜像的嵌入式操作系统可信引导方法及系统。
背景技术
随着泛在电力物联网的建设和发展,边缘物联终端的研制提上了议事日程。边缘物联终端一般采用户外安装,且无人看管和无隔离空间的保护,容易被侵入和破坏。另外边缘物联终端的运行环境苛刻,也易造成边缘物联终端的运行异常和损坏。因此如何确保边缘物联终端的安全性和可靠性成为电力物联网建设的重要工作内容。边缘物联终端多数采用嵌入式操作系统运行业务软件。嵌入式操作系统的镜像可能被替换,导致边缘物联终端被第三方控制,造成用户数据或电力机密数据泄漏,严重时可能造成输电网络的不稳定或小区停电事故。另外边缘物联终端的操作系统也可能因环境或其他原因,导致操作系统镜像损坏,使边缘物联终端无法正常工作,影响整个电力物联网的正常运行。
嵌入式系统启动过程可分为BootLoader运行、uImage导入内存、内核初始化、应用程序运行等几个过程。
涉及操作系统安全引导的方案,大多数都采用TPM(Trusted Platform Module,可信赖平台模块)安全芯片进行操作系统镜像的认证,其中典型的操作系统引导可信的方法为一种基于TPM构建可信启动控制的方法。它通过利用TPM的NV(Non-Volatile memory,非易失性存储空间)保存可信度量的策略,利用TPM的PCR(Platform ConfigurationRegister,平台配置寄存器)保存可信度量结果,然后利用可信引导模块实现自定义的系统启动模式,度量BIOS(Basic Input Output System,基本输入输出系统)、Kernel(内核)、到OS(Operating System,操作系统)启动过程中的关键信息,然后比对度量值与基准值得到当前主机的可信状态,完成主机的完整性检测和控制,完成可信启动控制,该方法基于TPM保存可信度量策略和可信度量结果,构建系统启动时的安全可信,确保主机在操作系统启动之前的完整性,利用安全芯片存储策略选项,增强了策略数据的安全性,通过可信引导控制,提高了系统启动时的安全性,通过可配置的度量策略,增加了可信启动控制方法的可用性。
当前大多数操作系统引导方面的专利技术和解决方案,有些是针对服务器等大型系统的,不能适用嵌入式微型系统的场合;有些是采用硬件可信芯片,增加了硬件成本和处理环节,且没有可靠性的解决方案,不能全面解决可信度和可靠性的问题。例如CN110197073A公开了一种基于自校验机制的保护主机完整性的方法与系统、CN106127057A公开了一种基于TPM构建可信启动控制的方法、CN101038556公开了一种可信引导方法及其系统、CN104751063A公开了一种基于实模式技术的操作系统可信引导方法和CN109491712A公开了一种适用于VxWorks环境的可信引导方法均需要借助TPM芯片,且其只解决了可信的问题,没有解决镜像文件的可靠性问题,当引导区程序损坏后,将导致系统启动失败。
CN108021798A公开了一种基于USBkey的可信操作系统和CN101645127公开了一种建立基于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程序从预校验结果存储区读取预校验结果,选择校验结果正确的组合首先进行操作系统镜像文件和其签名码的校验。
进一步的,所述的采用散列算法和非对称密钥算法生成操作系统镜像文件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、本发明采用散列算法和非对称密钥算法,使用私钥离线计算操作系统镜像文件的签名码,且私钥离线秘密保存,不可能被在线截获,被解密的可能性很小,因此使用公钥验证通过的操作系统镜像文件,即可认定为可信赖的系统镜像文件,提高了操作系统引导的安全性;
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校验引导流程图。
具体实施方式
现结合附图和实施例进一步阐述本发明的技术方案。
嵌入式操作系统的引导是通过U-Boot导入操作系统镜像文件的方式完成的,操作系统镜像文件的正确与否是决定嵌入式系统能否按照系统设计意图运行的关键。若镜像文件被黑客替换,则整个嵌入式系统就被黑客控制,可能造成不可预料的后果。若镜像文件被损坏,则导致整个嵌入式系统启动失败,必然造成系统失效。因此本实施例就是要解决嵌入式操作系统镜像文件被替换或被损坏的风险问题,提高嵌入式系统的可信度和启动的可靠性。
本实施例要解决两个方面的问题:一是如何确保镜像文件为系统信赖的文件,而不是被修改或替换的文件;二是镜像文件损坏后,系统如何能够在信赖的环境下恢复启动。从解决上述两个问题的需求出发,遵循系统设计简化和启动时间优化的原则,设计出了基于文件多镜像的嵌入式操作系统可信引导方法及系统,采用基于散列算法的文件一致性校验镜像生成机制、基于加密算法的镜像可信认证机制以及基于预校验结果的快速定位扇区的引导机制,完成嵌入式系统的可信引导和一致性备份恢复。本实施例包括离线处理和嵌入式系统两部分,离线处理主要是指签名码离线生成模块;嵌入式系统分成两个部分,包括在线验证及备份模块和部署在U-Boot程序的在线校验和引导模块。
其中,签名码离线生成模块,是指采用离线工具对操作系统的镜像文件采用散列算法和非对称密钥算法计算出签名码的模块。该散列算法可以是美国国家安全局发布的SHA、MD5等算法,也可以是中国国密局发布的SM3算法,非对称密钥算法可以是美国国家安全局发布的RSA等算法,也可以是中国国密局发布的SM2算法。SHA、MD5或SM3算法用来计算原始文件的摘要。RSA或SM2算法采用公钥和私钥两套加密和验证体系。私钥用来对原始文件的摘要计算签名码,需要保密存储,不能公开发布。公钥是可以公开发布的,用来验证文件的真伪和完整性。采用的离线工具是指运行于个人电脑或服务器的工具软件,其主要功能是采用散列算法和非对称密钥算法,生成公钥文件,计算并输出操作系统镜像文件的签名码,该签名码用于验证操作系统镜像文件的真伪和完整性。计算出签名码后,通过工具将操作系统的镜像文件和签名码同时下载到目标嵌入式系统中。这就是整个离线生成签名码模块流程。
为了有更好的安全性,将上述离线生成签名码模块所生成的公钥编译进嵌入式系统的在线验证及备份模块和在线校验和引导模块的二进制程序中,避免公钥被非法替换,增强了系统签名和验签环节的安全性。
其中,在线验证及备份模块包括三部分,分别是镜像文件装载及备份、备份恢复和掉电前验证。镜像文件装载及备份是指在接收到个人电脑或服务器通过通信的方法下载的操作系统镜像文件和签名码后,通过散列算法和非对称密钥算法验证镜像文件的真伪和完整性。验证通过后,分四个区存储操作系统镜像文件和签名码。存储方法是镜像文件分别存储两份相同的拷贝,分别是uImage1和uImage2;签名码也存储相同的两份,分别是sig1和sig2。
备份恢复是指在系统中一直驻留的验证恢复进程,该进程利用系统空闲时间,不间断地验证uImage1和sig1、uImage2和sig2的一致性。如发现其中一组不一致,则用验证通过的备份区内容覆盖没有验证通过的区。如果上述两组验证均不通过,则继续验证uImage1和sig2、uImage2和sig1两个组合,同样,如果有任意一组验证通过,则用验证通过的备份区内容覆盖没有验证通过的区,这样确保两个备份区始终保持一致。
掉电前验证是指系统在探测到即将掉电的情况下,立即启动镜像文件的真伪验证过程,其验证过程也需要使用公钥,且需要验证uImage1和sig1、uImage2和sig2、uImage1和sig2、uImage2和sig1四组组合,并将验证结果写入可掉电保存的存储区,称之为预校验结果存储区。
其中,在线校验和引导主要是指嵌入系统上电后,首先运行U-Boot程序,U-Boot程序中存在两个模块,分别是在线校验子模块和引导模块。在线校验子模块首先读取预校验结果,选择预校验结果正确的组合首先校验,避免多次校验,加速启动过程。任何一组校验通过,则结束校验流程,并将验证过的可信的镜像文件传递给引导模块。如果通过计算,四组组合的操作系统镜像文件均验证失败,U-Boot程序将停止系统的引导,进入镜像文件装载及备份流程,等待镜像文件的装载。在线校验子模块基于预校验结果快速定位了可信引导扇区,加速了引导过程,缩减了启动时间。引导模块在收到在线校验子模块传递的操作系统镜像文件后,将镜像文件导入操作系统运行内存,并启动第一个运行进程,从而引导整个嵌入式系统进入正常运行状态,并退出引导模块,结束引导过程。如果引导模块的引导出现异常,则停止引导过程,并进入镜像文件装载及备份流程,等待镜像文件的装载。
U-Boot为固件程序,只能通过专用工具和特定的接口烧录,而一般的嵌入式系统生产时会取消U-Boot烧录接口的焊装,因此U-Boot程序不可能被替换和修改,可以认为是安全的。因此本实施例所述的在线校验模块和引导模块是U-Boot程序的一部分,无需单独加固处理,可以认为是可信赖的。
本实施例的掉电前验证模块,是操作系统的一部分,其被替换或修改,只会影响预校验的结果,而预校验结果只会影响校验模块的校验顺序和校验时间,不会影响校验结果,故其安全性不会影响方案整体安全性和有效性。
实施例:
如图1所示,本实施例主要包括离线生成签名码、镜像文件及签名码下载、镜像文件在线验证及备份、掉电前验证、备份恢复、在线校验子模块、引导模块以及镜像文件及签名存储区等几个部分。其中,离线生成签名码、镜像文件及签名码下载为后台离线人工处理的流程;镜像文件装载及备份、掉电前验证和备份恢复的部分为常驻内存的运行程序;在线校验子模块和引导模块为U-Boot程序的一部分,只在系统启动时运行一次。以下分三部分分别阐述。
参见图2,离线生成签名码,主要分为以下五步执行:
步骤1:采用散列算法计算原始文件摘要,采用非对称密钥算法生成一组公钥和私钥对,私钥存储在离线系统保密的位置,公钥对外发布;本实施例采用国密SM3的散列算法和国密SM2的非对称密钥算法。使用SM2算法生成一组公钥和私钥对。
步骤2:将公钥通过特殊的方法写入嵌入式系统的U-Boot程序区,或通过生产预烧录的方式写入嵌入式系统;
步骤3:编译生成操作系统的镜像文件uImage;
步骤4:将操作系统镜像文件uImage导入签名生成工具,计算出其签名码,并以文件存储,得到其签名码文件,将该操作系统镜像文件uImage和对应的签名码文件一同发布;
步骤5:将操作系统文件uImage和其对应的签名码文件通过网络、串口、USB口等物理介质下载到步骤2写入U-Boot的嵌入式系统中。
经过以上步骤,离线生成签名码的工作就完成了。
同U-Boot程序一样,本实施例在嵌入式系统上进行在线验证及备份和在线校验和引导的二进制程序中,均将公钥通过编译内嵌在二进制程序里。在线验证及备份包括三个独立的运行程序,分别是镜像文件装载及备份、备份恢复、掉电前验证。
如图3所示,镜像文件装载及备份的主要步骤有:
步骤1:收到离线生成签名码步骤5下载的操作系统文件uImage和签名码文件后,使用程序的公钥和操作系统镜像文件及其签名码进行签名验证,得到镜像文件的验证结果。若验证不一致,则执行步骤2,若验证一致,则执行步骤3;
步骤2:删除离线生成签名码步骤5下载的操作系统镜像文件uImage和其签名码,执行步骤6;
步骤3:删除镜像文件及签名存储区中的sig1和uImage1,并将验证通过的签名码和操作系统镜像文件uImage拷贝到存储区中的sig1和uImage1中,执行步骤4;
步骤4:删除镜像文件及签名存储区中的sig2和uImage2,并将验证通过的签名码和操作系统镜像文件uImage拷贝到存储区中的sig2和uImage2中,执行步骤5;
步骤5:删除离线生成签名码步骤5下载的操作系统镜像文件uImage和其签名码;
步骤6:等待下次校验。
如图4所示,备份恢复的主要步骤有:
步骤1:使用程序的公钥,计算uImage1和sig1的一致性,并记录结果1;
步骤2:使用程序的公钥,计算uImage2和sig2的一致性,并记录结果2;
步骤3:若结果1和结果2均为一致,则结束本次备份恢复流程,执行步骤1;若结果1为一致,则执行步骤4;若结果2为一致,则执行步骤5;若两个结果均不一致,则执行步骤6;
步骤4:将uImage1和sig1内容拷贝到uImage2和sig2中并覆盖其内容,执行步骤11;
步骤5:将uImage2和sig2内容拷贝到uImage1和sig1中并覆盖其内容,执行步骤11;
步骤6:使用程序的公钥,计算uImage1和sig2的一致性,并记录结果3,执行步骤7;
步骤7:使用程序的公钥,计算uImage2和sig1的一致性,并记录结果4,执行步骤8;
步骤8:若结果3为一致,则执行步骤9,若结果4为一致,则执行步骤10;若结果均不一致,则执行步骤12;
步骤9:将uImage1和sig2内容拷贝到uImage2和sig1中并覆盖其内容,执行步骤11;
步骤10:将uImage2和sig1内容拷贝到uImage1和sig2中并覆盖其内容,执行步骤11;
步骤11:结束本次备份恢复流程,执行步骤1;
步骤12:记录异常信息,并给出告警提示信息。
如图5所示,掉电前验证主要步骤有:
步骤1:持续监测电源电压情况,若电源电压低于给定门槛,则执行步骤2;
步骤2:使用程序的公钥,计算uImage1和sig1的一致性,并记录结果5;
步骤3:使用程序的公钥,计算uImage2和sig2的一致性,并记录结果6;
步骤4:使用程序的公钥,计算uImage1和sig2的一致性,并记录结果7;
步骤5:使用程序的公钥,计算uImage2和sig1的一致性,并记录结果8;
步骤6:将结果5、结果6、结果7、结果8存入掉电存储区,并结束该流程。
U-Boot程序中部署了在线校验子模块和引导模块,其在系统启动后,首先执行在线校验子模块,然后执行引导模块,如图6所示。
在线校验子模块的执行步骤如下:
步骤1:根据掉电前的校验结果,生成校验顺序。生成校验顺序的算法如下:第一遍排序按照结果5、结果6、结果7、结果8的顺序查询其是否正确,将一致的结果按此顺序排列。第二遍按照结果5、结果6、结果7、结果8的顺序查询,将不一致的结果按此顺序排列,并将其校验顺序排在第一遍结果之后;结果5对应uImage1和sig1组合、结果6对应uImage2和sig2的组合、结果7对应uImage1和sig2的组合、结果8对应uImage2和sig1的组合;
步骤2:按照步骤1的排序结果,顺序计算上述组合的校验结果,任意组合计算结果验证一致,则进入步骤3;若所有组合的验证结果均不一致,则执行步骤4;
步骤3:将步骤2验证一致的操作系统镜像文件传递给引导模块,退出验证流程;
步骤4:停止校验流程,停止引导流程,使程序进入异常状态,并启动镜像文件装载及备份流程;
引导模块的执行步骤如下:
步骤1:将在线校验子模块传递过来的镜像文件导入操作系统运行内存;
步骤2:启动操作系统第一个进程任务;
步骤3:退出U-Boot引导流程。

Claims (5)

1.一种基于文件多镜像的嵌入式操作系统可信引导方法,其特征在于:包括以下步骤:
步骤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:操作系统镜像文件导入操作系统运行内存后,启动第一个运行进程,引导整个嵌入式系统进入正常运行状态,结束引导过程;若引导出现异常,则停止引导过程,等待操作系统镜像文件及其签名码的再次下载;
所述的采用散列算法和非对称密钥算法生成操作系统镜像文件uImage的签名码和公钥的步骤包括:
采用散列算法计算原始操作系统镜像文件的摘要;
采用非对称密钥算法生成一组公钥和私钥对;
采用私钥计算操作系统镜像文件的摘要得到签名码。
2.根据权利要求1所述的一种基于文件多镜像的嵌入式操作系统可信引导方法,其特征在于:所述步骤5中,当目标嵌入式系统上电启动后,U-Boot程序从预校验结果存储区读取预校验结果,选择校验结果正确的组合首先进行操作系统镜像文件和其签名码的校验。
3.基于权利要求1至2任意一项所述的一种基于文件多镜像的嵌入式操作系统可信引导方法的可信引导系统,其特征在于:包括离线处理系统和目标嵌入式系统;
所述离线处理系统包括签名码离线生成模块,所述签名码离线生成模块用于生成非对称密钥算法的公私钥以及计算操作系统镜像文件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的一致性,并将各自的验证结果写入可掉电保存的预校验结果存储区;
所述在线校验和引导模块包括在线校验子模块和引导模块;
所述在线校验子模块,用于当目标嵌入式系统上电后,从预校验结果存储区读取预校验结果,选择校验结果正确的组合首先进行校验,将再次校验通过的操作系统镜像文件传递给引导模块;
所述引导模块,用于将来自在线校验子模块的操作系统镜像文件导入操作系统运行内存,启动第一个运行进程,引导整个嵌入式系统进入正常运行状态,完成系统引导。
4.根据权利要求3所述的可信引导系统,其特征在于:所述操作系统镜像文件uImage和其签名码由离线处理系统中的签名码离线生成模块生成。
5.根据权利要求4所述的可信引导系统,其特征在于:所述签名码离线生成模块基于散列算法和非对称密钥算法得到操作系统镜像文件的签名码;
所述散列算法,用于计算原始操作系统镜像文件的摘要;
所述非对称密钥算法,用于生成一组公钥和私钥对,私钥用于对操作系统镜像文件的摘要进行计算生成签名码,公钥用于编译进目标嵌入式系统所用到的二进制程序里。
CN202010323124.9A 2020-04-22 2020-04-22 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统 Active CN111597558B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010323124.9A CN111597558B (zh) 2020-04-22 2020-04-22 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010323124.9A CN111597558B (zh) 2020-04-22 2020-04-22 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统

Publications (2)

Publication Number Publication Date
CN111597558A CN111597558A (zh) 2020-08-28
CN111597558B true CN111597558B (zh) 2022-09-23

Family

ID=72187592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010323124.9A Active CN111597558B (zh) 2020-04-22 2020-04-22 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统

Country Status (1)

Country Link
CN (1) CN111597558B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7508293B2 (ja) * 2020-07-03 2024-07-01 日立Astemo株式会社 車両制御装置
CN113438087B (zh) * 2021-06-24 2022-11-01 深圳市风云实业有限公司 一种uboot下基于国密算法的系统镜像签名校验方法
CN114499892B (zh) * 2022-03-31 2022-07-19 飞腾信息技术有限公司 固件启动方法、装置、计算机设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN106598780A (zh) * 2016-11-22 2017-04-26 深圳中科讯联科技股份有限公司 一种系统备份与恢复的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN106598780A (zh) * 2016-11-22 2017-04-26 深圳中科讯联科技股份有限公司 一种系统备份与恢复的方法及装置

Also Published As

Publication number Publication date
CN111597558A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN111597558B (zh) 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统
CN108399339B (zh) 一种基于安全芯片的可信启动方法
US9898368B1 (en) Computing device with recovery mode
US11829479B2 (en) Firmware security verification method and device
CN100454322C (zh) 具有启动验证功能的信息处理装置
US8332635B2 (en) Updateable secure kernel extensions
CN111095213A (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
CN107679425B (zh) 一种基于固件和USBkey的联合全盘加密的可信启动方法
CN104951701B (zh) 一种基于usb控制器的终端设备操作系统引导的方法
CN101983375A (zh) 将密码模块绑定到平台
WO1999039475A1 (en) Cryptographic system
JPH10282884A (ja) データ処理方法およびシステム
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
JP2023512428A (ja) ハードウェアエンクレーブを使用して商用オフザシェルフプログラムバイナリを盗用から保護すること
CN102650944A (zh) 一种操作系统安全引导装置及引导方法
CN112181513B (zh) 一种基于硬件板卡的控制主机系统引导的可信度量方法
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
CN111095200A (zh) 嵌入式程序的安全升级方法、装置、设备及存储介质
US20200233676A1 (en) Bios management device, bios management system, bios management method, and bios management program-stored recording medium
CN112148314B (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
JP2007310688A (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
CN115934194A (zh) 一种控制器启动方法、装置、电子设备及储存介质
CN114925336A (zh) 一种激活软件的方法及系统
CN112463224A (zh) 一种系统启动控制方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant