CN114817935A - 一种芯片安全启动方法 - Google Patents
一种芯片安全启动方法 Download PDFInfo
- Publication number
- CN114817935A CN114817935A CN202210589501.2A CN202210589501A CN114817935A CN 114817935 A CN114817935 A CN 114817935A CN 202210589501 A CN202210589501 A CN 202210589501A CN 114817935 A CN114817935 A CN 114817935A
- Authority
- CN
- China
- Prior art keywords
- control instruction
- storage area
- memory
- read
- cpu
- 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 39
- 230000009191 jumping Effects 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 10
- 238000005336 cracking Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012546 transfer 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/72—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 cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开一种芯片安全启动方法,将软件镜像的启动密钥写入到OTPMemory的目标存储区域中,并设置OTP controller关闭访问目标存储区域的第一控制指令;CPU读取Boot ROM中的只读程序,根据其中的操作指令从OTPMemory中读取启动密钥;获取到目标存储区域中的启动密钥后,CPU基于第一控制指令控制OTP controller关闭对目标存储区域的访问权限;CPU基于只读程序和启动密钥解密软件镜像后,跳转到解密后的软件镜像中启动软件镜像。通过将启动密钥放到OTP Memory中,以及OTP controller控制对目标存储区域的访问权限,可以确保芯片软件镜像在存储和运行过程中的安全性。
Description
技术领域
本申请涉及集成电路领域,特别涉及一种芯片安全启动方法。
背景技术
在集成电路领域,直接用明文存储和启动软件镜像,破解难度较低,黑客通过逆向分析即可窃取软件中的重要程序、算法和数据,造成隐私泄露。
相关技术中,芯片软件镜像在存储时,为了安全性,防止软件被黑客破解并从中窃取重要的程序、算法和数据,通常会设置对应的启动密钥来验证,在验证成功时运行软件镜像。
软件镜像加密后存储并将启动密钥放置到软件镜像的某个地方。当芯片启动时,可以直接从该位置提取到启动密钥,进而来启动软件镜像。这种技术相比于明文存储软件镜像提高了安全性,增加了黑客破解的难度,但黑客仍然能够通过逆向分析,从软件镜像中找到密钥,解密软件镜像,进而破解软件。
发明内容
本申请提供了一种芯片安全启动方法,解决相关技术中启动软件镜像时安全性不高的问题。所述方法包括:
将软件镜像的启动密钥写入到一次性可编程只读存储器OTP Memory的目标存储区域中,并设置OTP controller控制器关闭访问所述目标存储区域的第一控制指令;其中,OTP controller在关闭所述目标存储区域的访问权限后,系统被重启之前,无法再次打开所述目标存储区域的访问权限;
CPU读取Boot ROM中的只读程序,并根据其中的操作指令从所述OTP Memory中读取所述启动密钥;所述第一控制指令提前写入到所述只读程序中;
获取到所述目标存储区域中的所述启动密钥后,所述CPU基于所述第一控制指令控制所述OTP controller关闭对所述目标存储区域的访问权限;
所述CPU基于所述只读程序和所述启动密钥解密用密文形式存储的所述软件镜像后,跳转到解密后的所述软件镜像中启动所述软件镜像。
具体的,所述Boot ROM中的所述只读程序包括所述第一控制指令和第二控制指令,所述第二控制指令为跳转指令,用于指示所述CPU跳转至片上内存或片外内存中启动所述软件镜像。
具体的,所述OTP controller在上电后,且未执行所述第一控制指令前,允许访问所述目标存储区域。
具体的,当芯片上电后,所述CPU执行所述Boot ROM中的所述只读程序,加载所述软件镜像,并根据所述第一控制指令从所述OTP Memory中的所述目标存储区域中获取到所述启动密钥。
具体的,在所述Boot ROM中的所述只读程序中还包含有第三控制指令,且所述第三控制指令在所述第二控制指令之前执行,所述第三控制指令用于指示关闭所述Boot ROM的访问权限;其中,所述Boot ROM被关闭访问权限后,系统被重启之前,无法再次打开所述Boot ROM的访问权限。
具体的,当所述CPU存在缓存cache时,芯片上电启动,所述CPU在执行所述只读程序时,将所述cache设置为读分配策略read allocate,并将所述Boot ROM对应的地址空间设置为可缓存cacheable,执行所述cache中的程序和指令;
将所述第三控制指令和所述第二控制指令一起读取到所述cache中,且位于同一cache行。
具体的,当所述CPU不存在缓存cache时,通过所述只读程序将所述第三控制指令和所述第二控制指令搬运到内存中,跳到所述内存中执行所述第三控制指令和所述第二控制指令。
具体的,当所述CPU执行所述第三控制指令时,关闭所述Boot ROM的访问权限;
当所述软件镜像加载完毕,从所述目标存储区域内获取到所述启动密钥后,基于所述启动密钥解密用密文形式存储的所述软件镜像;
关闭所述Boot ROM的访问权限后,所述CPU执行所述第二控制指令,跳转到所述内存中执行所述软件镜像。
具体的,所述OTP Memory中的所述目标存储区域至少包括第一存储区和第二存储区,所述第一存储区中包括第一启动密钥和第一标志位;所述第二存储区中包括第二启动密钥和第二标志位;其中,标志位用于指示各自存储区域内启动密钥的有效性。
具体的,所述CPU按照各个存储区域顺序的优先级高低依次进行读取和判断,在判断出对应存储区域内标志位有效时,读取对应存储区域内的启动密钥并进行解密。
本申请提供的技术方案带来的有益效果至少包括:通过将执行的相关指令写入到boot ROM中,在芯片上电启动时立即执行读取启动密钥的过程;且通过将启动密钥放置到OTP Memory的存储区域内,可以通过OTP controller来控制对OTP Memory的访问权限;当CPU读取到启动密钥后,通过设置的第一控制指令来通知OTP controller关闭对目标存储区域的访问权限,因此可以确保在内存中解密和启动软件镜像时,已经无法再读取OTPmemory用来存储密钥的区域,故黑客无论如何都无法获取密钥,从而能够阻止黑客破解软件镜像。提高芯片启动过程中数据的安全性。
附图说明
图1是本申请实施例提供的芯片安全启动方法的结构框图;
图2是本申请实施例提供的芯片安全启动方法的流程图;
图3是本申请另一实施例提供的芯片安全启动方法的流程图;
图4本申请实施例提供的存在cache的芯片安全启动方法的流程示意图;
图5是本申请另一实施例提供的芯片安全启动方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
Boot Rom:引导只读存储器(Boot Read-Only Memory,Bootrom或Boot ROM)是嵌入处理器芯片内的一小块掩模ROM或写保护闪存。它包含处理器在上电或复位时执行的第一个代码。根据某些引脚或内部保险丝的配置,它可以决定从哪里加载要执行的代码以及如何或是否验证其正确性或有效性。有时它可能包含其他功能,可能在引导期间或之后由用户代码使用。
OTP Memory:一次性可编程只读存储器(One Time Programable Read-OnlyMemory)是MCU的一种存储器类型。MCU按其存储器类型可分为MASK(掩模)ROM、OTP ROM、FLASH ROM等类型。MASK ROM的程序/数据在出厂时已经固化,适合程序/数据固定不变的应用场合;FALSH ROM的MCU程序/数据可以反复擦写,灵活性很强,适合程序/数据需要变动的场合;OTP ROM的MCU拥有一次性可编程能力,适合既要求一定灵活性,又要求写入数据后不能变动的应用场合。本方案中在OTP ROM(OTP Memory)中特定区域内存储有软件镜像的启动密钥。
如图1所示,是本申请实施例提供的芯片安全启动方法的结构框图。芯片内部集成有中央处理器CPU、Boot Rom、OTP memory和非易失存储设备(片上非易失存储器),各部分之间通过总线连接。芯片也可以连接非易失存储芯片(片外非易失存储器)。软件镜像存储在片上或片外非易失存储设备中,非易失存储设备可以是芯片内的非易失存储器(如eFLASH、eMRAM等)或芯片外的非易失存储器(如FLASH)。软件镜像是用于启动的软件,用于执行特定的功能,且启动软件镜像需要对应的启动密钥。OTP memory是本方案中放置启动密钥的位置,考虑到OTP memory拥有一次性可编程能力,且一旦写入不可更改,因而适用于软件镜像的安全启动。且OTP controller具备禁止访问OTP memory特定区域的功能,通过在特定时间段设置该权限可以避免被黑客窃取启动密钥。
图2是本申请实施例提供的芯片安全启动方法的流程图。包括如下步骤:
S1,将软件镜像的启动密钥写入到OTP Memory的目标存储区域中,并设置OTPcontroller关闭访问目标存储区域的第一控制指令。
本方案在OTP Memory的存储空间中设置一块目标存储区域,专门用于存放启动软件镜像的启动密钥。OTP Memory的访问权限由OTP controller控制,OTP controller在芯片上电时默认允许访问OTP Memory所有存储区域,但当设置禁止访问的第一禁止指令后,随即关闭对OTP Memory特定区域的访问权限。
S2,CPU读取Boot ROM中的只读程序,并根据其中的操作指令从OTP Memory中读取启动密钥。
当用户上电启动芯片后,CPU首先读取Boot ROM中的只读程序,该只读程序用于引导芯片或计算机设备上电启动的引导过程。本方案将禁止访问的第一控制指令写入到该只读程序中,在上电启动后立即执行相关操作,起到对OTP Memory的访问控制,防止黑客入侵OTP Memory窃取启动密钥。CPU读取只读程序后,根据其中的操作指令从OTP Memory中读取启动密钥,此时的OTP controller处于刚上电启动状态,且在未执行第一控制指令前,OTPcontroller默认允许访问OTP Memory的存储区域,因而允许读取目标存储区域,并读取启动密钥。
S3,获取到目标存储区域中的启动密钥后,CPU基于第一控制指令控制OTPcontroller关闭对目标存储区域的访问权限。
具体的,Boot ROM中只读程序中包含有第一控制指令和第二控制指令,其中的第二控制指令为跳转指令,表示的是获取到软件镜像的启动密钥后,指示CPU跳转到片上内存或片外内存中启动软件镜像。在芯片上电后,CPU读取并执行Boot ROM中的只读程序,加载存储设备中的软件镜像;再从目标存储区域读取启动密钥。在获取到启动密钥后,随后执行第一控制指令,通知OTP controller关闭对目标存储区域的访问权限。此后,在芯片重启前,OTP controller将不允许再次访问目标存储区域获取启动密钥。需要说明的是,本方案中OTP controller可以控制禁止存储启动密钥的目标存储区域,或者为了更好地保护数据来禁止访问整个OTP Memory,仅需设置相应的控制指令即可。
S4,CPU基于只读程序和启动密钥解密用密文形式存储的软件镜像后,跳转到解密后的软件镜像中启动软件镜像。
在关闭对目标存储区域的访问权限,内存中的软件镜像加载完毕,且基于启动密钥解密软件镜像后,CPU执行第二控制指令,即跳转指令。跳转到对应的片上内存或片外内存中,来启动软件镜像。
此外,为了提高启动软件镜像的安全性,在启动软件镜像或执行完成后,立即删除对软件镜像的访问和/或读取记录,同时清除和启动密钥相关的缓存数据,避免黑客通过相关缓存记录进行逆向分析而导致数据泄露。
综上所述,本申请实施例提供的芯片安全启动方法,通过将执行的相关指令写入到Boot Rom中,在芯片上电启动时立即执行读取启动密钥的过程;且通过将启动密钥放置到OTP Memory的存储区域内,可以通过OTP controller来控制对OTP Memory的访问权限;当CPU读取到启动密钥后,通过设置的第一控制指令来通知OTP controller关闭对目标存储区域的访问权限,因此可以确保在内存中解密和启动软件镜像时,已经无法再读取OTPmemory用来存储密钥的区域,故黑客无论如何都无法获取密钥,从而能够阻止黑客破解软件镜像。提高芯片启动过程中数据的安全性。
由于CPU处理数据的速度非常快,内存的读写速度相对于CPU的速度就显得太慢,所以如果单纯让CPU对内存进行读写,所消耗的时间绝大部分是在访问内存,而这时CPU就处于等待状态,浪费了资源。因此现在的部分芯片中在CPU与内存之间连接一个Cache作为缓冲。对于存在cache的芯片,本方案为了进一步提高芯片的安全性能,还考虑在特定的时间内关闭对boot ROM的访问权限。如图3所示,是本申请实施例提供的存在cache的芯片安全启动方法的流程图,包括如下步骤:
S1,将软件镜像的启动密钥写入到OTP Memory的目标存储区域中,并设置OTPcontroller关闭访问目标存储区域的第一控制指令。
该步骤参考上述内容,此处不再详细赘述。
S2,芯片上电启动,CPU在执行只读程序时,将cache设置为read allocate模式,并将Boot ROM对应的地址空间设置为可cacheable,执行cache中的程序和指令。
前述说到,cache的存在是为适配内存和CPU读取速度的不协调而设置,当芯片上电启动后,CPU首先读取Boot ROM中的只读程序,然后根据相关指令将cache设置为readallocate,并将Boot ROM对应的地址空间设置为可cacheable。只读程序按照cache的大小和设定(所有指令或部分)被cache读取到cache中,目的为减轻CPU的执行负担,提高执行效率,且可以避免芯片启动时的卡顿现象。
对于存在cache的芯片,在只读程序中还写入有第三控制指令,第三控制指令是用于指示关闭Boot ROM的访问权限。Boot ROM的访问权限由Boot ROM controller控制,且和OTP controller类似,在芯片上电启动时,Boot ROM controller默认允许访问其中的只读程序,但当第三控制指令生效时,Boot ROM controller将关闭对Boot ROM的访问权限,直至下一次重启后恢复正常访问。CPU不断将Boot ROM中的只读程序搬运到cache中,从cache中执行指令。
S3,CPU读取cache中的只读程序,并根据其中的操作指令从OTP Memory中读取启动密钥。
CPU将只读程序“搬运”到cache中以后,继续通过cache执行只读程序,从OTPMemory中的目标存储区域中读取启动密钥。和上述内容类似的,OTP controller在上电初始化阶段默认允许访问目标存储区域,因而可以读取到启动密钥。
S4,获取到目标存储区域中的启动密钥后,CPU基于第一控制指令控制OTPcontroller关闭对目标存储区域的访问权限。
需要说明的是,在各项执行指令中,第一控制指令需要设置在第三控制指令之前,第三控制指令设置在第二控制指令之前。CPU读取指令时,需要将第三控制指令和第二控制指令一起读取到cache中,且位于同一cache行。CPU从目标存储区域中读取到启动密钥后,根据cache中的第一控制指令通知OTP controller关闭对目标存储区域的访问权限,然后继续执行只读程序。
S5,基于启动密钥解密用密文形式存储的软件镜像。
此处需要说明的是,由于只读程序的设置依据编译人员决定,在一些其他实施例中,还可以设置CPU先读取Boot ROM中的相关操作指令从OTP memory中获取启动密钥并解密,然后再执行设置cache的操作,将其中的第二控制指令和第三控制指令再“搬运”到cache中执行。
S6,CPU执行Cache行中的第三控制指令,关闭Boot ROM的访问权限。
当CPU执行到第三控制指令时,同时也是最后一次从Boot ROM中读取只读程序并放入cache中,将最后包含的第三控制指令和第二控制指令一起读取并放入到cache中,且第三控制指令和第二控制指令位于同一cache行。
执行第三控制指令时,随即通知Boot ROM controller关闭对Boot ROM的访问权限,此后将无法再次读取Boot ROM的存储内容。
需要说明的是,由于本方案将第三控制指令和第二控制指令写入在相邻或相近位置,cache读数据的机制是每次读取一个cache行,即读取第三控制指令时cache会把第二控制指令一起读进cache,因而在执行第三控制指令关闭Boot ROM的访问权限后,第二控制指令(跳转指令)已经被读取到cache中,因而可以继续从cache中执行第二控制指令。
S7,当软件镜像解密完毕,且CPU执行第二控制指令时,跳转到内存中执行软件镜像。
当片上内存或片外内存中的软件镜像启动完毕、从目标存储区域中获取到启动密钥,并关闭了OTP Memory的访问权限、CPU执行第二控制指令后,跳转到相应内存中,基于启动密钥启动软件镜像。整个过程启动完成后,芯片同时关闭了OTP Memory和Boot ROM的访问权限,此时黑客无法读取和篡改相关程序和数据。图4本申请实施例提供的存在cache的芯片安全启动方法的流程示意图。步骤①至步骤⑥分别表示图3中各个步骤执行的顺序示意。
需要说明的是,具备cache的CPU可以采用打开cache执行的方式来增加安全性,还可以不使用cache来读取指令,而是将Boot Rom中的相关指令读取到内存中,然后再从内存中执行相关操作,该操作同样能够确保在执行跳转指令前关闭对Boot Rom的访问权限。
本实施例针对存在cache的芯片,为了进一步提高芯片启动过程的安全性,通过在Boot Rom的只读程序中设置第三控制指令,用来在最后一次访问Boot Rom时,将第三控制指令和第二控制指令一同取出存放在cache行,且让第三控制指令先于第二控制指令执行,也就确保获取到启动密钥后随即关闭OTP Memory的访问权限,然后在跳转到内存中启动软件镜像前,又关闭了Boot Rom的访问权限。相较于传统的隐藏启动密钥至特定区域启动的方式,本方案可以在开机上电时立即启动,并关闭对应OTP Memory和Boot Rom的访问权限,杜绝黑客读取密钥的可能性,杜绝黑客读取Boot Rom数据进行逆向分析获得Boot Rom程序行为和可能存在的弱点的可能性,因而数据保护的安全性更高。
对于CPU不存在cache的情况,在另一些实施例中可以通过将只读指令“搬运”到其他地方,如内存中来执行,同样可以及时关闭Boot Rom的访问权限。具体如图5所示,包括如下步骤:
S1,将镜像文件的启动密钥写入到OTP Memory的目标存储区域,并设置OTPcontroller关闭访问目标存储区域的第一控制指令。
S2,芯片上电启动,CPU读取并执行Boot ROM中的只读程序,并根据其中的操作指令从OTP Memory的目标存储区域中读取启动密钥。
S3,获取到目标存储区域中的启动密钥后,CPU基于第一控制指令控制OTPcontroller关闭对目标存储区域的访问权限。
可选的,由于OTP Memory具有一次写入的功能,为了确保启动的安全性,当目标存储区的启动密钥被窃取或已外泄露时,无法再次修改密钥,因而本方案还可以将目标存储区域进一步划分为多个小区域,例如划分出第一存储区和第二存储区或更多的存储区,每个存储区包括标志位和启动密钥。如第一存储区中包括第一启动密钥和第一标志位;第二存储区中包括第二启动密钥和第二标志位。第一标志位用于指示第一启动密钥的有效性,第二标志位用于指示第二启动密钥的有效性,以此类推。CPU在获取密钥时,根据优先级顺序进行读取。本方案中按照存储区域顺序排列设置优先级,即第一存储区域的读取优先级高于第二存储区域,以此类推。CPU在执行时,先读取(第一存储区域)第一标志位的有效性,当标志位是1时,表示第一启动密钥有效,将第一启动密钥读取出(所有标志位中只有一个标志位有效,其他标志位无效),并继续执行解密和关闭访问权限的步骤,具体参考上述实施例。但当第一标志位是0时,表示第一密钥因泄露或其他因素而作废,因而按优先级顺序读取(第二存储区域)第二标志位,当第二标志位是1时,则表明已启用第二启动密钥,将第二启动密钥读取出并执行后续操作。此种方式可以设立多个密钥来全方位保护芯片启动的安全性。
S4,基于启动密钥解密用密文形式存储的软件镜像。
S5,通过Boot ROM将第三控制指令和第二控制指令搬运到内存中。
此处需要注意的是,CPU可以在上电启动时,直接根据Boot ROM中的只读程序来从OTP Memory中读取启动密钥并关闭对目标存储区域的访问权限,或者是直接将相关指令搬运到内存中,然后通过从内存中执行相关指令来获取启动密钥和关闭权限,且用于存放的内存可以是片上内存或片外内存。
S6,CPU执行内存中的第三控制指令,关闭Boot ROM的访问权限。
S7,CPU执行内存行中的第二控制指令,跳转并执行软件镜像。
此操作方式和上述方式不同的是搬运和存放只读程序的位置发生变化,但都实现了解密软件镜像后及时关闭了对目标存储区域或整个OTP Memory的访问权限,且在执行跳转指令去执行软件镜像前,及时的关闭了Boot ROM的访问权限,因而都可以有效的保护芯片启动过程的安全性。
以上对本发明的较佳实施例进行了描述;需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容;因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (10)
1.一种芯片安全启动方法,其特征在于,所述方法包括:
将软件镜像的启动密钥写入到一次性可编程只读存储器OTP Memory的目标存储区域中,并设置OTP controller控制器关闭访问所述目标存储区域的第一控制指令;其中,OTPcontroller在关闭所述目标存储区域的访问权限后,系统被重启之前,无法再次打开所述目标存储区域的访问权限;
CPU读取Boot ROM中的只读程序,并根据其中的操作指令从所述OTP Memory中读取所述启动密钥;所述第一控制指令提前写入到所述只读程序中;
获取到所述目标存储区域中的所述启动密钥后,所述CPU基于所述第一控制指令控制所述OTP controller关闭对所述目标存储区域的访问权限;
所述CPU基于所述只读程序和所述启动密钥解密用密文形式存储的所述软件镜像后,跳转到解密后的所述软件镜像中启动所述软件镜像。
2.根据权利要求1所述的方法,其特征在于,所述Boot ROM中的所述只读程序包括所述第一控制指令和第二控制指令,所述第二控制指令为跳转指令,用于指示所述CPU跳转至片上内存或片外内存中启动所述软件镜像。
3.根据权利要求1所述的方法,其特征在于,所述OTP controller在上电后,且未执行所述第一控制指令前,允许访问所述目标存储区域。
4.根据权利要求3所述的方法,其特征在于,当芯片上电后,所述CPU执行所述Boot ROM中的所述只读程序,加载所述软件镜像,并根据所述第一控制指令从所述OTP Memory中的所述目标存储区域中获取到所述启动密钥。
5.根据权利要求1所述的方法,其特征在于,在所述Boot ROM中的所述只读程序中还包含有第三控制指令,且所述第三控制指令在所述第二控制指令之前执行,所述第三控制指令用于指示关闭所述Boot ROM的访问权限;其中,所述Boot ROM被关闭访问权限后,系统被重启之前,无法再次打开所述Boot ROM的访问权限。
6.根据权利要求5所述的方法,其特征在于,当所述CPU存在缓存cache时,芯片上电启动,所述CPU在执行所述只读程序时,将所述cache设置为读分配策略read allocate,并将所述Boot ROM对应的地址空间设置为可缓存cacheable,执行所述cache中的程序和指令;
将所述第三控制指令和所述第二控制指令一起读取到所述cache中,且位于同一cache行。
7.根据权利要求5所述的方法,其特征在于,当所述CPU不存在缓存cache时,通过所述只读程序将所述第三控制指令和所述第二控制指令搬运到内存中,跳到所述内存中执行所述第三控制指令和所述第二控制指令。
8.根据权利要求6或7所述的方法,其特征在于,当所述CPU执行所述第三控制指令时,关闭所述Boot ROM的访问权限;
当所述软件镜像加载完毕,从所述目标存储区域内获取到所述启动密钥后,基于所述启动密钥解密用密文形式存储的所述软件镜像;
关闭所述Boot ROM的访问权限后,所述CPU执行所述第二控制指令,跳转到所述内存中执行所述软件镜像。
9.根据权利要求1所述的方法,其特征在于,所述OTP Memory中的所述目标存储区域至少包括第一存储区和第二存储区,所述第一存储区中包括第一启动密钥和第一标志位;所述第二存储区中包括第二启动密钥和第二标志位;其中,标志位用于指示各自存储区域内启动密钥的有效性。
10.根据权利要求9所述的方法,其特征在于,所述CPU按照各个存储区域顺序的优先级高低依次进行读取和判断,在判断出对应存储区域内标志位有效时,读取对应存储区域内的启动密钥并进行解密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589501.2A CN114817935A (zh) | 2022-05-26 | 2022-05-26 | 一种芯片安全启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589501.2A CN114817935A (zh) | 2022-05-26 | 2022-05-26 | 一种芯片安全启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817935A true CN114817935A (zh) | 2022-07-29 |
Family
ID=82518370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210589501.2A Pending CN114817935A (zh) | 2022-05-26 | 2022-05-26 | 一种芯片安全启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817935A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578352A (zh) * | 2023-07-11 | 2023-08-11 | 沐曦集成电路(上海)有限公司 | 芯片初始化系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573528A (zh) * | 2014-12-31 | 2015-04-29 | 湖南国科微电子有限公司 | 一种防拷贝Soc启动方法及芯片 |
CN109284114A (zh) * | 2017-07-20 | 2019-01-29 | 深圳市中兴微电子技术有限公司 | 嵌入式系统中可编程芯片的自动烧录方法 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
US20210334381A1 (en) * | 2020-04-28 | 2021-10-28 | Realtek Semiconductor Corp. | Method and electronic device capable of securely storing and loading firmware |
CN114266083A (zh) * | 2021-12-24 | 2022-04-01 | 杭州万高科技股份有限公司 | 一种芯片内密钥的安全存储方法 |
-
2022
- 2022-05-26 CN CN202210589501.2A patent/CN114817935A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573528A (zh) * | 2014-12-31 | 2015-04-29 | 湖南国科微电子有限公司 | 一种防拷贝Soc启动方法及芯片 |
CN109284114A (zh) * | 2017-07-20 | 2019-01-29 | 深圳市中兴微电子技术有限公司 | 嵌入式系统中可编程芯片的自动烧录方法 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
US20210334381A1 (en) * | 2020-04-28 | 2021-10-28 | Realtek Semiconductor Corp. | Method and electronic device capable of securely storing and loading firmware |
CN114266083A (zh) * | 2021-12-24 | 2022-04-01 | 杭州万高科技股份有限公司 | 一种芯片内密钥的安全存储方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578352A (zh) * | 2023-07-11 | 2023-08-11 | 沐曦集成电路(上海)有限公司 | 芯片初始化系统 |
CN116578352B (zh) * | 2023-07-11 | 2023-09-22 | 沐曦集成电路(上海)有限公司 | 芯片初始化系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8332653B2 (en) | Secure processing environment | |
JP4925422B2 (ja) | データ処理装置内コンテンツへのアクセス管理 | |
US6651150B2 (en) | Data-processing apparatus and method of controlling the rewriting of a nonvolatile storage device | |
JP5114617B2 (ja) | 秘密鍵を保護する、セキュア端末、プログラム、および方法 | |
KR100654446B1 (ko) | 보안 부팅 장치 및 방법 | |
US20070266214A1 (en) | Computer system having memory protection function | |
TW200941278A (en) | Secure update of boot image without knowledge of secure key | |
CN109656869B (zh) | 用于管理产品返回以供分析的方法和相应的产品 | |
JP4256859B2 (ja) | 半導体記憶装置 | |
JP2001356963A (ja) | 半導体装置およびその制御装置 | |
CN110020561B (zh) | 半导体装置和操作半导体装置的方法 | |
JP2017033149A (ja) | 情報処理装置、コントローラ、及び、情報処理装置の制御方法 | |
JPH08272625A (ja) | マルチプログラム実行制御装置及び方法 | |
WO2020063975A1 (zh) | 一种非易失性存储器的分区保护方法及装置 | |
US20080104711A1 (en) | System and method for an isolated process to control address translation | |
CN114817935A (zh) | 一种芯片安全启动方法 | |
EP1385078A2 (en) | Program development method, program development supporting system, and program installation method | |
CN111026683A (zh) | 访问存储器的方法 | |
US20190042732A1 (en) | Technologies for usb controller state integrity protection | |
KR20060059779A (ko) | 실시간 복호화 기능을 이용한 파일 데이터 보호 방법 및장치 | |
JP6652669B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
TW200830177A (en) | Method to control the execution of a program by a microcontroller | |
CN110888653A (zh) | 存储器中固件读写的控制方法、系统、电子设备、芯片 | |
CN102637152B (zh) | 具有处理单元和信息存储装置的设备 | |
JP2003044457A (ja) | データプロセッサ |
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 |