一种基于Keystone的RISC-V小核固件安全加载方法技术

技术编号:37719601 阅读:15 留言:0更新日期:2023-06-02 00:17
本发明专利技术公开了一种基于Keystone的RISC

【技术实现步骤摘要】
一种基于Keystone的RISC

V小核固件安全加载方法


[0001]本专利技术涉及固件加载
,特别是指一种基于Keystone的RISC

V小核固件安全加载方法。

技术介绍

[0002]存放在文件系统中的小核固件有被恶意修改的可能,为保证小核固件的完整性,在加载小核固件前需要对该固件进行校验,而校验需要在可信执行环境中操作才能保证结果的可靠性。
[0003]为解决安全加载小核固件问题,可以选择在安全启动早期直接启动小核,但是这样不方便修改小核固件,灵活度不高;或者可以选择在登录Linux系统后,构建可信执行环境,安全加载小核固件。在RISC

V平台下尚未见第二种方案。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种方便修改小核固件,安全性高的基于Keystone的RISC

V小核固件安全加载方法。
[0005]为解决上述技术问题,本专利技术提供技术方案如下:
[0006]一种基于Keystone的RISC

V小核固件安全加载方法,包括:
[0007]步骤1:需要运行小核固件时,在Keystone上创建Enclave;
[0008]步骤2:从文件系统中加载所述小核固件到Enclave和操作系统的共享内存,所述小核固件预先添加有签名;
[0009]步骤3:Enclave校验所述小核固件的签名通过后,控制所述小核固件的加载和运行。/>[0010]进一步的,所述步骤1之前还包括:
[0011]步骤10:对小核固件添加签名;
[0012]所述步骤10包括:
[0013]步骤101:产生密钥对,保存私钥,并将公钥添加到Keystone的安全监控器Secure Monitor;
[0014]步骤102:获取小核固件的程序头表,计算所有需要加载的段的哈希值,这些哈希值按顺序组合形成哈希表;
[0015]步骤103:再次计算所述哈希表的哈希值,并使用步骤101生成的密钥对该值签名;
[0016]步骤104:将签名、哈希表和标示签名与哈希表位置的文件头附加到小核固件的头部,形成带有签名的小核固件。
[0017]进一步的,所述步骤101中,密钥对为ed25519密钥对。
[0018]进一步的,所述步骤102和步骤104中,小核固件为小核ELF固件。
[0019]进一步的,所述步骤102和步骤103中,哈希值的计算均使用sha3算法。
[0020]进一步的,所述步骤2中,文件系统为Linux文件系统。
[0021]进一步的,所述步骤3包括:
[0022]步骤31:Enclave将所述带有签名的小核固件的签名和哈希表复制到Enclave的私有安全内存中;
[0023]步骤32:计算所述私有安全内存中哈希表的哈希值;
[0024]步骤33:使用所述Secure Monitor内的公钥解密签名值;
[0025]步骤34:比较步骤32和步骤33获得的值是否相等,如果不相等,则说明小核固件为非授权固件,安全加载失败;如果相等,则使用PMP和IOPMP保护小核运行地址空间并继续加载共享内存中的小核固件到小核的运行地址空间。
[0026]进一步的,所述步骤32中,哈希值的计算使用sha3算法。
[0027]进一步的,所述步骤34之后还包括:
[0028]步骤35:加载完成后,按照小核固件的程序头表计算小核运行地址空间中各段的哈希值,与Enclave的私有安全内存中的哈希表进行比较,如果全部一致,则安全加载通过,启动小核;否则,启动失败。
[0029]本专利技术具有以下有益效果:
[0030]相对于传统方式,小核固件若在启动初期进行校验加载,可以保证安全启动,但是替换固件较为麻烦;若是小核固件存放在上层文件系统中,则方便替换,但是用户态的执行环境较为不安全,易受攻击。本专利技术中,小核固件位于文件系统中,方便修改替换,同时借助Keystone软件框架,在RISC

V芯片的用户态构建了可信执行环境,安全可靠地完成了小核固件的校验和加载,校验通过后安全加载小核固件并启动小核,防止非安全执行环境中的恶意程序篡改小核固件。
附图说明
[0031]图1为现有技术中Keystone的软件架构示意图;
[0032]图2为本专利技术的基于Keystone的RISC

V小核固件安全加载方法的流程示意图;
[0033]图3为本专利技术中给小核固件添加签名的流程示意图;
[0034]图4为本专利技术中安全加载小核固件的流程示意图。
具体实施方式
[0035]为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0036]Keystone是一个基于Enclave在RISC

V(第五代精简指令集计算机)平台上构建可信执行环境(Trusted Execution Environment,TEE)的开放框架,它可以使用户灵活构建运行可信应用,不必担心Linux内核和其他软件的漏洞导致的敏感信息泄露。Keystone的软件架构如图1所示,其中:
[0037]Trusted Hardware(可信硬件)是由可靠的供应商构建的CPU(central processing unit,中央处理器)和其他套件的组合,必须包含与Keystone兼容的标准RISC

V内核(RISC

V Cores)和信任根(Root of Trust)。硬件还可能包含可选功能(Optional HW Features),如缓存分区、内存加密、加密随机源等。
[0038]Secure Monitor(安全监控器,简称SM)是具有较小可信计算基的M模式(Machine
(M mode),机器模式)软件。SM为管理Enclave的生命周期以及利用平台特定功能提供了接口。SM管理着Enclave和不受信任的操作系统之间的隔离边界,为Keystone提供安全保障。
[0039]Enclave(飞地,即由硬件保证隔离的可信执行环境实例)是与不受信任的操作系统和其他Enclave隔离的环境。每个Enclave都有一个私有物理内存区域,只有Enclave和SM可以访问该区域。每个Enclave由一个U模式(User(U mode),用户模式)Enclave Application(Enclave应用程序,简称eapp)和一个S模式(Supervisor(S mode),监督模式)运行时系统(Runtime,RT)组成。图中阴影方框为不可信(Untrusted)区域,App为应用程序,Operating System为操作系统。
[0040]Enclave Application(eapp)是在Enclav本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Keystone的RISC

V小核固件安全加载方法,其特征在于,包括:步骤1:需要运行小核固件时,在Keystone上创建Enclave;步骤2:从文件系统中加载所述小核固件到Enclave和操作系统的共享内存,所述小核固件预先添加有签名;步骤3:Enclave校验所述小核固件的签名通过后,控制所述小核固件的加载和运行。2.根据权利要求1所述的方法,其特征在于,所述步骤1之前还包括:步骤10:对小核固件添加签名;所述步骤10包括:步骤101:产生密钥对,保存私钥,并将公钥添加到Keystone的安全监控器Secure Monitor;步骤102:获取小核固件的程序头表,计算所有需要加载的段的哈希值,这些哈希值按顺序组合形成哈希表;步骤103:再次计算所述哈希表的哈希值,并使用步骤101生成的密钥对该值签名;步骤104:将签名、哈希表和标示签名与哈希表位置的文件头附加到小核固件的头部,形成带有签名的小核固件。3.根据权利要求2所述的方法,其特征在于,所述步骤101中,密钥对为ed25519密钥对。4.根据权利要求2所述的方法,其特征在于,所述步骤102和步骤104中,小核固件为小核E...

【专利技术属性】
技术研发人员:王广祯卢方勇李冠张葛
申请(专利权)人:青岛方寸微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1