CN117852105A - 基于硬件增强的芯片安全管理方法、装置、终端及介质 - Google Patents
基于硬件增强的芯片安全管理方法、装置、终端及介质 Download PDFInfo
- Publication number
- CN117852105A CN117852105A CN202310732719.3A CN202310732719A CN117852105A CN 117852105 A CN117852105 A CN 117852105A CN 202310732719 A CN202310732719 A CN 202310732719A CN 117852105 A CN117852105 A CN 117852105A
- Authority
- CN
- China
- Prior art keywords
- image
- chip
- instruction
- copy
- hardware
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 claims description 47
- 238000012795 verification Methods 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 25
- 230000009191 jumping Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 9
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 6
- 230000008439 repair process Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000386 microscopy Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
- G06F21/77—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 in smart cards
-
- 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/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供基于硬件增强的芯片安全管理方法、装置、终端及介质,本发明可确保每个芯片根据自身的唯一ID生成加密秘钥,并根据加密秘钥生成唯一的Image文件用于boot程序,确保boot文件的唯一性及boot程序的安全性,防止加密秘钥可用于其他在用芯片的解密,修复了从硬件上攻击芯片的安全漏洞。
Description
技术领域
本发明涉及芯片安全管理技术领域,特别是涉及基于硬件增强的芯片安全管理方法、装置、终端及介质。
背景技术
现有的芯片在安全方面有很多做法,使用eFuse作为芯片安全的存储单元比较常见。由于eFuse具有单次烧写特性,所以可以将不可篡改的数据保存在其中,例如芯片的加解密key。当芯片启动时,如果启动过程中使用保存在eFuse中的key解密不成功,则芯片将进入异常模式而不能启动,这可以有效保护芯片不会被恶意攻击。
对于大规模量产,如果每个芯片都烧写相同的key,这对于eFuse的烧写比较有利,只需要把key发给封装厂家统一烧写,但是对于芯片安全无益。这里存在一种情况,即攻击者如果通过特殊手段,获取到该芯片的加密key,则他就可以通过该key攻击在用的其他芯片,达到其目的。
攻击者获取加密key的方法有多种:
方法1:通过测试模式下的JTAG读取芯片eFuse信息,由于eFuse在测试模式下会被写入,读出端口也会开放。这样,eFuse信息在测试模式下就会被读出。
方法2:通过显微技术,由于eFuse原理上是熔丝结构,具有单次烧写特性,在未烧写前,所有的值都是1。烧写后,会将需要的bit改成0,这会彻底烧死这个bit,再也变不回1,这就可以通过显微技术观察烧写的部位,获取到烧写信息,从而获取到加密key。
获取到的加密key可以用于其他在用芯片的解密,这种从硬件上攻击芯片会导致安全漏洞,且不易修复。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供基于硬件增强的芯片安全管理方法、装置、终端及介质,用于解决芯片安全管理问题。
为实现上述目的及其他相关目的,本发明的第一方面提供一种基于硬件增强的芯片安全管理方法,包括:芯片上电后,从一次性可编程存储器中读取芯片唯一标识以生成对应的加密秘钥;加载芯片配置指令,并判断初始映像中是否包含跳转指令;若初始映像中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理;将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址;将初始映像的明文信息擦除并在初始映像的首指令地址中加入跳转到二次拷贝映像地址的指令;随后重启芯片;若初始映像中包含跳转指令,则跳转至读取二次拷贝映像地址读取密文并进行解密,并判断二次拷贝映像格式校验是否成功;若二次拷贝映像格式校验不成功,则重新在Flash存储介质中写入不包含跳转指令的初始映像的明文信息;若二次拷贝映像格式校验成功,则执行映射指令程序。
于本发明的第一方面的一些实施例中,所述芯片唯一标识的生成方式包括:基于如下信息中的至少两种进行组合及位宽扩展得到:芯片生产日期信息、生产晶片标号信息、批量标识信息、X/Y坐标信息。
于本发明的第一方面的一些实施例中,所述方法包括可使用如下任一种或多种加密算法来使用所述加密秘钥对所述初始映像的明文信息进行加密处理:MD5算法、SHA1算法、HMAC算法、AES算法、DES算法、3DES算法、RSA算法、ECC算法。
于本发明的第一方面的一些实施例中,在Flash存储介质中划分出三次拷贝映像地址,用于存储三次拷贝映像;所述三次拷贝映像用于在二次拷贝映像出错时读取使用以供备份。
于本发明的第一方面的一些实施例中,当芯片在线正常工作时,通过二次拷贝映像进行芯片启动,所述三次拷贝映像作为备份并在不影响芯片工作的情况下进行更新;在所述三次拷贝映像更新后,通过设置所述初次映像源中的跳转指令以使指令跳转至三次拷贝映像地址以用于下一次的芯片启动。
于本发明的第一方面的一些实施例中,所述二次拷贝映像格式校验是否成功的判断方式包括:将映像所占存储空间中可变长度的操作码中的可选DEVICE字段与配置器中CRC32寄存器的低8比特位进行比较;若一致,则表示校验成功;否则表示校验不成功。
于本发明的第一方面的一些实施例中,每个映像的结构包括:64字节可读写文件、两个要求加密或不加密的区块、可选加密或不加密的区块及结尾标志。
为实现上述目的及其他相关目的,本发明的第二方面提供一种基于硬件增强的芯片安全管理装置,包括:密钥生成模块,用于芯片上电后,从一次性可编程存储器中读取芯片唯一标识以生成对应的加密秘钥;加载指令模块,用于加载芯片配置指令,并判断初始映像中是否包含跳转指令;跳转判断模块,用于判断初始映像中是否包含跳转指令;若初始映像中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理;将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址;将初始映像的明文信息擦除并在初始映像的首指令地址中加入跳转到二次拷贝映像地址的指令;随后重启芯片;若初始映像中包含跳转指令,则跳转至读取二次拷贝映像地址读取密文并进行解密;格式校验模块,用于判断二次拷贝映像格式校验是否成功;若二次拷贝映像格式校验不成功,则重新在Flash存储介质中写入不包含跳转指令的初始映像的明文信息;若二次拷贝映像格式校验成功,则执行映射指令程序。
为实现上述目的及其他相关目的,本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于硬件增强的芯片安全管理方法。
为实现上述目的及其他相关目的,本发明的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述基于硬件增强的芯片安全管理方法。
如上所述,本发明的基于硬件增强的芯片安全管理方法、装置、终端及介质,具有以下有益效果:本发明可确保每个芯片根据自身的唯一ID生成加密秘钥,并根据加密秘钥生成唯一的Image文件用于boot程序,确保boot文件的唯一性及boot程序的安全性,防止加密秘钥可用于其他在用芯片的解密,修复了从硬件上攻击芯片的安全漏洞。
附图说明
图1显示为本发明一实施例中的一种基于硬件增强的芯片安全管理方法的流程示意图。
图2显示为本发明一实施例中Flash存储介质中的各种映像Image的组织方式示意图。
图3A显示为本发明一实施例中每个映像Image的结构示意图。
图3B显示为本发明一实施例中每个区块BLOCK的结构示意图。
图3C显示为本发明一实施例中区块BLOCK中的流STREAM的结构示意图。
图3D显示为本发明一实施例中STREAM结构中的PAD16的结构示意图。
图3E显示为本发明一实施例中STREAM结构中的OPCODE的结构示意图。
图3F显示为本发明一实施例中OPCODE结构中的MASK及MISC结构示意图。
图4显示为本发明一实施例中的一种基于硬件增强的芯片安全管理方法的流程示意图。
图5显示为本发明一实施例中的一种基于硬件增强的芯片安全管理装置的结构示意图。
图6显示为本发明一实施例中电子终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
为解决上述背景技术中的问题,本发明提供基于硬件增强的芯片安全管理方法、系统、终端及介质,在本发明所采用的安全机制下,每个芯片的key是不同的,加解密key不同,即使获取到了一颗芯片的加密key,也没法用一个芯片的key去攻击另一颗芯片,从而达到保护芯片,确保安全的目的。
为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
在对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:
<1>Configurator:配置程序;产品配置器;配置工具。
<2>Flash:存储介质,用于存储boot代码。
<3>eFuse:一次性可编程存储器;芯片内部单次烧写的存储设备,容量较小,用于存储芯片ID、memory repair(存储器修理)等信息。
<4>Image:包含用于Configurator启动芯片的一系列指令。
<5>Primary Image:初始映像,用于接收来自主机端(Product Host)的I/O请求,对外提供服务。
<6>Secondary Image:二次拷贝映像,其所在的存储系统可以独立服务于其它应用系统,当Primary Image不可访问时,可将其提升为Primary Image,以接管原有业务请求服务。
<7>Tertiary Image:三次拷贝映像。
本发明实施例提供基于硬件增强的芯片安全管理方法、基于硬件增强的芯片安全管理方法的系统、以及存储用于实现基于硬件增强的芯片安全管理方法的可执行程序的存储介质。就基于硬件增强的芯片安全管理方法的实施而言,本发明实施例将对基于硬件增强的芯片安全管理的示例性实施场景进行说明。
如图1所示,展示了本发明实施例中的一种基于硬件增强的芯片安全管理方法的流程示意图。本实施例中的基于硬件增强的芯片安全管理方法应用于配置器(Configurator),该方法主要包括如下各步骤:
步骤S11:芯片上电后,从一次性可编程存储器中读取芯片唯一标识以生成对应的加密秘钥。
需说明的是,配置器(Configurator)中包含加密及解密逻辑,每次芯片上电,配置器(Configurator)都会从一次性可编程存储器(eFuse)中读取芯片唯一标识。
示例性地,所述芯片唯一标识的生成方式包括:基于如下信息中的至少两种进行组合及位宽扩展得到:芯片生产日期信息、生产晶片标号信息(Wafer Number)、批量标识信息(Lot ID)、X/Y坐标信息等等。上述这些信息都具有唯一性,每个芯片都不一样,因此这些信息经过组合及位宽扩展,就可以形成芯片的加密秘钥或解密秘钥。
步骤S12:加载芯片配置指令,并判断初始映像中是否包含跳转指令。
应理解的是,加载芯片配置指令是指加载Image,所谓Image是指包含用于Configurator启动芯片的一系列指令。
步骤S13:若初始映像中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理;将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址;将初始映像的明文信息擦除并在初始映像的首指令地址中加入跳转到二次拷贝映像地址的指令;随后重启芯片。
需说明的是,初始映像(Primary Image)是软件应用程序EMC Mirrorview中的一个概念。软件应用程序EMC Mirrorview用于在单独的位置维护逻辑单元(Logical UnitNumber,LUN)的二次拷贝映像,这两个映射距离很远以提供灾难恢复。软件应用程序EMCMirrorview可以支持2个及以上的远程映射,每个映射位于单独的存储系统中。初始映像(Primary Image)用于接收来自主机端(Product Host)的I/O请求,对外提供服务;二次拷贝映像(Secondary Image)所在的存储系统可以独立服务于其它应用系统,当初始映像(Primary Image)不可访问时,可将其提升为初始映像(Primary Image),以接管原有业务请求服务。
在一些示例中,可使用如下任一种或多种加密算法来使用所述加密秘钥对所述初始映像的明文信息进行加密处理:MD5算法、SHA1算法、HMAC算法、AES算法、DES算法、3DES算法、RSA算法、ECC算法等。
具体而言,MD5算法使用的是哈希函数,其典型应用是对一段信息产生信息摘要以防止被篡改。SHA1算法也是一种消息摘要算法,具有更高的安全性,对于长度小于2^64位的消息,SHA1算法会产生一个160位的消息摘要。HMAC算法是秘钥相关的哈希运算消息认证码,利用哈希算法以一个秘钥和一个消息为输入,生成一个消息摘要作为输出。AES算法、DES算法、3DES算法都是对称的块加密算法,加解密的过程都是可逆的;例如有AES128、AES192、AES256等。RSA算法是一种能同时用于加密和数字签名的算法,能够抵抗目前为止已知的所有密码攻击;ECC算法是一种非对称加密算法,比其他算法使用更小的秘钥,并提供相当或更高等级的安全级别。
于本发明实施例中,加密后的数据写入Flash存储介质中指定的二次拷贝映像地址,也即Secondary Image地址。写入完成后,原来的初始映像的明文信息将被擦除,并在Primary Image首指令地址中加入跳转到Secondary Image地址的指令。这样,芯片的Image由每个芯片唯一的秘钥生成相应的密文。
步骤S14:若初始映像中包含跳转指令,则跳转至读取二次拷贝映像地址读取密文并进行解密,并判断二次拷贝映像格式校验是否成功。
在一些示例中,在重启芯片后,配置器(Configurator)首先会去读取芯片ID并扩展成解密秘钥,随后去初始映像(Primary Image)地址读取到跳转指令;接着,配置器(Configurator)会按照跳转指令跳转到二次拷贝映像(Secondary Image)地址读取密文并解密。由于二次拷贝映像(Secondary Image)是正确加密得到的代码,所以配置器(Configurator)中的校验代码会校验通过。此后,配置器(Configurator)会根据Image内容完成整个boot过程。
步骤S15:若二次拷贝映像格式校验不成功,则重新在Flash存储介质中写入不包含跳转指令的初始映像的明文信息;若二次拷贝映像格式校验成功,则执行映射指令程序。
优选的,在Flash存储介质中划分出三次拷贝映像(Tertiary Image)地址,所述三次拷贝映像(Tertiary Image)地址中存储三次拷贝映像(Tertiary Image),用于在二次拷贝映像(Secondary Image)出错时读取使用以达到备份的目的。
进一步地,所述三次拷贝映像(Tertiary Image)用于映像的在线更新;当芯片在线正常工作时,通常只需要二次拷贝映像(Secondary Image)就可以启动,三次拷贝映像(Tertiary Image)作为备份空间可以随时更新而不影响芯片工作;只有当需要更新时,才可以在线更新三次拷贝映像(Tertiary Image)。在更新三次拷贝映像(Tertiary Image)后通过更新初始映像(Primary Image)中的跳转指令地址就可以把在线更新的三次拷贝映像(Tertiary Image)用于下次芯片启动流程。
在一些示例中,若芯片启动不成功,则配置器(Configurator)直接拉起错误标志位,释放ARM复位,并执行JUMP to SELF指令,用于允许ARM JTAG控制更新Flash中的映像Image。更新完成后进行reset复位,然后重新进行boot操作。
示例性地,Flash存储介质中的各种映像Image的组织方式如图2所示:在预设的存储空间中,地址0x0000~0x20000之间的1Mbit存储空间中存储的是初始映像(PrimaryImage),地址0x20000~0x40000之间的2Mbit存储空间中存储的是二次拷贝映像(Secondary Image),从地址0x40000往后的2Mbit存储空间中存储的是三次拷贝映像(Tertiary Image)。
为便于本领域技术人员理解,现以图3A~3F为例来解释每个映像Image的结构:
如图3A所示,每个映像Image包括:64字节可读写文件(64Bytes of humanreadable text ignored by hardware)、两个要求加密或不加密区块(requiredencrypted/unencrypted Block)、可选加密或不加密的区块(Optional unencrypted orencrypted Blocks)、结尾标志(EOI)。
如图3B所示,每个区块BLOCK的结构包括:14字节固定模式(14byte fixedpattern)、COUNT、14字节固定模式(14byte fixed pattern)、COUNT、STEAM。其中,14字节固定模式(14byte fixed pattern)是区块头部(BLOCK Header)。COUNT是指操作码的2字节数(2bytes number of opcodes),意思是如果该bit为1,表示该指令可选COUNT字段是需要传输的次数。
如图3C所示,区块BLOCK中的流STREAM的结构包括:可变长度的操作码(variablelength OPCODE)、可变长度的操作码(variable length OPCODE)、可变长度的操作码(variable length OPCODE)、16字节对齐填充PAD16。
如图3D所示,展示的是STREAM结构中的16字节对齐填充PAD16的结构,包括到下一个16字节边界的虚设字节。
如图3E所示,展示的是STREAM结构中的OPCODE的结构,包括如下字段:掩码MASK、optional CHECK、optional DEVICE、optional ADDRESS、optional OFFSET、optionalMISC、optional COUNT、optional variable DATA。
OPCODE结构中的掩码MASK的结构如图3F所示,包括如下字段:0、1、CH、DE、AD、OF、MI、CO。
字段CH代表CHECK,是指若该bit为1,则每个OPCODE中的1字节可选CHECK字段与配置器(configurator)中的CRC32寄存器低8bit比较;若一致,则表示校验成功,boot继续;否则表示校验不成功,则boot会终止。CHECK字段占1Bytes存储空间。
字段DE代表DEVICE,是指若该bit为1,则表示该指令可选DEVICE字段是需要访问的芯片内部设备。DEVICE字段占2Bytes存储空间。
字段AD代表ADDRESS,是指若该bit为1,则表示该指令可选ADDRESS字段是需要访问device所对应的地址ADDRESS。ADDRESS字段占2Bytes存储空间。
字段OF代表OFFSET,是指若该bit为1,对于多周期的burst写,该指令可选OFFSET字段表示下一个写跟上一个写地址的地址增量offset,在COUNT有效时需要关注。OFFSET字段占1Bytes存储空间。
字段MI代表MISC寄存器具有含义,是指若该bit为1,则再去解析可选MISC字段;MISC字段的结构如图3F所示,其中:
UP,ER组合控制Unencrypted_Blocks_Permitted,默认是需要加密;
V3,V1组合控制Read_From_Virtual_Port_3还是Read_From_Virtual_Port_1,默认是V1;
SS,XP组合控制Write_To_SSB_Versus_XPB,默认是XPB;
Data_Offset表示写数据需要右移的bit位;
Data_Size表示写数据的bit数,0代表32bit。
CO代表COUNT,是指如果该bit为1,表示该指令可选COUNT字段是需要传输的次数。COUNT字段占1Bytes存储空间。
为便于本领域技术人员理解,下文结合图4中的流程示意图来对本发明实施例的基于硬件增强的芯片安全管理方法做进一步的解释说明。
步骤S401:给芯片上电。
步骤S402:配置器(Configurator)读取eFuse芯片ID,也即从一次性可编程存储器(eFuse)中读取芯片唯一标识。
步骤S403:配置器(Configurator)加载Image。
步骤S404:判断Primary Image中是否包含跳转指令;若不包含跳转指令则跳转至步骤S405;若包含跳转指令则跳转至步骤S409。
步骤S405:若Primary Image中不包含跳转指令,则使用芯片ID作为密钥来加密明文。
也即,若Primary Image中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理。
步骤S406:将密文写入Secondary Image地址。
也即,将将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址。
步骤S407:擦除Primary Image位置中的明文并加入跳转指令。
步骤S408:重启芯片。
步骤S409:读取Secondary Image位置密文并使用芯片ID作为密钥进行解密。
步骤S410:判断Secondary Image格式校验是否成功。
步骤S411:若校验成功,则执行Image程序。
步骤S412:若校验不成功,则重新在Flash中写入不包含跳转指令的明文PrimaryImage,并回到步骤S401。
需说明的是,本发明实施例中的实施流程与上文中的一种基于硬件增强的芯片安全管理方法的流程相类似,故不再赘述。
如图5所示,展示了本发明一实施例中的一种基于硬件增强的芯片安全管理装置的结构示意图。所述芯片安全管理装置500包括:秘钥生成模块501、加载指令模块502、跳转判断模块503、格式校验模块504。
秘钥生成模块501用于芯片上电后,从一次性可编程存储器中读取芯片唯一标识以生成对应的加密秘钥。
加载指令模块502用于加载芯片配置指令,并判断初始映像中是否包含跳转指令。
跳转判断模块503用于判断初始映像中是否包含跳转指令;若初始映像中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理;将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址;将初始映像的明文信息擦除并在初始映像的首指令地址中加入跳转到二次拷贝映像地址的指令;随后重启芯片;若初始映像中包含跳转指令,则跳转至读取二次拷贝映像地址读取密文并进行解密。
格式校验模块504用于判断二次拷贝映像格式校验是否成功;若二次拷贝映像格式校验不成功,则重新在Flash存储介质中写入不包含跳转指令的初始映像的明文信息;若二次拷贝映像格式校验成功,则执行映射指令程序。
在一些示例中,秘钥生成模块501生成芯片唯一标识的方式包括:基于如下信息中的至少两种进行组合及位宽扩展得到:芯片生产日期信息、生产晶片标号信息、批量标识信息、X/Y坐标信息。
在一些示例中,跳转判断模块503使用如下任一种或多种加密算法来使用所述加密秘钥对所述初始映像的明文信息进行加密处理:MD5算法、SHA1算法、HMAC算法、AES算法、DES算法、3DES算法、RSA算法、ECC算法。
在一些示例中,所述芯片安全管理装置还不拗口三次拷贝映射模块,用于在Flash存储介质中划分出三次拷贝映像地址,用于存储三次拷贝映像;所述三次拷贝映像用于在二次拷贝映像出错时读取使用以供备份。
进一步地,当芯片在线正常工作时,通过二次拷贝映像进行芯片启动,所述三次拷贝映像作为备份并在不影响芯片工作的情况下进行更新;在所述三次拷贝映像更新后,通过设置所述初次映像源中的跳转指令以使指令跳转至三次拷贝映像地址以用于下一次的芯片启动。
在一些示例中,格式校验模块504的校验过程包括:将映像所占存储空间中可变长度的操作码中的可选DEVICE字段与配置器中CRC32寄存器的低8比特位进行比较;若一致,则表示校验成功;否则表示校验不成功。
需要说明的是:上述实施例提供的基于硬件增强的芯片安全管理装置在进行基于硬件增强的芯片安全管理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的基于硬件增强的芯片安全管理装置与基于硬件增强的芯片安全管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供的基于硬件增强的芯片安全管理方法可以采用终端侧或服务器侧实施,就基于硬件增强的芯片安全管理终端的硬件结构而言,请参阅图6,为本发明实施例提供的基于硬件增强的芯片安全管理终端600的一个可选的硬件结构示意图,该终端600可以是移动电话、计算机设备、平板设备、个人数字处理设备、工厂后台处理设备等。基于硬件增强的芯片安全管理终端600包括:至少一个处理器601、存储器602、至少一个网络接口604和用户接口606。装置中的各个组件通过总线系统605耦合在一起。可以理解的是,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统。
其中,用户接口606可以包括显示器、键盘、鼠标、轨迹球、点击枪、按键、按钮、触感板或者触摸屏等。
可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,StaticRandom Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous StaticRandomAccess Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类别的存储器。
本发明实施例中的存储器602用于存储各种类别的数据以支持基于硬件增强的芯片安全管理终端600的操作。这些数据的示例包括:用于在基于硬件增强的芯片安全管理终端600上操作的任何可执行程序,如操作系统6021和应用程序6022;操作系统6021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序6022可以包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例提供的基于硬件增强的芯片安全管理方法可以包含在应用程序6022中。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器601可以是微处理器或者任何常规的处理器等。结合本发明实施例所提供的配件优化方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,基于硬件增强的芯片安全管理终端600可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable LogicDevice),用于执行前述方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
于本发明提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
综上所述,本发明提供基于硬件增强的芯片安全管理方法、装置、终端及介质,本发明可确保每个芯片根据自身的唯一ID生成加密秘钥,并根据加密秘钥生成唯一的Image文件用于boot程序,确保boot文件的唯一性及boot程序的安全性,防止加密秘钥可用于其他在用芯片的解密,修复了从硬件上攻击芯片的安全漏洞。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种基于硬件增强的芯片安全管理方法,其特征在于,包括:
芯片上电后,从一次性可编程存储器中读取芯片唯一标识以生成对应的加密秘钥;
加载芯片配置指令,并判断初始映像中是否包含跳转指令;
若初始映像中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理;将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址;将初始映像的明文信息擦除并在初始映像的首指令地址中加入跳转到二次拷贝映像地址的指令;随后重启芯片;
若初始映像中包含跳转指令,则跳转至读取二次拷贝映像地址读取密文并进行解密,并判断二次拷贝映像格式校验是否成功;
若二次拷贝映像格式校验不成功,则重新在Flash存储介质中写入不包含跳转指令的初始映像的明文信息;若二次拷贝映像格式校验成功,则执行映射指令程序。
2.根据权利要求1所述的基于硬件增强的芯片安全管理方法,其特征在于,所述芯片唯一标识的生成方式包括:基于如下信息中的至少两种进行组合及位宽扩展得到:芯片生产日期信息、生产晶片标号信息、批量标识信息、X/Y坐标信息。
3.根据权利要求1所述的基于硬件增强的芯片安全管理方法,其特征在于,所述方法包括可使用如下任一种或多种加密算法来使用所述加密秘钥对所述初始映像的明文信息进行加密处理:MD5算法、SHA1算法、HMAC算法、AES算法、DES算法、3DES算法、RSA算法、ECC算法。
4.根据权利要求1所述的基于硬件增强的芯片安全管理方法,其特征在于,在Flash存储介质中划分出三次拷贝映像地址,用于存储三次拷贝映像;所述三次拷贝映像用于在二次拷贝映像出错时读取使用以供备份。
5.根据权利要求4所述的基于硬件增强的芯片安全管理方法,其特征在于,当芯片在线正常工作时,通过二次拷贝映像进行芯片启动,所述三次拷贝映像作为备份并在不影响芯片工作的情况下进行更新;在所述三次拷贝映像更新后,通过设置所述初次映像源中的跳转指令以使指令跳转至三次拷贝映像地址以用于下一次的芯片启动。
6.根据权利要求1所述的基于硬件增强的芯片安全管理方法,其特征在于,所述二次拷贝映像格式校验是否成功的判断方式包括:将映像所占存储空间中可变长度的操作码中的可选DEVICE字段与配置器中CRC32寄存器的低8比特位进行比较;若一致,则表示校验成功;否则表示校验不成功。
7.根据权利要求1所述的基于硬件增强的芯片安全管理方法,其特征在于,每个映像的结构包括:64字节可读写文件、两个要求加密或不加密的区块、可选加密或不加密的区块及结尾标志。
8.一种基于硬件增强的芯片安全管理装置,其特征在于,包括:
密钥生成模块,用于芯片上电后,从一次性可编程存储器中读取芯片唯一标识以生成对应的加密秘钥;
加载指令模块,用于加载芯片配置指令,并判断初始映像中是否包含跳转指令;
跳转判断模块,用于判断初始映像中是否包含跳转指令;若初始映像中不包含跳转指令,则读取Flash存储介质中所包含的初始映像的明文信息,并使用所述加密秘钥对所述初始映像的明文信息进行加密处理;将加密后的数据写入Flash存储介质中指定的二次拷贝映像地址;将初始映像的明文信息擦除并在初始映像的首指令地址中加入跳转到二次拷贝映像地址的指令;随后重启芯片;若初始映像中包含跳转指令,则跳转至读取二次拷贝映像地址读取密文并进行解密;
格式校验模块,用于判断二次拷贝映像格式校验是否成功;若二次拷贝映像格式校验不成功,则重新在Flash存储介质中写入不包含跳转指令的初始映像的明文信息;若二次拷贝映像格式校验成功,则执行映射指令程序。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述基于硬件增强的芯片安全管理方法。
10.一种电子终端,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如权利要求1至7中任一项所述基于硬件增强的芯片安全管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310732719.3A CN117852105A (zh) | 2023-06-20 | 2023-06-20 | 基于硬件增强的芯片安全管理方法、装置、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310732719.3A CN117852105A (zh) | 2023-06-20 | 2023-06-20 | 基于硬件增强的芯片安全管理方法、装置、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117852105A true CN117852105A (zh) | 2024-04-09 |
Family
ID=90535113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310732719.3A Pending CN117852105A (zh) | 2023-06-20 | 2023-06-20 | 基于硬件增强的芯片安全管理方法、装置、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117852105A (zh) |
-
2023
- 2023-06-20 CN CN202310732719.3A patent/CN117852105A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102013841B1 (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
KR100397316B1 (ko) | 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법 | |
EP2115655B1 (en) | Virtual secure on-chip one time programming | |
US7461268B2 (en) | E-fuses for storing security version data | |
JP4521269B2 (ja) | セル電話などの電子デバイスのセキュリティに使用する方法およびデバイス | |
US20070180271A1 (en) | Apparatus and method for providing key security in a secure processor | |
US11663145B2 (en) | Off-chip memory address scrambling apparatus and method for system on chip | |
US9152576B2 (en) | Mode-based secure microcontroller | |
EP3788536B1 (en) | Cryptographic key distribution | |
KR100619657B1 (ko) | 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치 | |
JP4591163B2 (ja) | バスアクセス制御装置 | |
CN114528603B (zh) | 嵌入式系统的隔离动态保护方法、装置、设备和存储介质 | |
US8397081B2 (en) | Device and method for securing software | |
CN117852105A (zh) | 基于硬件增强的芯片安全管理方法、装置、终端及介质 | |
CN111125791B (zh) | 一种内存数据的加密方法、装置、cpu芯片及服务器 | |
JP2021190081A (ja) | 機密データを保護することが可能な電子機器 | |
JP7531132B2 (ja) | セキュリティモジュールの製造方法 | |
CN107122678A (zh) | 保护产品参数的方法及装置 | |
US20220398349A1 (en) | System on chip including secure processor and semiconductor system including the same | |
JP2010224613A (ja) | 記憶媒体ユニット,及び、記憶媒体自動消去システム | |
CN114785512A (zh) | 处理安全密钥的方法和装置及电子设备 | |
CN114968117A (zh) | 存储器保护系统 | |
CN114239050A (zh) | 基于Android系统秘钥文件安全存储的方法及系统 | |
CN116933295A (zh) | Fpga固件加密方法、装置 | |
CN116383900A (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 |