CN104156659B - 一种嵌入式系统的安全启动方法 - Google Patents
一种嵌入式系统的安全启动方法 Download PDFInfo
- Publication number
- CN104156659B CN104156659B CN201410401579.2A CN201410401579A CN104156659B CN 104156659 B CN104156659 B CN 104156659B CN 201410401579 A CN201410401579 A CN 201410401579A CN 104156659 B CN104156659 B CN 104156659B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- bootstrap loader
- kernel
- startup
- hash
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种嵌入式系统的安全启动方法,涉及嵌入式系统的启动安全领域,特别涉及一种基于密码学的方法对镜像进行验证技术以及通过硬件设计来辅助该方法的实现。在芯片设计时通过在芯片内部提供一个安全系统固件,同时利用非对称加密技术对需要加载的镜像进行签名,保障镜像的可信与完整的同时做到镜像可更新。本发明基于硬件的角度来保障安全,但不需要增加额外硬件,大大简化硬件设计难度以及开销,保障安全启动完整性的前提下降低开发难度。
Description
技术领域
本发明涉及嵌入式系统的启动安全领域,特别涉及一种基于密码学的方法对镜像进行验证技术以及通过硬件设计来辅助该方法的实现。
背景技术
信息技术的高速发展,带来了信息产业的空前繁荣;但危害信息安全的事件也不断发生,信息安全形势日益严峻。当前比较流行的系统安全保障技术有强制强制访问控制技术、以及加密技术,但这些都是运行于系统上层,他们能够实现安全机制的前提是系统本身是安全的,如果系统自身在启动时就由于被恶意程序篡改等原因进入一种不可信的状态,则基于此系统的应用程序和上层安全机制都是不可信的。因此,系统的安全启动技术已逐步被引起重视。
安全的功能是整个系统的核心,可信计算组织注重计算机安全特性,提出以安全芯片作为硬件安全保证计算机安全的思想。硬件结构的安全和操作系统的安全是信息系统安全的基础,只有从信息系统的硬件和软件的底层采取安全措施,从整体上采取措施,才能有效地确保信息系统的安全。
为了确保系统启动安全,安全领域中采取了相应的保障机制,大部分按照可信计算组织的思想从硬件的角度出发,加上加密技术来实现,其中涌现的各种技术主要分为两类:一类是需要增加额外硬件辅助,如添置PC机领域的可信平台模块以及移动设备终端的移动可信模块这一类的安全芯片,首先在外部安全芯片中存储相应的密钥,然后将镜像加载到内存中,用安全芯片中与之对应的密钥进行解密,然后验证其完整性,验证通过则继续往下进行,每一阶段都是有安全芯片的参与及验证;另一类是设计只读的块设备存储启动镜像,启动时从该只读设备中读取未受更改的镜像,只读设备在出厂时镜像一次性烧写,以后的启动中镜像都无法被篡改,可验证其启动镜像的完整性。此类两种措施一是增加了额外的硬件开销,对于成本控制严格的设备负担太大,二是需要加载的镜像一次性烧写,无法实现正常的系统更新及镜像更新。
发明内容
针对上述问题,本发明提出一种嵌入式系统的安全启动方法,该方法是指基于镜像可信及完整性检测作为支撑,达到检测启动镜像是否安全的目的。
该嵌入式系统的安全启动方法具体步骤如下:
A.根据启动流程,在服务器端通过密钥生成器为启动引导加载程序镜像和内核镜像的加密及检测产生非对称密钥对,所述非对称密钥对包含加密启动引导加载程序镜像私钥及解密启动引导加载程序镜像公钥、加密内核镜像私钥及解密内核镜像公钥;
B.设计内部系统固件:根据内部系统固件功能来设计固件代码,主要代码模块包括加载启动引导加载程序镜像代码、验证启动引导加载程序镜像可信性完整性代码及步骤A中生成的解密启动引导加载程序镜像公钥;
C.构建“信任根”:在所需的芯片中内置步骤B中所述的内部系统固件,作为上电启动第一段代码;
D.对启动引导加载程序镜像的源码中添加具有检验内核镜像可信性及完整性的代码模块和解密内核镜像公钥;
E.对上述启动引导加载程序镜像的源码编译生成初始启动引导加载程序镜像,然后用hash算法对该初始启动引导加载程序镜像进行hash计算求得其hash值;
F.将上述步骤E中计算得出的hash值通过步骤A中产生的加密启动引导加载程序镜像私钥对其进行加密,然后将该加密信息作为头部与初始启动引导加载程序镜像链接生成由受信方签名的启动引导加载程序镜像;
G.对内核源码编译生成内核初始镜像,然后用hash算法对该内核初始镜像进行hash计算求得其hash值;
H.将上述步骤G中计算得出的hash值通过步骤A中产生的加密内核镜像私钥对其进行加密,然后将该加密信息作为头部与内核初始镜像链接生成由受信方签名的内核镜像;
I.将上述步骤F和步骤H生成的启动引导加载程序镜像及内核镜像烧写到嵌入式系统外部存储器中;
J.系统上电,执行的第一段代码为系统内部固件,做简单的板级初始化;
K.由系统内部固件代码从外部存储器中加载待检验的启动引导加载程序镜像到内存中;
L.将启动引导加载程序镜像分解为头部校验信息及尾部可执行镜像,对尾部可执行镜像重新计算一次hash值;
M.用步骤A中解密启动引导加载程序镜像公钥对启动引导加载程序镜像头部校验信息进行解密,能正确解密则验证其可信性,得到解密后校验hash值,否则镜像不可信终止启动;
N.将步骤L中的hash值与步骤M中的hash值进行对比,对比正确则说明镜像完整,继续启动,否则镜像不完整终止启动;
O.将CPU执行权交给上述验证通过的启动引导加载程序镜像;
P.由启动引导加载程序镜像从外部存储器中加载待检验的内核镜像到内存中;
Q.将内核镜像分解为头部校验信息及尾部可执行镜像,对尾部可执行镜像重新计算一次hash值;
R.用步骤A中解密内核镜像公钥对内核镜像头部校验信息进行解密,能正确解密则验证其可信性,得到解密后校验hash值,否则镜像不可信终止启动;
S.将步骤Q中的hash值与步骤R中的hash值进行对比,如果对比正确则说明镜像完整,继续启动,否则镜像不完整终止启动;
T.将CPU执行权交给上述验证通过的内核镜像;
U.系统启动完毕。
其具体原理为:
所述内部系统固件,作为“信任根”在上电启动第一阶段执行。在芯片设计时,内置一块系统固件区域来存储该内部系统固件镜像,该镜像在出厂时一次性烧写,且以后无法再次更改,作为固化程序,即该系统固件区域作为只读性系统固件,该镜像作为只读性镜像,该镜像的代码的编写及生成需要发布该嵌入式产品可信方来做,所以容易验证其可信性及完整性,然后由该阶段代码从外部存储中加载下一启动阶段镜像,并验证其可信及完整性。
所述非对称密钥对,是根据非对称密钥生成器对每个启动阶段生成相应的密钥对,密钥对包含公钥及私钥,私钥用于加密每一阶段镜像,然后公钥存储在对应镜像中用于对下一阶段镜像进行解密,验证镜像的可信性及解密镜像头部信息,只要该镜像是由受信方加密然后发布,就能由内部公钥进行解密,做到镜像可更新;同时选取一对非对称密钥作为根密钥,将根密钥中的公钥作为“根公钥”存储在内部系统固件中。
所述受信方签名的启动引导加载程序镜像和受信方签名的内核镜像,是根据启动流程的不同,为每一启动阶段镜像签名。嵌入式启动流程正常一般分为启动引导加载程序镜像和内核镜像,且该两个阶段镜像都需要由受信方签名。启动引导加载程序和内核的镜像存储在外部存储设备中。因此内部系统固件代码应该验证启动引导加载程序的完整性。如果启动引导加载程序完整性检查通过,即启动引导加载程序是可信的,且被包含在信赖域。然后启动引导加载程序验证内核镜像的完整性,逐级向下验证,从而完成整个启动过程的完整性检测流程。
综上所述:本发明提出的嵌入式系统安全启动方法可保障系统镜像启动安全无篡改。同样基于硬件的角度来保障安全,但不需要增加额外硬件,只需在芯片设计时通过在芯片内部提供一个安全系统固件即可,大大简化硬件设计难度以及开销,保障安全启动完整性的前提下降低开发难度;同时利用非对称加密技术对需要加载的镜像进行签名,保障镜像的可信与完整的同时做到镜像可更新。
附图说明
图1安全启动过程框图;
图2安全启动验证流程图;
图3安全镜像制作图;
图4安全镜像验证图;
具体实施方式
接下来依次结合附图1、附图2、附图3以及附图4对本发明申请的技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
参考附图1,为本申请实施案例所使用的一种安全启动过程图。
标识111:内部系统固件中的检测代码,该检测代码主要为检测启动引导加载程序镜像的可信性及完整性;
标识112:内部系统固件中的解密公钥,该解密公钥为用于制作镜像过程中对启动引导加载程序镜像头部信息进行加密的私钥配对的公钥,只能解开下一阶段启动引导加载程序镜像头部的签名信息。
标识121:启动引导加载程序中的检测代码,该检测代码主要为检测内核镜像的可信性及完整性;
标识122:启动引导加载程序中的解密公钥,该解密公钥为用于制作镜像过程中对内核镜像头部信息进行加密的私钥配对的公钥,只能解开下一阶段内核镜像头部的签名信息。
步骤110:执行在芯片内部的系统固件;
步骤120:通过验证后开始执行启动引导加载程序镜像;
步骤130:通过验证后开始执行内核镜像。
该流程相比普通嵌入式设备流程多一个阶段,即步骤110,充当整个验证过程的“信任根”。
参考附图2,为本申请实施案例所使用的一种安全启动验证流程图。
该流程框图主要包括三部分:
标识210:执行在内部系统固件区域;
标识220、:执行在启动引导加载程序区域;
标识230:执行在内核区域。
根据启动要求,执行在内部系统固件区域(标识210)中,主要包括如下几个步骤:步骤211、步骤212、步骤213、步骤214、步骤215、步骤216。
步骤211:为上电最初始执行代码。
步骤212:做一些简单的硬件初始化,如初始化系统时钟,设置启动设备,为步骤213的实现做准备。
步骤213:从外部存储设备拷贝启动引导加载程序镜像到静态随机存取存储器中,为步骤214的实现做准备。
步骤214:验证在静态随机存取存储器中的启动引导加载程序镜像的可信性及完整性,通过用内部系统固件中的解密公钥(标识112)解密启动引导加载程序镜像的头部,同时调用内部系统固件中的检测代码(标识111)来完成整个验证操作。
根据步骤214的操作,会有两种情况:一种是验证通过,一种是验证不通过,根据验证的情况分别执行步骤215、步骤216。
步骤215:为步骤214中验证不通过后执行的操作,主要终止继续启动。
步骤216:为步骤214中验证通过后执行的操作,主要跳转到刚刚验证通过后的启动引导加载程序镜像中执行。
根据启动要求,执行在启动引导加载程序区域(标识220)中,主要包括如下几个步骤:步骤221、步骤222、步骤223、步骤224、步骤225、步骤226。
步骤221:由步骤216执行跳转之后,开始执行启动引导加载程序镜像代码。
步骤222:设置系统时钟,做板级硬件硬件初始化,如初始化外部内存即动态随机存取存储器,设置启动设备,为步骤223的实现做准备。
步骤223:从外部存储设备拷贝内核镜像到动态随机存取存储器中,为步骤224的实现做准备。
步骤224:验证在动态随机存取存储器中的镜像的可信性及完整性,通过用启动引导加载程序中的解密公钥(标识122)解密内核镜像的头部,同时调用启动引导加载程序中的检测代码(标识121)来完成整个验证操作。
根据步骤224的操作,会有两种情况:一种是验证通过,一种是验证不通过,根据验证的情况分别执行步骤225、步骤226。
步骤225:为步骤224中验证不通过后执行的操作,主要终止继续启动。
步骤226:为步骤224中验证通过后执行的操作,主要跳转到刚刚验证通过内核镜像中执行。
根据启动流程,最后一个阶段为执行在内核区域(标识230),主要包含步骤231、步骤232、步骤233。
步骤231:由步骤226执行跳转之后,开始执行内核镜像代码。
步骤232:正常的内核镜像执行过程,开始加载文件系统。
步骤233:内核正常执行,加载完文件系统后表示整个镜像加载启动过程执行完毕。
参考附图3,为本申请实施案例所使用的一种安全启动镜像制作图。
根据参考附图1的启动流程框架,各阶段需要相对应的镜像执行文件,实现安全启动完整性验证镜像的制作如下:
内部系统固件作为安全启动架构新添的阶段,完成的功能类似于部分启动引导加载程序功能,编写相关源代码,主要实现如下相关操作:禁用看门狗定时器、初始化指令缓存、初始化堆栈区域、初始化块设备复制功能、初始化锁相环和设置系统时钟、复制相关镜像到内部存储器区域、验证镜像的可信性以及完整性。其中验证模块主要包含如前所述内部系统固件中的检测代码(标识111)与内部系统固件中的解密公钥(标识112)。该镜像不涉及被检验,制作时可以直接通过源码编译生成,然后将生成的镜像文件在出厂前烧写即可。
为了实现后续启动镜像完整性认证,需要对后续启动相关源码编译后生成的镜像重新制作一遍。步骤依次为:
①首先根据嵌入式设备要求准备好相关源码,进行编译后生成镜像文件(标识302);
②在本地计算机中对镜像文件(标识302)采取hash引擎(标识301)进行hash计算,该hash引擎为公共hash算法,如MD5、SHA-1、SHA-256等;
③得到与可执行镜像对应的hash结果:可执行镜像hash摘要(标识304);
④然后用受信方提供的私钥(标识303)对可执行镜像hash摘要(标识304)进行非对称算法签名加密,加密算法可采取公共非对称算法,如RSA非对称公钥加密算法;
⑤得到加密后的结果(标识305);
⑥然后加密后的结果(标识305)与原来最初的镜像(标识302)重新链接生成最终的镜像文件(标识306)。
具体实施例在启动引导加载程序及内核阶段实施方法如下:
根据上述提到的,在启动引导加载程序源码中添加检测代码及解密公钥,即如前所述启动引导加载程序中的检测代码(标识121)与启动引导加载程序中的解密公钥(标识122),然后编译生成可执行启动引导加载程序镜像。在本地计算机上用公开hash算法对可执行启动引导加载程序镜像进行hash计算,得到可执行启动引导加载程序镜像hash摘要,然后用受信方提供的且与上一阶段代码中存放的公钥即内部系统固件中的解密公钥(标识112)相匹配的私钥对可执行启动引导加载程序镜像hash摘要进行签名加密,得到加密后的可执行启动引导加载程序镜像hash摘要,将加密后的可执行启动引导加载程序镜像hash摘要与可执行启动引导加载程序镜像重新链接生成启动引导加载程序镜像,该启动引导加载程序镜像为最终生成的启动引导加载阶段的镜像文件。
根据启动分析,内核作为启动流程中最后一个阶段,内核镜像中可以不含检测完整性代码及解密公钥。对内核源代码进行编译,链接打包生成可执行内核镜像。在本地计算机上用公开hash算法对可执行内核镜像进行hash计算,得到可执行内核镜像hash摘要,然后用受信方提供的且与上一阶段代码中存放的公钥即启动引导加载程序中的解密公钥(标识122)相匹配的私钥对可执行内核镜像hash摘要进行签名加密,得到加密后的可执行内核镜像hash摘要,将加密后的可执行内核镜像hash摘要与可执行内核镜像重新链接生成内核镜像,该内核镜像为最终生成的内核阶段的镜像文件。
参考附图4,为本申请实施案例所使用的一种安全启动镜像验证图。
为了实现启动镜像完整性验证,需要对下一阶段的镜像进行验证其来源与完整性,上电启动后系统执行检测完整性工作来保证启动时镜像的安全无篡改行为,验证过程依次为:
①首先根据嵌入式设备启动流程要求,先将下一阶段镜像(标识401)拷贝到相应内存中;
②然后将下一阶段镜像(标识401)解析成两部分,一部分为镜像头部:加密后的可执行镜像hash摘要(标识403),一部分为镜像尾部:可执行镜像(标识404);
③首先根据正在执行域中存放的公钥(标识402)对可执行镜像hash摘要(标识403)进行解密;
④如果能够解密则说明该镜像头部数据来源可信,且可以得到解密后的结果:可执行镜像hash摘要(标识406),如果不能解密则说明该镜像来源非法不可信,执行相关验证失败操作,如关机等;
⑤然后对下一阶段镜像(标识401)的尾部可执行镜像(标识404)用hash引擎(标识405)进行hash计算,该hash引擎为公开hash算法且必须与制作镜像过程中的hash引擎(标识301)采取的算法一致,得到可执行镜像hash摘要-T(标识407);
⑥将可执行镜像hash摘要-T(标识407)与前面解密操作的结果(标识406)进行对比;
⑦如果两个hash值相同,则说明该镜像为来源可信且完整的,验证通过;如果两个hash值不相同则说明该镜像不完整,执行相关验证失败操作,如关机等。
具体实施例验证过程在内部系统固件及启动引导加载程序阶段实施方法如下:
首先内部系统固件镜像作为受信镜像上电启动无需被验证,且由该阶段验证下一阶段启动引导加载程序镜像的完整性。
首先将启动引导加载程序镜像拷贝到静态随机存取存储器中,然后将启动引导加载程序镜像解析成头部即加密后的可执行启动引导加载程序镜像hash摘要与尾部即可执行启动引导加载程序镜像两部分,用与制作启动引导加载程序镜像时用到的私钥相对应的对应的公钥即内部系统固件中的解密公钥(标识112)验证解密,根据非对称密钥原理,如果能够对加密后的可执行启动引导加载程序镜像hash摘要解密,则说明该镜像头部的来源为可信的,同时得到解密的结果为可执行启动引导加载程序镜像hash摘要,如果不能解密,则说明该镜像来源不合法,不具备来源可信状态,将采取验证失败操作。同时对启动引导加载程序镜像的尾部可执行启动引导加载程序镜像用与制作启动引导加载程序镜像时用到的hash加密算法相同的公开hash算法进行hash计算,得到重新计算的hash值:可执行启动引导加载程序镜像hash摘要-T,如果可执行启动引导加载程序镜像hash摘要-T与头部可执行启动引导加载程序镜像hash摘要相等,则说明签名加密的hash值为尾部镜像的hash结果,因此可以确定整个镜像的可信性以及完整性,如果不相等,则说明该镜像遭到篡改,不具备完整性特性,将采取验证失败操作。
经过上级验证,可以确认启动引导加载程序的可信性以及完整性,现在将信任权交给启动引导加载程序,由该阶段验证下一阶段内核镜像的完整性。首先将内核镜像拷贝到动态随机存取存储器中,然后将内核镜像解析成头部即加密后的可执行内核镜像hash摘要与尾部即可执行内核镜像两部分,用与制作内核镜像时用到的私钥相对应的对应的公钥即启动引导加载程序中的解密公钥(标识122)验证解密,根据非对称密钥原理,如果能够对加密后的可执行内核镜像hash摘要解密,则说明该镜像头部的来源为可信的,同时得到解密的结果可执行内核镜像hash摘要,如果不能解密,则说明该镜像来源不合法,不具备来源可信状态,将采取验证失败操作。同时对内核镜像的尾部可执行内核镜像用与制作内核镜像时用到的hash加密算法相同的公开hash算法进行hash计算,得到重新计算的hash值:可执行内核镜像hash摘要-T,如果可执行内核镜像hash摘要-T与头部可执行内核镜像hash摘要相等,则说明签名加密的hash值为尾部镜像的hash结果,因此可以确定整个镜像的可信性以及完整性,如果不相等,则说明该镜像遭到篡改,不具备完整性特性,将采取验证失败操作。
经过上级验证,可以确认内核镜像的来源以及完整性,如果验证通过,则完成整个安全启动完整性认真过程,达到镜像来源可信且保证镜像启动时的完整,从而达到安全启动的目的。
通过本发明的实施例,可以包障在正常启动过程中镜像安全完整性得到验证,确保启动过程中的镜像可信性及完整性,来达到安全启动的技术效果。
Claims (1)
1.一种嵌入式系统的安全启动方法,其特征在于包含如下步骤:
A.根据启动流程,在服务器端通过密钥生成器为启动引导加载程序镜像和内核镜像的加密及检测产生非对称密钥对,所述非对称密钥对包含加密启动引导加载程序镜像私钥及解密启动引导加载程序镜像公钥、加密内核镜像私钥及解密内核镜像公钥;
B.设计内部系统固件:根据内部系统固件功能来设计固件代码,主要代码模块包括加载启动引导加载程序镜像代码、验证启动引导加载程序镜像可信性完整性代码及步骤A中生成的解密启动引导加载程序镜像公钥;
C.构建“信任根”:在所需的芯片中内置步骤B中所述的内部系统固件,作为上电启动第一段代码;
D.对启动引导加载程序镜像的源码中添加具有检验内核镜像可信性及完整性的代码模块和解密内核镜像公钥;
E.对上述启动引导加载程序镜像的源码编译生成初始启动引导加载程序镜像,然后用hash算法对该初始启动引导加载程序镜像进行hash计算求得其hash值;
F.将上述步骤E中计算得出的hash值通过步骤A中产生的加密启动引导加载程序镜像私钥对其进行加密,然后将该加密信息作为头部与初始启动引导加载程序镜像链接生成由受信方签名的启动引导加载程序镜像;
G.对内核源码编译生成内核初始镜像,然后用hash算法对该内核初始镜像进行hash计算求得其hash值;
H.将上述步骤G中计算得出的hash值通过步骤A中产生的加密内核镜像私钥对其进行加密,然后将该加密信息作为头部与内核初始镜像链接生成由受信方签名的内核镜像;
I.将上述步骤F和步骤H生成的启动引导加载程序镜像及内核镜像烧写到嵌入式系统外部存储器中;
J.系统上电,执行的第一段代码为系统内部固件,做简单的板级初始化;
K.由系统内部固件代码从外部存储器中加载待检验的启动引导加载程序镜像到内存中;
L.将启动引导加载程序镜像分解为头部校验信息及尾部可执行镜像,对尾部可执行镜像重新计算一次hash值;
M.用步骤A中解密启动引导加载程序镜像公钥对启动引导加载程序镜像头部校验信息进行解密,能正确解密则验证其可信性,得到解密后校验hash值,否则镜像不可信终止启动;
N.将步骤L中的hash值与步骤M中的hash值进行对比,对比正确则说明镜像完整,继续启动,否则镜像不完整终止启动;
O.将CPU执行权交给上述验证通过的启动引导加载程序镜像;
P.由启动引导加载程序镜像从外部存储器中加载待检验的内核镜像到内存中;
Q.将内核镜像分解为头部校验信息及尾部可执行镜像,对尾部可执行镜像重新计算一次hash值;
R.用步骤A中解密内核镜像公钥对内核镜像头部校验信息进行解密,能正确解密则验证其可信性,得到解密后校验hash值,否则镜像不可信终止启动;
S.将步骤Q中的hash值与步骤R中的hash值进行对比,如果对比正确则说明镜像完整,继续启动,否则镜像不完整终止启动;
T.将CPU执行权交给上述验证通过的内核镜像;
U.系统启动完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410401579.2A CN104156659B (zh) | 2014-08-14 | 2014-08-14 | 一种嵌入式系统的安全启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410401579.2A CN104156659B (zh) | 2014-08-14 | 2014-08-14 | 一种嵌入式系统的安全启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104156659A CN104156659A (zh) | 2014-11-19 |
CN104156659B true CN104156659B (zh) | 2017-02-01 |
Family
ID=51882156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410401579.2A Expired - Fee Related CN104156659B (zh) | 2014-08-14 | 2014-08-14 | 一种嵌入式系统的安全启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156659B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704730A (zh) * | 2017-09-15 | 2018-02-16 | 成都驰通数码系统有限公司 | 一种电子设备内嵌软件自加密方法 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989306B (zh) * | 2015-02-13 | 2020-04-28 | 中兴通讯股份有限公司 | 操作系统的文件签名方法、文件校验方法及装置 |
CN106295318A (zh) * | 2015-06-05 | 2017-01-04 | 北京壹人壹本信息科技有限公司 | 一种系统启动引导方法和装置 |
CN105243339B (zh) * | 2015-10-19 | 2018-01-19 | 广东欧珀移动通信有限公司 | 一种刷机系统镜像的签名方法和装置 |
CN105320891B (zh) * | 2015-11-18 | 2018-10-09 | 北京微智全景信息技术有限公司 | 一种计算机安全加载系统镜像的方法及装置 |
CN106934289A (zh) * | 2015-12-30 | 2017-07-07 | 北京展讯高科通信技术有限公司 | 校验及形成签名映像的方法 |
CN109074090A (zh) * | 2016-02-29 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 无人机硬件架构 |
CN105721508A (zh) * | 2016-04-25 | 2016-06-29 | 南京大学 | 一种led异步控制卡的信息安防监控方法 |
CN107977233B (zh) | 2016-10-19 | 2021-06-01 | 华为技术有限公司 | 内核镜像文件快速加载方法和装置 |
CN108287999A (zh) * | 2017-01-10 | 2018-07-17 | 厦门雅迅网络股份有限公司 | 一种基于TrustZone的系统可信启动方法 |
EP3382590B1 (en) * | 2017-03-31 | 2019-10-16 | OMRON Corporation | Method for initializing a computerized system and computerized system against rollback attacks |
CN108345805B (zh) * | 2017-05-05 | 2022-09-02 | 清华大学 | 验证固件的方法及装置 |
CN107315962A (zh) * | 2017-07-26 | 2017-11-03 | 北京计算机技术及应用研究所 | 一种嵌入式平台的可信处理模块 |
CN109426523B (zh) * | 2017-08-18 | 2022-12-06 | 厦门雅迅网络股份有限公司 | 基于trustzone技术的双系统启动方法及计算机可读存储介质 |
CN108154025A (zh) * | 2017-12-22 | 2018-06-12 | 北京四达时代软件技术股份有限公司 | 嵌入式设备启动的方法、应用程序镜像处理的方法及装置 |
CN108399339B (zh) * | 2018-02-12 | 2021-09-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
CN110532777B (zh) * | 2018-05-24 | 2023-08-29 | 霍尼韦尔环境自控产品(天津)有限公司 | 安全启动系统及方法、终端设备及其核心系统 |
CN108959129B (zh) * | 2018-07-12 | 2021-08-24 | 北京航空航天大学 | 一种基于硬件的嵌入式系统机密性保护方法 |
WO2020037612A1 (zh) * | 2018-08-23 | 2020-02-27 | 深圳市汇顶科技股份有限公司 | 嵌入式程序的安全引导方法、装置、设备及存储介质 |
CN109583189B (zh) * | 2018-12-13 | 2020-08-11 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN109840409B (zh) * | 2018-12-29 | 2021-09-17 | 北京深思数盾科技股份有限公司 | 核心板和核心板启动方法 |
CN111443950A (zh) * | 2018-12-29 | 2020-07-24 | 北京奇虎科技有限公司 | 车载系统安全启动方法及车载系统 |
CN109814934B (zh) * | 2019-01-31 | 2022-05-06 | 安谋科技(中国)有限公司 | 数据处理方法、装置、可读介质和系统 |
CN110008689A (zh) * | 2019-04-15 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种bmc启动方法、装置、设备及计算机可读存储介质 |
CN110324315B (zh) * | 2019-05-30 | 2021-11-30 | 北京百度网讯科技有限公司 | 离线鉴权系统及其方法 |
CN110532783A (zh) * | 2019-08-21 | 2019-12-03 | 西安四叶草信息技术有限公司 | 数据防篡改方法、装置、设备和存储介质 |
CN110555309A (zh) * | 2019-09-10 | 2019-12-10 | 深圳市英博超算科技有限公司 | 启动方法、装置、终端以及计算机可读存储介质 |
CN110737902B (zh) * | 2019-10-10 | 2022-02-11 | 北京智芯微电子科技有限公司 | 嵌入式终端及其可信安全模块的固件设计方法 |
CN110740041B (zh) * | 2019-10-16 | 2022-04-15 | 北京仁信证科技有限公司 | 基于可信计算模块的嵌入式系统安全启动与可信度量的方法 |
CN110730079B (zh) * | 2019-10-16 | 2023-06-02 | 北京信长城科技发展有限公司 | 基于可信计算模块的嵌入式系统安全启动和可信度量的系统 |
CN111045744B (zh) * | 2019-12-17 | 2024-03-08 | 全球能源互联网研究院有限公司 | 一种系统的可信验证启动方法及装置 |
CN111143854B (zh) * | 2019-12-25 | 2021-11-30 | 眸芯科技(上海)有限公司 | 芯片的安全启动装置、系统及方法 |
CN111597558B (zh) * | 2020-04-22 | 2022-09-23 | 国电南瑞科技股份有限公司 | 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统 |
CN111741068B (zh) * | 2020-05-20 | 2022-03-18 | 中国电子科技网络信息安全有限公司 | 一种数据加密密钥传输方法 |
CN112069506B (zh) * | 2020-09-16 | 2024-02-23 | 地平线(上海)人工智能技术有限公司 | 一种安全启动方法和装置 |
CN112463224A (zh) * | 2020-11-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种系统启动控制方法、装置、设备及可读存储介质 |
CN112379898B (zh) * | 2020-12-01 | 2022-08-09 | 上海爱信诺航芯电子科技有限公司 | 一种用于v2x设备的软件安全启动方法及系统 |
CN112702740B (zh) * | 2020-12-24 | 2023-04-07 | 国网浙江省电力有限公司经济技术研究院 | 一种LoRa物联网系统的数据安全传输方法 |
CN115130143A (zh) * | 2021-03-25 | 2022-09-30 | 华为技术有限公司 | 一种安全启动的方法及装置 |
CN113553109A (zh) * | 2021-07-12 | 2021-10-26 | 华东师范大学 | 一种用于校验操作系统前置软件的方法 |
CN113553108A (zh) * | 2021-07-12 | 2021-10-26 | 华东师范大学 | 一种用于校验操作系统前置软件的系统 |
CN113485757A (zh) * | 2021-07-22 | 2021-10-08 | 北京青云科技股份有限公司 | 一种系统启动过程中的解密方法、装置、设备及存储介质 |
CN113722720B (zh) * | 2021-10-29 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种系统启动方法及相关装置 |
CN114417360A (zh) * | 2022-03-28 | 2022-04-29 | 青岛鼎信通讯股份有限公司 | 一种应用于嵌入式电力设备的系统安全启动方法 |
CN114816549B (zh) * | 2022-05-27 | 2024-04-02 | 国网电力科学研究院有限公司 | 一种保护bootloader及其环境变量的方法及系统 |
CN116070217A (zh) * | 2023-02-22 | 2023-05-05 | 上海威固信息技术股份有限公司 | 一种用于芯片模块的安全启动系统及其启动方法 |
CN117932623A (zh) * | 2024-03-22 | 2024-04-26 | 中国人民解放军国防科技大学 | 一种操作系统安全引导方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184366A (zh) * | 2011-06-07 | 2011-09-14 | 郑州信大捷安信息技术有限公司 | 基于SoC芯片外部程序安全访问架构及控制方法 |
CN103065082A (zh) * | 2012-07-04 | 2013-04-24 | 北京京航计算通讯研究所 | 基于Linux系统的软件安全防护方法 |
-
2014
- 2014-08-14 CN CN201410401579.2A patent/CN104156659B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184366A (zh) * | 2011-06-07 | 2011-09-14 | 郑州信大捷安信息技术有限公司 | 基于SoC芯片外部程序安全访问架构及控制方法 |
CN103065082A (zh) * | 2012-07-04 | 2013-04-24 | 北京京航计算通讯研究所 | 基于Linux系统的软件安全防护方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704730A (zh) * | 2017-09-15 | 2018-02-16 | 成都驰通数码系统有限公司 | 一种电子设备内嵌软件自加密方法 |
CN107704730B (zh) * | 2017-09-15 | 2021-08-10 | 成都驰通数码系统有限公司 | 一种电子设备内嵌软件自加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104156659A (zh) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104156659B (zh) | 一种嵌入式系统的安全启动方法 | |
CN109313690B (zh) | 自包含的加密引导策略验证 | |
US8250373B2 (en) | Authenticating and verifying an authenticable and verifiable module | |
US9830456B2 (en) | Trust transference from a trusted processor to an untrusted processor | |
AU2009233685B2 (en) | Method and apparatus for incremental code signing | |
EP2659373B1 (en) | System and method for secure software update | |
US9953166B2 (en) | Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor | |
CN107463806B (zh) | 一种Android应用程序安装包的签名和验签方法 | |
AU2012205457B2 (en) | System and method for tamper-resistant booting | |
CN103795717B (zh) | 一种云计算平台完整性证明方法及其系统 | |
US8166304B2 (en) | Support for multiple security policies on a unified authentication architecture | |
CN105718807B (zh) | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 | |
CN108140093A (zh) | 使用用于设备的硬件信任根来迁移秘密 | |
CN110990084B (zh) | 芯片的安全启动方法、装置、存储介质和终端 | |
US20050188214A1 (en) | Authenticatable software modules | |
US20170262657A1 (en) | Method and device for providing verifying application integrity | |
CN104756120B (zh) | 存储和访问数据 | |
US20170262658A1 (en) | Method and device for providing verifying application integrity | |
CN109814934B (zh) | 数据处理方法、装置、可读介质和系统 | |
Gora et al. | A flexible design flow for software IP binding in FPGA | |
CN112511306A (zh) | 一种基于混合信任模型的安全运行环境构建方法 | |
KR101968382B1 (ko) | Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법 | |
KR101954439B1 (ko) | 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법 | |
CN114448794B (zh) | 一种基于芯片可信根对固件进行安全升级的方法及装置 | |
CN111967019A (zh) | 一种基于tee物联网安全启动实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170201 Termination date: 20190814 |
|
CF01 | Termination of patent right due to non-payment of annual fee |