CN115296800A - 一种密码模块固件的校验方法和系统 - Google Patents
一种密码模块固件的校验方法和系统 Download PDFInfo
- Publication number
- CN115296800A CN115296800A CN202210909342.XA CN202210909342A CN115296800A CN 115296800 A CN115296800 A CN 115296800A CN 202210909342 A CN202210909342 A CN 202210909342A CN 115296800 A CN115296800 A CN 115296800A
- Authority
- CN
- China
- Prior art keywords
- firmware
- key
- public
- digital certificate
- random number
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/3236—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 using cryptographic hash functions
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种密码模块固件的校验方法和系统,所述方法包括:固件发行流程:由第一智能密码钥匙产生随机数R;使用第一公私钥对的私钥对固件M进行签名得到签名值SIGN;采用随机数R对固件M加密得到固件密文E;使用第二数字证书的公钥加密随机数R得到随机数密文ENV;基于E||SIGN||ENV进行拼接输出固件发布文件SP;固件安装前校验流程:由第二智能密码钥匙采用第二公私钥对的私钥对随机数密文ENV解密得到随机数R;使用随机数R对固件密文E解密得到固件M;采用第一数字证书的公钥P1对固件M和签名值SIGN进行验签;若验证通过,把M||SIGN存储至密码模块中并完成固件安装;否则,停止安装。本发明能够实现对固件的校验,确保固件可信安装。
Description
技术领域
本发明涉及密码技术领域,尤其涉及一种密码模块固件的校验方法和系统。
背景技术
近年来,随着信息技术的发展,各种智能设备已深入到人们的生活方方面面,然而在各种智能设备在运行或交互过程中,将会产生大量的隐私数据,一旦这些隐私数据被他人窃取,则会给用户造成一些不利影响。为了加强对这些隐私数据的保护,通常在智能设备中置入安全模块,并通过安全模块实现安全认证以及数据保护。当然,在使用安全模块之前,需要将固件安装在安全模块上,传统在固件安装或运行过程,并未对固件进行合法性以及完整性验证,容易导致不合法固件在安全模块上随意安装、运行,从而造成一定的安全风险。
发明内容
基于上述,有必要提供一种密码模块固件的校验方法和系统,能够实现对安装、运行在密码模块上的固件进行合法性、完整性校验,进而确保基于密码模块支撑的各种业务数据的安全性。
本发明提出一种密码模块固件的校验方法,所述方法包括:
固件发行流程:
步骤1-1,使用第一智能密码钥匙产生随机数R,其中第一智能密码钥匙为固件发行者持有,内置有第二数字证书以及第一公私钥对,第二数字证书为预先基于第二公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
步骤1-2,使用第一智能密码钥匙中第一公私钥对的私钥对固件M进行签名,得到签名值SIGN;
步骤1-3,将随机数R作为对称密钥,并对固件M进行加密,得到固件密文E;
步骤1-4,使用第一智能密码钥匙中的第二数字证书的公钥加密随机数R,得到随机数密文ENV;
步骤1-5,将固件密文E、签名值SIGN、随机数密文ENV基于E||SIGN||ENV方式进行拼接,输出固件发布文件SP;
固件安装前校验流程:
步骤2-1,使用第二智能密码钥匙中第二公私钥对的私钥对随机数密文ENV进行解密,得到随机数R,其中第二智能密码钥匙为固件安装者持有,内置有第一数字证书以及第二公私钥对,其中第一数字证书为预先基于第一公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
步骤2-2,使用随机数R对固件密文E进行解密,得到固件M;
步骤2-3,使用第二智能密码钥匙中的第一数字证书的公钥对固件M和签名值SIGN进行验签;若验证通过,把固件M和签名值SIGN以M||SIGN 方式拼接后存储至密码模块中并执行固件安装;否则,停止安装。
进一步的,上述步骤1-2,具体包括:
由第一智能密码钥匙采用哈希算法对固件M进行哈希计算,得到哈希值;
使用第一智能密码钥匙中第一公私钥对的私钥对固件M的哈希值进行签名,得到签名值SIGN。
基于上述,在固件发行流程之前,所述方法还包括:
初始化过程:
步骤0-1,在生产可信环境下,使用第一智能密码钥匙生成第一公私钥对,基于第一公私钥对的公钥向CA证书颁发机构申请第一数字证书,并把申请获取的第一数字证书导入至第二智能密码钥匙中;
步骤0-2,在生产可信环境下,使用第二智能密码钥匙生成第二公私钥对,基于第二公私钥对的公钥向CA证书颁发机构申请第二数字证书,并把申请获取的第二数字证书导入至第一智能密码钥匙中。
基于上述,在步骤2.3验证通过后,还把第一数字证书存储至密码模块中,供固件运行前校验使用;
固件运行前校验流程:
密码模块在运行前使用内部保存的第一数字证书的公钥对固件M和签名值SIGN进行验签,若验证通过,则继续运行,否则校验失败,停止运行。
基于上述,由密码模块使用内部保存的第一数字证书的公钥对固件M和签名值SIGN进行验签,具体包括:
由密码模块采用哈希算法对固件M进行哈希运算,得到哈希值;
基于第一数字证书的公钥、哈希值和签名值SIGN,通过验签算法进行计算,输出计算结果;
判断计算结果是否为0,如果是,则验签通过,否者,则验签未通过。
基于上述,所述安全模块支持国密加解密算法和签名算法。
本发明还提供一种智能密码钥匙,安装在固件发行设备上,所述智能安全密钥包括:
第一存储模块,内置有第二数字证书以及第一公私钥对,第二数字证书为预先基于第二公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
固件接收单元,用于接收待发行的固件M;
随机数生成单元,用于生成随机数R;
签名单元,用于使用第一公私钥对的私钥对固件M进行签名,得到签名值SIGN;
固件加密单元,用于利用随机数R作为对称密钥对固件M进行加密,输出固件密文E;
随机数加密单元,用于使用第二数字证书的公钥加密随机数R,得到随机数密文ENV;
拼接输出单元,用于将固件密文E、签名值SIGN、随机数密文ENV以E||SIGN||ENV方式进行拼接,输出固件发布文件SP。
本发明还提供一种智能密码钥匙,安装在固件安装设备上,所述智能密码钥匙包括:
第二存储模块,内置有第一数字证书以及第二公私钥对,其中第一数字证书为预先基于第一公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
接收单元,用于接收固件发布文件SP,所述固件发布文件SP包括以E||SIGN||ENV方式拼接的固件密文E、签名值SIGN、随机数密文ENV;
随机数解密单元,用于使用第二公私钥对的私钥对随机数密文ENV进行解密,得到随机数R;
固件解密单元,用于使用随机数R对固件密文E进行解密,得到固件M;
验签单元,用于使用第一数字证书的公钥对固件M和签名值SIGN进行验签,并在验证通过时把固件M和签名值SIGN以M||SIGN 方式拼接后存储至固件安装设备中以进行固件安装。
本发明还提供一种密码模块固件的安装系统,包括:固件发行设备和密码模块,所述固件发行设备上安装有第一智能密码钥匙,所述密码模块上安装有第二智能密码钥匙,其中第一智能密码钥匙为前述安装在固件发行设备上的智能密码钥匙,第二智能密码钥匙为安装在固件安装设备上的智能密码钥匙;所述固件发行设备,用于生成待发行的固件M,基于所述第一智能密码钥匙对固件M进行加密和签名,输出包含固件密文和签名值的固件发布文件SP;
所述密码模块,用于接收固件发布文件SP,基于所述第二智能密码钥匙对所述固件发布文件SP中的固件密文进行解密,以及基于获得的固件M对签名值进行验签,并在验签通过后,将所述固件M、所述签名值以及所述第二智能密码钥匙内置的第一数字证书进行存储,安装所述固件M。
基于上述,所述第一智能密码钥匙,还用于在生产可信环境下生成第一公私钥对,基于第一公私钥对的公钥向CA证书颁发机构申请第一数字证书,并把申请获取的第一数字证书导入至第二智能密码钥匙中;
所述第二智能密码钥匙,还用于在生产可信环境下生成第二公私钥对,基于第二公私钥对的公钥向CA证书颁发机构申请第二数字证书,并把申请获取的第二数字证书导入至第一智能密码钥匙中。
基于上述,所述密码模块,还用于采用内部保存的第一数字证书的公钥对固件M和签名值SIGN进行验签,若验证通过,则继续运行,否则校验失败,停止运行。
基于上述,所述第一智能密码钥匙和第二智能密码钥匙均为U-Key,所述安全模块支持国密加解密算法和签名算法。
本发明具有以下技术效果;
(1)本发明利用随机数R作为对称密钥采用数字信封技术对固件进行加密,保证了固件的机密性,且随机数R被第二公私钥对的公钥加密后以密文形式进行传输,只有持有第二公私钥对的私钥的第二智能密码钥匙才可获得随机数R,并利用随机数R解密获取固件明文,进一步验证安装者的身份。
(2)本发明采用数字签名技术来保证固件在安装前和运行前的完整性,进一步验证发行者的身份。
(3)本发明的第一智能密码钥匙只能用来固件的发布,第二智能密码钥匙只能用来固件的安装或运行校验,确保发行者和安装者各自身份的独立,进一步保证了固件的安全性。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明一种密码模块固件的校验方法的流程图。
图2示出了本发明另一种密码模块固件的校验方法的流程图。
图3示出了本发明一种密码模块固件的安装系统的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
为方便理解,首先给出数字证书颁发过程:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给CA证书颁发机构。CA证书颁发机构在核实身份后,执行一些必要的步骤,以确信请求确实由用户发送而来,然后,CA证书颁发机构将发给用户一个数字证书,该证书内容包括:证书序列号、证书持有者名称、证书颁发者名称、证书有效期、公钥、证书颁发者的一系列数字签名。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本发明一种密码模块固件的校验方法的流程图。
如图1所示,本发明第一方面提出一种密码模块固件的校验方法,所述方法包括:
固件发行流程:
步骤1-1,使用第一智能密码钥匙产生随机数R,其中第一智能密码钥匙为固件发行者持有,内置有第二数字证书以及第一公私钥对,第二数字证书为预先基于第二公私钥对的公钥向CA证书颁发机构申请获得的数字证书,第一公私钥对包括公钥P1和私钥D1,第二公私钥对包括公钥P2和私钥D2;
步骤1-2,使用第一智能密码钥匙中的第一公私钥对的私钥D1对固件M进行签名,得到签名值SIGN;
步骤1-3,将随机数R作为对称密钥,并对固件M进行加密,得到固件密文E;
步骤1-4,使用第一智能密码钥匙中的第二数字证书的公钥P2加密随机数R,得到随机数密文ENV;
步骤1-5,将固件密文E、签名值SIGN、随机数密文ENV以E||SIGN||ENV方式进行拼接,输出固件发布文件SP;
固件安装前校验流程:
步骤2-1,使用第二智能密码钥匙中第二公私钥对的私钥D2对随机数密文ENV进行解密,得到随机数R,其中第二智能密码钥匙为固件安装者持有,内置有第一数字证书以及第二公私钥对,其中第一数字证书为预先基于第一公私钥对的公钥P1向CA证书颁发机构申请获得的数字证书;
步骤2-2,使用随机数R对固件密文E进行解密,得到固件M;
步骤2-3,使用第二智能密码钥匙中的第一数字证书的公钥P1对固件M和签名值SIGN进行验签;若验证通过,把固件M和签名值SIGN以M||SIGN 方式拼接后存储至密码模块中并执行固件安装;否则,停止安装。
需要说明的是,上述“||”为拼接的连接符。
可以理解,第一智能密码钥匙,代表固件发行设备身份,存储于固件发行设备内部安全可信的生产环境,完成对固件安装包的加密和签名工作;第二智能密码钥匙,代表固件安装设备身份,存储于固件安装设备内部安全可信的生产环境,完成对固件安装包的解密和固件安装前的验签工作。
对于固件安装设备来说,固件发行设备为远程设备,因此数据需要远程传送,故而需要确保固件的来源可靠性和数据保密性。
具体的,本发明在固件发行设备的生产部输出相关固件及安装包后,采用加密、签名机制进行固件保护,固件安装设备在固件安装前进行验签,若通过则继续进行解密操作获得固件并进行安装,否则停止安装。因此,本发明能够实现对安装在密码模块上的固件进行合法性、完整性校验,进而确保基于密码模块支撑的各种业务数据的安全性。
显然,本申请实施例中固件发行设备与固件安装设备之间采用数字签名+固件密文+固件加密密钥密文传输方式进行传输,通过数字签名确保了数据来源的可靠性;利用固件密文+固件加密密钥密文确保了数据保密性。
进一步的,上述步骤1-2,具体包括:
由第一智能密码钥匙采用哈希算法对固件M进行哈希计算,得到哈希值;
使用第一智能密码钥匙中第一公私钥对的私钥D1对固件M的哈希值进行签名,得到签名值SIGN。
进一步的,如图2所示,在固件发行流程之前,所述方法还包括:
初始化过程:
步骤0-1,在生产可信环境下,使用第一智能密码钥匙生成第一公私钥对D1和P1,基于公钥P1向CA证书颁发机构申请第一数字证书,并把申请获取的第一数字证书导入至第二智能密码钥匙中;
步骤0-2,在生产可信环境下,使用第二智能密码钥匙生成公私钥对D2和P2,基于公钥P2向CA证书颁发机构申请第二数字证书,并把申请获取的第二数字证书导入至第一智能密码钥匙中。
需要说明的是,在对第一智能密码钥匙和第二智能密码钥匙进行初始化之后,将第一智能密码钥匙留存在固件发行者内部安全可信的生产环境中,并将第二智能密码钥匙交付给固件安装者。
可以理解,实际应用中私钥D1采用第一智能密码钥匙的主密钥进行本地加密保存,私钥D2采用第二智能密码钥匙的主密钥进行本地加密保存,以确保私钥D1、D2存储的安全性。
进一步的,如图2所示,在步骤2.3验证通过后,还把第一数字证书存储至密码模块中,供固件运行前校验使用;
固件运行前固件M的完整性校验流程:
密码模块使用内部保存的第一数字证书的公钥P1对固件M和签名值SIGN进行验签,若验证通过,则继续运行,否则校验失败,停止运行。
进一步的,密码模块使用内部保存的第一数字证书的公钥P1对固件M和签名值SIGN进行验签,具体包括:
密码模块采用哈希算法对固件M进行哈希运算,得到哈希值;
基于第一数字证书的公钥P1、哈希值和签名值SIGN,通过验签算法进行计算,输出计算结果;
判断计算结果是否为0,如果是,则验签通过,否者,则验签未通过。
优选的,所述安全模块支持国密加解密算法和签名算法。第一智能密码钥匙和第二智能密码钥匙均为U-Key。但不限于此。本发明第二方面提供一种智能密码钥匙,安装在固件发行设备上,包括:
第一存储模块,内置有第二数字证书以及第一公私钥对,其中,第一公私钥对包括公钥P1和私钥D1,第二公私钥对包括公钥P2和私钥D2;第二数字证书为预先基于第二公私钥对的公钥P2向CA证书颁发机构申请获得的数字证书;
固件接收单元,用于接收待发行的固件M;
随机数生成单元,用于生成随机数R;
签名单元,用于使用第一公私钥对的私钥D1对固件M进行签名,得到签名值SIGN;
固件加密单元,用于利用随机数R作为对称密钥对固件M进行加密,输出固件密文E;
随机数加密单元,用于使用第二数字证书的公钥P2加密随机数R,得到随机数密文ENV;
拼接输出单元,用于将固件密文E、签名值SIGN、随机数密文ENV以E||SIGN||ENV方式进行拼接,输出固件发布文件SP。
优选的,所述第一智能密码钥匙为U-Key,所述安全模块支持国密加解密算法和签名算法,但不限于此。
可以理解,所述智能密码密钥可以内置有多个不同的数字证书,并基于不同的数字证书生成不同的固件发布文件SP,从而满足一个固件发行设备可以同时向不同的固件安装设备输出固件发布文件SP。
本发明第三方面提供一种智能密码钥匙,安装在固件安装设备上,包括:
第二存储模块,内置有第一数字证书以及第二公私钥对,其中第一数字证书为预先基于第一公私钥对的公钥向CA证书颁发机构申请获得的数字证书;第一公私钥对包括公钥P1和私钥D1,第二公私钥对包括公钥P2和私钥D2;
接收单元,用于接收固件发布文件SP,所述固件发布文件SP包括以E||SIGN||ENV方式拼接的固件密文E、签名值SIGN、随机数密文ENV;
随机数解密单元,用于使用第二公私钥对的私钥D2对随机数密文ENV进行解密,得到随机数R;
固件解密单元,用于使用随机数R对固件密文E进行解密,得到固件M;
验签单元,用于使用第一数字证书的公钥P1对固件M和签名值SIGN进行验签,并在验证通过时把固件M和签名值SIGN以M||SIGN 方式拼接后存储至固件安装设备中以进行固件安装。
可以理解,所述智能密码密钥可以内置有多个不同的数字证书,并基于不同的数字证书解密不同的固件发布文件SP,从而满足一个固件安装设备可以安装不同的固件发布设备输出的固件M。
优选的,所述第二智能密码钥匙为U-Key,所述安全模块支持国密加解密算法和签名算法,但不限于此。
本发明第四方面还提出一种密码模块固件的安装系统,包括固件发行设备和密码模块,所述固件发行设备上安装有第一智能密码钥匙,所述密码模块上安装有第二智能密码钥匙,其中第一智能密码钥匙为前述安装在固件发行设备上的智能密码钥匙,第二智能密码钥匙为安装在固件安装设备上的智能密码钥匙;所述固件发行设备,用于生成待发行的固件M,基于所述第一智能密码钥匙对固件M进行加密和签名,输出包含固件密文和签名值的固件发布文件SP;
所述密码模块,用于接收固件发布文件SP,基于所述第二智能密码钥匙对所述固件发布文件SP中的固件密文进行解密,以及基于获得的固件M对签名值进行验签,并在验签通过后,将所述固件M、所述签名值以及所述第二智能密码钥匙内置的第一数字证书进行存储,安装所述固件M。
具体的, 所述第一智能密码钥匙,内置有第二数字证书以及第一公私钥对,第二数字证书为预先基于第二公私钥对的公钥向CA证书颁发机构申请获得的数字证书,第一公私钥对包括公钥P1和私钥D1,第二公私钥对包括公钥P2和私钥D2;用于产生随机数R,并将随机数R作为对称密钥,对固件M进行加密,得到固件密文E;使用第一公私钥对的私钥D1对固件M进行签名,得到签名值SIGN;并将随机数R作为对称密钥,对固件M进行加密,得到固件密文E;采用第二数字证书的公钥P2加密随机数R,得到随机数密文ENV;将固件密文E、签名值SIGN、随机数密文ENV以E||SIGN||ENV方式进行拼接,输出固件发布文件SP;
所述第二智能密码钥匙,内置有第一数字证书以及第二公私钥对,第一数字证书为预先基于第一公私钥对的公钥P1向CA证书颁发机构申请获得的数字证书;用于使用第二公私钥对的私钥D2对随机数密文ENV进行解密,得到随机数R;并使用随机数R对固件密文E进行解密,得到固件M;还使用第一数字证书对应的公钥P1对固件M和签名值SIGN进行验签;若验证通过,把固件M和签名值SIGN以M||SIGN 方式拼接后存储至密码模块中并执行固件安装;否则,停止安装。
可以理解,所述密码模块固件的安装系统还可以包括多个密码模块,如图3所示,不同的密码模块内置不同的第二智能密码密钥,每个第二智能密码密钥具有唯一的公私钥对,进而所述固件发行设备上安装的第一智能密码密钥可以内置有多个不同的第二数字证书,并基于不同的第二数字证书生成不同的固件发布文件SP,从而满足一个固件发行设备可以同时向不同的固件安装设备输出固件发布文件SP。
对于固件安装设备来说,固件发行设备为远程设备,因此数据需要远程传送,故而需要确保固件的来源可靠性和数据保密性。
本申请实施例中固件发行设备与固件安装设备之间采用数字签名+固件密文+固件加密密钥密文传输方式进行传输,通过数字签名确保了数据来源的可靠性;利用固件密文+固件加密密钥密文确保了数据保密性。进一步的,所述第一智能密码钥匙,还用于在生产可信环境下生成第一公私钥对D1和P1,基于公钥P1向CA证书颁发机构申请第一数字证书,并把申请获取的第一数字证书导入至第二智能密码钥匙中;
所述第二智能密码钥匙,还用于在生产可信环境下生成第二公私钥对D2和P2,基于公钥P2向CA证书颁发机构申请第二数字证书,并把申请获取的第二数字证书导入至第一智能密码钥匙中。
需要注意的是,基于所述第一智能密码钥匙生成的第一数字证书不是保存在在第一智能密码钥匙中,而是导入至第二智能密码钥匙中。同理,基于所述第二智能密码钥匙生成的第二数字证书不是保存在在第二智能密码钥匙中,而是导入至第一智能密码钥匙中。只有这样,才能保证固件发行设备和固件安装设备可以对彼此的身份进行验证。
进一步的,所述密码模块,还用于采用内部保存的第一数字证书的公钥P1对固件M和签名值SIGN进行验签,若验证通过,则继续运行,否则校验失败,停止运行。
优选的,所述第一智能密码钥匙和第二智能密码钥匙均为U-Key,所述安全模块支持国密加解密算法和签名算法。但不限于此。
本发明具有以下技术效果;
(1)本发明利用随机数R作为对称密钥采用数字信封技术对固件进行加密,保证了固件的机密性,且随机数R被第二公私钥对的公钥加密后以密文形式进行传输,只有持有第二公私钥对的私钥的第二智能密码钥匙才可获得随机数R,并利用随机数R解密获取固件明文,进一步验证安装者的身份。
(2)本发明采用数字签名技术来保证固件在安装前和运行前的完整性,进一步验证发行者的身份。
(3)本发明的第一智能密码钥匙只能用来固件的发布,第二智能密码钥只能用来固件的安装或运行校验,确保发行者和安装者各自身份的独立,进一步保证了固件的安全性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种密码模块固件的校验方法,其特征在于,所述方法包括:
固件发行流程:
步骤1-1,使用第一智能密码钥匙产生随机数R,其中第一智能密码钥匙为固件发行者持有,内置有第二数字证书以及第一公私钥对,第二数字证书为预先基于第二公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
步骤1-2,使用第一智能密码钥匙中第一公私钥对的私钥对固件M进行签名,得到签名值SIGN;
步骤1-3,将随机数R作为对称密钥对固件M进行加密,得到固件密文E;
步骤1-4,使用第一智能密码钥匙中的第二数字证书的公钥加密随机数R,得到随机数密文ENV;
步骤1-5,将固件密文E、签名值SIGN、随机数密文ENV以E||SIGN||ENV方式进行拼接,输出固件发布文件SP;
固件安装前校验流程:
步骤2-1,使用第二智能密码钥匙中第二公私钥对的私钥对随机数密文ENV进行解密,得到随机数R,其中第二智能密码钥匙为固件安装者持有,内置有第一数字证书以及第二公私钥对,其中第一数字证书为预先基于第一公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
步骤2-2,使用随机数R对固件密文E进行解密,得到固件M;
步骤2-3,使用第二智能密码钥匙中的第一数字证书的公钥对固件M和签名值SIGN进行验签;若验证通过,把固件M和签名值SIGN以M||SIGN 方式拼接后存储至密码模块中并执行固件安装;否则,停止安装。
2.根据权利要求1所述的一种密码模块固件的校验方法,其特征在于,上述步骤1-2,具体包括:
由第一智能密码钥匙采用哈希算法对固件M进行哈希计算,得到哈希值;
使用第一智能密码钥匙中第一公私钥对的私钥对固件M的哈希值进行签名,得到签名值SIGN。
3.根据权利要求1所述的一种密码模块固件的校验方法,其特征在于,在固件发行流程之前,所述方法还包括:
初始化过程:
步骤0-1,在生产可信环境下,使用第一智能密码钥匙生成第一公私钥对,基于第一公私钥对的公钥向CA证书颁发机构申请第一数字证书,并把申请获取的第一数字证书导入至第二智能密码钥匙中;
步骤0-2,在生产可信环境下,使用第二智能密码钥匙生成第二公私钥对,基于第二公私钥对的公钥向CA证书颁发机构申请第二数字证书,并把申请获取的第二数字证书导入至第一智能密码钥匙中。
4.根据权利要求1所述的一种密码模块固件的校验方法,其特征在于,在步骤2.3验证通过后,还把第一数字证书存储至密码模块中,供固件运行前校验使用;
固件运行前校验流程:
密码模块使用第一数字证书的公钥对固件M和签名值SIGN进行验签,若验证通过,则继续运行,否则校验失败,停止运行。
5.根据权利要求4所述的一种密码模块固件的校验方法,其特征在于,由密码模块使用内部保存的第一数字证书的公钥对固件M和签名值SIGN进行验签,具体包括:
由密码模块采用哈希算法对固件M进行哈希运算,得到哈希值;
基于第一数字证书的公钥、哈希值和签名值SIGN,通过验签算法进行计算,输出计算结果;
判断计算结果是否为0,如果是,则验签通过,否者,则验签未通过。
6.一种智能密码钥匙,安装在固件发行设备上,其特征在于,包括:
第一存储模块,内置有第二数字证书以及第一公私钥对,第二数字证书为预先基于第二公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
固件接收单元,用于接收待发行的固件M;
随机数生成单元,用于生成随机数R;
签名单元,用于使用第一公私钥对的私钥对固件M进行签名,得到签名值SIGN;
固件加密单元,用于利用随机数R作为对称密钥对固件M进行加密,输出固件密文E;
随机数加密单元,用于使用第二数字证书的公钥加密随机数R,得到随机数密文ENV;
拼接输出单元,用于将固件密文E、签名值SIGN、随机数密文ENV以E||SIGN||ENV方式进行拼接,输出固件发布文件SP。
7.一种智能密码钥匙,安装在固件安装设备上,其特征在于,包括:
第二存储模块,内置有第一数字证书以及第二公私钥对,其中第一数字证书为预先基于第一公私钥对的公钥向CA证书颁发机构申请获得的数字证书;
接收单元,用于接收固件发布文件SP,所述固件发布文件SP包括以E||SIGN||ENV方式拼接的固件密文E、签名值SIGN、随机数密文ENV;
随机数解密单元,用于使用第二公私钥对的私钥对随机数密文ENV进行解密,得到随机数R;
固件解密单元,用于使用随机数R对固件密文E进行解密,得到固件M;
验签单元,用于使用第一数字证书的公钥对固件M和签名值SIGN进行验签,并在验证通过时把固件M和签名值SIGN以M||SIGN 方式拼接后存储至固件安装设备中以进行固件安装。
8.一种密码模块固件的安装系统,其特征在于,包括:固件发行设备和密码模块,所述固件发行设备上安装有第一智能密码钥匙,所述密码模块上安装有第二智能密码钥匙,其中第一智能密码钥匙为权利要求6所述的智能密码钥匙,第二智能密码钥匙为权利要求7所述的智能密码钥匙;;所述固件发行设备,用于生成待发行的固件M,基于所述第一智能密码钥匙对固件M进行加密和签名,输出包含固件密文和签名值的固件发布文件SP;
所述密码模块,用于接收固件发布文件SP,基于所述第二智能密码钥匙对所述固件发布文件SP中的固件密文进行解密,以及基于获得的固件M对签名值进行验签,并在验签通过后,将所述固件M、所述签名值以及所述第二智能密码钥匙内置的第一数字证书进行存储,安装所述固件M。
9.根据权利要求8所述的一种密码模块固件的安装系统,其特征在于,
所述第一智能密码钥匙,还用于在生产可信环境下生成第一公私钥对,基于第一公私钥对的公钥P1向CA证书颁发机构申请第一数字证书,并把申请获取的第一数字证书导入至第二智能密码钥匙中;
所述第二智能密码钥匙,还用于在生产可信环境下生成第二公私钥对,基于第二公私钥对的公钥向CA证书颁发机构申请第二数字证书,并把申请获取的第二数字证书导入至第一智能密码钥匙中。
10.根据权利要求8所述的一种密码模块固件的安装系统,其特征在于,所述第一智能密码钥匙和第二智能密码钥匙均为U-Key,所述安全模块支持国密加解密算法和签名算法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022106485250 | 2022-06-09 | ||
CN202210648525 | 2022-06-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115296800A true CN115296800A (zh) | 2022-11-04 |
Family
ID=83825517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210909342.XA Pending CN115296800A (zh) | 2022-06-09 | 2022-07-29 | 一种密码模块固件的校验方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115296800A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556430A (zh) * | 2024-01-12 | 2024-02-13 | 上海芯联芯智能科技有限公司 | 一种安全启动方法、装置、设备及存储介质 |
-
2022
- 2022-07-29 CN CN202210909342.XA patent/CN115296800A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556430A (zh) * | 2024-01-12 | 2024-02-13 | 上海芯联芯智能科技有限公司 | 一种安全启动方法、装置、设备及存储介质 |
CN117556430B (zh) * | 2024-01-12 | 2024-03-29 | 上海芯联芯智能科技有限公司 | 一种安全启动方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101651543B (zh) | 一种可信计算平台密钥迁移系统及其密钥迁移方法 | |
CN107248075B (zh) | 一种实现智能密钥设备双向认证和交易的方法及装置 | |
CN108768664A (zh) | 密钥管理方法、装置、系统、存储介质和计算机设备 | |
CN106327184A (zh) | 一种基于安全硬件隔离的移动智能终端支付系统及方法 | |
CN103095456A (zh) | 交易报文的处理方法和系统 | |
CN109257328B (zh) | 一种现场运维数据的安全交互方法及装置 | |
CN104580250A (zh) | 一种基于安全芯片进行可信身份认证的系统和方法 | |
WO2009141936A1 (ja) | Icカード、icカードシステムおよびその方法 | |
CN107135070A (zh) | Rsa密钥对和证书的注入方法、架构及系统 | |
CN102986161B (zh) | 用于对应用进行密码保护的方法和系统 | |
CN106953732B (zh) | 芯片卡的密钥管理系统及方法 | |
CN107104795B (zh) | Rsa密钥对和证书的注入方法、架构及系统 | |
CN111931158A (zh) | 一种双向认证方法、终端以及服务器 | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
CN111224784B (zh) | 一种基于硬件可信根的角色分离的分布式认证授权方法 | |
CN114692218A (zh) | 一种面向个人用户的电子签章方法、设备和系统 | |
CN103684798A (zh) | 一种用于分布式用户服务间认证系统 | |
CN111435390A (zh) | 一种配电终端运维工具安全防护方法 | |
KR20000024445A (ko) | 전자서명을 이용한 사용자 인증기법과 무선 전자서명을이용한사용자 인증기법 및 휴대형 처리 도구 | |
CN102468962A (zh) | 利用个人密码装置的个人身份验证方法及个人密码装置 | |
CN114267100A (zh) | 开锁认证方法、装置、安全芯片及电子钥匙管理系统 | |
CN111654371A (zh) | 一种基于可信计算的混合加密安全传输数据方法 | |
CN106656499A (zh) | 一种数字版权保护系统中终端设备可信认证方法及其系统 | |
CN115296800A (zh) | 一种密码模块固件的校验方法和系统 | |
CN114679270A (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 |