CN114329479B - 一种面向risc-v架构的启动验证方法 - Google Patents

一种面向risc-v架构的启动验证方法 Download PDF

Info

Publication number
CN114329479B
CN114329479B CN202111512346.6A CN202111512346A CN114329479B CN 114329479 B CN114329479 B CN 114329479B CN 202111512346 A CN202111512346 A CN 202111512346A CN 114329479 B CN114329479 B CN 114329479B
Authority
CN
China
Prior art keywords
stage
boot loader
verification
stage boot
loader
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
CN202111512346.6A
Other languages
English (en)
Other versions
CN114329479A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202111512346.6A priority Critical patent/CN114329479B/zh
Publication of CN114329479A publication Critical patent/CN114329479A/zh
Application granted granted Critical
Publication of CN114329479B publication Critical patent/CN114329479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明设计了一种面向RISC‑V架构的启动验证方法,所述启动验证方法对一阶段启动加载器进行验证成功后,进一步对二阶段启动加载器进行验证,本发明能够完成多级启动流程的逐级防护,并在各级验证机制的设计上,根据应用场景的不同,在安全性和灵活性上进行调整。提出的验证策略基于信息摘要和数字签名算法,能够在现场可编程门阵列芯片上实现高效运行,以提升系统启动阶段的安全防御能力。

Description

