CN112632562A - 设备启动方法、设备管理方法和嵌入式设备 - Google Patents
设备启动方法、设备管理方法和嵌入式设备 Download PDFInfo
- Publication number
- CN112632562A CN112632562A CN202011585531.3A CN202011585531A CN112632562A CN 112632562 A CN112632562 A CN 112632562A CN 202011585531 A CN202011585531 A CN 202011585531A CN 112632562 A CN112632562 A CN 112632562A
- Authority
- CN
- China
- Prior art keywords
- system firmware
- firmware code
- mode
- target device
- processor chip
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000007726 management method Methods 0.000 title abstract description 10
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000012795 verification Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种设备启动方法、设备管理方法和嵌入式设备,该设备启动方法包括:在目标设备的启动过程中,在所述目标设备的处理器芯片进入机器模式时,启动所述目标设备的引导程序,所述处理器芯片是采用RISC‑V架构的处理器;通过所述引导程序对所述目标设备的系统固件代码进行验证;在所述系统固件代码通过验证时,将所述处理器芯片的当前特权模式从所述机器模式切换到用户模式;在所述处理器芯片的当前特权模式被切换至所述用户模式时,启动所述系统固件代码。以此可以实现嵌入式设备的安全启动。
Description
技术领域
本申请涉及信息安全技术领域,具体而言,涉及一种设备启动方法、设备管理方法和嵌入式设备。
背景技术
目前,为了实现信息安全,大多数处理方式是针对具有较强运算处理能力的计算机设备或移动端设备等非嵌入式设备进行数据保护,对这些具有较强处理性能、具有较大内存的非嵌入式设备进行处理,例如,对这些非嵌入式设备中的敏感应用文件进行加密,或对传输过程中的数据进行加密保护,以使这些设备可以安全启动或安全运行。
但是,对于嵌入式设备这种处理性能稍弱、内存较小的弱终端设备,通常因为设备资源有限而不存在安全启动措施。
发明内容
本申请的目的在于提供一种设备启动方法、设备管理方法和嵌入式设备,能够实现嵌入式设备的安全启动。
第一方面,本申请提供一种设备启动方法,所述方法包括:
在目标设备的启动过程中,在所述目标设备的处理器芯片进入机器模式时,启动所述目标设备的引导程序,所述处理器芯片是采用RISC-V架构的处理器;
通过所述引导程序对所述目标设备的系统固件代码进行验证;
在所述系统固件代码通过验证时,将所述处理器芯片的当前特权模式从所述机器模式切换到用户模式;
在所述处理器芯片的当前特权模式被切换至所述用户模式时,启动所述系统固件代码。
在上述方法中,由于目标设备采用RISC-V架构的处理器作为核心处理器芯片,并且在设备启动过程中,利用RISC-V架构特有的各种工作模式对资源的不同访问权限(机器模式下是安全可信的,可以访问设备的所有资源,而用户模式下对于设备资源的访问存在限制),结合模式切换过程对设备启动过程进行安全验证,在机器模式下启动系统的引导程序,并在机器模式下对系统固件代码进行验证,在完成验证、验证通过的情况下,切换到用户模式,并在用户模式下启动设备的系统固件代码,可达到设备安全启动的目的。当上述方法应用于嵌入式设备时,可以在不额外增加硬件成本的情况下,提升嵌入式设备的启动安全性。
在可选的实施方式中,在所述启动所述目标设备的引导程序之前,所述方法还包括:
在所述目标设备上电启动时,对所述引导程序进行验证;
在所述引导程序通过验证时,将所述处理器芯片的当前特权模式切换至所述机器模式。
通过上述实现方式,在设备上电启动时,先对引导程序进行验证,在该引导程序通过验证以后才进入机器模式,基于此在机器模式下启动经过验证的引导程序,接着通过引导程序对系统固件代码进行验证,最终在完成逐级验证的情况下,在用户模式下启动系统固件代码,以此可以使得设备启动过程安全可靠。
在可选的实施方式中,所述引导程序是经过数字签名的可执行程序,所述在所述目标设备上电启动时,对所述引导程序进行验证,包括:
在所述目标设备上电启动时,通过所述处理器芯片的固定存储器中存储的第一密钥对所述引导程序进行签名验证。
通过上述实现方式,使得只有通过验证的系统才能正常启动,而被篡改、未通过签名验证的引导程序无法正常启动,可提升设备启动安全性。
在可选的实施方式中,所述引导程序是经过加密的可执行程序,所述在所述目标设备上电启动时,对所述引导程序进行验证,包括:
在所述目标设备上电启动时,通过所述处理器芯片的固定存储器中存储的第二密钥对所述引导程序进行解密验证。
通过上述实现方式,可以对引导程序进行保护。
在可选的实施方式中,所述系统固件代码是经过数字签名的代码,所述通过所述引导程序对所述目标设备的系统固件代码进行验证,包括:
通过所述引导程序中封装的第三密钥对所述系统固件代码进行签名验证。
通过上述实现方式,使得只有通过验证的系统才能正常启动,而被篡改、未通过签名验证的系统固件代码无法正常启动,可提升设备启动安全性。
在可选的实施方式中,所述系统固件代码是经过加密的代码,所述通过所述引导程序对所述目标设备的系统固件代码进行验证,包括:
通过所述引导程序中封装的第四密钥对所述系统固件代码的头部信息进行解密验证。
通过上述实现方式,可以对系统固件代码的头部信息进行保护。
在可选的实施方式中,所述目标设备是嵌入式设备,所述系统固件代码封装在系统镜像文件中。
在可选的实施方式中,所述方法还包括:
在所述引导程序未通过验证时,或,所述系统固件代码未通过验证时,确定所述目标设备启动失败。
通过上述实现方式,可以避免未通过验证的系统被启动。
第二方面,本申请提供一种设备管理方法,所述方法包括:
对目标设备的系统固件代码进行数字签名;
在所述目标设备的引导程序中写入用于对所述系统固件代码进行签名验证的密钥,并且对所述引导程序进行数字签名;
向所述目标设备的处理器芯片写入用于对所述引导程序进行签名验证的密钥,以使所述目标设备在上电启动时,能够通过所述处理器芯片中的密钥对所述引导程序进行验证,并在所述引导程序通过验证时,进入机器模式,以及在进入所述机器模式的情况下,能够通过所述引导程序中的密钥对所述系统固件代码进行验证,并在所述系统固件代码通过验证时,将所述处理器芯片的当前特权模式从所述机器模式切换到用户模式,以及在所述用户模式下启动所述系统固件代码;
其中,所述处理器芯片是采用RISC-V架构的处理器。
通过上述方法,可以在设备启动之前,为设备启动过程进行安全配置,以此完成配置后,有利于使得设备启动过程安全可靠,当上述方法应用于嵌入式设备时,可以在不额外增加硬件成本的情况下实现嵌入式设备的安全启动。
第三方面,本申请提供一种嵌入式设备,所述嵌入式设备包括:
存储器;
处理器芯片,所述处理器芯片是采用RISC-V架构的处理器;
所述存储器中存储有计算机程序,所述计算机程序被所述处理器芯片执行时实现前述第一方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种设备启动方法的流程图。
图2为本申请实施例提供的另一种设备启动方法的流程图。
图3为本申请实施例提供的一个实例中的设备安全启动流程示意图。
图4为本申请实施例提供的一种设备管理方法的流程图。
图5为本申请实施例提供的一种嵌入式设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在现有技术中,对于嵌入式设备这种处理性能稍弱、内存较小的弱终端设备,由于设备本身在内存、处理能力等硬件资源方面的限制(例如,一些非嵌入式设备的内存容量可能有很多个G甚至很多个T,而嵌入式设备的内存容量可能只有几兆、十几兆),现有的大多数嵌入式设备通常不支持复杂的数据运算处理功能,只是提供一些针对性的、简单的业务应用功能(例如通信、开关、授权、调节功率、切换挡位等功能),缺乏启动安全验证。
因此,发明人提出以下实施例予以改善。
请参阅图1,图1为本申请实施例提供的一种设备启动方法的流程图。
如图1所示,该方法包括:S11-S14。
S11:在目标设备的启动过程中,在目标设备的处理器芯片进入机器模式时,启动目标设备的引导程序,处理器芯片是采用RISC-V架构的处理器。
在本申请实施例中,目标设备是嵌入式设备,该目标设备的核心处理器芯片采用的是RISC-V架构,采用RISC-V架构的处理器记为RISC-V处理器。RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经有四代RISC处理器原型芯片。
RISC-V架构的处理器定义了该架构下特有的几种工作模式,又称为特权模式(Privileged Mode)或特权指令模式,包括:机器模式(Machine Mode,简称M Mode或M模式)、监督模式(Supervisor Mode,简称S Mode或S模式)和用户模式(User Mode,简称UMode或U模式)。一些应用场景下的RISC-V架构的处理器还可以具有虚拟管理模式(Hypervisor Mode,简称H模式)。
其中,在不同模式下,RISC-V硬件平台将具有不同的资源访问权限。机器模式视为最高级模式,是RISC-V硬件平台必须具有的模式,运行在机器模式(M模式)下的代码是安全可信的。
在本申请实施例中,为了实现设备安全启动,目标设备的RISC-V处理器芯片必须具有机器模式(M模式)和用户模式(U模式)这两种特权模式,当然,也可以被配置为支持更多资源访问权限低于机器模式的其他模式。
在本申请实施例中,在引导程序无误、安全可信的情况下,当在目标设备的启动过程中,确定该目标设备的处理器芯片进入机器模式时,启动目标设备的引导程序,可以安全启动该设备的系统引导程序。在通过上述S11的实现方式启动引导程序后,执行S12。
S12:通过引导程序对目标设备的系统固件代码进行验证。
其中,目标设备是在RISC-V处理器处于机器模式的情况下,在机器模式下通过引导程序中封装的密钥对目标设备的系统固件代码进行验证,例如,可对系统固件代码进行签名验证,还可对系统固件代码进行加密验证。通过对系统固件代码进行验证,可以得知目标设备的系统固件代码是否被第三方修改或被篡改,有利于对目标设备的系统固件代码进行保护,避免系统固件代码对应的固件在不该启动的时候被启动。
在本申请实施例中,目标设备的系统固件代码封装在系统镜像文件中。通过引导程序对目标设备的系统固件代码进行验证的过程,可视为对系统镜像文件进行验证,可视为对系统镜像文件对应的系统镜像代码进行验证。
当系统固件代码在机器模式下通过验证时,执行S13和S14。
S13:在系统固件代码通过验证时,将处理器芯片的当前特权模式从机器模式切换到用户模式。
S14:在处理器芯片的当前特权模式被切换至用户模式时,启动系统固件代码。
关于S13和S14,当系统固件代码在机器模式下通过验证时,处理器芯片从机器模式切换至用户模式,通过该模式切换过程改变了资源访问权限,并且在处理器芯片进入用户模式时,启动经过验证的系统固件代码,可以完成对于目标设备的安全启动。在用户模式下,有限的资源访问权限可以避免一些不允许被访问的设备资源被访问,有利于避免设备启动过程中涉及的中间数据、代码程序被恶意篡改。
在上述S11-S14的方法中,由于目标设备采用RISC-V架构的处理器作为核心处理器芯片,并且在设备启动过程中,利用RISC-V架构特有的各种工作模式对资源的不同访问权限(默认情况下,机器模式是安全可信的,在机器模式下可以访问设备的所有资源,而用户模式下对于设备资源的访问存在限制,无法访问所有的设备资源),利用RISC-V的特权模式来隔离设备的内存和存储访问权限,结合模式切换过程对设备启动过程进行了安全验证,利用了RISC-V的机器模式和用户模式的模式特性,在机器模式下启动系统的引导程序,并在机器模式下对系统固件代码(系统镜像代码)进行验证,在完成验证、验证通过的情况下,切换到用户模式,并在用户模式下启动设备的系统固件代码,可达到设备安全启动的目的。当上述的方法应用于嵌入式设备时,可以在不额外增加硬件成本的情况下,提升嵌入式设备的启动安全性。
如图2所示,在上述S11启动目标设备的引导程序之前,设备启动方法还可包括:步骤S21-S22。
S21:在目标设备上电启动时,对引导程序进行验证。
在本申请实施例中,引导程序是经过数字签名的可执行程序,作为该S21的一种实现方式,S21包括:在目标设备上电启动时,通过处理器芯片的固定存储器中存储的第一密钥对引导程序进行签名验证。
示例性地,可以在S21之前预先采用第一私钥对引导程序的代码进行签名,并且在处理器芯片(RISC-V处理器)的ROM存储器封装存储该第一私钥对应的第一公钥,作为第一密钥,以此使得在目标设备上电启动时,可以通过该ROM存储器中的第一公钥对该引导程序进行签名验证。在设备启动过程中确定ROM存储器中的第一公钥和引导程序的第一私钥匹配时,视为引导程序通过签名验证,表示该引导程序未被第三方修改或篡改。在该引导程序通过签名验证时,可执行S22,以使处理器芯片(RISC-V处理器)进入机器模式,从而执行前述的S11-S14的方法。
通过该实现方式,使得只有通过验证的系统才能正常启动,而被篡改、未通过签名验证的引导程序无法正常启动,可提升设备启动安全性。
可选的,引导程序可以是经过加密的可执行程序,S21还可以包括:在目标设备上电启动时,通过处理器芯片的固定存储器中存储的第二密钥对引导程序进行解密验证。
示例性地,如果引导程序是预先经过对称加密的可执行程序,且加密所使用的密钥记为第二密钥,则可以采用处理器芯片(RISC-V处理器)的ROM存储器预先封装存储的该第二密钥,对该引导程序进行对称解密验证。而如果引导程序是预先经过非对称加密的可执行程序,且加密所使用的密钥记为第二公钥,则可以采用该ROM存储器中预先封装存储的该第二公钥对应的第二私钥,作为第二密钥,对该引导程序进行非对称解密验证。以此解密验证方式可以对引导程序进行保护。
可选的,上述签名验证和解密验证的实现方式在不矛盾的情况下可以组合使用,例如,可以先对引导程序进行数字签名再加密,在设备上电启动时则可以通过ROM存储器中封装存储的相应密钥先对引导程序解密,再进行签名验证。
S22:在引导程序通过验证时,将处理器芯片的当前特权模式切换至机器模式。
其中,在通过S21或S21的各种实现方式,确认引导程序通过验证的情况下,执行S22,在S22之后执行前述S11-S14的方法。
基于上述S21-S22的实现方式,在设备上电启动时,先对引导程序进行验证,在该引导程序通过验证以后才进入机器模式,基于此在机器模式下启动经过验证的引导程序,接着通过引导程序对系统固件代码进行验证,最终在完成逐级验证的情况下,在用户模式下启动系统固件代码,可以使得设备启动过程安全可靠。
本申请实施例中,对于系统固件代码的验证原理与引导程序的验证原理类似,区别在于,验证的时机不同、验证过程中所采用的密钥不同且获取密钥的方式不同。
在本申请实施例中,上述的系统固件代码是经过数字签名的代码,作为上述S12的一种实现方式,S12包括:通过引导程序中封装的第三密钥对系统固件代码进行签名验证。
示例性地,可以预先采用第三私钥对系统固件代码进行签名,并且预先在目标设备的引导程序中封装存储该第三私钥对应的第三公钥,作为第三密钥,以此使得在引导程序通过验证并启动的情况下,可以通过该引导程序中的第三公钥对该系统固件代码进行签名验证。在设备启动过程中确定引导程序中的第三公钥和系统固件代码的第三私钥匹配时,视为系统固件代码通过签名验证,表示该系统固件代码未被第三方修改或篡改。在该系统固件代码通过签名验证时,执行S13,以使处理器芯片(RISC-V处理器)进入用户模式,并在用户模式下启动经过验证的系统固件代码,以此实现嵌入式设备的安全启动。
通过该实现方式,使得只有通过逐级验证的系统才能正常启动,而被篡改、未通过签名验证的系统固件代码无法正常启动,可提升设备启动安全性。
可选的,上述的系统固件代码可以是经过加密的代码,S12还可以包括:通过引导程序中封装的第四密钥对系统固件代码的头部信息进行解密验证。
其中,系统固件代码的头部信息可包括:固件大小、固件起始地址和整个固件的hash值(哈希值)等与固件相关的关键信息。
示例性地,如果系统固件代码是预先经过对称加密的代码,且加密所使用的密钥记为第四密钥,则可以采用引导程序中预先封装存储的该第四密钥,对该系统固件代码的头部信息进行对称解密验证。而如果系统固件代码的头部信息是预先经过非对称加密的,且加密所使用的密钥记为第四公钥,则可以采用引导程序中预先封装存储的该第四公钥对应的第四私钥,作为第四密钥,对该系统固件代码的头部信息进行非对称解密验证。以此解密验证方式可以对系统固件代码的头部信息进行保护。
可选的,上述签名验证和解密验证的实现方式在不矛盾的情况下可以组合使用,例如,可以先对系统固件代码进行数字签名再加密,在设备启动过程中,在机器模式下启动经过验证的引导程序时,则可以通过引导程序中封装存储的相应密钥先对系统固件代码解密,再进行签名验证。
在本申请实施例中,在引导程序未通过验证时,或,系统固件代码未通过验证时,确定目标设备启动失败。
通过上述实现方式,可以避免未通过验证的系统被启动。
图3示出了一个实例中的设备启动流程。
如图3所示,当嵌入式设备上电启动时,通过固化存储在RISC-V处理器的ROM存储器中的密钥aa对该嵌入式设备的引导程序进行验证(包括签名验证,也可以包括对称或非对称解密验证),在引导程序未通过验证时,该嵌入式设备启动失败,视为未能安全启动,此时可以进入重启确认,以便于重启(重启仍然需要对引导程序进行验证)。而在引导程序通过验证的情况下,RISC-V处理器进入机器模式,其中,RISC-V处理器进入机器模式可以视为该嵌入式设备进入机器模式。在RISC-V处理器切换进入机器模式的情况下,启动经过验证的该引导程序,并且通过该引导程序中的密钥bb对该嵌入式设备的系统镜像代码进行验证,即,对嵌入式设备的系统固件代码进行验证(包括签名验证,也可以包括对称或非对称解密验证)。在系统镜像代码(系统固件代码)未通过验证时,该嵌入式设备启动失败,视为未能安全启动,此时可以进入重启确认,以便于重启(重启仍然需要依次对引导程序、系统固件代码进行验证)。而在系统固件代码通过验证的情况下,RISC-V处理器从机器模式切换进入用户模式,并在用户模式下启动经过验证的系统固件代码,当系统固件代码被成功启动运行时,视为该嵌入式设备成功启动。基于此可以在不额外增加硬件成本的情况下实现嵌入式设备的安全启动流程。
基于同一发明构思,如图4所示,本申请实施例还提供一种设备管理方法,图4为该设备管理方法的流程图。
如图4所示,该方法包括:S31-S33。
S31:对目标设备的系统固件代码进行数字签名。
其中,数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。经过数字签名的文件的完整性是很容易验证的,而且数字签名具有不可抵赖性(不可否认性)。在本申请实施例中的签名均是指数字签名。
S32:在目标设备的引导程序中写入用于对系统固件代码进行签名验证的密钥,并且对引导程序进行数字签名。
S33:向目标设备的处理器芯片写入用于对引导程序进行签名验证的密钥,以使目标设备在上电启动时,能够通过处理器芯片中的密钥对引导程序进行验证,并在引导程序通过验证时,进入机器模式,以及在进入机器模式的情况下,能够通过引导程序中的密钥对系统固件代码进行验证,并在系统固件代码通过验证时,将处理器芯片的当前特权模式从机器模式切换到用户模式,以及在用户模式下启动系统固件代码。
其中,处理器芯片是采用RISC-V架构的处理器。
上述S31-S33的方法可以在对目标设备烧写固件之前执行,即在烧写固件之前为启动过程配置验证过程中需要使用的各项数据(包括签名、密钥封装存储)。
关于该设备管理方法中与目标设备、系统固件代码、引导程序、签名、验证、模式、启动有关的内容,均可以参考前述设备启动方法中的相关描述,在此不再赘述。
通过上述S31-S33的方法,可以在嵌入式设备启动之前,为设备启动过程进行安全配置,以此完成配置后,有利于使得嵌入式设备的启动过程安全可靠,可以在不额外增加硬件成本的情况下实现嵌入式设备的安全启动。基于上述S31-S33的方法对目标设备进行处理后,再执行前述的设备启动方法,可以使得嵌入式设备这种弱终端设备的启动过程更加安全可信。
基于同一发明构思,如图5所示,本申请实施例还提供一种嵌入式设备500,图5为该嵌入式设备500的结构框图。
如图5所示,该嵌入式设备500包括:存储器501、处理器芯片502以及通信总线503。其中,该处理器芯片502是采用RISC-V架构的处理器。通信总线503用于实现该嵌入式设备500中的各个组件之间的直接或间接连接。
该嵌入式设备500可以是物联网设备,例如可以是用于通信的通信设备、数据传输设备,也可以是具有开关切换功能、档位控制切换功能的控制器,还可以是电梯、空调、电视、音箱等各种终端设备或设备中的独立功能设备。
其中,嵌入式设备500的存储器501是一种存储介质,可以是但不限于:随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。该存储器501中存储有计算机程序,该计算机程序被处理器芯片502执行时实现前述的设备启动方法。可选的,该存储器501中还可以存储该设备启动所需的引导程序、系统固件代码。
该RISC-V架构的处理器芯片502的内置ROM存储器中可以存储用于对该嵌入式设备500的引导程序进行验证的密钥。
可以理解,图5所示的结构仅作为示意,在实际应用中,嵌入式设备500可包括比图5所示结构更多的组件,或者具有与图5所示结构不同的配置。
综上所述,通过本申请实施例提供的各方法和嵌入式设备500,提供了一种基于RISC-V特权指令集实现的设备安全启动方案,使得嵌入式设备500这种弱终端设备的启动过程安全可信。通过利用特权指令集实现机器模式和用户模式的切换,利用RISC-V特有的特权模式隔离设备的内存和存储访问权限,并使用基本的非对称加解密算法实现对系统启动过程中的逐级验证,保证设备的启动安全可靠,只有通过验证的系统才能正常启动,经过修改或是被篡改过的系统无法正常启动。在机器模式下启动系统的引导程序,并在机器模式下对系统镜像代码(系统固件代码)进行验证,在验证通过的情况下,切换到用户模式,并在用户模式下启动系统镜像(启动系统固件代码),以此可以在不额外增加硬件成本的情况下实现嵌入式设备500的安全启动。上述的原理利用了RISC-V架构芯片指令集特点,实现系统启动安全验证,保证设备启动安全,实现了系统启动认证,而在认证未通过时系统无法顺利启动,可以得知系统存在异常。上述的原理针对资源紧缺(相较于计算机、手机等非嵌入式设备500,嵌入式设备500的内存小、处理能力较弱)的嵌入式设备500,利用了RISC-V处理器自带的资源访问控制权限,实现了利用有限的资源实现更高的级别的安全保护。
在本申请所提供的实施例中,应该理解到,所揭露实施例,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所讨论的相互之间的连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本领域技术人员可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
需要说明的是,上述各方法的功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以用软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例方法的全部或部分步骤。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种设备启动方法,其特征在于,所述方法包括:
在目标设备的启动过程中,在所述目标设备的处理器芯片进入机器模式时,启动所述目标设备的引导程序,所述处理器芯片是采用RISC-V架构的处理器;
通过所述引导程序对所述目标设备的系统固件代码进行验证;
在所述系统固件代码通过验证时,将所述处理器芯片的当前特权模式从所述机器模式切换到用户模式;
在所述处理器芯片的当前特权模式被切换至所述用户模式时,启动所述系统固件代码。
2.根据权利要求1所述的方法,其特征在于,在所述启动所述目标设备的引导程序之前,所述方法还包括:
在所述目标设备上电启动时,对所述引导程序进行验证;
在所述引导程序通过验证时,将所述处理器芯片的当前特权模式切换至所述机器模式。
3.根据权利要求2所述的方法,其特征在于,所述引导程序是经过数字签名的可执行程序,所述在所述目标设备上电启动时,对所述引导程序进行验证,包括:
在所述目标设备上电启动时,通过所述处理器芯片的固定存储器中存储的第一密钥对所述引导程序进行签名验证。
4.根据权利要求2所述的方法,其特征在于,所述引导程序是经过加密的可执行程序,所述在所述目标设备上电启动时,对所述引导程序进行验证,包括:
在所述目标设备上电启动时,通过所述处理器芯片的固定存储器中存储的第二密钥对所述引导程序进行解密验证。
5.根据权利要求1所述的方法,其特征在于,所述系统固件代码是经过数字签名的代码,所述通过所述引导程序对所述目标设备的系统固件代码进行验证,包括:
通过所述引导程序中封装的第三密钥对所述系统固件代码进行签名验证。
6.根据权利要求1所述的方法,其特征在于,所述系统固件代码是经过加密的代码,所述通过所述引导程序对所述目标设备的系统固件代码进行验证,包括:
通过所述引导程序中封装的第四密钥对所述系统固件代码的头部信息进行解密验证。
7.根据权利要求1所述的方法,其特征在于,所述目标设备是嵌入式设备,所述系统固件代码封装在系统镜像文件中。
8.根据权利要求2-7任一项所述的方法,其特征在于,所述方法还包括:
在所述引导程序未通过验证时,或,所述系统固件代码未通过验证时,确定所述目标设备启动失败。
9.一种设备管理方法,其特征在于,所述方法包括:
对目标设备的系统固件代码进行数字签名;
在所述目标设备的引导程序中写入用于对所述系统固件代码进行签名验证的密钥,并且对所述引导程序进行数字签名;
向所述目标设备的处理器芯片写入用于对所述引导程序进行签名验证的密钥,以使所述目标设备在上电启动时,能够通过所述处理器芯片中的密钥对所述引导程序进行验证,并在所述引导程序通过验证时,进入机器模式,以及在进入所述机器模式的情况下,能够通过所述引导程序中的密钥对所述系统固件代码进行验证,并在所述系统固件代码通过验证时,将所述处理器芯片的当前特权模式从所述机器模式切换到用户模式,以及在所述用户模式下启动所述系统固件代码;
其中,所述处理器芯片是采用RISC-V架构的处理器。
10.一种嵌入式设备,其特征在于,所述嵌入式设备包括:
存储器;
处理器芯片,所述处理器芯片是采用RISC-V架构的处理器;
所述存储器中存储有计算机程序,所述计算机程序被所述处理器芯片执行时实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011585531.3A CN112632562B (zh) | 2020-12-28 | 2020-12-28 | 设备启动方法、设备管理方法和嵌入式设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011585531.3A CN112632562B (zh) | 2020-12-28 | 2020-12-28 | 设备启动方法、设备管理方法和嵌入式设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632562A true CN112632562A (zh) | 2021-04-09 |
CN112632562B CN112632562B (zh) | 2024-01-26 |
Family
ID=75285714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011585531.3A Active CN112632562B (zh) | 2020-12-28 | 2020-12-28 | 设备启动方法、设备管理方法和嵌入式设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632562B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090209A (zh) * | 2021-11-23 | 2022-02-25 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
CN114329479A (zh) * | 2021-12-08 | 2022-04-12 | 浙江大学 | 一种面向risc-v架构的启动验证方法 |
WO2023102757A1 (zh) * | 2021-12-08 | 2023-06-15 | 浙江大学 | 一种基于面向risc-v架构的启动验证方案 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005480A1 (en) * | 2010-07-01 | 2012-01-05 | Rockwell Automation Technologies, Inc. | Methods for firmware signature |
CN102866896A (zh) * | 2011-07-05 | 2013-01-09 | 中国科学院上海微系统与信息技术研究所 | 基于单存储器的嵌入式设备的启动系统 |
CN103166759A (zh) * | 2011-12-15 | 2013-06-19 | 通用汽车环球科技运作有限责任公司 | 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置 |
CN105426750A (zh) * | 2015-12-03 | 2016-03-23 | 致象尔微电子科技(上海)有限公司 | 一种嵌入式系统的启动方法及嵌入式装置 |
CN106775716A (zh) * | 2016-12-15 | 2017-05-31 | 中国科学院沈阳自动化研究所 | 一种基于度量机制的可信plc启动方法 |
KR101805310B1 (ko) * | 2016-07-14 | 2017-12-06 | 경희대학교 산학협력단 | Tpm 기반의 사용자 장치 및 이를 이용한 펌웨어 갱신 방법 |
US20180189493A1 (en) * | 2016-12-30 | 2018-07-05 | Google Inc. | Secure device state apparatus and method and lifecycle management |
CN108306970A (zh) * | 2018-02-02 | 2018-07-20 | 浙江德景电子科技有限公司 | 一种基于安全芯片的固件安全下载以及校验装置和方法 |
CN108347332A (zh) * | 2017-06-06 | 2018-07-31 | 清华大学 | 验证固件签名的方法及装置 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
CN109240731A (zh) * | 2018-08-29 | 2019-01-18 | 武汉光庭信息技术股份有限公司 | 一种TBox的安全升级方法和系统 |
CN109766134A (zh) * | 2019-01-08 | 2019-05-17 | 四川虹微技术有限公司 | 系统启动方法、装置、电子设备及存储介质 |
CN110008724A (zh) * | 2019-03-29 | 2019-07-12 | 记忆科技(深圳)有限公司 | 固态硬盘控制器安全加载方法、装置及存储介质 |
CN110532005A (zh) * | 2019-08-09 | 2019-12-03 | 苏州浪潮智能科技有限公司 | 基板管理控制器及其构建方法 |
CN110750957A (zh) * | 2019-10-30 | 2020-02-04 | 南京宁麒智能计算芯片研究院有限公司 | 一种高效多核RISC-V处理器的Cache系统验证方法 |
US20200117805A1 (en) * | 2018-08-23 | 2020-04-16 | Shenzhen GOODIX Technology Co., Ltd. | Secure booting method, apparatus, device for embedded program, and storage medium |
US20200184077A1 (en) * | 2018-12-05 | 2020-06-11 | American Megatrends Inc. | Method and apparatus for secure boot of embedded device |
US10742421B1 (en) * | 2019-03-08 | 2020-08-11 | Ares Technologies, Inc. | Methods and systems for anonymous hardware attestation |
CN111742297A (zh) * | 2019-07-23 | 2020-10-02 | 深圳市大疆创新科技有限公司 | 固件启动方法、设备及计算机可读存储介质 |
WO2020228976A1 (en) * | 2019-05-10 | 2020-11-19 | NEC Laboratories Europe GmbH | Method and system for device identification and monitoring |
-
2020
- 2020-12-28 CN CN202011585531.3A patent/CN112632562B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005480A1 (en) * | 2010-07-01 | 2012-01-05 | Rockwell Automation Technologies, Inc. | Methods for firmware signature |
CN102866896A (zh) * | 2011-07-05 | 2013-01-09 | 中国科学院上海微系统与信息技术研究所 | 基于单存储器的嵌入式设备的启动系统 |
CN103166759A (zh) * | 2011-12-15 | 2013-06-19 | 通用汽车环球科技运作有限责任公司 | 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置 |
CN105426750A (zh) * | 2015-12-03 | 2016-03-23 | 致象尔微电子科技(上海)有限公司 | 一种嵌入式系统的启动方法及嵌入式装置 |
KR101805310B1 (ko) * | 2016-07-14 | 2017-12-06 | 경희대학교 산학협력단 | Tpm 기반의 사용자 장치 및 이를 이용한 펌웨어 갱신 방법 |
CN106775716A (zh) * | 2016-12-15 | 2017-05-31 | 中国科学院沈阳自动化研究所 | 一种基于度量机制的可信plc启动方法 |
US20180189493A1 (en) * | 2016-12-30 | 2018-07-05 | Google Inc. | Secure device state apparatus and method and lifecycle management |
CN108347332A (zh) * | 2017-06-06 | 2018-07-31 | 清华大学 | 验证固件签名的方法及装置 |
CN108306970A (zh) * | 2018-02-02 | 2018-07-20 | 浙江德景电子科技有限公司 | 一种基于安全芯片的固件安全下载以及校验装置和方法 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
US20200117805A1 (en) * | 2018-08-23 | 2020-04-16 | Shenzhen GOODIX Technology Co., Ltd. | Secure booting method, apparatus, device for embedded program, and storage medium |
CN109240731A (zh) * | 2018-08-29 | 2019-01-18 | 武汉光庭信息技术股份有限公司 | 一种TBox的安全升级方法和系统 |
US20200184077A1 (en) * | 2018-12-05 | 2020-06-11 | American Megatrends Inc. | Method and apparatus for secure boot of embedded device |
CN109766134A (zh) * | 2019-01-08 | 2019-05-17 | 四川虹微技术有限公司 | 系统启动方法、装置、电子设备及存储介质 |
US10742421B1 (en) * | 2019-03-08 | 2020-08-11 | Ares Technologies, Inc. | Methods and systems for anonymous hardware attestation |
CN110008724A (zh) * | 2019-03-29 | 2019-07-12 | 记忆科技(深圳)有限公司 | 固态硬盘控制器安全加载方法、装置及存储介质 |
WO2020228976A1 (en) * | 2019-05-10 | 2020-11-19 | NEC Laboratories Europe GmbH | Method and system for device identification and monitoring |
CN111742297A (zh) * | 2019-07-23 | 2020-10-02 | 深圳市大疆创新科技有限公司 | 固件启动方法、设备及计算机可读存储介质 |
CN110532005A (zh) * | 2019-08-09 | 2019-12-03 | 苏州浪潮智能科技有限公司 | 基板管理控制器及其构建方法 |
CN110750957A (zh) * | 2019-10-30 | 2020-02-04 | 南京宁麒智能计算芯片研究院有限公司 | 一种高效多核RISC-V处理器的Cache系统验证方法 |
Non-Patent Citations (6)
Title |
---|
BIGMAGIC: "关于risc-v启动部分思考", Retrieved from the Internet <URL:《https://cloud.tencent.com/developer/article/1764021》> * |
LUDOVIC JACQUIN: "Towards Trusted Software-Defined Networks using a Hardware-based Integrity Measurement Architecture", PROCEEDINGS OF THE 2015 1ST IEEE CONFERENCE ON NETWORK SOFTWARIZATION(NETSOFT) * |
XINHONG HEI 等: "From Hardware to Operating System: A Static Measurement Method of Android System Based on TrustZone", WIRELESS COMMUNICATIONS AND MOBILE COMPUTING, vol. 2020, pages 1 - 13 * |
李会;王宜怀;王磊;: "基于CAN的数据无损代码更新方法设计与应用", 电子技术应用, no. 01, pages 52 - 55 * |
林海;赵凯;张淑舫;刘志兵;: "基于LPC1700系列微控制器的一种高可靠性软件升级方法", 新技术新工艺, no. 06, pages 72 - 75 * |
罗成娥;任海强;: "基于CAN总线的在线升级系统设计与实现", 数字通信, no. 06, pages 32 - 36 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090209A (zh) * | 2021-11-23 | 2022-02-25 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
CN114090209B (zh) * | 2021-11-23 | 2024-04-12 | 四川启睿克科技有限公司 | 基于risc-v架构的密码获取方法 |
CN114329479A (zh) * | 2021-12-08 | 2022-04-12 | 浙江大学 | 一种面向risc-v架构的启动验证方法 |
WO2023102757A1 (zh) * | 2021-12-08 | 2023-06-15 | 浙江大学 | 一种基于面向risc-v架构的启动验证方案 |
CN114329479B (zh) * | 2021-12-08 | 2024-05-28 | 浙江大学 | 一种面向risc-v架构的启动验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112632562B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112632562B (zh) | 设备启动方法、设备管理方法和嵌入式设备 | |
CA2450844C (en) | A method for securing an electronic device, a security system and an electronic device | |
JP5519773B2 (ja) | ネットワークとの通信のためのデバイスの正当化および/または認証 | |
KR101904177B1 (ko) | 데이터 처리 방법 및 장치 | |
JP6114832B2 (ja) | 仮想マシンのための管理制御方法、装置及びシステム | |
CN107463838B (zh) | 基于sgx的安全监控方法、装置、系统及存储介质 | |
US20210012008A1 (en) | Method of initializing device and method of updating firmware of device having enhanced security function | |
US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
JP4501349B2 (ja) | システムモジュール実行装置 | |
US20110289294A1 (en) | Information processing apparatus | |
CN112699419B (zh) | 安全执行可延伸固件应用程序的方法及计算器设备 | |
WO2011006997A1 (en) | System and method for providing secure virtual machines | |
CN109657479B (zh) | 数据防泄漏方法及计算机可读存储介质 | |
CN112464271A (zh) | 一种电力物联网边缘物联代理高可信执行环境构建方法及系统 | |
CN110326266A (zh) | 一种数据处理的方法及装置 | |
CN112511306A (zh) | 一种基于混合信任模型的安全运行环境构建方法 | |
CN111327429B (zh) | 终端启动的处理方法和装置 | |
CN116707758A (zh) | 可信计算设备的认证方法、设备和服务器 | |
CN113961939B (zh) | 嵌入式操作系统安全的防护方法和系统 | |
CN114329522A (zh) | 一种私钥保护方法、装置、系统及存储介质 | |
CN115357908A (zh) | 一种网络设备内核可信度量与自动修复方法 | |
WO2022173373A1 (en) | Secure module and method for app-to-app mutual trust through app-based identity | |
CN117556430B (zh) | 一种安全启动方法、装置、设备及存储介质 | |
CN114024702A (zh) | 信息安全保护的方法以及计算设备 | |
Zachary et al. | Bidirectional mobile code trust management using tamper resistant hardware |
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 |