System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 芯片的级联模式安全启动方法、设备及介质技术_技高网

芯片的级联模式安全启动方法、设备及介质技术

技术编号:41213475 阅读:2 留言:0更新日期:2024-05-09 23:36
本发明专利技术公开了芯片的级联模式安全启动方法、设备及介质,涉及芯片的安全启动技术领域。所述方法包括步骤:芯片上电后,获取启动代码的加密压缩镜像文件;读取前述加密压缩镜像文件中的头数据和签名信息;计算签名信息中RSA公钥的哈希值,并验证该哈希值是否正确;当RSA公钥的哈希值验证正确时,对加密压缩镜像进行解密、解压缩及验签,其中,在用于解密、解压缩及哈希验证的相关硬件模块之间配置DMA控制器来控制级联的各硬件模块工作,中央处理器CPU则可以释放出来去处理比较耗时的RSA验签工作。本发明专利技术优化了安全启动的时间。

【技术实现步骤摘要】

本专利技术涉及芯片的安全启动,尤其涉及一种芯片的级联模式安全启动方法、设备及介质


技术介绍

1、bootrom(也称boot rom)程序是固化在芯片内部的一段启动代码,通常称为bl0(bootloader0程序),掉电不丢失。bl0程序的主要作用是用来加载bl1(bootloader1)程序到内嵌式随机存取存储器iram(全称internal random access memory,指集成到soc芯片内部的ram )并执行bl1程序(即内存启动),然后依照系统启动流程进行在后的bl2(bootloader2)程序的加载和执行等,实现系统的多级启动。其中,bl1程序和bl2程序分别是flash中的一段安全启动代码,bl1的作用一般是来初始化动态随机存取内存dram(全称dynamic random access memory),在dram初始化成功后,将flash中的bl2加载到dram上并执行bl2程序相关代码。如果上述两个阶段未执行安全启动(secure boot),则flash中的镜像文件一旦被恶意攻击者替换掉,那么最终系统上将会运行被攻击者篡改过的固件。

2、为了防止固件被篡改,当前常用的做法就是将flash的镜像进行压缩、加密和加签(得到签名镜像),在bootrom加载bl1镜像以及通过bl1加载bl2镜像时都进行反向操作(校验签名镜像):解密、解压缩及验签,以此来保证镜像没有被破解(每一级镜像都由其前级执行合法性验证)。镜像的压缩加密算法通常使用消息摘要算法hash(通过单向散列函数将一段消息的内容转换为另一段固定长度消息的过程,被其计算后生成的消息就称为hash值)、加密算法rsa、对称加密算法aes、lzma压缩算法等。此时,安全启动模式对应的芯片安全启动典型流程概括如下:首先通过bootrom将bl1加载到 iram上进行aes解密,将解密完的数据进行lzma解压缩、rsa加密公钥的hash验证以及rsa验签,完成bl1程序相关代码的执行;执行bl1代码时,通过bl1代码将bl2 加载到dram上,进行与上述解密解压和验签中同样的操作,从而完成bl2程序相关代码的执行。芯片从上电到将flash中的镜像加载到指定随机存取存储器ram上进行解密解压以及验签的每个流程都必不可少。

3、目前,上述安全启动流程中解密解压以及验签流程通常采用串行执行,下一流程的执行需要待上一流程完成后再进行,导致安全启动耗费的时间较长,尤其是rsa验签过程,该验签过程的计算量通常较大,耗费时间也长。上述传统的启动流程难以满足一些系统的快速启动要求,作为举例,比如安防行业中相关的ipc产品,其一般对开机时间有极高要求。

4、据此,现有技术也提供了一些启动加速解决方案,概括如下。

5、方案一,通过硬件来实现aes解密、hash验证、lzma压缩解压缩,以及使用ip(intellectual property)化的rsa模块(通常称rsa ip核,或者rsa ip模块)来代替对应的软件算法。

6、方案二,将启动的存储介质更换成高速的存储介质,比如将nor闪存norflash(nor的特点是芯片内执行,使得应用程序可以直接在flash 闪存内运行,不必再把代码读到系统ram中,但数据的写入和擦除速度较慢)更换成性能更高的嵌入式多媒体卡emmc(embedded multi media card),以提高程序加载速度。

7、方案三,在前述方案一和方案二的基础上,进一步提高中央处理器cpu(centralprocessing unit)和相关硬件模块ip核的频点。

8、上述三种方案存在如下缺点:方案一虽然通过硬件加速了执行过程(相比于软件算法,硬件处理速度更快),但整个启动过程中的解压解密以及验签的流程还是基于串行方式执行,时间的优化有限,在某些情况下仍然难以达到快速安全的启动时间要求。方案二主要是提高了将介质中的镜像文件加载(load)到iram中的速度,后续的解密解压以及验签过程的时间并未缩短,对时间的优化也有限。方案三在方案一和方案二基础上提高了中央处理器cpu和相关硬件模块ip核的频点,进一步优化了安全启动时间,但其对硬件设计提出了较高的要求,提高了芯片设计的难度,且某个硬件模块ip核的频点的提高还可能影响芯片的稳定性。

9、据此,本专利技术提出了一种级联模式的安全启动方法来满足芯片的快速安全启动的要求。


技术实现思路

1、本专利技术的目的在于:克服现有技术的不足,提供了一种芯片的级联模式安全启动方法、设备及介质。本专利技术提供的安全启动方案,针对启动程序的镜像的解密解压缩以及验签处理过程进行改进,在用于解密、解压缩及哈希验证的相关硬件模块之间配置dma控制器来控制级联的各硬件模块工作,中央处理器cpu则可以释放出来去处理比较耗时的rsa验签工作,如此,可以优化安全启动的时间。进一步,在硬件模块之间配置了dma控制器后,可以通过dma控制器进行硬件模块间数据流的控制以使得多个硬件模块能够并行运行,以进一步优化安全启动的时间。

