CN111857756A - 一种基于硬件加密的安全刷机方法及系统 - Google Patents
一种基于硬件加密的安全刷机方法及系统 Download PDFInfo
- Publication number
- CN111857756A CN111857756A CN202010718032.0A CN202010718032A CN111857756A CN 111857756 A CN111857756 A CN 111857756A CN 202010718032 A CN202010718032 A CN 202010718032A CN 111857756 A CN111857756 A CN 111857756A
- Authority
- CN
- China
- Prior art keywords
- image
- digital signature
- signature
- version
- mirror image
- 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
Images
Classifications
-
- 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
-
- 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
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及智能设备安全刷机的技术领域,提供了一种基于硬件加密的安全刷机方法及系统,方法包括:S1:针对于刷机时需要烧录到存储器中的版本镜像进行签名;S2:当需要对系统进行刷机时,读取需要刷机的签名后的版本镜像,对签名后的版本镜像尾部的所述镜像数字签名通过包括使用私钥对镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。通过硬件加密的方式对版本镜像进行签名,使得刷机时,智能设备的系统更加的安全。
Description
技术领域
本发明涉及智能设备安全刷机的技术领域,尤其涉及一种基于硬件加密的安全刷机方法及系统。
背景技术
近年来,随着集成电路技术的快速发展,智能手机,平板电脑等移动智能终端已经拥有极为强大的处理能力,其存储能力、计算能力、运行速度都得到了大幅度提升。伴随着移动智能终端从功能机向智能机的转变,移动终端操作系统应运而生。智能终端操作系统不再以提供通话管理为主要目的,而是提供一个包括通话管理、游戏娱乐、办公记事等各类应用软件在内的运行环境,智能化程度日益向桌面PC操作系统不断靠近。移动智能终端操作系统的快速发展使得各类互联网应用也随之向移动智能终端迁移,移动互联网应用层出不穷,日益繁荣。
移动智能终端的普及和移动互联网应用的繁荣使得越来越多的用户借助移动智能终端处理各类安全敏感业务。因此,移动终端越来越多的涉及商业秘密和个人隐私等敏感信息,从而导致移动终端面临着各种安全威胁,如盗取账户信息、监听通话等。
当智能设备需要刷机时,很容易受到黑客的攻击,如何保证系统刷机时的安全性,保证智能设备的安全性,变得尤其重要。
发明内容
针对上述问题,本发明的目的在于提供一种基于硬件加密的安全刷机方法及系统,通过硬件加密的方式对版本镜像进行签名,使得刷机时,智能设备的系统更加的安全。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种基于硬件加密的安全刷机方法,包括以下步骤:
S1:针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名,具体为:
S11:通过加密T卡生成一对非对称加密算法RSA所需要的公钥和私钥,其中所述私钥由系统管理员持有,所述公钥存储于所述加密T卡中;
S12:当所述版本镜像发布后,接收包括使用加密T卡的摘要算法SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名;
S13:将所述镜像数字签名填充到所述版本镜像的尾部,生成签名后的版本镜像;
S2:当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。
进一步地,在步骤S12中,接收包括使用加密T卡的SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名,具体为:
通过所述加密T卡的摘要算法SM3算法计算出每个所述版本镜像的32字节的数字签名BOOT_IMG_SM3;
将数字签名BOOT_IMG_SM3转换为16进制的字符串,得到64字节的数字签名BOOT_IMG_SM3_HEX_STR;
使用非对称加密算法RSA以及所述私钥对数字签名BOOT_IMG_SM3_HEX_STR进行加密,得到加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA。
进一步地,在步骤S13中,将所述镜像数字签名填充到所述版本镜像的尾部,还包括生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,具体为:
所述镜像签名信息包括8个字节的标识码,2个字节的密文长度,n个字节的所述镜像数字签名,m个字节的补齐字节;
其中,所述镜像签名信息为固定的256个字节,n为所述镜像数字签名的实际长度,m为确保所述镜像签名信息为256个字节而进行补齐的字节。
进一步地,在步骤S2中,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机,具体为:
提取出加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA,并使用非对称加密算法RSA以及存储在所述加密T卡里面的所述公钥对加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA进行解密,得到解密后的数字签名BOOT_IMG_SM3_HEX_STR;
对数字签名BOOT_IMG_SM3_HEX_STR进行进制转换,得到数字签名BOOT_IMG_SM3;
通过所述加密T卡的SM3算法,重新计算所述版本镜像的数字签名,并与数字签名BOOT_IMG_SM3进行比较,若数字签名不一致,则终止刷机,并提示用户所述版本镜像非法,若数字签名一致,将所述版本镜像烧录到存储器中。
进一步地,在步骤S2中,当签名一致时,继续刷机操作之后,还包括:
使用对称加密3DES算法对所述镜像数字签名进行加密,加密后的所述镜像数字签名保存并更新到所述加密T卡中。
进一步地,在步骤S2中,还包括:
判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。
一种基于硬件加密的安全刷机系统,包括:镜像签名生成模块和刷机镜像校验模块;
所述镜像签名生成模块,用于针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名,进一步包括:
公私钥对生成子模块,用于通过加密T卡生成一对非对称加密算法RSA所需要的公钥和私钥,其中所述私钥由系统管理员持有,所述公钥存储于所述加密T卡中;
数字签名生成子模块,用于当所述版本镜像发布后,接收包括使用加密T卡的摘要算法SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名;
数字签名填充子模块,用于将所述镜像数字签名填充到所述版本镜像的尾部,生成签名后的版本镜像;
所述刷机镜像校验模块,用于当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。
进一步地,所述数字签名填充子模块,还包括:
镜像签名信息生成单元,用于生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,具体为:所述镜像签名信息包括8个字节的标识码,2个字节的密文长度,n个字节的所述镜像数字签名,m个字节的补齐字节;其中,所述镜像签名信息为固定的256个字节,n为所述镜像数字签名的实际长度,m为确保所述镜像签名信息为256个字节而进行补齐的字节。
进一步地,所述刷机镜像校验模块,还包括:
签名格式判断子模块,用于判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。
与现有技术相比,本发明包括以下至少一种有益效果是:
(1)通过提供一种基于硬件加密的安全刷机方法,具体包括步骤:S1:针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名;S2:当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。上述技术方案通过硬件加密的方式对刷机过程中的版本镜像进行签名,具有防止暴力破解、密码猜测的优点,加密程度高,稳定,更加的有效的保证了刷机过程中的安全性。
(2)通过生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,镜像签名信息具有固定的256个字节,系统能够直截了当的通过截取尾部的256即可以获取到镜像数字签名。
(3)通过判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。进一步验证签名信息格式的正确性,确保签名信息不被攻击破解纂改。
附图说明
图1为本发明一种基于硬件加密的安全刷机方法的整体流程图;
图2为本发明一种基于硬件加密的安全刷机方法的一个具体的以boot.img为举例的示意图;
图3为本发明对镜像进行签名的流程图;
图4为本发明生成非对称加密算法RSA中的私钥的具体举例的示意图;
图5为本发明生成非对称加密算法RSA中的公钥钥的具体举例的示意图;
图6为本发明通过加密T卡SM3算法计算出每个镜像的32字节数字签名(BOOT_IMG_SM3)的具体举例的示意图;
图7为本发明将BOOT_IMG_SM3转换为16进制的字符串,得到64字节的BOOT_IMG_SM3_HEX_STR的具体举例的示意图;
图8为本发明使用RSA算法以及持有的私钥(rsa_private_key)对64字节BOOT_IMG_SM3_HEX_STR加密得到加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA的具体举例的示意图;
图9为本发明镜像签名信息的整体结构示意图;
图10为本发明一个镜像签名信息的具体举例的示意图;
图11为本发明刷机镜像校验的流程图;
图12为本发明生成192bits(24Bytes)随机数做为3DES的密钥3DES_BOOT_KEY的具体举例的示意图;
图13为本发明使用加密T卡的3DES算法及3DES_BOOT_KEY对32字节的数字签名加密,得到加密后的数字签名的具体举例的示意图;
图14为本发明一种基于硬件加密的安全刷机系统的整体结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
随着智能设备的普及,智能设备系统安全变得越来越重要。本方案在基于硬件加密T卡对Android系统的刷机过程进行了改造,使其具备更高的安全性。系统刷机时,需要将bootloader,boot.img,system.img等镜像烧录到存储器(EMMC/Flash)里,本方案在对刷机流程做了一定修改,以保证刷入系统的镜像是安全可靠的。
为了实现本发明的安全启动功能,我们需要选用支持如下功能的加密T卡:
支持对称加密算法,比如SM1、SM4、DES、3DES等;
支持非对称加密算法以及密钥的生成,比如SM2,RSA等;
支持摘要算法,比如SM3、SHA1等;
支持安全密钥、证书、用户自定义敏感信息的存储。
本方案中对称加密算法使用3DES,非对称加密算法使用RSA,摘要算法使用SM3。
第一实施例
如图1和图2所示,本实施例提供了一种基于硬件加密的安全刷机方法,包括以下步骤:
S1:如图3所示,针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名,具体为:
S11:通过加密T卡生成一对非对称加密算法RSA所需要的公钥rsa_public_key.pem(如图5的举例)和私钥rsa_private_key(如图4的举例),其中所述私钥由系统管理员持有,所述公钥存储于所述加密T卡中,密钥长度为1024位。
S12:当所述版本镜像(bootloader,boot.img,system.img)发布后,接收包括使用加密T卡的摘要算法SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名,具体为:
(1)通过所述加密T卡的摘要算法SM3算法计算出每个所述版本镜像的32字节的数字签名BOOT_IMG_SM3(如图6所示的通过SM3算法对boot.img签名的举例);
(2)将数字签名BOOT_IMG_SM3转换为16进制的字符串,得到64字节的数字签名BOOT_IMG_SM3_HEX_STR(如图7所示的举例);
(3)使用非对称加密算法RSA以及所述私钥对数字签名BOOT_IMG_SM3_HEX_STR进行加密,得到加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA(如图8所示的举例)。
S13:将所述镜像数字签名填充到所述版本镜像的尾部,生成签名后的版本镜像。
进一步地,如图9所示,在步骤S13中,将所述镜像数字签名填充到所述版本镜像的尾部,还包括生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,具体为:
所述镜像签名信息包括8个字节的标识码(Magic Num),2个字节的密文长度,n个字节的所述镜像数字签名,m个字节的补齐字节;
其中,所述镜像签名信息为固定的256个字节,n为所述镜像数字签名的实际长度,m为确保所述镜像签名信息为256个字节而进行补齐的字节。
通过上述方式设置镜像签名信息之后,截取尾部的256个字节即可以获取到镜像签名信息,若不这样设置,镜像签名信息将是不定长的,截取时还需要首先去获取镜像签名信息的长度,将容易导致截取时出错,影响后续的刷机过程。如图10所示是一个完整的尾部签名信息的一个举例。
S2:如图11所示,当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机,具体为:
S21:提取出加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA,并使用非对称加密算法RSA以及存储在所述加密T卡里面的所述公钥rsa_public_key对加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA进行解密,得到解密后的数字签名BOOT_IMG_SM3_HEX_STR;
S22:对数字签名BOOT_IMG_SM3_HEX_STR进行进制转换,得到数字签名BOOT_IMG_SM3;
S23:通过所述加密T卡的SM3算法,重新计算所述版本镜像的数字签名,并与数字签名BOOT_IMG_SM3进行比较,若数字签名不一致,则终止刷机,并提示用户所述版本镜像非法,若数字签名一致,将所述版本镜像烧录到存储器中。
进一步地,在步骤S2中,当签名一致时,继续刷机操作之后,还包括:
使用对称加密3DES算法对所述镜像数字签名进行加密,加密后的所述镜像数字签名保存并更新到所述加密T卡中,具体为:
如图12的举例所示,对于对称加密3DES算法,首先需要使用加密T卡真随机数功能生成192bits(24Byte)随机数作为3DES的密钥,本实施例中记录为3DES_BOOT_KEY,并存储于加密T卡中。
如图13所示,使用加密T卡的3DES算法以及3DES_BOOT_KEY对32字节的数字签名加密,得到加密后的数字签名3DES_BOOT_KEY_SEC,存储于加密T卡中(如图13所示的举例)。
进一步地,在步骤S2中,还包括:
判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。
需要说明的是,本实施例中的举例,以及本实施例所引用的附图中的所有的加密计算的数据都是对本发明过程的一种举例,只是用于解释本发明,不用于限定本发明。
第二实施例
如图14所示,本实施例提供了一种基于硬件加密的安全刷机系统,包括:镜像签名生成模块1和刷机镜像校验模块2;
所述镜像签名生成模块2,用于针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名,进一步包括:
公私钥对生成子模块,用于通过加密T卡生成一对非对称加密算法RSA所需要的公钥和私钥,其中所述私钥由系统管理员持有,所述公钥存储于所述加密T卡中;
数字签名生成子模块,用于当所述版本镜像发布后,接收包括使用加密T卡的摘要算法SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名;
数字签名填充子模块,用于将所述镜像数字签名填充到所述版本镜像的尾部,生成签名后的版本镜像;
所述刷机镜像校验模块2,用于当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。
进一步地,所述数字签名填充子模块,还包括:
镜像签名信息生成单元,用于生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,具体为:所述镜像签名信息包括8个字节的标识码,2个字节的密文长度,n个字节的所述镜像数字签名,m个字节的补齐字节;其中,所述镜像签名信息为固定的256个字节,n为所述镜像数字签名的实际长度,m为确保所述镜像签名信息为256个字节而进行补齐的字节。
进一步地,所述刷机镜像校验模块2,还包括:
签名格式判断子模块,用于判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。
一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Ne twork Processor,NP)等;还可以是数字信号处理器(Digital Signal Proces sor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(P RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(tr ansitory media),如调制的数据信号和载波。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PR AM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(E EPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
Claims (10)
1.一种基于硬件加密的安全刷机方法,其特征在于,包括以下步骤:
S1:针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名,具体为:
S11:通过加密T卡生成一对非对称加密算法RSA所需要的公钥和私钥,其中所述私钥由系统管理员持有,所述公钥存储于所述加密T卡中;
S12:当所述版本镜像发布后,接收包括使用加密T卡的摘要算法SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名;
S13:将所述镜像数字签名填充到所述版本镜像的尾部,生成签名后的版本镜像;
S2:当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。
2.根据权利要求1所述的基于硬件加密的安全刷机方法,其特征在于,在步骤S12中,接收包括使用加密T卡的SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名,具体为:
通过所述加密T卡的摘要算法SM3算法计算出每个所述版本镜像的32字节的数字签名BOOT_IMG_SM3;
将数字签名BOOT_IMG_SM3转换为16进制的字符串,得到64字节的数字签名BOOT_IMG_SM3_HEX_STR;
使用非对称加密算法RSA以及所述私钥对数字签名BOOT_IMG_SM3_HEX_STR进行加密,得到加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA。
3.根据权利要求1所述的基于硬件加密的安全刷机方法,其特征在于,在步骤S13中,将所述镜像数字签名填充到所述版本镜像的尾部,还包括生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,具体为:
所述镜像签名信息包括8个字节的标识码,2个字节的密文长度,n个字节的所述镜像数字签名,m个字节的补齐字节;
其中,所述镜像签名信息为固定的256个字节,n为所述镜像数字签名的实际长度,m为确保所述镜像签名信息为256个字节而进行补齐的字节。
4.根据权利要求2所述的基于硬件加密的安全刷机方法,其特征在于,在步骤S2中,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机,具体为:
提取出加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA,并使用非对称加密算法RSA以及存储在所述加密T卡里面的所述公钥对加密后的数字签名BOOT_IMG_SM3_HEX_STR_RSA进行解密,得到解密后的数字签名BOOT_IMG_SM3_HEX_STR;
对数字签名BOOT_IMG_SM3_HEX_STR进行进制转换,得到数字签名BOOT_IMG_SM3;
通过所述加密T卡的SM3算法,重新计算所述版本镜像的数字签名,并与数字签名BOOT_IMG_SM3进行比较,若数字签名不一致,则终止刷机,并提示用户所述版本镜像非法,若数字签名一致,将所述版本镜像烧录到存储器中。
5.根据权利要求1所述的基于硬件加密的安全刷机方法,其特征在于,在步骤S2中,当签名一致时,继续刷机操作之后,还包括:
使用对称加密3DES算法对所述镜像数字签名进行加密,加密后的所述镜像数字签名保存并更新到所述加密T卡中。
6.根据权利要求3所述的基于硬件加密的安全刷机方法,其特征在于,在步骤S2中,还包括:
判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。
7.一种基于硬件加密的安全刷机系统,其特征在于,包括:镜像签名生成模块和刷机镜像校验模块;
所述镜像签名生成模块,用于针对于包括bootloader、boot.img、system.img在内的在刷机时需要烧录到存储器中的版本镜像进行签名,进一步包括:
公私钥对生成子模块,用于通过加密T卡生成一对非对称加密算法RSA所需要的公钥和私钥,其中所述私钥由系统管理员持有,所述公钥存储于所述加密T卡中;
数字签名生成子模块,用于当所述版本镜像发布后,接收包括使用加密T卡的摘要算法SM3算法计算镜像数字签名、对所述镜像数字签名进行进制的转换、使用所述私钥对所述镜像数字签名进行加密在内的步骤,获取到所述版本镜像的所述镜像数字签名;
数字签名填充子模块,用于将所述镜像数字签名填充到所述版本镜像的尾部,生成签名后的版本镜像;
所述刷机镜像校验模块,用于当需要对系统进行刷机时,读取需要刷机的所述签名后的版本镜像,对所述签名后的版本镜像尾部的所述镜像数字签名通过包括使用所述私钥对所述镜像数字签名进行解密、对所述镜像数字签名进行进制的转换在内的步骤进行解析,得到未加密的所述镜像数字签名,进而通过使用加密T卡的摘要算法SM3对所述版本镜像的签名进行重新计算,与未加密的所述镜像数字签名进行比较,当签名一致时,继续刷机操作,否则,终止刷机。
8.根据权利要求7所述的基于硬件加密的安全刷机系统,其特征在于,所述数字签名填充子模块,还包括:
镜像签名信息生成单元,用于生成镜像签名信息,将所述镜像签名信息添加到所述版本镜像的尾部,具体为:所述镜像签名信息包括8个字节的标识码,2个字节的密文长度,n个字节的所述镜像数字签名,m个字节的补齐字节;其中,所述镜像签名信息为固定的256个字节,n为所述镜像数字签名的实际长度,m为确保所述镜像签名信息为256个字节而进行补齐的字节。
9.根据权利要求7所述的基于硬件加密的安全刷机系统,其特征在于,所述刷机镜像校验模块,还包括:
签名格式判断子模块,用于判断所述镜像签名信息的格式是否正常,若不正常,提示用户签名格式错误,并停止烧录镜像。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1至6中任一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718032.0A CN111857756A (zh) | 2020-07-23 | 2020-07-23 | 一种基于硬件加密的安全刷机方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718032.0A CN111857756A (zh) | 2020-07-23 | 2020-07-23 | 一种基于硬件加密的安全刷机方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111857756A true CN111857756A (zh) | 2020-10-30 |
Family
ID=72949888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718032.0A Pending CN111857756A (zh) | 2020-07-23 | 2020-07-23 | 一种基于硬件加密的安全刷机方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857756A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306565A (zh) * | 2020-11-05 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga产品的加密启动装置、方法及相关组件 |
CN112379898A (zh) * | 2020-12-01 | 2021-02-19 | 上海爱信诺航芯电子科技有限公司 | 一种用于v2x设备的软件安全启动方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789088A (zh) * | 2017-02-08 | 2017-05-31 | 上海诺行信息技术有限公司 | 一种软件版本签名机制 |
CN109063470A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种bmc固件的安全验证方法及系统 |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN110018841A (zh) * | 2019-04-15 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 一种uefi bios升级方法、系统及相关装置 |
CN110768784A (zh) * | 2019-10-22 | 2020-02-07 | 广州酷旅旅行社有限公司 | 密码传输方法、装置、计算机设备和存储介质 |
CN111026419A (zh) * | 2019-11-08 | 2020-04-17 | 深圳市有方科技股份有限公司 | 一种单片机的应用程序升级方法、装置及系统 |
US20200177385A1 (en) * | 2018-11-29 | 2020-06-04 | Mocana Corporation | System and method for protection of multipart system applications using a cryptographically protected package, a package map and a package object store for decryption and verification at runtime on the target device platform |
CN111240709A (zh) * | 2019-12-26 | 2020-06-05 | 深圳市优博讯科技股份有限公司 | 一种基于android系统的POS设备的固件升级方法及系统 |
-
2020
- 2020-07-23 CN CN202010718032.0A patent/CN111857756A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789088A (zh) * | 2017-02-08 | 2017-05-31 | 上海诺行信息技术有限公司 | 一种软件版本签名机制 |
CN109063470A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种bmc固件的安全验证方法及系统 |
US20200177385A1 (en) * | 2018-11-29 | 2020-06-04 | Mocana Corporation | System and method for protection of multipart system applications using a cryptographically protected package, a package map and a package object store for decryption and verification at runtime on the target device platform |
CN109583189A (zh) * | 2018-12-13 | 2019-04-05 | 深圳忆联信息系统有限公司 | 固件安全加载方法、装置、计算机设备及存储介质 |
CN110018841A (zh) * | 2019-04-15 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 一种uefi bios升级方法、系统及相关装置 |
CN110768784A (zh) * | 2019-10-22 | 2020-02-07 | 广州酷旅旅行社有限公司 | 密码传输方法、装置、计算机设备和存储介质 |
CN111026419A (zh) * | 2019-11-08 | 2020-04-17 | 深圳市有方科技股份有限公司 | 一种单片机的应用程序升级方法、装置及系统 |
CN111240709A (zh) * | 2019-12-26 | 2020-06-05 | 深圳市优博讯科技股份有限公司 | 一种基于android系统的POS设备的固件升级方法及系统 |
Non-Patent Citations (1)
Title |
---|
王凤英 等: "《网络与信息安全》", 30 June 2016, 中国铁道出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306565A (zh) * | 2020-11-05 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga产品的加密启动装置、方法及相关组件 |
CN112306565B (zh) * | 2020-11-05 | 2023-05-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga产品的加密启动装置、方法及相关组件 |
CN112379898A (zh) * | 2020-12-01 | 2021-02-19 | 上海爱信诺航芯电子科技有限公司 | 一种用于v2x设备的软件安全启动方法及系统 |
CN112379898B (zh) * | 2020-12-01 | 2022-08-09 | 上海爱信诺航芯电子科技有限公司 | 一种用于v2x设备的软件安全启动方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110324143B (zh) | 数据传输方法、电子设备及存储介质 | |
CN106529308B (zh) | 一种数据加密方法、装置及移动终端 | |
FI115257B (fi) | Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko | |
US9413754B2 (en) | Authenticator device facilitating file security | |
US20220006617A1 (en) | Method and apparatus for data storage and verification | |
CN108449178B (zh) | 一种安全可信执行环境中根密钥的生成方法 | |
CN112469036B (zh) | 一种消息加解密方法、装置、移动终端和存储介质 | |
US9787479B2 (en) | Challenge-response method and associated client device | |
EP3337088A1 (en) | Data encryption method, decryption method, apparatus, and system | |
EP4195583A1 (en) | Data encryption method and apparatus, data decryption method and apparatus, terminal, and storage medium | |
JP2017538353A (ja) | モバイル端末上のデータを暗号化/復号化するための方法及び装置 | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
CN111404682A (zh) | 一种Android环境密钥分段处理方法及装置 | |
CN111857756A (zh) | 一种基于硬件加密的安全刷机方法及系统 | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
CN114499892B (zh) | 固件启动方法、装置、计算机设备及可读存储介质 | |
US10635826B2 (en) | System and method for securing data in a storage medium | |
CN115603907A (zh) | 加密存储数据的方法、装置、设备和存储介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
US11934539B2 (en) | Method and apparatus for storing and processing application program information | |
CN111600882A (zh) | 一种基于区块链的账户密码管理方法、装置及电子设备 | |
CN114189862A (zh) | 无线终端及无线终端在Uboot模式下的接口访问鉴权方法 | |
CN109302442B (zh) | 一种数据存储证明方法及相关设备 | |
CN116484379A (zh) | 系统启动方法、包含可信计算基软件的系统、设备及介质 | |
CN111901095B (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 |