一种芯片安全防御方法和系统技术方案

技术编号:27209651 阅读:13 留言:0更新日期:2021-01-31 12:42
一种芯片安全防护方法,包括如下步骤,将SRAM存储器的可执行权限关闭;读取解密固件的签名的公钥,读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值,通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。通过上述方案,能够在安全环境下保证固件的安全性,若第一固件为非安全性固件,则可以防止非安全固件的错误代码在SRAM中自主执行,从而提升了芯片系统在错误注入式攻击下的安全性。全性。全性。

【技术实现步骤摘要】
一种芯片安全防御方法和系统


[0001]本专利技术涉及芯片安全校验领域,尤其涉及一种防止恶意程序注入式攻击的做法。

技术介绍

[0002]针对Soc安全芯片的攻击手段中,有一类叫做错误注入攻击的攻击手段,其攻击原理是通过改变环境参数,如电压、温度、光、电离辐射以及周围磁场等,来试图在芯片的程序中引入一些错误的行为,或导致信息泄露。在目前的Soc安全芯片设计技术中,针对错误注入的攻击的防护手段主要有两种:一是在芯片的外围增加一层物理性防护,防止错误注入;二是增加芯片的检错硬件,一旦检测到异常信息,芯片就进入异常工作状态。这两种防护手段都存在共同的缺点,首先它们都需要大量的传感器电路,硬件成本较大;其次它们都仅仅是从源头上进行防御,一旦错误注入成功,就无能为力。如现有技术CN201710971482.9的技术方案,就是简单进行完整性校验和合法性校验,并没有采用哈希值比对的方法来防止错误注入。在另一个方案CN201910379458.5中,采用的是安全引擎连续确定多个固件块的哈希值来确定固件的合法性的方案,也没有能够防止安全注入自动执行的问题。

技术实现思路