2、为实现上述目标,本专利技术提供了如下技术方案。

3、一种芯片的级联模式安全启动方法,包括步骤:

4、芯片上电后,获取启动代码的加密压缩镜像文件;

5、读取前述加密压缩镜像文件中的头数据header和签名信息sign info,所述签名信息sign info包括rsa公钥信息 ;

6、计算所述签名信息sign info中rsa公钥的哈希值,并验证该哈希值是否正确;当rsa公钥的哈希值验证正确时,执行如下步骤:

7、通过中央处理器cpu配置用于对加密压缩镜像进行解密、解压缩及哈希验证的相关硬件模块,所述相关硬件模块通过直接内存访问dma控制器级联;当所述相关硬件模块启动后,释放中央处理器cpu,通过前述相关硬件模块配置的dma控制器控制各相关硬件模块之间的数据流传输以进行数据的解密解压缩处理;根据前述相关硬件模块处理后得到的解密解压数据,中央处理器cpu执行rsa验签处理,rsa验签过程中需要的镜像哈希值由rsa ip模块计算得到;获取验签结果,验签通过时,boot启动成功。

8、进一步,当rsa公钥的哈希值验证不正确时,判定boot启动失败;

9、以及,当中央处理器cpu验签失败时,判定boot启动失败。

10、进一步,所述相关硬件模块包括闪存控制器sfc,加解密模块,压缩和解压缩模块,以及哈希计算模块;在所述闪存控制器sfc与所述加解密模块之间、所述闪存控制器sfc与所述压缩和解压缩模块之间、所述加解密模块与所述压缩和解压缩模块之间、所述压缩和解压缩模块与所述哈希计算模块之间分别设置有第一dma控制器dma_ctrl1、第二dma控制器dma_ctrl2、第三dma控制器dma_ctrl3、第四dma控制器dma_ctrl4;

11、各dma控制器分别连接外部dma或内部dma,用于控制对应模块之间传本文档来自技高网...

【技术保护点】

1.一种芯片的级联模式安全启动方法,其特征在于包括步骤:

2.根据权利要求1所述的方法,其特征在于:当RSA公钥的哈希值验证不正确时,判定Boot启动失败;

3.根据权利要求1所述的方法,其特征在于:所述相关硬件模块包括闪存控制器SFC,加解密模块,压缩和解压缩模块,以及哈希计算模块;在所述闪存控制器SFC与所述加解密模块之间、所述闪存控制器SFC与所述压缩和解压缩模块之间、所述加解密模块与所述压缩和解压缩模块之间、所述压缩和解压缩模块与所述哈希计算模块之间分别设置有第一DMA控制器DMA_CTRL1、第二DMA控制器DMA_CTRL2、第三DMA控制器DMA_CTRL3、第四DMA控制器DMA_CTRL4;

4.根据权利要求3所述的方法,其特征在于:所述闪存控制器SFC为 nor flash或nandflash相关的控制器,对应所述闪存控制器SFC配置外部DMA;

5.根据权利要求3所述的方法,其特征在于:所述多级启动代码至少包括BL1程序和BL2程序;

6.根据权利要求3所述的方法,其特征在于:所述DMA控制器模块被配置为:

7.根据权利要求3所述的方法,其特征在于:所述DMA控制器与压缩和解压缩模块的接口采用先进先出FIFO方式;所述压缩和解压缩模块的输入接口支持循环模式,输出接口则采用顺序输出;

8.根据权利要求1所述的方法,其特征在于:通过CPU执行RSA验签的步骤包括:获取哈希计算模块计算的哈希值结果,以及获取RSA IP模块通过大数模运算得到的镜像哈希值,将前述哈希计算模块计算的哈希值结果与前述镜像哈希值进行比较来进行RSA验签。

9.根据权利要求1所述的方法,其特征在于:还包括针对启动代码的生成对应的加密压缩镜像文件的步骤,如下:

10.一种芯片的级联模式安全启动设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于:

11.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于:所述程序代码使所述处理器执行所述权利要求1至9任一所述方法。

...

【技术特征摘要】

1.一种芯片的级联模式安全启动方法,其特征在于包括步骤:

2.根据权利要求1所述的方法,其特征在于:当rsa公钥的哈希值验证不正确时,判定boot启动失败;

3.根据权利要求1所述的方法,其特征在于:所述相关硬件模块包括闪存控制器sfc,加解密模块,压缩和解压缩模块,以及哈希计算模块;在所述闪存控制器sfc与所述加解密模块之间、所述闪存控制器sfc与所述压缩和解压缩模块之间、所述加解密模块与所述压缩和解压缩模块之间、所述压缩和解压缩模块与所述哈希计算模块之间分别设置有第一dma控制器dma_ctrl1、第二dma控制器dma_ctrl2、第三dma控制器dma_ctrl3、第四dma控制器dma_ctrl4;

4.根据权利要求3所述的方法,其特征在于:所述闪存控制器sfc为 nor flash或nandflash相关的控制器,对应所述闪存控制器sfc配置外部dma;

5.根据权利要求3所述的方法,其特征在于:所述多级启动代码至少包括bl1程序和bl2程序;

6.根据权利要求3所述的方法,其特征...

【专利技术属性】
技术研发人员:史东东孙德印王奎董李浩姚岗祥马全伟何源洪刘培朝
申请(专利权)人:眸芯科技上海有限公司
类型:发明
国别省市:

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

1