一种面向RISC-V架构的启动验证方法
技术领域
本发明涉及启动加载与启动验证流程,尤其涉及一种面向RISC-V架构的启动验证方法。
背景技术
RISC-V作为一种新型的精简指令集,具有开源、开放、模块化等优点,但目前的RISC-V也具有一些明确的问题,包括软硬件生态不完善、高质量开源处理器的比例和数量有限等等。尤其在信息安全领域,RISC-V现阶段尚未形成一套公认的系统安全规范,面向RISC-V的安全处理器也非常有限。而启动安全作为系统安全机制的一部分,保证主板上只能加载经过认证过的操作系统或者硬件驱动程序,从而防止恶意软件侵入。
在这一领域,较为经典启动安全方法是面向ARM指令集的TrustZone安全导引方式:通过实现一个信任链机制,从第一段上电程序开始开始,每个被加载的组件将验证后续一个或多个模块的可信任性和完整性,并在未检测到异常的情况下加载它们。但是,一方面,TrustZone的启动安全机制并不强调硬件级别的防护;另一方面针对RISC-V处理器,在实际信任链设计过程中还存在很多需要额外考虑的因素,因而并不能直接地进行相应的移植。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种面向RISC-V架构的启动验证方法。
本发明的目的通过以下技术方案来具体实现的:一种面向RISC-V架构的启动验证方法,包括如下步骤:
步骤一:构建面向RISC-V指令集架构的片上系统SOC,所述片上系统SOC对一阶段启动加载器进行验证,验证成功则一阶段启动加载器被运行;
步骤二:当一阶段启动加载器被运行后,一阶段启动加载器对二阶段启动加载器和操作系统内核镜像进行验证,根据加载来源的不同,采取不同的验证方法,具体包括三种二阶段启动验证方法:本地信息摘要验证方法、远端传输信息摘要验证方法以及本地数字签名验证方法。
进一步地,所述步骤一和步骤二的具体动作均面向RISC-V指令集架构进行实现。
进一步地,所述片上系统SOC运行在独立于中央处理器(CPU)之外的专有硬件上,所述专有硬件能够利用信息摘要算法对一阶段启动加载器或二阶段启动加载器进行完整性验证,防止其被篡改。
进一步地,所述信息摘要算法包括MD5或SHA-1算法。
进一步地,所述步骤一具体为:设备上电启动后、中央处理器(CPU)运行前,所述片上系统SOC读取一阶段启动加载器的相应代码,利用信息摘要算法得到一阶段启动加载器的摘要值,将得到的摘要值与预先存储在摘要匹配库中的摘要值进行匹配,若匹配成功,则一阶段启动加载器被允许运行。
进一步地,步骤二中所述本地信息摘要验证方法针对高安全性场景或高生态封闭性场景使用,具体为一阶段启动加载器从本地存储介质中读取二阶段启动加载器及操作系统内核镜像,并利用信息摘要算法对被加载镜像进行验证,在摘要匹配库中匹配到相应的摘要值后,二阶段启动加载器才允许运行,进而启动操作系统内核镜像。
进一步地,步骤二中所述远端传输信息摘要验证方法针对存在远端统一启动和传输需求的应用场景使用,具体为一阶段启动加载器从网络中接收二阶段启动加载器及操作系统内核镜像,并利用信息摘要算法对被加载镜像进行验证,在摘要匹配库中匹配到相应的摘要值后,二阶段启动加载器以及后续的操作系统内核镜像才允许运行。
进一步地,步骤二中所述本地数字签名验证方法针对在保证安全性的前提下保证软硬件设计的解耦合以提升系统灵活性的情况使用,具体为:
S1设备出厂前,软件提供方使用自己的私钥对二阶段启动加载器和操作系统内核镜像进行签名;具体签名过程为:首先计算二阶段启动加载器和操作系统内核镜像的摘要值,然后利用512-位RSA私钥对该摘要值加密,得到的密文则为数字签名p;
S2软件提供方将自己的公钥证书、二阶段启动加载器和操作系统内核镜像以及数字签名p发送给硬件提供方,并由硬件提供方将公钥存储于公钥库中,将二阶段启动加载器和操作系统内核镜像以及数字签名p打包存放于本地存储介质中;
S3设备启动时,一阶段启动加载器从本地存储介质中读取二阶段启动加载器、操作系统内核镜像以及对应的数字签名p,利用预先存储在公钥证书库中的软件提供方的证书,对被加载镜像的的数字签名p进行验证,从而完成对软件提供方的身份验证,只有签名验证通过的镜像才被允许执行;具体验证过程为:一阶段启动加载器首先利用打包文件的信息,从公钥库中选取对应的软件提供方公钥证书,并对打包文件进行一次实时信息摘要计算,生成信息摘要m,再用对应公钥证书中的公钥对数字签名p进行解密,得到解密信息摘要e,如果m和e一致则验证通过。
本发明的有益效果如下:
本发明的方法针对RISC-V启动安全问题,设计了一套软硬件协同的启动信任链,其能够完成多级启动流程的逐级防护,并在各级验证机制的设计上,根据应用场景的不同,在安全性和灵活性上进行了权衡。在现如今RISC-V架构尚未形成公认的启动安全方案的背景下,提供了一套面向RISC-V架构可行的验证方案,以提升系统启动阶段的安全防御能力。
附图说明
图1为一种面向RISC-V架构的启动验证方法的流程图;
图2为本地数字签名验证方法的流程图。
具体实施方式
如图1所述,本发明提出了一种面向RISC-V架构的启动验证方法,包括以下步骤:
步骤一:构建面向RISC-V指令集架构的片上系统SOC,所述片上系统SOC对一阶段启动加载器进行验证,验证成功则一阶段启动加载器被运行;
所述一阶段启动加载器(First Stage Bootloader)是中央处理器(CPU)所运行的第一块代码,关系到整个设备的安全,是设备的安全基础之一;所述一阶段启动加载器固化在只读存储硬件中;为了保证一阶段启动加载器的完整性不被破坏,在设备中增加校验该代码完整性的专有硬件,并在所述专有硬件上构建片上系统SOC用于验证一阶段启动加载器的完整性。
所述片上系统SOC运行在独立于中央处理器(CPU)之外的专有硬件上,所述专有硬件在功能上能够利用信息摘要算法对一阶段启动加载器或二阶段启动加载器进行完整性验证,防止其被篡改;在性能上使用访存、缓冲、运算的三级流水线机制,在验证通过前,锁死中央处理器(CPU)的复位信号,只有验证通过,匹配到预先封在只读存储硬件中的信息摘要才允许启动。
所述信息摘要算法包括MD5或SHA-1算法,其通过对所有数据提取指纹信息以实现数据完整性校验等功能;消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密所得到的数据(摘要值)无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的摘要值。
步骤一通过以下子步骤具体实现:
(1.1)在设备出厂前,由只读存储硬件提供商计算一阶段启动加载器的MD5或SHA-1摘要值,并存储在摘要值匹配库中。
(1.2)当设备上电启动后、中央处理器(CPU)运行前,所述运行在专有硬件上的片上系统SOC读取一阶段启动加载器的相应代码,利用信息摘要算法得到一阶段启动加载器的摘要值,将得到的摘要值与预先存储在摘要匹配库中的摘要值进行匹配,若匹配成功,则一阶段启动加载器被允许运行。
步骤二:当一阶段启动加载器被运行后,一阶段启动加载器对二阶段启动加载器和操作系统内核镜像进行验证,根据加载来源的不同,采取不同的验证方法,具体包括三种二阶段启动验证方法:本地信息摘要验证方法、远端传输信息摘要验证方法以及本地数字签名验证方法;
所述二阶段启动加载器(Second Stage Boot Loader)是由一阶段启动加载器加载并执行的代码,主要用于进一步的初始化必要的设备硬件,引导系统内核的启动。在安全启动过程中,一般由一阶段启动加载器进行校验。
所述操作系统内核镜像就是操作系统安装在光盘上所有数据的克隆文件,包括了一个操作系统运行所需要的所有内容;此处将操作系统内核镜像与第二阶段启动加载器打包存放,减少系统启动过程中的验证步骤,从而增强了启动过程中的安全性。
所述三种二阶段启动验证方法分别如下:`
(2.1)本地信息摘要验证方法针对高安全性场景或高生态封闭性场景使用,具体为一阶段启动加载器从本地存储介质中读取二阶段启动加载器及操作系统内核镜像,并利用信息摘要算法对被加载镜像进行验证,验证方法与步骤一类似,在摘要匹配库中匹配到相应的摘要值后,二阶段启动加载器才允许运行,进而启动操作系统内核镜像;
所述高安全性场景指对安全性要求极高的设备和应用场景例如航空航天、金融等方面的相关设备。
所述高生态封闭性场景指运行环境封闭,不与或极少与外界交互的设备例如电子令牌等,此类设备特征在于从出厂到回收销毁都不用进行固件更新。
(2.2)远端传输信息摘要验证方法针对存在远端统一启动和传输需求的应用场景使用,具体为一阶段启动加载器从网络中接收二阶段启动加载器及操作系统内核镜像,并利用信息摘要算法对被加载镜像进行验证,在摘要匹配库中匹配到相应的摘要值后,二阶段启动加载器以及后续的操作系统内核镜像才允许运行;
所述远端统一启动和传输需求的应用场景指由控制中心统一启动并通过网络传输固件来启动终端设备的应用场景。此类终端设备往往没有或只含有极少的本地存储,其启动需要从外部获取固件。此模式一般应用于需要高度集中统一管理终端设备的场景。
(2.3)本地数字签名验证方法针对在保证安全性的前提下保证软硬件设计的解耦合以提升系统灵活性的情况下使用,如图2所示,具体包括如下步骤:
S1设备出厂前,软件提供方使用自己的私钥对二阶段启动加载器和操作系统内核镜像进行签名;具体签名过程为:首先计算二阶段启动加载器和操作系统内核镜像的摘要值,然后利用512-位RSA私钥对该摘要值加密,得到的密文则为数字签名p;
S2软件提供方将自己的公钥证书、二阶段启动加载器和操作系统内核镜像以及数字签名p发送给硬件提供方,并由硬件提供方将公钥存储于公钥库中,将二阶段启动加载器和操作系统内核镜像以及数字签名p打包存放于本地存储介质中;
S3设备启动时,一阶段启动加载器从本地存储介质中读取二阶段启动加载器、操作系统内核镜像以及对应的数字签名,利用预先存储在公钥证书库中的软件提供方的证书,对被加载镜像的的数字签名进行验证,从而完成对软件提供方的身份验证,只有签名验证通过的镜像才被允许执行。具体验证过程为:一阶段启动加载器首先利用打包文件的信息,从公钥库中选取对应的软件提供方公钥证书,并对打包文件进行一次实时信息摘要计算,生成信息摘要m,再用对应公钥证书中的公钥对数字签名p进行解密,得到解密信息摘要e,如果m和e一致则验证通过。
所述步骤一和步骤二的具体动作均面向RISC-V指令集架构进行实现。
考虑到网络远端启动可能带来复杂的安全性问题,本发明将网络远端启动的验证方式严格限制为远端传输信息摘要验证方法。
本领域普通技术人员可以理解,以上所述仅为发明的单个实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方法进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

Claims (5)

1.一种面向RISC-V架构的启动验证方法,其特征在于,包括以下步骤:
步骤一:构建面向RISC-V指令集架构的片上系统SOC,所述片上系统SOC对一阶段启动加载器进行验证,验证成功则一阶段启动加载器被运行;
步骤二:当一阶段启动加载器被运行后,一阶段启动加载器对二阶段启动加载器和操作系统内核镜像进行验证,根据加载来源的不同,采取不同的验证方法,具体包括三种二阶段启动验证方法:本地信息摘要验证方法、远端传输信息摘要验证方法以及本地数字签名验证方法;
所述本地信息摘要验证方法针对高安全性场景或高生态封闭性场景使用,具体为一阶段启动加载器从本地存储介质中读取二阶段启动加载器及操作系统内核镜像,并利用信息摘要算法对被加载镜像进行验证,在摘要匹配库中匹配到相应的摘要值后,二阶段启动加载器才允许运行,进而启动操作系统内核镜像;
所述远端传输信息摘要验证方法针对存在远端统一启动和传输需求的应用场景使用,具体为一阶段启动加载器从网络中接收二阶段启动加载器及操作系统内核镜像,并利用信息摘要算法对被加载镜像进行验证,在摘要匹配库中匹配到相应的摘要值后,二阶段启动加载器以及后续的操作系统内核镜像才允许运行;
所述本地数字签名验证方法针对在保证安全性的前提下保证软硬件设计的解耦合以提升系统灵活性的情况使用,具体为:
S1,设备出厂前,软件提供方使用自己的私钥对二阶段启动加载器和操作系统内核镜像进行签名;具体签名过程为:首先计算二阶段启动加载器和操作系统内核镜像的摘要值,然后利用512-位RSA私钥对该摘要值加密,得到的密文则为数字签名p;
S2,软件提供方将自己的公钥证书、二阶段启动加载器和操作系统内核镜像以及数字签名p发送给硬件提供方,并由硬件提供方将公钥存储于公钥库中,将二阶段启动加载器和操作系统内核镜像以及数字签名p打包存放于本地存储介质中;
S3,设备启动时,一阶段启动加载器从本地存储介质中读取二阶段启动加载器、操作系统内核镜像以及对应的数字签名p,利用预先存储在公钥证书库中的软件提供方的证书,对被加载镜像的的数字签名p进行验证,从而完成对软件提供方的身份验证,只有签名验证通过的镜像才被允许执行;具体验证过程为:一阶段启动加载器首先利用打包文件的信息,从公钥库中选取对应的软件提供方公钥证书,并对打包文件进行一次实时信息摘要计算,生成信息摘要m,再用对应公钥证书中的公钥对数字签名p进行解密,得到解密信息摘要e,如果m和e一致则验证通过。
2.根据权利要求1所述的一种面向RISC-V架构的启动验证方法,其特征在于,所述步骤一和步骤二的具体动作均面向RISC-V指令集架构进行实现。
3.根据权利要求1所述的一种面向RISC-V架构的启动验证方法,其特征在于,所述片上系统SOC运行在独立于中央处理器(CPU)之外的专有硬件上,所述专有硬件能够利用信息摘要算法对一阶段启动加载器或二阶段启动加载器进行完整性验证,防止其被篡改。
4.根据权利要求3所述的一种面向RISC-V架构的启动验证方法,其特征在于,所述信息摘要算法包括MD5或SHA-1算法。
5.根据权利要求1所述的一种面向RISC-V架构的启动验证方法,其特征在于,所述步骤一具体为:设备上电启动后、中央处理器(CPU)运行前,所述片上系统SOC读取一阶段启动加载器的相应代码,利用信息摘要算法得到一阶段启动加载器的摘要值,将得到的摘要值与预先存储在摘要匹配库中的摘要值进行匹配,若匹配成功,则一阶段启动加载器被允许运行。
CN202111512346.6A 2021-12-08 2021-12-08 一种面向risc-v架构的启动验证方法 Active CN114329479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111512346.6A CN114329479B (zh) 2021-12-08 2021-12-08 一种面向risc-v架构的启动验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111512346.6A CN114329479B (zh) 2021-12-08 2021-12-08 一种面向risc-v架构的启动验证方法

Publications (2)

Publication Number Publication Date
CN114329479A CN114329479A (zh) 2022-04-12
CN114329479B true CN114329479B (zh) 2024-05-28

Family

ID=81049860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111512346.6A Active CN114329479B (zh) 2021-12-08 2021-12-08 一种面向risc-v架构的启动验证方法

Country Status (1)

Country Link
CN (1) CN114329479B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117272317B (zh) * 2023-09-25 2024-02-23 中汽智联技术有限公司 一种系统安全启动方法、电子设备及存储介质
CN117874773B (zh) * 2024-03-12 2024-06-25 麒麟软件有限公司 基于安全等级管控策略的操作系统安全启动方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101720137A (zh) * 2009-11-12 2010-06-02 宁波高新区深联科技有限公司 无线传感器网络并行仿真方法
CN108287999A (zh) * 2017-01-10 2018-07-17 厦门雅迅网络股份有限公司 一种基于TrustZone的系统可信启动方法
CN111651778A (zh) * 2020-05-26 2020-09-11 上海交通大学 基于risc-v指令架构的物理内存隔离方法
CN112632562A (zh) * 2020-12-28 2021-04-09 四川虹微技术有限公司 设备启动方法、设备管理方法和嵌入式设备
CN113486360A (zh) * 2021-07-14 2021-10-08 上海瓶钵信息科技有限公司 基于risc-v的安全启动方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332636B2 (en) * 2007-10-02 2012-12-11 International Business Machines Corporation Secure policy differentiation by secure kernel design
US8904190B2 (en) * 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
CN106775716B (zh) * 2016-12-15 2020-04-17 中国科学院沈阳自动化研究所 一种基于度量机制的可信plc启动方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101720137A (zh) * 2009-11-12 2010-06-02 宁波高新区深联科技有限公司 无线传感器网络并行仿真方法
CN108287999A (zh) * 2017-01-10 2018-07-17 厦门雅迅网络股份有限公司 一种基于TrustZone的系统可信启动方法
CN111651778A (zh) * 2020-05-26 2020-09-11 上海交通大学 基于risc-v指令架构的物理内存隔离方法
CN112632562A (zh) * 2020-12-28 2021-04-09 四川虹微技术有限公司 设备启动方法、设备管理方法和嵌入式设备
CN113486360A (zh) * 2021-07-14 2021-10-08 上海瓶钵信息科技有限公司 基于risc-v的安全启动方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
RISC指令集众核处理器功能验证与实现;朱博元;刘高辉;李政运;安述倩;计算机工程与应用;20141231;50(21);全文 *
唐迪.面向轻量级嵌入式设备的安全隔离机制研究与设计.2018,全文. *
采用数字签名技术的可信启动方法研究;杨霞;雷林;吴新勇;吴开均;桑楠;;电子科技大学学报;20161231(03);全文 *
面向IMA的操作系统信息安全保证技术研究;黄凡帆;周霆;张灯;;航空计算技术;20180725(04);全文 *

Also Published As

Publication number Publication date
CN114329479A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US8341422B2 (en) Method and apparatus for incremental code signing
CN114329479B (zh) 一种面向risc-v架构的启动验证方法
JP5061110B2 (ja) 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート
US8949586B2 (en) System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device
CN112784278B (zh) 一种计算机系统的可信启动方法、装置及设备
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
US9563774B1 (en) Apparatus and method for securely logging boot-tampering actions
CN110990084B (zh) 芯片的安全启动方法、装置、存储介质和终端
US10984107B2 (en) Secure boot
US20050188214A1 (en) Authenticatable software modules
AU2012205457A1 (en) System and method for tamper-resistant booting
WO2023102757A1 (zh) 一种基于面向risc-v架构的启动验证方案
US11095454B2 (en) Releasing secret information in a computer system
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
CN110730159A (zh) 一种基于TrustZone的安全和可信混合系统启动方法
CN112511306A (zh) 一种基于混合信任模型的安全运行环境构建方法
CN116070217A (zh) 一种用于芯片模块的安全启动系统及其启动方法
CN117556430B (zh) 一种安全启动方法、装置、设备及存储介质
CN110532777B (zh) 安全启动系统及方法、终端设备及其核心系统
CN114692160A (zh) 计算机安全可信启动的处理方法及装置
CN112463224A (zh) 一种系统启动控制方法、装置、设备及可读存储介质
US20230049508A1 (en) Establishing trust between applications in a computing environment
CN116089967B (zh) 数据防回滚方法和电子设备
US12019752B2 (en) Security dominion of computing device
EP3916599A1 (en) Method for protecting software modules on edge devices and edge device

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