CN119004490B - 用于硬件安全系统的二次加密启动方法、装置、设备 - Google Patents
用于硬件安全系统的二次加密启动方法、装置、设备 Download PDFInfo
- Publication number
- CN119004490B CN119004490B CN202411479709.4A CN202411479709A CN119004490B CN 119004490 B CN119004490 B CN 119004490B CN 202411479709 A CN202411479709 A CN 202411479709A CN 119004490 B CN119004490 B CN 119004490B
- Authority
- CN
- China
- Prior art keywords
- preset
- firmware
- key
- flash memory
- encrypted firmware
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 21
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 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/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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种用于硬件安全系统的二次加密启动方法、装置、设备,包括:利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;将第一预设密钥烧录至预设一次性可编程存储器中;在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件,确保上位机加密密钥和下位机启动使用的解密密钥的不同,能够提高硬件安全系统的密钥的安全性。
Description
技术领域
本申请涉及车载控制器技术领域,具体地,涉及一种用于硬件安全系统的二次加密启动方法、装置、计算机设备和存储介质。
背景技术
在硬件安全系统安全启动方案中,对于下位机运行的固件加密使用的是对称算法,对称算法需要解密和解密使用同样密钥,所以上位机软件加密和下位机需要拥有一致的密钥,下位机密钥是上位机一次性烧写到下位机的一次性可编程语音芯片或者一次性可编程存储器中,但是更新固件的时候上位机密钥因为要使用到同样的密钥加密,所以,此密钥需要经常使用,这种情况下,在内部开发环节或者在第三个方客户等情况下,就比较容易泄露,现在解决这种方会使用到密钥加密密钥和数据加密密钥,密钥加密密钥作为根密钥,用于加密或者封装数据加密密钥,使用数据加密密钥来加密固件,这样多一层或者多层密钥来增加信任链的长度,提高密钥的安全性,安全性更高的做法,把密钥加密密钥放在远程服务器中,固件需要打包时,上传到服务器进行加密后,再下载到本地并烧写至下位机中。
现有技术均尽量减少人员接触到密钥的机会,也会带来流程的复杂和成本,上下位机使用的加密密钥和解密密钥还是一致的,一旦一方密钥泄露,均会带来安全隐患;所以需要上位机和下位机拥有同样的密钥,这样密钥依然会有很大的泄露风险,上位机加密密钥与下位机解密密钥无法做到分开。
发明内容
本申请实施例中提供了一种用于硬件安全系统的二次加密启动方法、装置、计算机设备和存储介质。
本申请实施例的第一个方面,提供了一种用于硬件安全系统的二次加密启动方法,包括:
利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;
将第一预设密钥烧录至预设一次性可编程存储器中;
在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;
利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件。
在本申请一个可选的实施例中,所述在置位预设可编程存储器中的安全启动使能位的情况下,读取第二预设密钥,包括:
在置位预设可编程存储器中的安全启动使能位的情况下,基于预设启动代码,根据安全启动使能位进入安全启动模式;
读取第二预设密钥的有效状态位;
在第二预设密钥的有效状态位为0的情况下,生成真随机数,作为第二密钥,并将第二密钥烧录至预设可编程存储器中,置位第二预设密钥的有效状态位;
在第二预设密钥的有效状态位不为0的情况下,读取第二预设密钥。
在本申请一个可选的实施例中,所述利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,包括:
按照预设固件块的大小,利用预设第一密钥将闪存存储器中的第一加密固件读取并解密到预设静态随机存取存储器中,得到多个明文固件块。
在本申请一个可选的实施例中,所述预设固件块的大小通过以下步骤确定:
加载预设闪存存储器的最小扇区的密文;
将预设闪存存储器的最小扇区的密文的大小,作为预设固件块的大小。
在本申请一个可选的实施例中,所述利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,包括:
利用第二预设密钥将每个明文固件块加密成加密固件块,将每个加密固件块作为第二加密固件烧录至闪存存储器。
在本申请一个可选的实施例中,在所述将第二加密固件块烧录至闪存存储器之后,所述方法还包括:
判断是否完成将第二加密固件烧录至闪存存储器的步骤;
在完成将第二加密固件烧录至闪存存储器的步骤的情况下,对硬件安全系统重新上电或复位,利用第二预设密钥将第二加密固件解密到预设静态随机存取存储器中执行或者在闪存存储器中直接解密第二加密固件并执行解密后固件。
在本申请一个可选的实施例中,所述判断是否完成将第二加密固件烧录至闪存存储器的步骤,通过输出引脚的电平信号实现。
本申请实施例的第二个方面,提供了一种用于硬件安全系统的二次加密启动装置,包括:
加密模块,用于利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;
烧录模块,用于将第一预设密钥烧录至预设一次性可编程存储器中;
读取模块,用于在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;
替换模块,用于利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项用于硬件安全系统的二次加密启动方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的用于硬件安全系统的二次加密启动方法的步骤。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的用于硬件安全系统的二次加密启动方法的流程图;
图2为本申请一个实施例提供的用于硬件安全系统的二次加密启动方法的实际应用流程图;
图3为本申请一个实施例提供的用于硬件安全系统的二次加密启动装置结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前的硬件安全系统中上下位机使用的加密密钥和解密密钥是一致的,一旦一方密钥泄露,均会带来安全隐患。
针对上述问题,本申请实施例中提供了一种用于硬件安全系统的二次加密启动方法,包括:利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;将第一预设密钥烧录至预设一次性可编程存储器中;在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件,确保上位机加密密钥和下位机启动使用的解密密钥的不同,能够提高硬件安全系统的密钥的安全性。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向过程的程序设计语言C语言等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参见图1,本申请实施例提供的用于硬件安全系统的二次加密启动方法包括如下步骤S1-步骤S4:
S1,利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器。
在本申请一个可选的实施例中,可以在硬件安全系统的上位机上利用第一预设密钥对固件进行加密。
S2,将第一预设密钥烧录至预设一次性可编程存储器中。
在本申请一个可选的实施例中,预设一次性可编程存储器可以设置在硬件安全系统的下位机中。
S3,在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥。
在本申请一个可选的实施例中,可以在硬件安全系统的下位机读取第二预设密钥。
在本申请一个可选的实施例中,预设一次性可编程存储器上设置第一预设密钥槽、第二预设密钥槽、安全启动使能位、第二预设密钥的有效状态位。
在本申请一个可选的实施例中,步骤S3中,所述在置位预设可编程存储器中的安全启动使能位的情况下,读取第二预设密钥,包括:
在置位预设可编程存储器中的安全启动使能位的情况下,基于预设启动代码,根据安全启动使能位进入安全启动模式;
读取第二预设密钥的有效状态位;
在第二预设密钥的有效状态位为0的情况下,生成真随机数,作为第二密钥,并将第二密钥烧录至预设可编程存储器中,置位第二预设密钥的有效状态位;
在第二预设密钥的有效状态位不为0的情况下,读取第二预设密钥。
S4,利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件。
在本申请一个可选的实施例中,可以在硬件安全系统的下位机上利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件。
在本申请一个可选的实施例中,步骤S4中,所述利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,包括:
按照预设固件块的大小,利用预设第一密钥将闪存存储器中的第一加密固件读取并解密到预设静态随机存取存储器中,得到多个明文固件块。
在本申请一个可选的实施例中,所述预设固件块的大小通过以下步骤确定:
加载预设闪存存储器的最小扇区的密文;
将预设闪存存储器的最小扇区的密文的大小,作为预设固件块的大小。
在本申请一个可选的实施例中,步骤S4中,所述利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,包括:
利用第二预设密钥将每个明文固件块加密成加密固件块,将每个加密固件块作为第二加密固件烧录至闪存存储器。
在本申请一个可选的实施例中,步骤S4中,在所述将第二加密固件块烧录至闪存存储器之后,所述方法还包括:
判断是否完成将第二加密固件烧录至闪存存储器的步骤;
在完成将第二加密固件烧录至闪存存储器的步骤的情况下,对硬件安全系统重新上电或复位,利用第二预设密钥将第二加密固件解密到预设静态随机存取存储器中执行或者在闪存存储器中直接解密第二加密固件并执行解密后固件。
在本申请一个可选的实施例中,步骤S4中,所述判断是否完成将第二加密固件烧录至闪存存储器的步骤,通过输出引脚的电平信号实现。
参见图2,在实际应用中,硬件安全系统包括芯片、一次性可编程存储器(efuse),固化在芯片内部的只读闭源程序等基础片上系统组件,在一次性可编程存储器中,可以设计两个密钥槽、一个第二预设密钥的有效状态位flag和一个安全启动使能位:用于存储第一预设密钥dek_pc的密钥槽,长度为128bit或者256bit;用于存储第二预设密钥dek_trng的密钥槽,长度为128bit或者256bit;第二预设密钥的有效状态位flag占用一个bit,用于确定第二预设密钥表达式dek_trng是否有效;安全启动使能位,占用一个bit,用于使能安全启动模式;加密固件的算法为对称加密算法,对称加密算法可以是AES算法或者SM4算法。芯片出厂后,先将dek_pc烧录到一次性可编程存储器的密钥槽内,上位机使用同样的密钥对下位机的固件进行加密,将明文生成密文,此次加密主要为了保证加密固件在传输过程中的保密性,烧录有专门第三方的烧录工厂;在烧录完dek_pc和固件之后,还需要置位一次性可编程存储器中的安全启动模式使能位,然后重新上电,固化在芯片内部的只读闭源程序中的启动代码,首先根据一次性可编程存储器中安全启动模式位来进入安全启动模式;然后判断读取dek_trng的有效状态位,如果为0,配置真随机数发生器产生真随机密钥,然后调用启动代码中的一次性可编程存储器驱动烧一次性可编程存储器,置位dek_trng的有效状态位;启动代码首先使用一次性可编程存储器中的dek_pc对闪存存储器中的固件按照固件块的大小(可以是4KB,通常根据闪存存储器最小页而定)读取到硬件安全系统中静态随机存取存储器(sram)中,使用dek_pc对固件块解密成明文,然后使用dek_trng加密成二次密文块,然后烧写到闪存存储器对应的页中,替换到源密文块,依次类推,使用dek_trng密钥加密的密文固件替换源密文固件,此过程需要解密加密和烧写闪存存储器,过程可能比较慢,还可以约定一个通用输入输出端口判断此过程是否正确完成。如果已完成,无需再次重新上电或者复位,可以直接开始使用dek-trng常规安全启动流程。如果是复位或者重新上电之后,启动代码读取到dek_trng状态位,判断dek_trng已经有效,使用dek_trng解密固件到静态随机存取存储器执行或者就地执行。
本公开的用于硬件安全系统的二次加密启动方法中,固件加密的密钥由硬件安全系统内部生成,上位机加密密钥仅仅用来针对固件传输过程中的安全,烧录到芯片后,此密钥就无效了,真正的固件密钥,使用者无法接触到,会降低密钥泄露风险和密钥随机性,提高安全性。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图3,本申请一个实施例提供了一种用于硬件安全系统的二次加密启动装置,包括:
加密模块11,用于利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;
烧录模块12,用于将第一预设密钥烧录至预设一次性可编程存储器中;
读取模块13,用于在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;
替换模块14,用于利用第一预设密钥读取闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至闪存存储器,该第二加密固件用于替换第一加密固件。
在本申请一个可选的实施例中,加密模块可以设置在硬件安全系统的上位机上。
在本申请一个可选的实施例中,烧录模块可以设置在硬件安全系统的上位机上。
在本申请一个可选的实施例中,读取模块可以设置在硬件安全系统的下位机上。
在本申请一个可选的实施例中,预设一次性可编程存储器可以设置在硬件安全系统的下位机中。
在本申请一个可选的实施例中,预设一次性可编程存储器上设置第一预设密钥槽、第二预设密钥槽、安全启动使能位、第二预设密钥的有效状态位。
在本申请一个可选的实施例中,替换模块可以设置在硬件安全系统的下位机上。
在本申请一个可选的实施例中,所述读取模块还用于:
在置位预设可编程存储器中的安全启动使能位的情况下,基于预设启动代码,根据安全启动使能位进入安全启动模式;
读取第二预设密钥的有效状态位;在第二预设密钥的有效状态位为0的情况下,生成真随机数,作为第二密钥,并将第二密钥烧录至预设可编程存储器中,置位第二预设密钥的有效状态位;
在第二预设密钥的有效状态位不为0的情况下,读取第二预设密钥。
在本申请一个可选的实施例中,所述替换模块还用于:
按照预设固件块的大小,利用预设第一密钥将闪存存储器中的第一加密固件读取并解密到预设静态随机存取存储器中,得到多个明文固件块。
在本申请一个可选的实施例中,所述预设固件块的大小通过以下步骤确定:
加载预设闪存存储器的最小扇区的密文;
将预设闪存存储器的最小扇区的密文的大小,作为预设固件块的大小。
在本申请一个可选的实施例中,所述替换模块还用于:
利用第二预设密钥将每个明文固件块加密成加密固件块,将每个加密固件块作为第二加密固件烧录至闪存存储器。
在本申请一个可选的实施例中,所述用于硬件安全系统的二次加密启动装置还包括:
判断模块,用于判断是否完成将第二加密固件烧录至闪存存储器的步骤;
复位模块,用于在完成将第二加密固件烧录至闪存存储器的步骤的情况下,对硬件安全系统重新上电或复位,利用第二预设密钥将第二加密固件解密到预设静态随机存取存储器中执行或者在闪存存储器中直接解密第二加密固件并执行解密后固件。
在本申请一个可选的实施例中,所述判断模块的功能通过输出引脚的电平信号实现。
参见图2,硬件安全系统下位机与上位机之间的数据交换过程如下:设置在硬件安全系统下位机中的一次性可编程存储器上,可以设计两个密钥槽、一个第二预设密钥的有效状态位flag和一个安全启动使能位:用于存储第一预设密钥dek_pc的密钥槽,长度为128bit或者256bit;用于存储第二预设密钥dek_trng的密钥槽,长度为128bit或者256bit;第二预设密钥的有效状态位flag占用一个bit,用于确定第二预设密钥表达式dek_trng是否有效;安全启动使能位,占用一个bit,用于使能安全启动模式。硬件安全系统的上位机将dek_pc烧录到一次性可编程存储器的密钥槽内,并使用同样的密钥对下位机的固件进行加密,将明文生成密文,此次加密主要为了保证加密固件在传输过程中的保密性,烧录有专门第三方的烧录工厂;在烧录完dek_pc和固件之后,还需要置位一次性可编程存储器中的安全启动模式使能位,然后重新上电,固化在芯片内部的只读闭源程序中的启动代码,首先根据一次性可编程存储器中安全启动模式位来进入安全启动模式;然后判断读取dek_trng的有效状态位,如果为0,配置真随机数发生器产生真随机密钥,然后调用启动代码中的一次性可编程存储器驱动烧一次性可编程存储器,置位dek_trng的有效状态位;启动代码首先使用一次性可编程存储器中的dek_pc对闪存存储器中的固件按照固件块的大小(可以是4KB,通常根据闪存存储器最小页而定)读取到硬件安全系统中静态随机存取存储器(sram)中,使用dek_pc对固件块解密成明文,然后使用dek_trng加密成二次密文块,然后烧写到闪存存储器对应的页中,替换到源密文块,依次类推,使用dek_trng密钥加密的密文固件替换源密文固件,此过程需要解密加密和烧写闪存存储器,过程可能比较慢,还可以约定一个通用输入输出端口判断此过程是否正确完成。如果已完成,无需再次重新上电或者复位,可以直接开始使用dek-trng常规安全启动流程。如果是复位或者重新上电之后,启动代码读取到dek_trng状态位,判断dek_trng已经有效,使用dek_trng解密固件到静态随机存取存储器执行或者就地执行。
关于上述用于硬件安全系统的二次加密启动装置的具体限定可以参见上文中对于用于硬件安全系统的二次加密启动方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种用于硬件安全系统的二次加密启动方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上用于硬件安全系统的二次加密启动方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上用于硬件安全系统的二次加密启动方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种用于硬件安全系统的二次加密启动方法,其特征在于,包括:
利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;
将第一预设密钥烧录至预设一次性可编程存储器中;
在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;
利用第一预设密钥读取预设闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至预设闪存存储器,该第二加密固件用于替换第一加密固件。
2.根据权利要求1所述的方法,其特征在于,所述在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥,包括:
在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,基于预设启动代码,根据安全启动使能位进入安全启动模式;
读取第二预设密钥的有效状态位;
在第二预设密钥的有效状态位为0的情况下,生成真随机数,作为第二预设密钥,并将第二预设密钥烧录至预设一次性可编程存储器中,置位第二预设密钥的有效状态位;
在第二预设密钥的有效状态位不为0的情况下,读取第二预设密钥。
3.根据权利要求1所述的方法,其特征在于,所述利用第一预设密钥读取预设闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,包括:
按照预设固件块的大小,利用第一预设密钥将预设闪存存储器中的第一加密固件读取并解密到预设静态随机存取存储器中,得到多个明文固件块。
4.根据权利要求3所述的方法,其特征在于,所述预设固件块的大小通过以下步骤确定:
加载预设闪存存储器的最小扇区的密文;
将预设闪存存储器的最小扇区的密文的大小,作为预设固件块的大小。
5.根据权利要求3所述的方法,其特征在于,所述利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至预设闪存存储器,包括:
利用第二预设密钥将每个明文固件块加密成加密固件块,将每个加密固件块作为第二加密固件烧录至预设闪存存储器。
6.根据权利要求1所述的方法,其特征在于,在所述将第二加密固件烧录至预设闪存存储器之后,所述方法还包括:
判断是否完成将第二加密固件烧录至预设闪存存储器的步骤;
在完成将第二加密固件烧录至预设闪存存储器的步骤的情况下,对硬件安全系统重新上电或复位,利用第二预设密钥将第二加密固件解密到预设静态随机存取存储器中执行或者在预设闪存存储器中直接解密第二加密固件并执行解密后固件。
7.根据权利要求6所述的方法,其特征在于,所述判断是否完成将第二加密固件烧录至预设闪存存储器的步骤,通过输出引脚的电平信号实现。
8.一种用于硬件安全系统的二次加密启动装置,其特征在于,包括:
加密模块,用于利用第一预设密钥对固件进行加密,将加密后得到的第一加密固件烧录至预设闪存存储器;
烧录模块,用于将第一预设密钥烧录至预设一次性可编程存储器中;
读取模块,用于在置位预设一次性可编程存储器中的安全启动使能位且对硬件安全系统上电的情况下,读取第二预设密钥;
替换模块,用于利用第一预设密钥读取预设闪存存储器中的第一加密固件,并对读取的第一加密固件解密成明文固件,利用第二预设密钥将明文固件加密成第二加密固件,将第二加密固件烧录至预设闪存存储器,该第二加密固件用于替换第一加密固件。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述用于硬件安全系统的二次加密启动方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的用于硬件安全系统的二次加密启动方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411479709.4A CN119004490B (zh) | 2024-10-22 | 2024-10-22 | 用于硬件安全系统的二次加密启动方法、装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411479709.4A CN119004490B (zh) | 2024-10-22 | 2024-10-22 | 用于硬件安全系统的二次加密启动方法、装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN119004490A CN119004490A (zh) | 2024-11-22 |
CN119004490B true CN119004490B (zh) | 2025-01-24 |
Family
ID=93474718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411479709.4A Active CN119004490B (zh) | 2024-10-22 | 2024-10-22 | 用于硬件安全系统的二次加密启动方法、装置、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119004490B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656086A (zh) * | 2020-04-28 | 2021-11-16 | 瑞昱半导体股份有限公司 | 安全存储及加载固件的方法及电子装置 |
CN115080075A (zh) * | 2022-08-22 | 2022-09-20 | 南京芯驰半导体科技有限公司 | 一种嵌入式硬件安全模块的固件部署系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129332A (zh) * | 2022-08-30 | 2022-09-30 | 深圳市航顺芯片技术研发有限公司 | 固件烧录方法、计算机设备及可读存储介质 |
-
2024
- 2024-10-22 CN CN202411479709.4A patent/CN119004490B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656086A (zh) * | 2020-04-28 | 2021-11-16 | 瑞昱半导体股份有限公司 | 安全存储及加载固件的方法及电子装置 |
CN115080075A (zh) * | 2022-08-22 | 2022-09-20 | 南京芯驰半导体科技有限公司 | 一种嵌入式硬件安全模块的固件部署系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN119004490A (zh) | 2024-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2506488B1 (en) | Secure dynamic on-chip key programming | |
CN105144626B (zh) | 提供安全性的方法和设备 | |
US20080072068A1 (en) | Methods and apparatuses for securing firmware image download and storage by distribution protection | |
CN101421739A (zh) | 对变更bios中的至少一项的请求的验证和与bios相关联的设置 | |
CN109657497B (zh) | 安全文件系统及其方法 | |
CN104573528A (zh) | 一种防拷贝Soc启动方法及芯片 | |
CN102317948A (zh) | 芯片的安全保护方法及芯片 | |
CN103914662A (zh) | 一种基于分区的文件加密系统的访问控制方法和装置 | |
CN111566989B (zh) | 一种密钥处理方法及装置 | |
CN116886356B (zh) | 一种芯片级透明文件加密存储系统、方法及设备 | |
CN114662135A (zh) | 数据访问方法、计算机设备及可读存储介质 | |
US10387653B2 (en) | Secure provisioning of semiconductor chips in untrusted manufacturing factories | |
KR20180022800A (ko) | 비밀 데이터의 보안 프로그래밍 | |
US10642962B2 (en) | Licensable function for securing stored data | |
CN114154164A (zh) | 一种fpga安全启动的方法、装置、设备及可读介质 | |
CN119004490B (zh) | 用于硬件安全系统的二次加密启动方法、装置、设备 | |
CN117708897A (zh) | 用于保护嵌入式设备固件数据的方法以及嵌入式设备 | |
CN113542303B (zh) | 秘钥在非可信环境的软件导入系统及方法 | |
EP3930254B1 (en) | Method for setting permissions for cryptographic keys, computer program and cryptographic processing system | |
TWI744892B (zh) | 電子系統及電子系統的操作方法 | |
CN118413391B (zh) | 智驾控制器的预制文件加解密的方法、系统、设备及介质 | |
CN118797683B (zh) | 一种基于安全存储的扇区加密方法、解密方法和装置 | |
EP4254855A1 (en) | A device and a method for controlling use of a cryptographic key | |
JP7170588B2 (ja) | データ処理方法及びデータ処理システム | |
CN115935392A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |