CN112287358A - 一种芯片安全防御方法和系统 - Google Patents
一种芯片安全防御方法和系统 Download PDFInfo
- Publication number
- CN112287358A CN112287358A CN202011260030.8A CN202011260030A CN112287358A CN 112287358 A CN112287358 A CN 112287358A CN 202011260030 A CN202011260030 A CN 202011260030A CN 112287358 A CN112287358 A CN 112287358A
- Authority
- CN
- China
- Prior art keywords
- firmware
- signature
- hash value
- program
- authority
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000007123 defense Effects 0.000 title description 3
- 238000002347 injection Methods 0.000 abstract description 9
- 239000007924 injection Substances 0.000 abstract description 9
- 239000000243 solution Substances 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005865 ionizing radiation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
一种芯片安全防护方法,包括如下步骤,将SRAM存储器的可执行权限关闭;读取解密固件的签名的公钥,读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值,通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。通过上述方案,能够在安全环境下保证固件的安全性,若第一固件为非安全性固件,则可以防止非安全固件的错误代码在SRAM中自主执行,从而提升了芯片系统在错误注入式攻击下的安全性。
Description
技术领域
本发明涉及芯片安全校验领域,尤其涉及一种防止恶意程序注入式攻击的做法。
背景技术
针对Soc安全芯片的攻击手段中,有一类叫做错误注入攻击的攻击手段,其攻击原理是通过改变环境参数,如电压、温度、光、电离辐射以及周围磁场等,来试图在芯片的程序中引入一些错误的行为,或导致信息泄露。在目前的Soc安全芯片设计技术中,针对错误注入的攻击的防护手段主要有两种:一是在芯片的外围增加一层物理性防护,防止错误注入;二是增加芯片的检错硬件,一旦检测到异常信息,芯片就进入异常工作状态。这两种防护手段都存在共同的缺点,首先它们都需要大量的传感器电路,硬件成本较大;其次它们都仅仅是从源头上进行防御,一旦错误注入成功,就无能为力。如现有技术CN201710971482.9的技术方案,就是简单进行完整性校验和合法性校验,并没有采用哈希值比对的方法来防止错误注入。在另一个方案CN201910379458.5中,采用的是安全引擎连续确定多个固件块的哈希值来确定固件的合法性的方案,也没有能够防止安全注入自动执行的问题。
发明内容
为此,需要提供一种新的芯片安全防御方法,能够达到通过芯片即使被效果;
为实现上述目的,发明人提供了一种芯片安全防护方法,包括如下步骤,将SRAM存储器的可执行权限关闭;读取解密固件的签名的公钥,读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值,通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。
具体地,通过安全执行权限管理器装置关闭SRAM存储器的可执行权限。
具体地,还包括步骤,执行BootRom程序,通过BootRom程序从OTP(OneTimeProgram)存储器中读出解密固件的签名的公钥。
具体地,还包括步骤,执行BootRom程序,通过BootRom程序读取第一固件的固件签名。
进一步地,在步骤:根据权限配置信息打开SRAM的相应权限,之后还包括步骤,
通过第一固件程序初始化DDR存储器;加载第二固件的代码到DDR存储器,根据第二的代码计算第二计算哈希值,读取第二固件的固件签名,根据公钥解锁第二固件的固件签名得到第二签名哈希值;通过硬件比较器比较第二签名哈希值与第二计算哈希值,若比较结果相等,根据权限配置信息打开DDR的相应权限。
具体地,还通过安全执行权限管理器装置默认将DDR存储器的可执行权限关闭。
优选地,还包括步骤,执行BootRom程序,通过所述BootRom程序加载第二固件的代码到DDR存储器,还通过所述BootRom程序读取第二固件的固件签名。
通过上述方案,能够在安全环境下保证固件的安全性,若第一固件为非安全性固件,则可以防止非安全固件的错误代码在SRAM中自主执行,从而提升了芯片系统在错误注入式攻击下的安全性。
附图说明
图1为本发明一实施方式所述的安全芯片一般的存储系统示意图;
图2为本发明一实施方式所述的安全执行权限管理器装置图;
图3为本发明一实施方式所述的芯片安全防护方法流程图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
1.Soc安全芯片一般的存储系统如图1组成。ROM存储器存储Soc安全芯片上电启动后最先执行BootRom程序,它是只读非易失性的存储器。BootRom程序是固化在Soc芯片上不可更改的程序。Flash是非易失性的存储器,它用于存储固件,但不能直接运行固件。固件程序启动执行时需要将Flash上的固件加载到易失性可执行的SRAM或DDR存储器中执行。OTP是只能写一次的存储器,它用于存储解密固件签名的公钥。
2.本发明设计了如图2组成的安全执行权限管理器装置,并集成在Soc安全芯片上。Soc芯片上电时安全执行权限管理器装置默认将SRAM或DDR存储器的可执行权限关闭。这样在成功解锁打开可执行权限前,SRAM或DDR存储器可读可写,但无法执行任何代码。只有当哈希值送入硬件哈希比较器进行比较成功之后,才能够进行相关存储器的可执行权限打开。硬件哈希比较器的实现方式可以通过简单的寄存器实现。
3.Soc安全芯片上电启动后先执行BootRom程序。BootRom程序先从OTP存储器中读出解密固件的签名的公钥。
4.BootRom程序从Flash或其它非易失性存储器件中读取固件签名到SRAM中。
5.BootRom程序使用公钥解密固件签名,解密后的签名中含有固件1的哈希值sign_hash1和固件2的哈希值sign_hash2。
6.BootRom程序从flash或其它非易失性存储器件中加载固件1代码,并计算其哈希值cal_hash1。
7.将解密后的哈希值sign_hash1和上步计算出的哈希cal_hash1,以及要解锁的SRAM执行权限配置信息一起输入安全执行权限管理器装置。
8.安全执行权限管理器装置中的硬件比较器执行两个哈希的比较,若哈希值比较相等,说明固件1是合法的。则根据执行权限配置信息打开SRAM的相应执行权限,若不相等则保持SRAM执行权限为关闭状态,并向CPU报错。
9.可执行权限的配置信息包含SRAM可执行权限的起始地址和结束地址,可根据固件的加载地址和固件大小来决定。这样避免可执行权限地址大于固件的执行地址空间,造成恶意代码被执行的风险。
10.若哈希值比较相等,解锁打开SRAM可执行权限成功后,CPU就可以跳转到SRAM中的固件1的加载地址中执行固件1程序。相关流程图如图3所示。
11.若系统中存在DDR存储器,则第10步骤中固件1程序初始化DDR存储器。完成DDR初始化后,BootRom程序继续加载固件2到DDR存储器,并计算其哈希值cal_hash2。
12.将步骤5解密后的哈希值sign_hash2和上步计算出的哈希cal_hash2,以及要解锁的DDR存储器执行权限配置信息一起输入安全执行权限管理器装置。
13.安全执行权限管理器装置中的硬件比较器执行两个哈希的比较,若哈希值比较相等,说明固件2是合法的。则根据执行权限配置信息解锁打开DDR的相应执行权限,若不相等则保持DDR执行权限为关闭状态,并向CPU报错。
14.若哈希值比较相等,解锁打开DDR可执行权限成功后,CPU就可以跳转到DDR中的固件2加载地址中执行固件2程序。
在如图3所示的具体实施例中,我们还进行如下芯片安全防护方法步骤,S300安全执行权限管理器装置默认将SRAM存储器的可执行权限关闭,S302执行BootRom程序,BootRom程序从OTP(OneTimeProgram)存储器中读出解密固件的签名的公钥,S303BootRom程序读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,S304BootRom程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值。S305通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。通过上述方案,能够在安全环境下保证固件的安全性,若第一固件为非安全性固件,则可以防止非安全固件的错误代码在SRAM中自主执行,从而提升了整体方案的安全性。
在其他一些进一步的实施例中,所述第一固件还可以是DDR存储器的初始化程序,本实施例中还包括步骤,S301安全执行权限管理器装置默认将DDR存储器的可执行权限关闭,同时在步骤S305之后还包括步骤,S306通过第一固件程序初始化DDR存储器。S307BootRom程序继续加载第二固件的代码到DDR存储器,根据第二的代码计算第二计算哈希值。S308BootRom程序读取第二固件的固件签名,根据公钥解锁第二固件的固件签名得到第二签名哈希值。通过硬件比较器比较第二签名哈希值与第二计算哈希值,若比较结果相等,根据权限配置信息打开DDR的相应权限。通过上述判断步骤,能够识别第二固件是否为安全性固件,可以防止非安全固件的错误代码在DDR中自主执行,从而进一步的提升了同时带有SRAM和DDR的芯片在面临错误注入攻击时候的安全性。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (7)
1.一种芯片安全防护方法,其特征在于,包括如下步骤,将SRAM存储器的可执行权限关闭;读取解密固件的签名的公钥,读取第一固件的固件签名,根据公钥解锁第一固件的固件签名得到第一签名哈希值,程序加载第一固件的代码,并根据第一固件的代码计算第一计算哈希值,通过硬件比较器比较第一签名哈希值与第一计算哈希值,若比较结果相等,根据权限配置信息打开SRAM的相应权限。
2.根据权利要求1所述的芯片安全防护方法,其特征在于,通过安全执行权限管理器装置关闭SRAM存储器的可执行权限。
3.根据权利要求1所述的芯片安全防护方法,其特征在于,还包括步骤,执行BootRom程序,通过BootRom程序从OTP(One Time Program)存储器中读出解密固件的签名的公钥。
4.根据权利要求1所述的芯片安全防护方法,其特征在于,还包括步骤,执行BootRom程序,通过BootRom程序读取第一固件的固件签名。
5.根据权利要求1所述的芯片安全防护方法,其特征在于,在步骤:根据权限配置信息打开SRAM的相应权限,之后还包括步骤,
通过第一固件程序初始化DDR存储器;加载第二固件的代码到DDR存储器,根据第二的代码计算第二计算哈希值,读取第二固件的固件签名,根据公钥解锁第二固件的固件签名得到第二签名哈希值;通过硬件比较器比较第二签名哈希值与第二计算哈希值,若比较结果相等,根据权限配置信息打开DDR的相应权限。
6.根据权利要求5所述的芯片安全防护方法,其特征在于,还通过安全执行权限管理器装置默认将DDR存储器的可执行权限关闭。
7.根据权利要求5所述的芯片安全防护方法,其特征在于,还包括步骤,执行BootRom程序,通过所述BootRom程序加载第二固件的代码到DDR存储器,还通过所述BootRom程序读取第二固件的固件签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260030.8A CN112287358A (zh) | 2020-11-12 | 2020-11-12 | 一种芯片安全防御方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260030.8A CN112287358A (zh) | 2020-11-12 | 2020-11-12 | 一种芯片安全防御方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112287358A true CN112287358A (zh) | 2021-01-29 |
Family
ID=74398061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011260030.8A Pending CN112287358A (zh) | 2020-11-12 | 2020-11-12 | 一种芯片安全防御方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112287358A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060116382A (ko) * | 2005-05-09 | 2006-11-15 | 엘지전자 주식회사 | 컴퓨터 시스템의 보안 설정 방법 및 장치 |
CN108021405A (zh) * | 2016-10-28 | 2018-05-11 | 福州瑞芯微电子股份有限公司 | 一种soc系统启动过程中存储介质的驱动方法和装置 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
CN109614798A (zh) * | 2017-09-30 | 2019-04-12 | 华为技术有限公司 | 安全启动方法、装置及终端设备 |
CN111814208A (zh) * | 2020-07-02 | 2020-10-23 | 国家广播电视总局广播电视科学研究院 | 一种soc国密安全芯片安全启动时防御故障注入的方法 |
-
2020
- 2020-11-12 CN CN202011260030.8A patent/CN112287358A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060116382A (ko) * | 2005-05-09 | 2006-11-15 | 엘지전자 주식회사 | 컴퓨터 시스템의 보안 설정 방법 및 장치 |
CN108021405A (zh) * | 2016-10-28 | 2018-05-11 | 福州瑞芯微电子股份有限公司 | 一种soc系统启动过程中存储介质的驱动方法和装置 |
CN109614798A (zh) * | 2017-09-30 | 2019-04-12 | 华为技术有限公司 | 安全启动方法、装置及终端设备 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
CN111814208A (zh) * | 2020-07-02 | 2020-10-23 | 国家广播电视总局广播电视科学研究院 | 一种soc国密安全芯片安全启动时防御故障注入的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914658B (zh) | 终端设备的安全启动方法及终端设备 | |
US10509568B2 (en) | Efficient secure boot carried out in information processing apparatus | |
US7401234B2 (en) | Autonomous memory checker for runtime security assurance and method therefore | |
US8132257B2 (en) | Anti-virus method based on security chip | |
US9389793B2 (en) | Trusted execution and access protection for embedded memory | |
JP5114617B2 (ja) | 秘密鍵を保護する、セキュア端末、プログラム、および方法 | |
US20170090909A1 (en) | Secure patch updates for programmable memories | |
US20150058979A1 (en) | Processing system | |
TW201500960A (zh) | 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術 | |
US20160110545A1 (en) | Code pointer authentication for hardware flow control | |
US20160098555A1 (en) | Program code attestation circuitry, a data processing apparatus including such program code attestation circuitry and a program attestation method | |
CN103718165A (zh) | Bios闪存攻击保护和通知 | |
JP2014513348A (ja) | 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法 | |
CN113779652A (zh) | 数据完整性保护的方法和装置 | |
CN110020561B (zh) | 半导体装置和操作半导体装置的方法 | |
US8683212B2 (en) | Method and system for securely loading code in a security processor | |
US10181956B2 (en) | Key revocation | |
CN114186239A (zh) | 一种基于路径信息的程序白名单方法及装置 | |
CN113486360A (zh) | 基于risc-v的安全启动方法及系统 | |
US20190080111A1 (en) | Method for protecting unauthorized data access from a memory | |
US10296738B2 (en) | Secure integrated-circuit state management | |
US20150261979A1 (en) | Method for monitoring an arithmetic unit | |
US11269986B2 (en) | Method for authenticating a program and corresponding integrated circuit | |
EP3440586B1 (en) | Method for write-protecting boot code if boot sequence integrity check fails | |
CN112287358A (zh) | 一种芯片安全防御方法和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210129 |
|
RJ01 | Rejection of invention patent application after publication |