CN110990084A - 芯片的安全启动方法、装置、存储介质和终端 - Google Patents
芯片的安全启动方法、装置、存储介质和终端 Download PDFInfo
- Publication number
- CN110990084A CN110990084A CN201911330028.0A CN201911330028A CN110990084A CN 110990084 A CN110990084 A CN 110990084A CN 201911330028 A CN201911330028 A CN 201911330028A CN 110990084 A CN110990084 A CN 110990084A
- Authority
- CN
- China
- Prior art keywords
- system file
- debugging
- signature
- chip
- field
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
一种芯片的安全启动方法、装置、存储介质和终端,所述方法包括:接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;检测所述***文件是否保存到静态存储区域;当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;若打开,则从所述***文件获取加密后的签名;读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;对所述加密后的签名进行解密并对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
Description
技术领域
本申请涉及智能硬件的安全领域,具体地涉及一种芯片的安全启动方法、装置、存储介质和终端。
背景技术
近年来随着各种科学技术的飞速发展,市场上已经出现了一些智能设备,备受大家欢迎和喜爱,尤其是安卓(Android)***的出现,更是带来更多的智能硬件。例如,智慧家庭中的智能家电、楼宇的智能仪表、遍布街道的监控摄像头等已经融入我们生活中的物联网硬件可能要远比我们想象得要多。据芯片研发巨头Arm统计,目前全球约有80亿物联网设备,预计到2035年,这个数字就会突破一万亿。在这样一个数据驱动的时代,确保这近乎万亿的设备及其产生的数据是可信的,重要性不言而喻。但对于目前现有的物联网生态而言,如何建立芯片设计、OEM,再到中间件、实时操作***(RTOS)和软件的开发者之间的信任链,仍是一个重要挑战。
在技术发展的同时,有一部分投机倒把的不法份子,利用智能产品谋取暴力,他们通过将修改过的软件版本烧写到智能硬件模块中,在后台获取私密信息,并且把这些私密信息散布到一些非法网站上,以此谋取暴利;甚至有一些不法分子通过修改的软件版本在后台盗刷银行卡,使被盗刷的银行卡户主遭受重大的财产损失。因而如何避免不法分子在智能硬件中烧写修改的软件版本,成为一个亟需解决的问题。
现有技术中,通常通过采用RSA2048解密算法,对智能硬件设备的内存芯片进行安全校验,然而,现有技术中智能硬件设备内存芯片的安全校验方法,仅支持一类解密算法,适用范围较小,兼容性较差。
发明内容
本申请解决的技术问题是如何提供一种适用范围广且兼容性强的智能硬件设备的芯片的安全启动方法。
为解决上述技术问题,本申请实施例提供一种芯片的安全启动方法、装置存储介质和终端,其中,芯片的安全启动方法包括:接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;检测所述***文件是否保存到静态存储区域;当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;若打开,则从所述***文件获取加密后的签名;读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;根据所述加密算法对应的解密算法对所述加密后的签名进行解密;对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
可选的,所述根据所述加密算法对应的解密算法对所述加密后的签名进行解密,包括:从预设存储地址获取所述解密算法对应的密钥,利用所述密钥对所述加密后的签名进行解密;所述从预设存储地址获取所述解密算法对应的密钥之前,还包括:若需要对所述密钥进行可信度校验,则在对密钥的可信度校验通过后,继续从预设存储地址获取所述解密算法对应的密钥。
可选的,所述方法还包括:若对密钥的可信度校验不通过,则不启动所述目标芯片。
可选的,所述根据所述加密算法对应的解密算法对所述加密后的签名进行解密之后,还包括:将所述***文件中的版本号和所述目标芯片中的版本号进行对比;若所述***文件中的版本号大于或等于所述目标芯片中的版本号时,则继续对解密后的签名进行校验;若所述***文件中的版本号小于所述目标芯片中的版本号时,不启动所述目标芯片。
可选的,所述检测是否打开安全校验权限之后,还包括:若未打开,则启动所述目标芯片以运行所述待运行程序。
可选的,所述启动所述目标芯片以运行所述待运行程序之后,还包括:根据所述预配置字段确定调试加密算法,根据所述调试加密算法判断是否打开调试权限;所述判断方法包括:从所述***文件中获取所述待运行程序的加密的调试字段,并根据与所述调试加密算法对应的解密算法对所述加密的调试字段进行解密;对解密后的调试字段进行验证;若验证通过,则打开调试权限。
可选的,所述调试字段包括主调试字段和开发调试字段,所述对解密后的调试字段进行验证,包括分别对所述主调试字段和开发调试字段进行解密,以得到解密后的主调试字段和开发调试字段对解密后的主调试字段和开发调试字段都验证通过时,则对解密后的调试字段验证通过。
可选的,所述验证通过之后,还包括从所述开发调试字段中获取芯片号验证所述芯片号是否与所述目标芯片对应,若对应,则继续所述打开调试权限。
本申请实施例还提供一种芯片的安全启动装置,该装置包括:启动开始模块,用于接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;文件初始化模块,用于检测所述***文件是否保存到静态存储区域;权限检测模块,用于当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;签名获取模块,用于当打开安全校验权限时,从所述***文件获取加密后的签名;加密算法确定模块,用于读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;解密模块,用于根据所述加密算法对应的解密算法对所述加密后的签名进行解密;签名校验模块,用于对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
本申请实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述方法的步骤。
本申请实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述方法的步骤。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
本申请实施例提供一种芯片的安全启动方法,所述方法包括:接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;检测所述***文件是否保存到静态存储区域;当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;若打开,则从所述***文件获取加密后的签名;读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;根据所述加密算法对应的解密算法对所述加密后的签名进行解密;对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
较之现有技术,本申请实施例的方案,在芯片启动时,能够根据不同客户开发的、采用不同加密算法对签名进行加密的应用程序分别进行解密,且对解密后的签名校验,保证芯片运行应用程序的安全性,且通过定义预配置字段,能够支持对前面的多种加密算法,提高芯片再运行不同软件提供方的应用程序时的兼容性。
进一步地,通过芯片存储器中存储的密钥对加密的签名进行解密,可在解密前先验证密钥的可信度,避免由于密钥被篡改导致的芯片运行风险,进一步提高安全性。
进一步地,在待运行程序的***文件中引入用于校验程序的调试权限的调试字段,并将其以对签名相同的加密方法予以加密,当目标芯片启动后,可根据验证调试字段来判定是否打开对该程序的调试权限。避免由于待运行程序中的信息被篡改,导致调试过程中引入不安全因素。
进一步地,将芯片号引入作为调试权限验证的依据,保证调试权限仅对设定的芯片号开放,保证芯片的安全性。
附图说明
图1是本申请实施例的一种芯片的安全启动方法的流程示意图;
图2是本申请实施例的一种芯片调试权限确认步骤的流程示意图;
图3是本申请实施例的一种***文件的结构示意图;
图4是本申请实施例的一种芯片的安全启动装置的结构示意图。
具体实施方式
如背景技术所言,现有技术中,在对智能硬件设备的内存芯片的安全校验时,通常仅支持一类解密算法,适用范围较小,兼容性较差。
为解决上述技术问题,本申请实施例提供一种芯片的安全启动方法,所述方法包括:接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;检测所述***文件是否保存到静态存储区域;当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;若打开,则从所述***文件获取加密后的签名;读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;根据所述加密算法对应的解密算法对所述加密后的签名进行解密;对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
通过此方法,能够将多种验签的加密算法进行整合,从而支持多种验签规则,提高芯片运行多应用程序的兼容性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
请参见图1,图1为本申请实施例中一种芯片的安全启动方法的流程示意图;该方法可以包括步骤S101至S104。其中:
步骤S101,接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域。
启动指令是用于启动目标芯片的指令,如可在启动装有目标芯片的终端来触发启动指令。
当目标芯片接收到启动指令后,即进入芯片内存初始化阶段(即BootRom阶段),在此阶段内,可继续执行对芯片的启动流程或者向芯片内下载程序安装包的流程,这两个流程都需要将待运行程序的***文件保存到目标芯片的静态存储区域。其中,可通过外部的指令(如Strapin)判断当前是走启动流程还是下载流程。
在一个应用实例中,待运行的***文件可以指芯片中待运行程序的***文件,如Image Bin文件,而目标芯片的静态存储区域为目标芯片的内存SRAM上
步骤S102,检测所述***文件是否保存到静态存储区域。
步骤S103,当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限。
其中,待运行的应用程序可以为一个或多个,对于步骤S102至S103,另外设置一个检测机制,检测是否待运行程序的***文件都被保存到静态存储区域,若检测到已保存完成,即可执行下一步的安全校验操作。首先应检测该目标芯片是否打开安全校验的权限,即检测该目标芯片是否允许对其进行安全校验,若允许,则继续步骤S104至S106;若否,则退出安全校验的流程,并执行步骤S108,以直接启动该目标芯片以运行安装在目标芯片上的应用程序。
在一个应用实例中,检测是否打开安全校验权限的方式为判断Secure Boot功能是否打开,如果打开了Secure Boot功能,则对Image Bin文件进行一系列的安全校验和解密。
步骤S104,若打开,则从所述***文件获取加密后的签名。
当步骤S103中检测到该目标芯片已打开安全校验权限,即对目标芯片中待运行程序的***文件进行校验,安全校验方式可采用当前程序校验中常用的签名校验操作,即获取该***文件中待运行程序的加密签名,对其执行签名校验。
步骤S105,读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法。
预配置字段定义好的、包含于***文件中的一个字段,该字段用于确定对该待运行程序的签名进行加密的加密算法。例如,可在Image bin文件中定义type字段以表示对应的加密算法。预配置字段的定义方式可以为将可支持的若干种类的加密算法进行编码,并将该待运行程序的签名加密算法对应的编码写入预配置字段中,以根据该字段识别此待运行程序签名对应的加密算法。
其中,加密算法可以包括RSA3072/4096、ECC256、HASH256、AES CBC256、AES CMAC、HMAC SHA256等多种。
步骤S106,根据所述加密算法对应的解密算法对所述加密后的签名进行解密。
在根据预配置字段确定对签名进行加密的算法后,即根据该加密算法对应的解密步骤对加密后的签名解密,以得到能够解密后的签名。
步骤S107,对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
可继续根据解密后的签名进行验签,若校验通过,表示该***文件对应的待运行程序为安全的程序,可执行后续的解压、安装、运行等操作。对于目标芯片启动时,将所有的待运行程序都根据其***文件、按照对应的加密算法进行签名校验,保证目标芯片中应用程序的安全性。
可选的,在进行签名校验之后,可结合***文件中的签名(hash_key)、用于确定加密算法的预配置字段(type)和程序的版本号(version)进行再次校验,若校验通过,则启动目标芯片。
可选的,对签名进行校验之前,可对***文件中签名数据证书(Sign DataKeycert)的公钥(public key,简称pubkey)进行校验,其校验方式可以为对公钥进行哈希运算,然后把得到的哈希值与芯片内存器(efuse)中的哈希值比较,若公钥比较一致通过后,则继续签名校验。
通过上述方案,在芯片启动时,能够根据不同客户开发的、采用不同加密算法对签名进行加密的应用程序分别进行解密,且对解密后的签名校验,保证芯片运行应用程序的安全性,且通过定义预配置字段,能够支持对前面的多种加密算法,提高芯片再运行不同软件提供方的应用程序时的兼容性。
在一个实施例中,请继续参见图1,图1中的步骤S106根据所述加密算法对应的解密算法对所述加密后的签名进行解密,包括:从预设存储地址获取所述解密算法对应的密钥,利用所述密钥对所述加密后的签名进行解密;所述从预设存储地址获取所述解密算法对应的密钥之前,还包括:若需要对所述密钥进行可信度校验,则在对密钥的可信度校验通过后,继续从预设存储地址获取所述解密算法对应的密钥。
对加密后的签名进行解密的方法为,从预设存储地址获取该解密算法的密钥,并利用此密钥对加密后的签名解密。可将各加密算法的解密密钥统一保存到预设存储地址,当芯片启动时,设备可自动从预设存储地址读取其需要的解密算法的密钥。其中,该预设存储地址可以为各芯片中的存储器(efuse)。
在设备从芯片的存储器获取对应的密钥前,为保证密钥的安全性,可对存储器上存储的所有密钥进行可信度校验。校验方式可以为:对存储器中的所有密钥进行哈希运算,如HMAC SHA256或者SHA256等,并将运算得到的哈希值与存储器中的哈希值对比,若一致,则对密钥的可信度校验通过。
可选的,若对密钥的可信度校验不通过,则不启动所述目标芯片。
当对存储器上存储的所有密钥进行可信度校验时,校验结果为未通过,则表示存储器上存储的密钥可能已被篡改,运行芯片存在风险,则不启动该目标芯片。
本实施例中,通过芯片存储器中存储的密钥对加密的签名进行解密,可在解密前先验证密钥的可信度,避免由于密钥被篡改导致的芯片运行风险,进一步提高安全性。
在一个实施例中,请继续参见图1,图1中的步骤S106根据所述加密算法对应的解密算法对所述加密后的签名进行解密之后,还包括:将所述***文件中的版本号和所述目标芯片中的版本号进行对比;若所述***文件中的版本号大于或等于所述目标芯片中的版本号时,则继续对解密后的签名进行校验;若所述***文件中的版本号小于所述目标芯片中的版本号时,不启动所述目标芯片。
在实际的应用程序开发中,开发方经常会对程序进行版本更新,***文件中应包含对应程序的版本号。在对加密后的签名进行解密之后,可先对程序的版本号进行验证,在版本号验证通过之后,再继续进行签名的校验操作。当***文件(Image Bin)中的版本号大于或等于目标芯片中的版本号,表示正常;当***文件(Image Bin)中的版本号小于目标芯片中的版本号时,则认为版本过低,芯片不启动。其中,目标芯片中的版本号可存放在存储器(efuse)中。
可选的,可在芯片启动过程中增设版本号检查,保证该芯片能够运行对应版本的待运行程序。若版本号检查不通过,可对待运行程序进行版本更新。
可选的,如版本检查通过,则可对要运行程序的运行代码文件(Running Code)进行校验。如可对运行代码文件做哈希运算(可以为Hash SHA256),并将得到的哈希值与***文件中存储的运行代码的哈希值相比较,把运算得到结果和比较,如果一致,则认为运行代码文件是可信的。如果不一致,则认为不可信的,芯片不启动。
在一个实施例中,请继续参见图1,图1中的步骤S103检测是否打开安全校验权限之后,还可以包括步骤S108:若未打开,则启动所述目标芯片以运行所述待运行程序。
继续图1中的应用实例,如果没有打开Secure Boot功能,则认为Image Bin文件是可信的直接运行Image Bin文件,以运行对应的应用程序。
在一个实施例中,上述启动所述目标芯片以运行所述待运行程序之后,还可以包括芯片调试权限确认步骤,即对***文件中待运行程序的调试权限的相关字段(本文称调试字段)进行安全性验证。具体验证方法请参见图2,图2提供了一实施例中芯片调试权限确认步骤的流程示意图,该步骤具体包括:
步骤S201,从所述***文件中获取所述待运行程序的加密的调试字段,并根据与所述调试加密算法对应的解密算法对所述加密的调试字段进行解密。
调试字段为***文件中包含的、用于控制待运行程序的调试权限的相关字段。程序开发方对同一待运行程序中的签名和调试字段的加密算法通常保持一致,故可根据预配置字段确定调试加密算法,并根据调试加密算法对应的解密算法对***文件中的加密的调试字段进行解密,以得到解密后的调试字段。
步骤S202,对解密后的调试字段进行验证。
步骤S203,若验证通过,则打开调试权限。
解密后即可对调试字段进行验证,以确定该字段未被篡改,若验证通过,即打开调试权限。另外,在步骤S202中的验证不通过时,则不打开调试权限,即图2中的步骤S204。
可选的,在芯片调试权限确认步骤之前,可先确认该芯片的调试(Secure Debug)功能是否打开,若打开,则继续执行芯片调试权限确认步骤;若未打开,则跳过该步骤。
本实施例中,在待运行程序的***文件中引入用于校验程序的调试权限的调试字段,并将其以对签名相同的加密方法予以加密,当目标芯片启动后,可根据验证调试字段来判定是否打开对该程序的调试权限。避免由于待运行程序中的信息被篡改,导致调试过程中引入不安全因素。
在一个实施例中,上述的调试字段包括主调试字段和开发调试字段,请继续参见图2,图2中的步骤S202中对解密后的调试字段进行验证,可以包括:分别对所述主调试字段和开发调试字段进行解密,以得到解密后的主调试字段和开发调试字段;对解密后的主调试字段和开发调试字段都验证通过时,则对解密后的调试字段验证通过。
可分别定义两个用于控制待运行程序的调试权限的相关字段,即主调试字段(Primary Debug)和开发调试字段(Developer Debug),只有在对二者验证都通过时,才打开调试权限;若其中一个未验证通过时,则关闭调试权限。
在一个实施例中,请继续参见图2,图2中的步骤S203当验证通过之后,还可以包括:从所述开发调试字段中获取芯片号;验证所述芯片号是否与所述目标芯片对应,若对应,则继续所述打开调试权限。
在开发调试字段中可以包含芯片号,用于检测目标芯片是否可以打开该应用程序的调试权限。若对主调试字段和开发调试字段都验证通过,可从解密后的开发调试字段中读取芯片号,并验证读取的芯片号与目标芯片是否对应。可选的,验证芯片号是否与目标芯片对应的方式,可以为检测读取的芯片号与目标芯片是否一致或者读取的芯片号是否包含目标芯片的芯片号,若一致或者包含,则可判定芯片号与目标芯片对应。
本实施例中,将芯片号引入作为调试权限验证的依据,保证调试权限仅对设定的芯片号开放,保证芯片的安全性。
请参见图3,图3提供了一种***文件(Image Bin)的结构示意图,该***文件中包含三个区域:文件头、运行代码和校验字段。其中,文件头为***文件的头区域,其中包含该***文件的控制信息。运行代码(Running Code)为对应程序的运行文件,可对该内容进行验证以确定该***文件中的运行代码可信。校验字段为对签名进行校验和对调试权限是否打开予以确认的字段,即上述的签名、主调试字段和开发调试字段。
本申请实施例还提供一种芯片的安全启动装置,请参见图4,该装置可以包括启动开始模块401、文件初始化模块402、权限检测模块403、签名获取模块404、加密算法确定模块405、解密模块406和签名校验模块407,其中:
启动开始模块401,用于接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;
文件初始化模块402,用于检测所述***文件是否保存到静态存储区域;
权限检测模块403,用于当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;
签名获取模块404,用于当打开安全校验权限时,从所述***文件获取加密后的签名;
加密算法确定模块405,用于读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;
解密模块406,用于根据所述加密算法对应的解密算法对所述加密后的签名进行解密;
签名校验模块407,用于对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
关于芯片的安全启动装置的工作原理、工作方式的更多内容,可以参照上述图1至图3中的相关描述,这里不再赘述。
进一步地,本发明实施例还公开一种计算机设备,包括存储器和处理器,存储器上存储有能够在处理器上运行的计算机指令,处理器运行计算机指令时执行上述图1至图3所示实施例中的芯片的安全启动方法技术方案。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,计算机指令运行时执行上述图1至图3所示实施例中的芯片的安全启动方法技术方案。优选地,存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。存储介质可以包括ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (11)
1.一种芯片的安全启动方法,其特征在于,所述方法包括:
接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;
检测所述***文件是否保存到静态存储区域;
当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;
若打开,则从所述***文件获取加密后的签名;
读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;
根据所述加密算法对应的解密算法对所述加密后的签名进行解密;
对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
2.根据权利要求1所述的方法,其特征在于,所述根据所述加密算法对应的解密算法对所述加密后的签名进行解密,包括:
从预设存储地址获取所述解密算法对应的密钥,利用所述密钥对所述加密后的签名进行解密;
所述从预设存储地址获取所述解密算法对应的密钥之前,还包括:
若需要对所述密钥进行可信度校验,则在对密钥的可信度校验通过后,继续从预设存储地址获取所述解密算法对应的密钥。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若对密钥的可信度校验不通过,则不启动所述目标芯片。
4.根据权利要求1所述的方法,其特征在于,所述根据所述加密算法对应的解密算法对所述加密后的签名进行解密之后,还包括:
将所述***文件中的版本号和所述目标芯片中的版本号进行对比;
若所述***文件中的版本号大于或等于所述目标芯片中的版本号时,则继续对解密后的签名进行校验;
若所述***文件中的版本号小于所述目标芯片中的版本号时,不启动所述目标芯片。
5.根据权利要求1所述的方法,其特征在于,所述检测是否打开安全校验权限之后,还包括:
若未打开,则启动所述目标芯片以运行所述待运行程序。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述启动所述目标芯片以运行所述待运行程序之后,还包括:
根据所述预配置字段确定调试加密算法,根据所述调试加密算法判断是否打开调试权限;
所述判断方法包括:
从所述***文件中获取所述待运行程序的加密的调试字段,并根据与所述调试加密算法对应的解密算法对所述加密的调试字段进行解密;
对解密后的调试字段进行验证;
若验证通过,则打开调试权限。
7.根据权利要求6所述的方法,其特征在于,所述调试字段包括主调试字段和开发调试字段,所述对解密后的调试字段进行验证,包括:
分别对所述主调试字段和开发调试字段进行解密,以得到解密后的主调试字段和开发调试字段;
对解密后的主调试字段和开发调试字段都验证通过时,则对解密后的调试字段验证通过。
8.根据权利要求7所述的方法,其特征在于,所述验证通过之后,还包括:
从所述开发调试字段中获取芯片号;
验证所述芯片号是否与所述目标芯片对应,若对应,则继续所述打开调试权限。
9.一种芯片的安全启动装置,其特征在于,所述装置包括:
启动开始模块,用于接收对目标芯片的启动指令,执行内存初始化操作,在所述内存初始化操作中,所述目标芯片将待运行程序的***文件保存到静态存储区域;
文件初始化模块,用于检测所述***文件是否保存到静态存储区域;
权限检测模块,用于当所述***文件已保存到静态存储区域时,检测是否打开安全校验权限;
签名获取模块,用于当打开安全校验权限时,从所述***文件获取加密后的签名;
加密算法确定模块,用于读取所述***文件中的预配置字段,以确定所述加密签名对应的加密算法;
解密模块,用于根据所述加密算法对应的解密算法对所述加密后的签名进行解密;
签名校验模块,用于对解密后的签名进行校验,若校验通过,则启动所述目标芯片以运行所述待运行程序。
10.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至8任一项所述方法的步骤。
11.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911330028.0A CN110990084B (zh) | 2019-12-20 | 2019-12-20 | 芯片的安全启动方法、装置、存储介质和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911330028.0A CN110990084B (zh) | 2019-12-20 | 2019-12-20 | 芯片的安全启动方法、装置、存储介质和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990084A true CN110990084A (zh) | 2020-04-10 |
CN110990084B CN110990084B (zh) | 2023-01-24 |
Family
ID=70073760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911330028.0A Active CN110990084B (zh) | 2019-12-20 | 2019-12-20 | 芯片的安全启动方法、装置、存储介质和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990084B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625784A (zh) * | 2020-05-29 | 2020-09-04 | 重庆小雨点小额贷款有限公司 | 一种应用的反调试方法、相关装置及存储介质 |
CN112015119A (zh) * | 2020-09-02 | 2020-12-01 | 南京英锐创电子科技有限公司 | 调试控制电路和调试控制方法 |
CN113114645A (zh) * | 2021-03-31 | 2021-07-13 | 武汉天喻信息产业股份有限公司 | 提高安全模组存储容量及运行安全性的方法、装置及设备 |
CN113177201A (zh) * | 2021-05-20 | 2021-07-27 | 北京奕斯伟计算技术有限公司 | 程序校验、签名方法及装置、soc芯片 |
CN113468106A (zh) * | 2021-07-15 | 2021-10-01 | 河南众诚信息科技股份有限公司 | 一种与平台无关的vr应用文件的存储和解析方法 |
CN114416432A (zh) * | 2022-03-29 | 2022-04-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片安全启动检测方法、装置、设备及介质 |
CN115629824A (zh) * | 2022-12-01 | 2023-01-20 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的启动方法、装置、设备、存储介质和程序产品 |
CN117034297A (zh) * | 2023-09-11 | 2023-11-10 | 深圳市航顺芯片技术研发有限公司 | 一种基于mcu的安全启动实施方法及相关设备 |
WO2023221251A1 (zh) * | 2022-05-19 | 2023-11-23 | 惠州市德赛西威汽车电子股份有限公司 | 一种控制器安全管理方法、装置、车辆及存储介质 |
WO2023243212A1 (ja) * | 2022-06-14 | 2023-12-21 | 日立Astemo株式会社 | 情報処理装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100082955A1 (en) * | 2008-09-30 | 2010-04-01 | Jasmeet Chhabra | Verification of chipset firmware updates |
CN103279705A (zh) * | 2013-05-14 | 2013-09-04 | 上海华为技术有限公司 | 具有安全启动功能的芯片的校验方法及校验装置 |
WO2018090642A1 (zh) * | 2016-11-15 | 2018-05-24 | 平安科技(深圳)有限公司 | 应用程序升级方法、用户终端及存储介质 |
CN108154025A (zh) * | 2017-12-22 | 2018-06-12 | 北京四达时代软件技术股份有限公司 | 嵌入式设备启动的方法、应用程序镜像处理的方法及装置 |
CN108875382A (zh) * | 2018-05-24 | 2018-11-23 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN109766134A (zh) * | 2019-01-08 | 2019-05-17 | 四川虹微技术有限公司 | ***启动方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-20 CN CN201911330028.0A patent/CN110990084B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100082955A1 (en) * | 2008-09-30 | 2010-04-01 | Jasmeet Chhabra | Verification of chipset firmware updates |
CN103279705A (zh) * | 2013-05-14 | 2013-09-04 | 上海华为技术有限公司 | 具有安全启动功能的芯片的校验方法及校验装置 |
WO2018090642A1 (zh) * | 2016-11-15 | 2018-05-24 | 平安科技(深圳)有限公司 | 应用程序升级方法、用户终端及存储介质 |
CN108154025A (zh) * | 2017-12-22 | 2018-06-12 | 北京四达时代软件技术股份有限公司 | 嵌入式设备启动的方法、应用程序镜像处理的方法及装置 |
CN108875382A (zh) * | 2018-05-24 | 2018-11-23 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN109766134A (zh) * | 2019-01-08 | 2019-05-17 | 四川虹微技术有限公司 | ***启动方法、装置、电子设备及存储介质 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625784B (zh) * | 2020-05-29 | 2023-09-12 | 重庆小雨点小额贷款有限公司 | 一种应用的反调试方法、相关装置及存储介质 |
CN111625784A (zh) * | 2020-05-29 | 2020-09-04 | 重庆小雨点小额贷款有限公司 | 一种应用的反调试方法、相关装置及存储介质 |
CN112015119A (zh) * | 2020-09-02 | 2020-12-01 | 南京英锐创电子科技有限公司 | 调试控制电路和调试控制方法 |
CN112015119B (zh) * | 2020-09-02 | 2021-11-12 | 南京英锐创电子科技有限公司 | 调试控制电路和调试控制方法 |
CN113114645A (zh) * | 2021-03-31 | 2021-07-13 | 武汉天喻信息产业股份有限公司 | 提高安全模组存储容量及运行安全性的方法、装置及设备 |
CN113177201A (zh) * | 2021-05-20 | 2021-07-27 | 北京奕斯伟计算技术有限公司 | 程序校验、签名方法及装置、soc芯片 |
CN113468106A (zh) * | 2021-07-15 | 2021-10-01 | 河南众诚信息科技股份有限公司 | 一种与平台无关的vr应用文件的存储和解析方法 |
CN113468106B (zh) * | 2021-07-15 | 2024-05-17 | 河南众诚信息科技股份有限公司 | 一种与平台无关的vr应用文件的存储和解析方法 |
CN114416432A (zh) * | 2022-03-29 | 2022-04-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片安全启动检测方法、装置、设备及介质 |
CN114416432B (zh) * | 2022-03-29 | 2022-07-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片安全启动检测方法、装置、设备及介质 |
WO2023221251A1 (zh) * | 2022-05-19 | 2023-11-23 | 惠州市德赛西威汽车电子股份有限公司 | 一种控制器安全管理方法、装置、车辆及存储介质 |
WO2023243212A1 (ja) * | 2022-06-14 | 2023-12-21 | 日立Astemo株式会社 | 情報処理装置 |
CN115629824B (zh) * | 2022-12-01 | 2023-08-15 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的启动方法、装置、设备、存储介质和程序产品 |
CN115629824A (zh) * | 2022-12-01 | 2023-01-20 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的启动方法、装置、设备、存储介质和程序产品 |
CN117034297A (zh) * | 2023-09-11 | 2023-11-10 | 深圳市航顺芯片技术研发有限公司 | 一种基于mcu的安全启动实施方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110990084B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990084B (zh) | 芯片的安全启动方法、装置、存储介质和终端 | |
JP6595822B2 (ja) | 情報処理装置及びその制御方法 | |
US11562075B2 (en) | Secure booting method, apparatus, device for embedded program, and storage medium | |
US20230020278A1 (en) | Secure boot assist for devices, and related systems, methods and devices | |
EP2854066B1 (en) | System and method for firmware integrity verification using multiple keys and OTP memory | |
US11829479B2 (en) | Firmware security verification method and device | |
TWI607376B (zh) | 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法 | |
KR100792287B1 (ko) | 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치 | |
US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
US8127144B2 (en) | Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit | |
TW201500960A (zh) | 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術 | |
US20170262658A1 (en) | Method and device for providing verifying application integrity | |
TWI570591B (zh) | 允許測試金鑰用於bios安裝之技術 | |
CN112445537A (zh) | 操作***可信启动方法、装置、移动终端和存储介质 | |
US20170286665A1 (en) | Devices and methods for facilitating software signing by more than one signing authority | |
CN112148314B (zh) | 一种嵌入式***的镜像验证方法、装置、设备及存储介质 | |
KR101954439B1 (ko) | 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법 | |
JP2018508063A (ja) | セキュア素子 | |
KR101988404B1 (ko) | 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법 | |
CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及*** | |
CN112115477B (zh) | 内核修复方法、装置、电子设备及存储介质 | |
US9213864B2 (en) | Data processing apparatus and validity verification method | |
CN117494232B (zh) | 固件的执行方法和装置、***、存储介质及电子设备 | |
CN108416209B (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 |