[0003]为此,需要提供一种新的芯片安全防御方法,能够达到通过芯片即使被效果;
[0004]为实现上述目的,专利技术人提供了一种芯片安全防护方法,包括如下步骤,将SRAM存储器的可执行权限关闭;读取解密固件的签名的公钥,读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值,通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。
[0005]具体地,通过安全执行权限管理器装置关闭SRAM存储器的可执行权限。
[0006]具体地,还包括步骤,执行BootRom程序,通过BootRom程序从OTP(OneTimeProgram)存储器中读出解密固件的签名的公钥。
[0007]具体地,还包括步骤,执行BootRom程序,通过BootRom程序读取第一固件的固件签名。
[0008]进一步地,在步骤:根据权限配置信息打开SRAM的相应权限,之后还包括步骤,
[0009]通过第一固件程序初始化DDR存储器;加载第二固件的代码到DDR存储器,根据第二的代码计算第二计算哈希值,读取第二固件的固件签名,根据公钥解锁第二固件的固件签名得到第二签名哈希值;通过硬件比较器比较第二签名哈希值与第二计算哈希值,若比较结果相等,根据权限配置信息打开DDR的相应权限。
[0010]具体地,还通过安全执行权限管理器装置默认将DDR存储器的可执行权限关闭。
[0011]优选地,还包括步骤,执行BootRom程序,通过所述BootRom程序加载第二固件的代码到DDR存储器,还通过所述BootRom程序读取第二固件的固件签名。
[0012]通过上述方案,能够在安全环境下保证固件的安全性,若第一固件为非安全性固
件,则可以防止非安全固件的错误代码在SRAM中自主执行,从而提升了芯片系统在错误注入式攻击下的安全性。
附图说明
[0013]图1为本专利技术一实施方式所述的安全芯片一般的存储系统示意图;
[0014]图2为本专利技术一实施方式所述的安全执行权限管理器装置图;
[0015]图3为本专利技术一实施方式所述的芯片安全防护方法流程图。
具体实施方式
[0016]为详细说明技术方案的
技术实现思路
、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0017]1.Soc安全芯片一般的存储系统如图1组成。ROM存储器存储Soc安全芯片上电启动后最先执行BootRom程序,它是只读非易失性的存储器。BootRom程序是固化在Soc芯片上不可更改的程序。Flash是非易失性的存储器,它用于存储固件,但不能直接运行固件。固件程序启动执行时需要将Flash上的固件加载到易失性可执行的SRAM或DDR存储器中执行。OTP是只能写一次的存储器,它用于存储解密固件签名的公钥。
[0018]2.本专利技术设计了如图2组成的安全执行权限管理器装置,并集成在Soc安全芯片上。Soc芯片上电时安全执行权限管理器装置默认将SRAM或DDR存储器的可执行权限关闭。这样在成功解锁打开可执行权限前,SRAM或DDR存储器可读可写,但无法执行任何代码。只有当哈希值送入硬件哈希比较器进行比较成功之后,才能够进行相关存储器的可执行权限打开。硬件哈希比较器的实现方式可以通过简单的寄存器实现。
[0019]3.Soc安全芯片上电启动后先执行BootRom程序。BootRom程序先从OTP存储器中读出解密固件的签名的公钥。
[0020]4.BootRom程序从Flash或其它非易失性存储器件中读取固件签名到SRAM中。
[0021]5.BootRom程序使用公钥解密固件签名,解密后的签名中含有固件1的哈希值sign_hash1和固件2的哈希值sign_hash2。
[0022]6.BootRom程序从flash或其它非易失性存储器件中加载固件1代码,并计算其哈希值cal_hash1。
[0023]7.将解密后的哈希值sign_hash1和上步计算出的哈希cal_hash1,以及要解锁的SRAM执行权限配置信息一起输入安全执行权限管理器装置。
[0024]8.安全执行权限管理器装置中的硬件比较器执行两个哈希的比较,若哈希值比较相等,说明固件1是合法的。则根据执行权限配置信息打开SRAM的相应执行权限,若不相等则保持SRAM执行权限为关闭状态,并向CPU报错。
[0025]9.可执行权限的配置信息包含SRAM可执行权限的起始地址和结束地址,可根据固件的加载地址和固件大小来决定。这样避免可执行权限地址大于固件的执行地址空间,造成恶意代码被执行的风险。
[0026]10.若哈希值比较相等,解锁打开SRAM可执行权限成功后,CPU就可以跳转到SRAM中的固件1的加载地址中执行固件1程序。相关流程图如图3所示。
[0027]11.若系统中存在DDR存储器,则第10步骤中固件1程序初始化DDR存储器。完成DDR
初始化后,BootRom程序继续加载固件2到DDR存储器,并计算其哈希值cal_hash2。
[0028]12.将步骤5解密后的哈希值sign_hash2和上步计算出的哈希cal_hash2,以及要解锁的DDR存储器执行权限配置信息一起输入安全执行权限管理器装置。
[0029]13.安全执行权限管理器装置中的硬件比较器执行两个哈希的比较,若哈希值比较相等,说明固件2是合法的。则根据执行权限配置信息解锁打开DDR的相应执行权限,若不相等则保持DDR执行权限为关闭状态,并向CPU报错。
[0030]14.若哈希值比较相等,解锁打开DDR可执行权限成功后,CPU就可以跳转到DDR中的固件2加载地址中执行固件2程序。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种芯片安全防护方法,其特征在于,包括如下步骤,将SRAM存储器的可执行权限关闭;读取解密固件的签名的公钥,读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值,通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。2.根据权利要求1所述的芯片安全防护方法,其特征在于,通过安全执行权限管理器装置关闭SRAM存储器的可执行权限。3.根据权利要求1所述的芯片安全防护方法,其特征在于,还包括步骤,执行BootRom程序,通过BootRom程序从OTP(One Time Program)存储器中读出解密固件的签名的公钥。4.根据权利要求1所述的芯片安全防护方法,其特征在于,还包括步骤,执行BootRom程序,通过BootRo...

【专利技术属性】
技术研发人员:陈奋
申请(专利权)人:瑞芯微电子股份有限公司
类型:发明
国别省市:

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

1