CN113127262B - 镜像文件的生成方法、装置、电子设备及存储介质 - Google Patents
镜像文件的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113127262B CN113127262B CN202010033280.1A CN202010033280A CN113127262B CN 113127262 B CN113127262 B CN 113127262B CN 202010033280 A CN202010033280 A CN 202010033280A CN 113127262 B CN113127262 B CN 113127262B
- Authority
- CN
- China
- Prior art keywords
- decryption
- parameter
- mirror image
- image file
- ciphertext
- 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 130
- 238000012795 verification Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 45
- 239000003999 initiator Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 abstract description 19
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 12
- 238000005336 cracking Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 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
- 230000003287 optical effect Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供镜像文件的生成方法、装置、电子设备及存储介质,该方法包括:获得第一启动程序镜像密文;其中,第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数。第一启动程序镜像密文由第一加密参数加密得到,并且第一启动程序镜像密文具有第一哈希值;根据第二加密参数对第一哈希值进行处理,得到第一数字签名;根据第三加密参数对第二解密参数进行处理,得到第二数字签名;根据第一启动程序镜像密文、第一哈希值、第一数字签名、第二解密参数、第二数字签名和第三解密参数,获得第一镜像文件。使用本公开生成的第一镜像文件不会随着第二镜像文件的变化而变化,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及镜像文件的生成方法、装置、电子设备及存储介质。
背景技术
随着科学技术的不断发展,自动驾驶也得到了飞速的发展。自动驾驶无需配备驾驶员,全程由计算机自动控制驾驶。
在计算机自动控制中,多个启动程序(软件)相互配合完成启动是自动驾驶的基础。由于各级程序是联动的,任意一级启动程序发生变化都会影响到其他应用程序,甚至会造成启动程序需要重新编译或者重新测试的情况,进而导致自动控制的瘫痪。
因此,目前存在的技术问题是:在各级程序联动的基础上,其中任意一级启动程序发生变化,会导致该级启动程序的上一级启动程序发生变化。
发明内容
为了解决上述技术问题,提出了本公开。
根据本公开的一个方面,提供了一种镜像文件的生成方法,所述方法包括:获得第一启动程序镜像密文;其中,所述第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数;所述第一启动程序镜像密文由第一加密参数加密得到,并且所述第一启动程序镜像密文具有第一哈希值;根据第二加密参数对所述第一哈希值进行处理,得到第一数字签名;所述第二加密参数和第二解密参数为配对密钥;根据第三加密参数对所述第二解密参数进行处理,得到第二数字签名;所述第三加密参数和第三解密参数为配对密钥;根据所述第一启动程序镜像密文、所述第一哈希值、所述第一数字签名、所述第二解密参数、所述第二数字签名和所述第三解密参数,获得所述第一镜像文件。
根据本公开的另一方面,提供了一种镜像文件的生成装置,包括:第一获得模块,用于获得第一启动程序镜像密文;其中,所述第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数;所述第一启动程序镜像密文由第一加密参数加密得到,并且所述第一启动程序镜像密文具有第一哈希值;第一处理模块,用于根据第二加密参数对所述第一哈希值进行处理,得到第一数字签名;所述第二加密参数和第二解密参数配对;第二处理模块,用于根据第三加密参数对所述第二解密参数进行处理,得到第二数字签名;所述第三加密参数和第三解密参数为配对密钥;第二获得模块,用于根据所述第一启动程序镜像密文、所述第一哈希值、所述第一数字签名、所述第二解密参数、所述第二数字签名和所述第三解密参数,获得所述第一镜像文件。
根据本公开的另一方面,一种镜像文件的启动方法,所述方法包括:获取第二镜像文件的解密参数和第二启动程序镜像密文的解密参数;根据所述第二镜像文件的解密参数对第四数字签名进行处理,获得第三数字签名的解密参数;根据所述第三数字签名的解密参数对第三数字签名进行处理,获得第二哈希值;所述第二哈希值是所述第二启动程序镜像密文的哈希值;对所述第二镜像文件中的第二启动程序镜像密文进行处理,获得待验证哈希值;利用所述第二哈希值对所述待验证哈希值进行验证;若验证成功,根据所述第二启动程序镜像密文的解密参数对所述第二启动程序镜像密文进行解密,获得第二启动程序镜像;控制所述第二启动程序镜像启动。
根据本公开的再一方面,提供了一种镜像文件的启动装置,包括:获得单元,用于获取第二镜像文件的解密参数和第二启动程序镜像密文的解密参数;第一解密单元,用于根据所述第二镜像文件的解密参数对第四数字签名进行处理,获得第三数字签名的解密参数;第二解密单元,用于根据所述第三数字签名的解密参数对第三数字签名进行处理,获得第二哈希值;所述第二哈希值是所述第二启动程序镜像密文的哈希值;计算单元,用于对所述第二镜像文件中的第二启动程序镜像密文进行处理,获得待验证哈希值;验证单元,用于利用所述第二哈希值对所述待验证哈希值进行验证;第二解密单元,用于若验证成功,根据所述第二启动程序镜像密文的解密参数对所述第二启动程序镜像密文进行解密,获得第二启动程序镜像;启动单元,用于控制所述第二启动程序镜像启动。
根据本公开的再一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的方法。
根据本公开的又一方面,提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如上所述的方法。
与现有技术相比,首先获得第一启动程序镜像密文。其中,第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数,因此在第一启动程序镜像启动后可根据验证参数发起对第二镜像文件的验证,以实现各镜像文件的联级启动。另外,由于第一启动程序镜像密文中存储的是第二镜像文件的验证参数,而并非第二镜像文件本身,故而无论第二镜像文件如何变化也不会影响第一启动程序镜像密文。而第一启动程序镜像密文具有第一哈希值,故根据第二加密参数对第一哈希值进行处理,得到第一数字签名后,会根据第三加密参数对第二解密参数进行处理,得到第二数字签名。再根据第一启动程序镜像密文、第一哈希值、第一数字签名、第二解密参数、第二数字签名和第三解密参数获得第一镜像文件。可见第一镜像文件是由第一启动程序镜像密文处理得到,并且第一镜像文件仅仅包含第二镜像文件的验证参数,也即第一镜像文件和第二镜像文件的关联仅仅在于第二镜像文件的验证参数而并非第二镜像文件本身,即便第二镜像文件发生变化,也不会影响第一镜像文件。故使用本公开生成的第一镜像文件不会随着第二镜像文件的变化而变化,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的镜像文件生成方法的流程示意图。
图2是本公开另一示例性实施例提供的第一启动程序镜像密文的结构示意图。
图3是本公开一示例性实施例提供的各镜像文件的结构示意图。
图4是本公开一示例性实施例提供的各镜像文件的的密钥的示意图。
图5是本公开一示例性实施例提供的镜像文件生成装置的示意图。
图6是本公开一示例性实施例提供的镜像文件启动方法的流程示意图。
图7是本公开一示例性实施例提供的芯片的示意图。
图8是本公开一示例性实施例提供的镜像文件启动装置的结构示意图。
图9是本公开一示例性实施例提供的电子设备的示例框图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
申请概述
以启动系统级芯片(SOC)为例,系统级芯片中的各级程序,都会将其哈希值存入其上一级程序中,如果其中任意一级程序发生变化,那么该程序的哈希值必然会变,由于该程序的上一级程序需要更新保存的哈希值,那么该程序的上一级程序就会跟着发生变化,进而需要重新编译或者重新测试。故,如何在系统级芯片中的其中任意一级程序发生改变的情况下,保证该程序的上一级程序不会随之改变是目前亟需解决的问题。
为了解决上述问题,在生成启动程序的镜像文件的过程中,首先获得第一启动程序镜像密文。其中,第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数,因此在第一启动程序镜像启动后可根据验证参数发起对第二镜像文件的验证,以实现各镜像文件的联级启动。另外,由于第一启动程序镜像密文中存储的是第二镜像文件的验证参数,而并非第二镜像文件本身,故而无论第二镜像文件如何变化也不会影响第一启动程序镜像密文。而第一启动程序镜像密文具有第一哈希值,故根据第二加密参数对第一哈希值进行处理,得到第一数字签名后,会根据第三加密参数对第二解密参数进行处理,得到第二数字签名。再根据第一启动程序镜像密文、第一哈希值、第一数字签名、第二解密参数、第二数字签名和第三解密参数获得第一镜像文件。可见第一镜像文件是由第一启动程序镜像密文处理得到,并且第一镜像文件仅仅包含第二镜像文件的验证参数,也即第一镜像文件和第二镜像文件的关联仅仅在于第二镜像文件的验证参数而并非第二镜像文件本身,即便第二镜像文件发生变化,也不会影响第一镜像文件。故使用本公开生成的第一镜像文件不会随着第二镜像文件的变化而变化,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
示例性方法
图1是本公开一示例性实施例提供的镜像文件的生成方法的流程示意图。本方案可应用在各类系统级控制芯片上,芯片可以应用在无人车、无人机、机械臂和移动机器人等能够自主移动的设备,当然也可以应用在其他诸如智能电脑、摄像机、智能手机等等智能设备。
值得注意的是,本方案中涉及的加密方式包含对称加密方式或以非对称加密方式等,当然也包含其他加密方式,本方案对加密方式不做限制。
本公开中的一个或者多个实施例中描述的镜像文件生成方法如图1所示,包括如下步骤:
步骤101,获得第一启动程序镜像密文。
其中,第一启动程序镜像密文的结构示意图请参看图2,在第一启动程序镜像密文中至少包含:第一启动程序镜像和针对第二镜像文件的验证参数。第一启动程序镜像中具有第一启动程序内容,第二镜像文件是对第二启动程序镜像密文经过处理后得到的镜像文件。
第二镜像文件的验证参数至少包含:第二启动程序镜像密文的解密参数,第二镜像文件的解密参数(或者第二镜像文件的解密参数的哈希值)。
进一步的,第一启动程序镜像密文由第一加密参数将第一启动程序镜像和针对第二镜像文件的验证参数进行加密后得到。另外,第一加密参数对应有第一解密参数。若以第一加密参数以密钥C为例,则(若使用对称加密方式)第一解密参数同样为密钥C。
第一启动程序镜像密文具有第一哈希值,可使用MD5、SHA等方法将第一启动程序镜像密文映射为第一哈希值。当然,本方案并不仅限于使用上述方法,其他任意计算哈希值的方法也应当包含在本公开的保护范围之内。
步骤102,根据第二加密参数对第一哈希值进行处理,得到第一数字签名。
其中,第二加密参数和第二解密参数为配对密钥,由非对称加密产生。例如第二加密参数为私钥B,第二解密参数为公钥B1,是第一数字签名的解密参数。
具体的,可利用第二加密参数对第一哈希值进行加密,得到第一数字签名。
步骤103,根据第三加密参数对第二解密参数进行处理,得到第二数字签名。
其中,第三加密参数和第三解密参数为配对密钥,由非对称加密产生。例如第三加密参数为私钥A,第三解密参数为公钥A1,是第一镜像文件的解密参数。
若第一启动程序镜像密文由于破解篡改等原因发生变化,那么第一哈希值必然会改变,为了避免第三镜像文件受到第一启动程序镜像密文的影响,则根据第三加密参数对第二解密参数(也即第一数字签名的解密参数),进行加密。应当理解的是,由于第一哈希值的变化会影响第一数字签名发生变化,因此此处是将不会受到影响的第三解密参数放入第三镜像文件中,而不是第一数字签名、第一哈希值或其相关的加解密参数,故而即便是第一启动程序镜像密文发生变化,引起变化的只是第一哈希值、第一数字签名,不会影响第三镜像文件,能够在第一镜像文件发生变化的情况下确保第三镜像文件的完整性和安全性。
另外,第三解密参数作为第一镜像文件的解密参数,会基于第三解密参数逐步解析得到第一镜像文件的第一哈希值。并从第一启动程序镜像密文中解析出待验证哈希值,并且利用第一哈希值验证待验证哈希值。若第一启动程序镜像密文由于被破解篡改等原因发生变化,其解析出的待验证哈希值就和第一哈希值不同并且无法通过验证,则发生变化的第一启动程序镜像密文(第一镜像文件)无法在芯片上运行,也就能够保证联级启动的安全性。
步骤104,根据第一启动程序镜像密文、第一哈希值、第一数字签名、第二解密参数、第二数字签名和第三解密参数,获得第一镜像文件。
具体的,根据上述各参数生成第一镜像文件后,由于第一启动程序镜像密文中包含针对第二镜像文件的验证参数,故而在启动第一镜像文件后,能够引发启动第二镜像文件,进而实现联级启动,同时,由于第一启动程序镜像密文中包含针对第二镜像文件的验证参数而并非第二启动程序镜像密文本身或其哈希值,故而即便是第二镜像文件发生改变,也不会影响第一镜像文件,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
在上述图1所示实施例的基础上,作为本实施例一种可选的实施方式,在步骤101的具体实施过程中涉及到第二镜像文件的验证参数,故本实施例先具体介绍第二镜像文件。
其中,第二镜像文件的验证参数包括:第二启动程序镜像密文的解密参数、第二镜像文件的解密参数。故本实施例具体介绍如何生成第二启动程序镜像密文和第二镜像文件。
第二启动程序镜像密文中包含:第二启动程序镜像、第二启动程序的下一级启动程序镜像密文(为了便于说明,此处命名为第四启动程序镜像密文)的解密参数、第四镜像文件的解密参数(或者第四镜像文件的解密参数的哈希值)。参看图3,若以具体的密钥为例,第二启动程序镜像密文包括:第二启动程序镜像、第四启动程序镜像密文的解密密钥G(对称加密)、第四镜像文件的解密公钥H1(或公钥H1的哈希值)。第四镜像文件和第二镜像文件的生成过程类似,故此处不再赘述。
进一步的,在生成第二启动程序镜像密文的过程中,将第二启动程序镜像、密钥G、公钥H1(或其哈希值)进行拼接,得到拼接数据;然后利用加密参数(例如对称加密的密钥F)对拼接数据进行加密,得到第二启动程序镜像密文。其中,加密参数(密钥F)和第二启动程序镜像密文的解密参数是配对的。
可见,此处的第二启动程序镜像密文中包含有针对第四镜像文件的验证参数,故而在启动第二镜像文件后,能够进一步启动第四镜像文件,进而实现联级启动,同时,由于第二启动程序镜像密文中包含针对第四镜像文件的验证参数而并非第四镜像文件本身,故而即便是第四镜像文件发生改变,也不会影响第二镜像文件,能够在第四镜像文件发生变化的情况下确保第二镜像文件的完整性和安全性。并且第四镜像文件若发生变化,无法在芯片上成功运行(具体原理和第二镜像文件、第一镜像文件等相同,在此不再赘述)。
进一步的,第二启动程序镜像密文具有对应的第二哈希值,可使用MD5、SHA等方法将第二启动程序镜像密文映射为对应的第二哈希值。当然,本方案并不仅限于使用上述方法,其他任意计算哈希值的方法也应当包含在本公开的保护范围之内。
在生成第二镜像文件的过程中,对第二启动程序镜像密文进行哈希计算,确定第二哈希值;根据第二启动程序镜像密文的加密参数对第二哈希值进行加密,得到第二镜像文件的数字签名(第三数字签名)。例如使用私钥E对第二哈希值进行加密,私钥E和公钥E1配对。公钥E1为第三数字签名的解密参数。再使用私钥D对公钥E1进行加密,得到公钥E1的数字签名(第四数字签名)。此时私钥D和公钥D1配对,公钥D1(或者公钥D1的哈希值)为第二镜像文件的解密参数。此时,将第二启动程序镜像密文、第二哈希值、第三数字签名、公钥E1、第四数字签名、公钥D1拼接为第二镜像文件。故此处第二镜像文件的解密参数为公钥D1,具体示意结构请参看图3-图4。
在上述图1所示实施例的基础上,作为本实施例一种可选的实施方式,在步骤101的具体实施过程中会执行下述操作:获得第二启动程序镜像密文的解密参数(密钥F)。获得第二镜像文件的解密参数(公钥D1),或该解密参数的哈希值(公钥D1的哈希值)。调用第一加密参数对第二启动程序镜像密文的解密参数、第二镜像文件的解密参数(或该解密参数的哈希值)和第一启动程序镜像进行加密,得到第一启动程序镜像密文。
具体来说,获得第二启动程序镜像密文的解密参数(密钥F)的过程中,可以有以下几种方式:方式1、在生成第二启动程序镜像密文后,从第二启动程序镜像密文处获取密钥F。方式2、从第一启动程序中获取密钥F。获得第二镜像文件的解密参数(公钥D1)的过程中,也具有以下几种获取方式:方式1、在生成第二镜像文件后,从第二镜像文件中获取公钥D1(或公钥D1的哈希值)。方式2、从第一启动程序中获取私钥E、公钥E1、公钥D1、公钥E1的数字签名(第四数字签名)等等。获得上述参数之后,利用密钥C对第一启动程序镜像、密钥F、公钥D1(或者公钥D1的哈希值)拼接形成的拼接数据进行加密,得到第一启动程序镜像密文。
可见,由于第一启动程序镜像密文中包含针对第二镜像文件的验证参数,故而在启动第一镜像文件后,能够引发启动第二镜像文件,进而实现联级启动,同时,由于第一启动程序镜像密文中包含针对第二镜像文件的验证参数而并非第二镜像文件本身,故而即便是第二镜像文件发生改变,也不会影响第一镜像文件,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。另外,第二镜像文件的验证参数可用于对第二镜像文件进行逐步解密,解析得到第二镜像文件的第二哈希值。并从第二启动程序镜像密文中解析出待验证哈希值,并且利用第二哈希值验证待验证哈希值。若第二启动程序镜像密文由于被破解篡改等原因发生变化,其解析出的待验证哈希值就和第二哈希值不同并且无法通过验证,则发生变化的第二启动程序镜像密文(第二镜像文件)无法在芯片上运行,也就能够保证联级启动的安全性。
在上述图1所示实施例的基础上,第一加密参数(密钥F)、第二加密参数(私钥B)、第二解密参数(公钥B1)、第二数字签名、第三加密参数(私钥A)、第三解密参数(公钥A1)等一种或者多种参数可以由第一启动程序镜像(所属开发设备)自身提供,也可以从第三启动程序镜像(所属开发设备)中获取。本实施例对其来源不做限制。
在上述图1所示实施例的基础上,由于第三加密参数和第三解密参数配对,故在执行步骤103之后还包括下述操作:根据第一解密参数和第三解密参数获得第三启动程序镜像密文。具体的,将第三启动程序镜像、第一解密参数和第三解密参数本身进行拼接,得到拼接数据。然后对该拼接数据(利用密钥J)进行加密得到第三启动程序镜像密文。此时,第一解密参数和第三解密参数为第一镜像文件的验证参数。
进一步的,可根据第三解密参数确定第三解密参数的哈希值;根据第三启动程序镜像、第一解密参数、第三解密参数的哈希值获得第三启动程序镜像密文。此时,第一解密参数和第三解密参数的哈希值为第一镜像文件的验证参数。
若以密钥为例,则第三启动程序镜像密文包含:第三启动程序镜像、密钥F、公钥A1(或公钥A1的哈希值)。
而第三镜像文件的确定方式和第一镜像文件的确定方式类似,故此处不再赘述。而第三镜像文件包含:将第三启动程序镜像密文、第三启动程序镜像密文的第三哈希值、第三哈希值的数字签名、公钥H1(和加密第三哈希值的加密参数配对的解密参数)、公钥H1的数字签名、公钥I1(第三镜像文件的解密参数)拼接为第三镜像文件。
可见,由于第三启动程序镜像密文中包含针对第一镜像文件的验证参数,故而在启动第三镜像文件后,能够引发启动第一镜像文件,进而实现联级启动。同时,由于第三启动程序镜像密文中包含针对第一镜像文件的验证参数而并非第一镜像文件本身,故而即便是第一镜像文件发生改变,也不会影响第三镜像文件,能够在第一镜像文件发生变化的情况下确保第三镜像文件的完整性和安全性。
作为一种可选的实施例,各启动程序镜像中相应步骤的加密密钥可以相同。也即,针对各启动程序的哈希值进行处理的加解密参数相同,针对各启动程序哈希值的数字签名的进行处理的加解密参数相同。例如,私钥A可以和私钥D相同,公钥A1可以和公钥D1相同。私钥B和私钥E可以相同,公钥B1和公钥E1相同。
作为一种可选的实施例,最后一级镜像文件可以不加密。
以上是本公开中镜像文件的生成方法的实施过程,通过使用密钥对各级启动程序镜像进行加密,确保了所有软件启动程序镜像本身的安全性。各级启动程序的镜像都可以通过本方法加密,杜绝了反汇编分析并破解软件的可能性。另外,本公开通过私钥签名、公钥验证的方法,确保了所有启动程序镜像本身的完整性和安全性。
进一步的,本公开的方案,首先获得第一启动程序镜像密文。其中,第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数,因此在第一启动程序镜像启动后可根据验证参数发起对第二镜像文件的验证,以实现各镜像文件的联级启动。另外,由于第一启动程序镜像密文中存储的是第二镜像文件的验证参数,而并非第二镜像文件本身,故而无论第二镜像文件如何变化也不会影响第一启动程序镜像密文。而第一启动程序镜像密文具有第一哈希值,故根据第二加密参数对第一哈希值进行处理,得到第一数字签名后,会根据第三加密参数对第二解密参数进行处理,得到第二数字签名。再根据第一启动程序镜像密文、第一哈希值、第一数字签名、第二解密参数、第二数字签名和第三解密参数获得第一镜像文件。故而第一镜像文件是由第一启动程序镜像密文处理得到,其包含第二镜像文件的验证参数但并未包含第二镜像文件本身,即便第二镜像文件发生变化,也不会影响第一镜像文件。故使用本公开生成的第一镜像文件不会随着第二镜像文件的变化而变化,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
在上述基础上,若第一启动程序镜像密文由于破解篡改等原因发生变化,那么第一哈希值必然会改变,为了避免第三镜像文件受到第一启动程序镜像密文的影响,则根据第三加密参数对第二解密参数(也即第一数字签名的解密参数),进行加密。应当理解的是,由于第一哈希值的变化会影响第一数字签名发生变化,因此此处是将不会受到影响的第三解密参数放入第三镜像文件中,而不是第一数字签名、第一哈希值或其相关的加解密参数,故而即便是第一启动程序镜像密文发生变化,引起变化的只是第一哈希值、第一数字签名,完全不会影响到第三镜像文件,能够在第一镜像文件发生变化的情况下确保第三镜像文件的完整性和安全性。
另外,第三解密参数作为第一镜像文件的解密参数,会基于第三解密参数逐步解析得到第一镜像文件的第一哈希值。并从第一启动程序镜像密文中解析出待验证哈希值,并且利用第一哈希值验证待验证哈希值。若第一启动程序镜像密文由于被破解篡改等原因发生变化,其解析出的待验证哈希值就和第一哈希值不同并且无法通过验证,则发生变化的第一启动程序镜像密文(第一镜像文件)无法在芯片上运行,也就能够保证联级启动的安全性。
基于相同的发明构思,本公开的一个或者多个实施例公开了镜像文件的启动方法,该方法对应于镜像文件的生成过程,是在前述一个或者多个实施例中的生成方法的基础上得到的,该方法公开了针对第二镜像文件的启动过程。在本实施例中,和上述方法实施例相似的实施细节就不再赘述了。相对的,在上述方法实施例中若使用对称加密,则本实施例对应使用对称解密。若在上述方法实施例中使用非对称加密,则本实施例中对应使用非对称解密。其中,第一镜像文件、第二镜像文件、第三镜像文件、第四镜像文件的启动过程类似,故不再逐一赘述。
本公开中的一个或者多个实施例中描述的镜像文件启动方法如图5所示,具体的,在验证启动第二镜像文件的过程中,由于第一镜像文件和第二镜像文件相互之间的关联,仅仅在于第二镜像文件的验证参数(第四数字签名的解密参数(公钥D1)和第二启动程序镜像密文的解密参数(密钥F)),因此,可以达到更换第二镜像文件时,第一镜像文件无需做任何改变(也即:不会影响第一镜像文件)的技术效果。具体参看如下步骤:
步骤501,获取第二镜像文件的解密参数和第二启动程序镜像密文的解密参数。
其中,第二镜像文件的解密参数是第四数字签名的解密参数(公钥D1)。
第二启动程序镜像密文的解密参数和加密参数配对,对应于上述镜像文件的生成方法的实施例的举例,该解密参数为密钥F。
而在获取的过程中,可以从第一启动程序镜像(所属开发设备)获取,也可以从第二启动程序镜像(所属开发设备)获取。
从此处可见第一镜像文件引发启动第二镜像文件时,第一镜像文件中仅包含第二镜像文件的解密参数和第二启动程序镜像密文的解密参数(也即第二镜像文件的验证参数),而并非第二启动程序镜像密文本身或其哈希值,故而即便是第二镜像文件发生改变,也不会影响第一镜像文件的安全性,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
在此基础上,则会执行下述逐步解密的过程。
步骤502,根据第二镜像文件的解密参数对第四数字签名进行处理,获得第三数字签名的解密参数。
其中,第四数字签名是将第三数字签名的解密参数进行处理后得到,具体的处理方式是利用非对称加密方式加密得到。例如,第三数字签名的解密参数为公钥E1,则使用私钥D对公钥E1进行加密,得到第四数字签名。
故而在解密的过程中,第二镜像文件的解密参数(公钥D1)对第四数字签名处理,得到公钥E1。
进一步的,会利用公钥D1对第四数字签名进行验证,若验证成功则会得到公钥E1。而在验证的过程中如果系统被攻击,攻击者通过替换镜像的方式来尝试运行未经正规途径发布的固件。比如攻击者替换掉了镜像中的第四数字签名,那么公钥D1在验签的时候就会校验失败,这种情况下就能发现第四数字签名是不正确的,故能够及时检测出遭到的攻击以做出应对。
步骤503,根据第三数字签名的解密参数对第三数字签名进行处理,获得第二哈希值。
其中,第二哈希值是第二启动程序镜像密文的哈希值。第二镜像文件中的数字签名包含有两个:第二哈希值的数字签名(第三数字签名),以及第二哈希值对应的解密参数(公钥E1)的数字签名(第四数字签名)。此时,第二镜像文件的解密参数是第四数字签名的解密参数(公钥D1)。在具体的解密过程中,可事先利用公钥D1对公钥E1的数字签名进行解密,得到公钥E1。再利用公钥E1对第二哈希值的数字签名(第三数字签名)进行解密,得到第二哈希值。
进一步的,在验证的过程中如果系统被攻击,攻击者通过替换镜像的方式来尝试运行未经正规途径发布的固件。比如攻击者替换掉了镜像中的第三数字签名,那么公钥E1在验签的时候就会校验失败,这种情况下就能发现第三数字签名是不正确的,故能够及时检测出遭到的攻击以做出应对。
步骤504,对第二镜像文件中的第二启动程序镜像密文进行处理,获得待验证哈希值。
具体的,对第二启动程序镜像密文进行哈希计算,得到待验证哈希值。应当注意的是,第二启动程序镜像密文若因为被破解篡改等原因发生变化,则哈希计算得到的待验证哈希值会和第二哈希值不同。
步骤505,利用第二哈希值对待验证哈希值进行验证。
在验证的过程中,验证两者是否相同。若相同表示验证成功,若不相同表示验证失败。若第二启动程序镜像密文发生变化,则验证失败,结束。
通过验证可确认第二启动程序镜像密文是否发生变化,进而确认第二启动程序镜像密文是否被篡改。若被篡改,则验证是不会通过的,也就无法启动。可见,被破解篡改的第二启动程序镜像密文无法通过验证,也就能够保证被破解篡改的第二启动程序镜像密文(第二镜像文件)无法在芯片上运行。
步骤506,若验证成功,根据第二启动程序镜像密文的解密参数对第二启动程序镜像密文进行解密,获得第二启动程序镜像。
在具体的实施过程中,第二启动程序镜像密文中是由加密参数加密获得,而加密参数和解密参数配对。故利用该解密参数可对其进行解密得到第二启动程序镜像、第四镜像文件的解密参数、第四启动程序镜像密文的解密参数,然后触发第四启动程序镜像的启动,由此可实现联动启动的效果。
步骤507,控制第二启动程序镜像启动。
以上是针对第二镜像文件的启动过程。在实际应用中,上述各镜像文件可置入系统级芯片。下面以某系统级芯片为例来介绍启动各镜像文件的方式,先介绍芯片的结构,参看图6。
其中,我们主要用到的几个部件。
ROM,其中有ROM启动程序,它负责读取并验证首个镜像文件。若第一镜像文件为首个镜像文件,则首次验证的是第一镜像文件。
OTP(One Time Programmable)一次性可编程存储器,用于存放首个镜像文件的解密参数和首个启动程序镜像密文的解密参数。若以第一镜像文件为例,则存储的是密钥C和公钥A1(或者公钥A1的哈希值)。进一步的,第一启动程序镜像密文中,公钥D1的哈希值可以用公钥D1本身替代,因为SRAM有足够的空间储存公钥D1,而该哈希值(256bit)比公钥D1(2048bit以上)的体积小很多,但对于SRAM的容量(128KB)来说都比较小。OTP本身可能只有512bit,所以OTP只能存放一个哈希值。
FLASH中包含各启动程序镜像和最后的启动程序镜像(例如OS的镜像)。
其中,ROM启动程序中可自带硬件参数解密模块,硬件参数解密模块中直接根据首个启动程序镜像密文的解密参数直接进行解密。或者(通过扰码电路)获得首个启动程序镜像密文的解密参数再进行解密。
若第一镜像文件为首个镜像文件,以二次加密的第一镜像文件的验证过程为例,进行说明。
控制ROM代码解析第一镜像文件,得到第一启动程序镜像密文、第一哈希值、第一哈希值的数字签名、公钥A1、公钥B1、公钥B1的数字签名。
利用公钥A1对公钥B1的数字签名进行验证,得到公钥B1,再根据公钥B1对第一哈希值的数字签名进行验证,得到第一哈希值。然后根据第一启动程序镜像密文计算得到待验证哈希值。然后将第一哈希值和待验证哈希值进行对比验证,若相同表示验证成功,则根据扰码电路得到密钥C,然后利用密钥C对第一启动程序镜像密文进行解密,得到第一启动程序镜像启动。由于在解密过程中还能够得到第二镜像文件的解密参数和第二启动程序镜像密文的解密参数。故而本方案的装置可得到第二镜像文件的解密参数和第二启动程序镜像密文的解密参数并对第二镜像文件进行逐步验证得到第二启动程序镜像进行启动,由此实现各启动程序镜像的联动启动。另外,由于第一启动程序镜像密文中包含的是第二镜像文件的验证参数(第二镜像文件的解密参数和第二启动程序镜像密文的解密参数),而并非第二启动程序镜像密文本身,可见无论第二镜像文件如何变化也不会影响第一启动程序镜像密文,故能够在保证实现各启动程序的镜像文件在联级启动的同时,能够在第二镜像文件发生变化的情况下确保第一镜像文件的完整性和安全性。
示例性装置
图7图示了根据本公开实施例的镜像文件的生成装置700的框图。该装置和上述方法实施例基于相同的发明构思,故具体的实施细节可参看上述实施例的描述。
如图7所示,本公开实施例的视频中镜像文件的生成装置700包括:第一获得模块701,用于获得第一启动程序镜像密文;其中,第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数;第一启动程序镜像密文由第一加密参数加密得到,并且第一启动程序镜像密文具有第一哈希值;第一处理模块702,用于根据第二加密参数对第一哈希值进行处理,得到第一数字签名;第二加密参数和第二解密参数配对;第二处理模块703,用于根据第三加密参数对第二解密参数进行处理,得到第二数字签名;第三加密参数和第三解密参数为配对密钥;第二获得模块704,用于根据第一启动程序镜像密文、第一哈希值、第一数字签名、第二解密参数、第二数字签名和第三解密参数,获得第一镜像文件。
在一个示例中,第二镜像文件的验证参数包括:第二启动程序镜像密文的解密参数、第二镜像文件的解密参数。第一获得模块701,具体包括:第一获得子模块,用于获得第二启动程序镜像密文的解密参数;第二获得子模块,用于获得第二镜像文件的解密参数;加密模块,用于调用第一加密参数对第二启动程序镜像密文的解密参数、第二镜像文件的解密参数和第一启动程序镜像进行加密,得到第一启动程序镜像密文。
在一个示例中,第一加密参数和第一解密参数配对;该装置还包括第三获得模块,用于根据第一解密参数和第三解密参数获得第三启动程序镜像密文。
在一个示例中,第三获得模块,具体用于根据第三解密参数确定第三解密参数的哈希值;根据第一解密参数和第三解密参数的哈希值获得第三启动程序镜像密文。
在一个示例中,该装置还包括:第四获得模块,用于从第三启动程序中获取第三加密参数。
图8图示了根据本公开实施例的镜像文件的启动装置800的框图。该装置和上述方法实施例基于相同的发明构思,故具体的实施细节可参看上述实施例的描述。
如图8所示,本公开实施例的镜像文件的启动装置800包括:获得单元801,用于获取第二镜像文件的解密参数和第二启动程序镜像密文的解密参数;第一解密单元802,用于根据第二镜像文件的解密参数对第四数字签名进行处理,获得第三数字签名的解密参数;第二解密单元803,用于根据第三数字签名的解密参数对第三数字签名进行处理,获得第二哈希值;第二哈希值是第二启动程序镜像密文的哈希值;计算单元804,用于对第二镜像文件中的第二启动程序镜像密文进行处理,获得待验证哈希值;验证单元804,用于利用第二哈希值对待验证哈希值进行验证;第二解密单元805,用于若验证成功,根据第二启动程序镜像密文的解密参数对第二启动程序镜像密文进行解密,获得第二启动程序镜像;启动单元807,用于控制第二启动程序镜像启动。
示例性电子设备设备
图9图示了根据本公开实施例的电子设备的框图。
如图9所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行程序指令,以实现上文的本公开的各个实施例的目标物的姿态跟踪方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置13可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置13可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入设备13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定的距离信息、方向信息等。该输出设备14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的镜像文件生成方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的镜像文件生成方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (9)
1.一种镜像文件的生成方法,所述方法包括:
获得第一启动程序镜像密文;其中,所述第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数,所述第二镜像文件的验证参数包括:第二启动程序镜像密文的解密参数、第二镜像文件的解密参数;所述第一启动程序镜像密文由第一加密参数对所述第二启动程序镜像密文的解密参数、所述第二镜像文件的解密参数和第一启动程序镜像进行加密得到,并且所述第一启动程序镜像密文具有第一哈希值;所述第一加密参数和第一解密参数配对;
根据第二加密参数对所述第一哈希值进行处理,得到第一数字签名;所述第二加密参数和第二解密参数为配对密钥;
根据第三加密参数对所述第二解密参数进行处理,得到第二数字签名;所述第三加密参数和第三解密参数为配对密钥;
根据所述第一解密参数和所述第三解密参数获得第三启动程序镜像密文;
根据所述第一启动程序镜像密文、所述第一哈希值、所述第一数字签名、所述第二解密参数、所述第二数字签名和所述第三解密参数,获得第一镜像文件。
2.如权利要求1所述的方法,其中,所述第二镜像文件的验证参数包括:第二启动程序镜像密文的解密参数、第二镜像文件的解密参数;
所述获得第一启动程序镜像密文,包括:
获得所述第二启动程序镜像密文的解密参数;
获得所述第二镜像文件的解密参数;
调用所述第一加密参数对所述第二启动程序镜像密文的解密参数、所述第二镜像文件的解密参数和所述第一启动程序镜像进行加密,得到所述第一启动程序镜像密文。
3.如权利要求1所述的方法,其中,所述根据所述第一解密参数和所述第三解密参数获得第三启动程序镜像密文,包括:
根据所述第三解密参数确定第三解密参数的哈希值;
根据所述第一解密参数和所述第三解密参数的哈希值获得所述第三启动程序镜像密文。
4.如权利要求1所述的方法,其中,所述根据第三加密参数对所述第二解密参数进行处理,得到第二数字签名之前,所述方法还包括:
从所述第三启动程序中获取所述第三加密参数。
5.一种镜像文件的生成装置,包括:
第一获得模块,用于获得第一启动程序镜像密文;其中,所述第一启动程序镜像密文中至少包含针对第二镜像文件的验证参数,所述第二镜像文件的验证参数包括:第二启动程序镜像密文的解密参数、第二镜像文件的解密参数;所述第一启动程序镜像密文由第一加密参数对所述第二启动程序镜像密文的解密参数、所述第二镜像文件的解密参数和第一启动程序镜像进行加密得到,并且所述第一启动程序镜像密文具有第一哈希值;所述第一加密参数和第一解密参数配对;
第一处理模块,用于根据第二加密参数对所述第一哈希值进行处理,得到第一数字签名;所述第二加密参数和第二解密参数配对;
第二处理模块,用于根据第三加密参数对所述第二解密参数进行处理,得到第二数字签名;所述第三加密参数和第三解密参数为配对密钥;
第三获得模块,用于根据所述第一解密参数和所述第三解密参数获得第三启动程序镜像密文;
第二获得模块,用于根据所述第一启动程序镜像密文、所述第一哈希值、所述第一数字签名、所述第二解密参数、所述第二数字签名和所述第三解密参数,获得第一镜像文件。
6.一种镜像文件的启动方法,所述方法包括:
第一镜像文件引发启动第二镜像文件时,获取所述第二镜像文件的解密参数和第二启动程序镜像密文的解密参数;
根据所述第二镜像文件的解密参数对第四数字签名进行处理,获得第三数字签名的解密参数;
根据所述第三数字签名的解密参数对第三数字签名进行处理,获得第二哈希值;所述第二哈希值是所述第二启动程序镜像密文的哈希值;
对所述第二镜像文件中的第二启动程序镜像密文进行处理,获得待验证哈希值;
利用所述第二哈希值对所述待验证哈希值进行验证;
若验证成功,根据所述第二启动程序镜像密文的解密参数对所述第二启动程序镜像密文进行解密,获得第二启动程序镜像;其中,所述第二启动程序镜像密文由加密参数加密获得,所述加密参数和所述解密参数配对,利用所述解密参数可对所述第二启动程序镜像密文进行解密得到所述第二启动程序镜像、第四镜像文件的解密参数、第四启动程序镜像密文的解密参数,以触发第四启动程序镜像的启动;
控制所述第二启动程序镜像启动。
7.一种镜像文件的启动装置,包括:
获得单元,用于第一镜像文件引发启动第二镜像文件时,获取所述第二镜像文件的解密参数和第二启动程序镜像密文的解密参数;
第一解密单元,用于根据所述第二镜像文件的解密参数对第四数字签名进行处理,获得第三数字签名的解密参数;
第二解密单元,用于根据所述第三数字签名的解密参数对第三数字签名进行处理,获得第二哈希值;所述第二哈希值是所述第二启动程序镜像密文的哈希值;
计算单元,用于对所述第二镜像文件中的第二启动程序镜像密文进行处理,获得待验证哈希值;其中,所述第二启动程序镜像密文由加密参数加密获得,所述加密参数和所述解密参数配对,利用所述解密参数可对所述第二启动程序镜像密文进行解密得到所述第二启动程序镜像、第四镜像文件的解密参数、第四启动程序镜像密文的解密参数,以触发第四启动程序镜像的启动;
验证单元,用于利用所述第二哈希值对所述待验证哈希值进行验证;
第二解密单元,用于若验证成功,根据所述第二启动程序镜像密文的解密参数对所述第二启动程序镜像密文进行解密,获得第二启动程序镜像;
启动单元,用于控制所述第二启动程序镜像启动。
8.一种电子设备,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如权利要求1-4、6中任一项所述的方法。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-4、6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033280.1A CN113127262B (zh) | 2020-01-13 | 2020-01-13 | 镜像文件的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033280.1A CN113127262B (zh) | 2020-01-13 | 2020-01-13 | 镜像文件的生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127262A CN113127262A (zh) | 2021-07-16 |
CN113127262B true CN113127262B (zh) | 2024-05-14 |
Family
ID=76771414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010033280.1A Active CN113127262B (zh) | 2020-01-13 | 2020-01-13 | 镜像文件的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127262B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661368B (zh) * | 2022-05-19 | 2022-09-06 | 中昊芯英(杭州)科技有限公司 | 一种芯片及其启动方法 |
CN116661876B (zh) * | 2022-11-23 | 2024-04-05 | 荣耀终端有限公司 | 系统启动方法、文件生成方法、电子设备及服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102460316A (zh) * | 2009-04-20 | 2012-05-16 | 皮尔茨公司 | 用于控制自动化设备的安全控制装置和方法 |
CN107729743A (zh) * | 2016-08-10 | 2018-02-23 | 中国电信股份有限公司 | 用于实现移动终端安全启动的方法、设备和系统 |
CN108415733A (zh) * | 2018-02-06 | 2018-08-17 | 上海康斐信息技术有限公司 | 一种基于双镜像Flash的路由器的启动方法及装置 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN110100245A (zh) * | 2016-11-03 | 2019-08-06 | 微安科技有限公司 | 利用签名的公钥的安全启动方法 |
CN110555309A (zh) * | 2019-09-10 | 2019-12-10 | 深圳市英博超算科技有限公司 | 启动方法、装置、终端以及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7699236B2 (en) * | 2004-04-28 | 2010-04-20 | Rutgers The State University | Method and apparatus for making and detecting a document verification indicator using optical pattern encryption |
US9158633B2 (en) * | 2013-12-24 | 2015-10-13 | International Business Machines Corporation | File corruption recovery in concurrent data protection |
CN105701038B (zh) * | 2016-01-11 | 2019-02-05 | 华为技术有限公司 | 一种级联芯片启动方法及相关装置 |
-
2020
- 2020-01-13 CN CN202010033280.1A patent/CN113127262B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102460316A (zh) * | 2009-04-20 | 2012-05-16 | 皮尔茨公司 | 用于控制自动化设备的安全控制装置和方法 |
CN107729743A (zh) * | 2016-08-10 | 2018-02-23 | 中国电信股份有限公司 | 用于实现移动终端安全启动的方法、设备和系统 |
CN110100245A (zh) * | 2016-11-03 | 2019-08-06 | 微安科技有限公司 | 利用签名的公钥的安全启动方法 |
CN108415733A (zh) * | 2018-02-06 | 2018-08-17 | 上海康斐信息技术有限公司 | 一种基于双镜像Flash的路由器的启动方法及装置 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN110555309A (zh) * | 2019-09-10 | 2019-12-10 | 深圳市英博超算科技有限公司 | 启动方法、装置、终端以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113127262A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313690B (zh) | 自包含的加密引导策略验证 | |
JP6286034B2 (ja) | プロセス認証とリソースパーミッション | |
US9430649B2 (en) | Automatic strong identity generation for cluster nodes | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
CN112784278B (zh) | 一种计算机系统的可信启动方法、装置及设备 | |
KR102490490B1 (ko) | 자기 디스크 암호화 보호 방법 및 장치 | |
CN112069506B (zh) | 一种安全启动方法和装置 | |
CN113127262B (zh) | 镜像文件的生成方法、装置、电子设备及存储介质 | |
CN109614774B (zh) | 一种基于sgx的程序控制流混淆方法及系统 | |
CN112148314A (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
US20220092155A1 (en) | Protecting an item of software | |
CN114189862A (zh) | 无线终端及无线终端在Uboot模式下的接口访问鉴权方法 | |
CN111046440B (zh) | 一种安全区域内容的篡改验证方法及系统 | |
CN112054895A (zh) | 可信根构建方法及应用 | |
US20240152621A1 (en) | Control method and apparatus for safety boot of chip, electronic device and storage medium | |
CN112131612B (zh) | 一种cf卡数据防篡改方法、装置、设备及介质 | |
KR20230130413A (ko) | Etcs와 관련된 보안 방법 | |
KR20230073013A (ko) | Etcs와 관련된 보안 방법 | |
CN112464293A (zh) | 一种确定文件修改状态的方法和装置 | |
KR20230170308A (ko) | 임베디드 장치, 그 장치에서의 부팅 방법, 및 암호화 펌웨어 생성 방법 | |
CN116975792A (zh) | 数据处理方法、装置、计算机设备、存储介质及程序产品 | |
US9378360B2 (en) | Secure if antecedent | |
CN114417320A (zh) | 一种系统启动方法和装置 | |
CN115033854A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112306569A (zh) | 增加u盾功能的方法及u盾 |
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 |