CN114301597B - 密钥验证方法、设备及可读存储介质 - Google Patents
密钥验证方法、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114301597B CN114301597B CN202111518677.0A CN202111518677A CN114301597B CN 114301597 B CN114301597 B CN 114301597B CN 202111518677 A CN202111518677 A CN 202111518677A CN 114301597 B CN114301597 B CN 114301597B
- Authority
- CN
- China
- Prior art keywords
- certificate
- key
- verification
- private key
- information
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 199
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种密钥验证方法、设备及可读存储介质,该方法包括步骤:获取通过密码机设备证书的私钥对证书请求文件数字签名后得到私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书记载有生成所述待验证密钥的目标密码机信息;验证私钥证明证书与证书请求文件是否均由待验证密钥生成,若是,则显示待验证密钥由密码机生成的第一信息;获取并验证私钥证明证书的证书信任链,若证书信任链验证通过,则显示验证成功的第二信息,基于第一信息和第二信息,确定待验证密钥由目标密码机生成,输出密钥验证通过的信息;通过上述方式实现自动化验证,而无需传统方式的人工验证私钥生成过程,从而提高了密钥验证效率。
Description
技术领域
本申请涉及密码机技术领域,尤其涉及一种密钥验证方法、设备及可读存储介质。
背景技术
密码机(或密码卡)是运用密码对信息实施加(解)密处理和身份认证的专用设备,被应用于各行各业中,特别是在密码合规***改造中的密码应用。传统的密码机使用时,密码机部署在自己企业机房内最安全的区域,对密码机生成密钥对的信任通过物理访问控制来实现。但是,随着云密码服务的应用和推广,需要密码机与云端连接以实现密码服务,在此场景中,密钥对的真实性对加(解)密的信息保护尤为重要。
但目前我国通过商用密码产品认证的密码机都无法提供有效证明,以验证密码机内密钥对的真实性,而传统的验证方式是,通过一个可信的安全审计人员在现场实时监督密钥对生成过程,并在生成结束后出具密钥生成报告给用户,用户通过出具的这份报告来证明自己的密钥对的确由本密码机生成。这样的操作无疑增加了密钥验证的复杂性,且对于大量密钥对生成和应用的云密码服务,这种验证效率很低的验证方式则是不可接受和无法实际操作的。
发明内容
本申请的主要目的在于提供一种密钥验证方法、设备及可读存储介质,旨在解决密码机密钥来源的验证效率低的技术问题。
为实现上述目的,本申请提供一种密钥验证方法,所述密钥验证方法包括步骤:
获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
可选地,所述验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息的步骤,包括:
验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息。
可选地,所述验证所述私钥证明证书,得到私钥证明证书对应的验证文件的步骤,包括:
获取所述密码机设备证书的公钥;
通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
可选地,所述若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息的步骤,包括:
比对所述验证文件与所述证书请求文件的内容是否一致;
若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
若不一致,则输出密钥验证不通过的信息。
可选地,所述证书请求文件由原始数据经过密码算法加密处理得到,
所述比对所述验证文件与所述证书请求文件的内容是否一致的步骤之前,所述方法包括:
获取所述私钥证明证书对应的所述原始数据;
对所述原始数据进行密码运算,得到待对比的证书请求文件。
可选地,所述获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息的步骤,包括:
获取签发所述私钥证明证书的所述密码机设备证书;
获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的所述第二信息;
基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
可选地,所述基于所述私钥证明证书逐级由低至高向所述顶级根证书验证的步骤之前,包括:
获取所述私钥证明证书的私钥是否可以导出的信息;
若所述私钥可导出,则输出密钥验证不通过的信息。
可选地,所述至少一个签发证书包括所述私钥证明证书、所述密码机设备证书、设备原产地证书、制造商身份证书,其中,所述制造商身份证书的私钥对应的证书属于顶级根证书,
所述基于所述私钥证明证书逐级由低至高向所述顶级根证书验证的步骤,包括:
验证所述私钥证明证书是否由所述密码机设备证书签发;
若是,则验证所述密码机设备证书是否由所述设备原产地证书签发;
若是,则验证所述设备原产地证书是否由所述制造商身份证书签发;
以上验证步骤每一步若不是,则验证失败。
此外,为实现上述目的,本申请还提供一种密钥验证设备,所述密钥验证设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的密钥验证程序,所述密钥验证程序被所述处理器执行时实现如上所述的密钥验证方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有密钥验证程序,所述密钥验证程序被处理器执行时实现如上所述的密钥验证方法的步骤。
与现有技术中,安全审计人员在现场实时监督密钥对生成过程相比,本申请通过获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息;通过上述方式,获取数字签名后包含有待验证密钥的私钥证明证书,对私钥证明证书进行验证,验证私钥证明证书是否由密码机生成,再通过证书信任链逐级从私钥证明证书向上验证,验证签发私钥证明证书的证书是否正确,若两级验证通过后,则确定待验证密钥由目标密码机生成,验证过程利用了证书签名不可篡改、签名身份可验证的特点,一级级往证书信任链上层验证,直到顶级根证书验证通过,其验证速度快,完全可以由程序自动完成,提高了密钥验证效率。
附图说明
图1是本申请密钥验证方法第一实施例的流程示意图;
图2是本申请密钥验证方法第一实施例的私钥证书签发流程图;
图3是本申请密钥验证方法第一实施例的私钥证书验证过程流程图;
图4是本申请密钥验证装置较佳实施例的功能模块示意图;
图5是本申请实施例方案涉及的硬件运行环境的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供一种密钥验证方法,参照图1,图1为本申请密钥验证方法第一实施例的流程示意图。
本申请实施例提供了密钥验证方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。密钥验证方法可应用于应用服务器的用于验证的程序模块中。为了便于描述,以下省略执行主体描述密钥验证方法的各个步骤。
密钥验证方法包括:
步骤S10,获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
步骤S20,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
步骤S30,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
具体步骤如下:
步骤S10,获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
在本实施例中,需要说明的是,密钥验证方法可以应用于密钥验证装置,该密钥验证装置属于密钥验证***,该密钥验证***从属于密钥验证设备。
在本实施例中,具体的应用场景可以是:随着云密码服务的应用和推广,需要密码机与云端其他服务连接以提供密码服务,在此场景中,密钥对的真实性对加(解)密的信息保护尤为重要。但目前我国通过商用密码产品认证的密码机都无法提供有效证明,以验证密码机内密钥对的真实性,而传统的验证方式是,通过一个可信的安全审计人员在现场实时监督密钥对生成过程,并在生成结束后出具密钥生成报告给用户,用户通过出具的这份报告来证明自己的密钥对的确由本密码机生成。这样的操作无疑增加了密钥对验证的复杂性,且对于大量密钥对生成和应用的云密码服务,此种验证效率很低的方式则是不可接受和无法实际操作的。
在本实施例中,需要说明的是,数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明,一套数字签名通常定义两种互补的运算,一个用于数字签名,另一个用于验证签名。通常情况下,数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH(哈希)函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
在本实施例中,为了证明数字签名可信,通常用户在使用数字签名前,需要向CA机构(Certificate Authority,证书颁发机构)申领一份数字证书,数字证书里含有证书持有者信息、公钥信息等。如SSL证书(Secure Sockets Layer,数字证书的一种),服务器把证书传输给浏览器,浏览器从证书里获取证书持有者身份信息,因此能够证明该网站内容或数据真实。为了防止私钥泄露,许多应用都要求证书私钥由密码机生成并安全存储,这就需要验证数字证书中的密钥是否真的由其对应的密码机生成的结果。
获取密码机设备证书的私钥对证书请求文件数字签名后的私钥证明证书,证书请求文件用于CA签发用户证书用,其记载了生成待验证密钥的目标密码机和待验证密钥的相关信息,在CA获取私钥证明证书之前,待验证密钥和证书请求文件是用户在密码机(或密码卡)中操作而生成,将生成的证书请求文件和数字签名后的私钥证明证书一同提交给CA申请数字证明签名证书,当私钥证明证书验证通过时,表示获取到的证书请求文件的确是用户通过目标密码机生成的,则待验证密钥的确来自于证书请求文件中记载的目标密码机,从而解决密码机生成密钥自我证明的问题。其中,由于不同的制造商对应制造由各自不同型号或编码的密码机,因此,目标密码机是指生成证书请求文件的密码机,但此时,还未验证证书请求文件是否由目标密码机生成,因此,目标密码机实际上是证书请求文件中记载的密码机,对应的验证密钥也是待验证的目标密码机生成的。每台密码机有一对不可导出密码机的设备证书私钥和设备证书,该设备证书可以是自签证书,也可以是其他CA签发的密码机设备证书。用户在目标密码机生成待验证密钥对和证书请求文件,同时用密码机设备证书数字签名该证书请求文件生成私钥证明证书,用户就可以把证书请求文件和私钥证明证书一起给证书签发CA,证书签发CA就可以用密码机设备证书来验证私钥证明证书和证书请求文件是否由同一待验证密钥生成,若是,就能确信此证书请求文件的确由目标密码机生成。
步骤S20,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
进一步地,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机,包括以下步骤A-B:
步骤A,验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
在本实施例中,若私钥证明证书和证书请求文件是由同一待验证密钥生成时,则CA对私钥证明证书和证书请求文件进行比较,若两个文件比较一致,则可确定私钥证明证书和证书请求文件是由同一待验证密钥生成,因此,对获取的私钥证明证书进行验证,得到私钥证明证书对应的验证文件,该验证文件用于后续与证书请求文件进行比较使用。
进一步地,验证所述私钥证明证书,得到私钥证明证书对应的验证文件,包括以下步骤A1-A2:
步骤A1,获取所述密码机设备证书的公钥;
步骤A2,通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
在本实施例中,基于密码机设备证书的私钥,获取密码机设备证书的公钥,当服务器信任该密码机设备证书时,便会保存该密码机设备证书的公钥,通过密码机设备证书的公钥通过解密算法对私钥证明证书进行验证,得到验证文件。其中,解密算法可以是,SM2算法(椭圆曲线公钥密码算法)、RSA((Rivest-Shamir-Adleman)算法等。
步骤B,若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
在本实施例中,验证待验证密钥是否由目标密码机生成时,由于待验证密钥不可导出,因此,通过对包含由待验证密钥相关信息的证书请求文件进行验证,当验证私钥证明证书和证书请求文件均由待验证密钥生成,也即同一个待验证密钥生成,则能够证明证书请求文件是由密码机生成,而并非由他人经过电脑或其他工具生成得到,该密码机指代所有的商用密码机,包括目标密码机,需要进一步的验证,也能够证明该待验证密钥由目标密码机生成。
进一步地,若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息,包括以下步骤B1-B3:
步骤B1,比对所述验证文件与所述证书请求文件的内容是否一致;
步骤B2,若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
步骤B3,若不一致,则输出密钥验证不通过的信息。
在本实施例中,将对私钥证明证书解密得到验证文件和证书请求文件的内容进行对比,若验证文件和证书请求文件的内容一致,则确定私钥证明证书与证书请求文件由同一待验证密钥生成,也即,验证通过证书请求文件的确由密码机生成,***显示待验证密钥由密码机生成的第一信息;反之,若验证文件和证书请求文件的内容不一致,则表示证书请求文件并给由密码机生成,因此,该证书请求文件可能已被修改过,或私钥证明证书被掉包、篡改,此时,结束验证,***输出密钥验证不通过的信息。
进一步地,比对所述验证文件与所述证书请求文件的内容是否一致,包括以下步骤B11-B12:
步骤B11,获取所述私钥证明证书对应的所述原始数据;
步骤B12,对所述原始数据进行密码运算,得到待对比的证书请求文件。
在本实施例中,若证书请求文件是在数字签名过程中,通过散列函数对传输的原始数据进行计算,得到的散列值,也即传输的原始数据的信息摘要,则数字签名是对该散列值进行数字签名,其中,信息摘要是在进行数字签名的时候我们先对原始数据使用密码算法(如HASH,哈希算法)计算得到。因此,获取私钥证明证书对应的原始数据,用私钥证明证书中的哈希算法对原始数据进行hash计算,得到待对比的证书请求文件。显然,通过以上处理,待对比的证书请求应当和私钥证明证书解密后的验证文件一致,除非原始数据或数字签名被篡改,因此,此时比较验证文件与待对比的证书请求文件是否一致,若一致,则***显示待验证密钥由密码机生成的第一信息。
步骤S30,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
在本实施例中,证书信任链是一个有序的证书列表,包括CA(证书颁发机构)证书,使接收方能够验证发送方和所有CA是否值得信任,链中的每个证书都由链中下一个证书标识的实体签名,参考图2。要验证待验证密钥确实是由指定的密码机产生的,只需验证私钥证明证书是由目标密码机的密码机设备证书签发的,因为待验证密钥中的私钥具有不可导出属性,同时密码机设备证书的私钥也是不可导出到密码机之外的,所以只有在目标密码机内才能对生成的不可导出的私钥签发私钥证明证书。另外,需要进一步验证密码机设备证书的信任链,可通过验证密钥设备证书是由设备原产地证书签发的,直至该证书信任链验证结束。若证书信任链验证通过,则显示验证成功的第二信息,基于第一信息和第二信息,表示该待验证密钥的确由目标密码机生成,则输出密钥验证通过的信息。
进一步地,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息,包括以下步骤S31-S35:
步骤S31,获取签发所述私钥证明证书的所述密码机设备证书;
步骤S32,获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
步骤S33,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
步骤S34,若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的所述第二信息;
步骤S35,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
在本实施例中,获取签发私钥证明证书的密码机设备证书,获取密码机设备证书对应的证书信任链,该证书信任链包括至少一个签发证书,至少一个签发证书包括私钥证明证书、密码机设备证书、设备原产地证书、制造商身份证书,其中,私钥证明证书属于根证书,制造商身份证书属于顶级根证书,该证书信任链从顶级根证书起始于顶级根证书,终止于根证书,必须验证证书信任链中所有证书的签名,直至顶级根证书通过,顶级根CA证书始终由CA本身签名。当顶级根证书验证通过,则表示证书信任链验证通过,因此,显示验证成功的第二信息。基于第一信息和第二信息,确定待验证密钥由目标密码机生成,***输出密钥验证通过的信息。
进一步地,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证,包括以下步骤S331-S334:
步骤S331,验证所述私钥证明证书是否由所述密码机设备证书签发;
步骤S332,若是,则验证所述密码机设备证书是否由所述设备原产地证书签发;
步骤S333,若是,则验证所述设备原产地证书是否由所述制造商身份证书签发;
步骤S334,以上验证步骤每一步若不是,则验证失败。
在本实施例中,在上述证书信任链中,私钥证明证书的私钥就是需要证明的用户私钥,其证书属性中必须含有专用EKU(Extended Key Usage,增强密钥用法)属性OID(标识符),如:1.3.6.1.4.1.57933.8.4,用于证明此证书就是私钥证明证书。密码机设备证书用于标识具体某个生成私钥的密码机,其私钥在密码机中不可导出,用于签发私钥证明证书,其证书属性中必须含有专用EKU属性OID,如:1.3.6.1.4.1.57933.8.3,用于证明此证书是密码机设备证书。设备原产地证书用于标识不同的硬件密码设备类别,其私钥安全存储在用于签发密码机设备证书的CA***的专用密码机中,属于中级根证书密钥,用于签发密码机设备证书,其证书属性中必须含有专用EKU属性OID,如:1.3.6.1.4.1.57933.8.2,用于证明此证书是设备原产地证书。制造商身份证书用于标识硬件密码设备制造商,其私钥安全存储在用于签发设备原产地证书的CA***的专用密码机中,属于顶级根证书,用于签发设备原产地证书,其证书属性必须含有专用EKU属性OID,如:1.3.6.1.4.1.57933.8.1,用于证明此证书是制造商身份证书,此证书可以是自签证书,也可以是其他CA签发的证书。也即,参考图2,私钥证明证书的签发流程,密码机设备证书用于签发私钥证明证书,设备原产地证书用于签发密码机设备证书,制造商身份证书用于签发设备原产地证书,制造商身份证书可以自签也可由其他CA签发。
由此,参考图3,在得到私钥证明证书后,从根证书逐级由低至高验证,直至顶级根证书验证通过,也即证书信任链则验证通过,则表示待验证密钥的确由目标密码机生成。可以理解,验证私钥证明证书是否由密码机设备证书签发;若是,则验证密码机设备证书是否由设备原产地证书签发;若是,则验证所述设备原产地证书是否由所述制造商身份证书签发,最后,由于制造商身份证书是自签证书或其他可信CA签发的证书,整个验证过程结束。若逐级验证的过程中,证书信任链中的某一个证书未验证通过,则结束验证,输出密钥验证不通过的信息。
需要说明的是,顶级根证书是根据该私钥证明证书的签发流程中的开始签发证书,其并非固定为制造商身份证书,可以理解,若签发私钥证明证书的起始证书是高于制造商身份证书的CA证书,则顶级根证书为该CA证书,验证时,当该CA证书验证通过后,则表明该证书信任链验证成功。
进一步地,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证之前,包括以下步骤S36-S37:
步骤S36,获取所述私钥证明证书的私钥是否可以导出的信息;
步骤S37,若所述私钥可导出,则输出密钥验证不通过的信息。
在本实施例中,密钥对包括私钥和公钥,公钥是公开的,用于验证使用,而私钥是自用的,用于签名使用,因此,在验证待验证密钥是否为目标密码机生成时,验证私钥是否为目标密码机生成即可,而为了提高验证准确率,私钥只有在不可导出的情况下被生成才有效,因此,用户在密码机上生成待验证密钥时,需设置为不可导出,然后生成对应的证书请求文件。因此,在验证时,需要获取私钥证明证书是否导出的信息,若私钥不可导出,则开始从证书信任链的根证书逐级向上验证,若私钥可导出,则验证结束,输出密钥验证不通过的信息。此证明机制同时支持国密SM2算法和国际RSA算法分别用于证明RSA密钥对生成和SM2密钥对生成。
需要说明的是,在签发的私钥证明证书中可以增加2个扩展字段,如:1.3.6.1.4.1.57933.8.5,用于记录私钥生成时间,此时间来自密码机***时间,具体地,在生成私钥证明证书的同时请求时间戳签名,以增加时间信息,则就能同时证明私钥生成时间;第二个字段,如:1.3.6.1.4.1.57933.8.6,用于私钥其他属性,比如私钥是否可以导出等。因此,在验证私钥证明证书的私钥是否可以导出时,通过获取私钥证明证书中扩展的第二个字段便可知。
本申请密钥验证方法,包括以下步骤:获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,并获取生成所述密码机设备证书的私钥的目标密码机,其中,所述证书请求文件中包含待验证密钥;验证所述私钥证明证书,得到私钥证明证书对应的验证文件;若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息;通过上述方式,获取数字签名后包含有待验证密钥的私钥证明证书,对私钥证明证书进行验证,验证私钥证明证书是否由密码机生成,再通过证书信任链逐级从私钥证明证书向上验证,验证签发私钥证明证书的证书是否正确,若两级验证通过后,则确定待验证密钥由目标密码机生成,验证过程利用了证书签名不可篡改、签名身份可验证的特点,一级级往证书信任链上层验证,直到顶级根证书验证通过,其验证速度快,提高密钥验证效率。
本申请还提供一种密钥验证装置,参照图4,所述密钥验证装置包括:
第一获取模块10,获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
第一验证模块20,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
第二验证模块30,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
可选地,所述第一验证模块20包括:
第一验证子模块,验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
第一确定子模块,若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息。
可选地,所述第一验证子模块包括:
第一获取子单元,获取所述密码机设备证书的公钥;
第一验证子单元,通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
可选地,所述确定子模块包括:
比对子单元,比对所述验证文件与所述证书请求文件的内容是否一致;
第一判断子单元,若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
第二判断子单元,若不一致,则输出密钥验证不通过的信息。
可选地,所述确定子模块还包括:
第二获取子单元,获取所述私钥证明证书对应的所述原始数据;
运算子单元,对所述原始数据进行密码运算,得到待对比的证书请求文件。
可选地,所述第二验证模块30包括:
第一获取子模块,获取签发所述私钥证明证书的所述密码机设备证书;
第二获取子模块,获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
第二验证子模块,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
第三验证子模块,若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的所述第二信息;
第二确定子模块,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
可选地,所述第二验证模块30还包括:
第三获取子模块,获取所述私钥证明证书的私钥是否可以导出的信息;
输出子模块,若所述私钥可导出,则输出密钥验证不通过的信息。
可选地,所述第二验证子模块,包括:
第二验证子单元,验证所述私钥证明证书是否由所述密码机设备证书签发;
第三验证子单元,若是,则验证所述密码机设备证书是否由所述设备原产地证书签发;
第四验证子单元,若是,则验证所述设备原产地证书是否由所述制造商身份证书签发;
第五验证子单元,以上验证步骤每一步若不是,则验证失败。
此外,本申请还提供一种密钥验证设备。如图5所示,图5是本申请实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图5即可为密钥验证设备的硬件运行环境的结构示意图。
如图5所示,该密钥验证设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,密钥验证设备还可以包括RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图5中示出的密钥验证设备结构并不构成对密钥验证设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及密钥验证程序。其中,操作***是管理和控制密钥验证设备硬件和软件资源的程序,支持密钥验证程序以及其它软件或程序的运行。
在图5所示的密钥验证设备中,用户接口1003主要用于连接终端,与终端进行数据通信,如接收终端发送的用户信令数据;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的密钥验证程序,并执行如上所述的密钥验证方法的步骤。
本申请密钥验证设备具体实施方式与上述密钥验证方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有密钥验证程序,所述密钥验证程序被处理器执行时实现如上所述的密钥验证方法的步骤。
本申请计算机可读存储介质具体实施方式与上述密钥验证方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,设备,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种密钥验证方法,其特征在于,所述密钥验证方法包括以下步骤:
获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息,所述证书请求文件由原始数据经过密码算法加密处理得到,所述私钥证明证书是用户通过密码机设备证书对所述证书请求文件数字签名后生成的;
验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息;
获取签发所述私钥证明证书的所述密码机设备证书;
获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的第二信息;
基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息;
所述基于所述私钥证明证书逐级由低至高向所述顶级根证书验证的步骤,包括:
验证所述私钥证明证书是否由所述密码机设备证书签发;
若是,则验证所述密码机设备证书是否由设备原产地证书签发;
若是,则验证所述设备原产地证书是否由制造商身份证书签发;
以上验证步骤每一步若不是,则验证失败。
2.如权利要求1所述的密钥验证方法,其特征在于,所述验证所述私钥证明证书,得到私钥证明证书对应的验证文件的步骤,包括:
获取所述密码机设备证书的公钥;
通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
3.如权利要求1所述的密钥验证方法,其特征在于,所述若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息的步骤,包括:
比对所述验证文件与所述证书请求文件的内容是否一致;
若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
若不一致,则输出密钥验证不通过的信息。
4.如权利要求3所述的密钥验证方法,其特征在于,所述比对所述验证文件与所述证书请求文件的内容是否一致的步骤之前,所述方法包括:
获取所述私钥证明证书对应的所述原始数据;
对所述原始数据进行密码运算,得到待对比的证书请求文件。
5.如权利要求1所述的密钥验证方法,其特征在于,所述基于所述私钥证明证书逐级由低至高向所述顶级根证书验证的步骤之前,所述方法包括:
获取所述私钥证明证书的私钥是否可以导出的信息;
若所述私钥可导出,则输出密钥验证不通过的信息。
6.如权利要求1所述的密钥验证方法,其特征在于,所述至少一个签发证书包括所述私钥证明证书、所述密码机设备证书、设备原产地证书、制造商身份证书,其中,所述制造商身份证书的私钥对应的证书属于顶级根证书。
7.一种密钥验证设备,其特征在于,所述密钥验证设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的密钥验证程序,所述密钥验证程序被所述处理器执行时实现如权利要求1至6中任一项所述的密钥验证方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有密钥验证程序,所述密钥验证程序被处理器执行时实现如权利要求1至6中任一项所述的密钥验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111518677.0A CN114301597B (zh) | 2021-12-13 | 2021-12-13 | 密钥验证方法、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111518677.0A CN114301597B (zh) | 2021-12-13 | 2021-12-13 | 密钥验证方法、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114301597A CN114301597A (zh) | 2022-04-08 |
CN114301597B true CN114301597B (zh) | 2024-02-09 |
Family
ID=80968696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111518677.0A Active CN114301597B (zh) | 2021-12-13 | 2021-12-13 | 密钥验证方法、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114301597B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024044978A1 (zh) * | 2022-08-30 | 2024-03-07 | 京东方科技集团股份有限公司 | 防伪验证方法、硬件装置、***、电子设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282295B1 (en) * | 1997-10-28 | 2001-08-28 | Adam Lucas Young | Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers |
CN200987172Y (zh) * | 2006-09-14 | 2007-12-05 | 北京捷德智能卡***有限公司 | 一种支持公钥基础设施功能的数字签名装置及*** |
US7747851B1 (en) * | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
WO2010072086A1 (zh) * | 2008-12-26 | 2010-07-01 | 中兴通讯股份有限公司 | 用于家庭网关的密钥证书生成方法和*** |
CN104618120A (zh) * | 2015-03-04 | 2015-05-13 | 青岛微智慧信息有限公司 | 一种移动终端密钥托管数字签名方法 |
CN104811941A (zh) * | 2015-04-30 | 2015-07-29 | 福建星网锐捷网络有限公司 | 离线虚拟机安全管理方法和装置 |
CN107135070A (zh) * | 2017-04-25 | 2017-09-05 | 上海汇尔通信息技术有限公司 | Rsa密钥对和证书的注入方法、架构及*** |
CN108989054A (zh) * | 2018-08-30 | 2018-12-11 | 武汉理工大学 | 一种密码***及数字签名方法 |
CN110601855A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种根证书管理方法、装置及电子设备、存储介质 |
CN111143888A (zh) * | 2019-12-25 | 2020-05-12 | 北京深思数盾科技股份有限公司 | 一种证书签发方法及*** |
CN111447214A (zh) * | 2020-03-25 | 2020-07-24 | 北京左江科技股份有限公司 | 一种基于指纹识别的公钥密码集中服务的方法 |
WO2021031087A1 (zh) * | 2019-08-19 | 2021-02-25 | 华为技术有限公司 | 一种证书管理方法及装置 |
CN112737779A (zh) * | 2020-12-30 | 2021-04-30 | 深圳市宝能投资集团有限公司 | 一种密码机服务方法、装置、密码机及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323950B2 (en) * | 2012-07-19 | 2016-04-26 | Atmel Corporation | Generating signatures using a secure device |
US9118467B2 (en) * | 2013-03-13 | 2015-08-25 | Atmel Corporation | Generating keys using secure hardware |
CN111147225A (zh) * | 2018-11-02 | 2020-05-12 | 中国科学院沈阳自动化研究所 | 基于双密值和混沌加密的可信测控网络认证方法 |
-
2021
- 2021-12-13 CN CN202111518677.0A patent/CN114301597B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282295B1 (en) * | 1997-10-28 | 2001-08-28 | Adam Lucas Young | Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers |
US7747851B1 (en) * | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
CN200987172Y (zh) * | 2006-09-14 | 2007-12-05 | 北京捷德智能卡***有限公司 | 一种支持公钥基础设施功能的数字签名装置及*** |
WO2010072086A1 (zh) * | 2008-12-26 | 2010-07-01 | 中兴通讯股份有限公司 | 用于家庭网关的密钥证书生成方法和*** |
CN104618120A (zh) * | 2015-03-04 | 2015-05-13 | 青岛微智慧信息有限公司 | 一种移动终端密钥托管数字签名方法 |
CN104811941A (zh) * | 2015-04-30 | 2015-07-29 | 福建星网锐捷网络有限公司 | 离线虚拟机安全管理方法和装置 |
CN107135070A (zh) * | 2017-04-25 | 2017-09-05 | 上海汇尔通信息技术有限公司 | Rsa密钥对和证书的注入方法、架构及*** |
CN108989054A (zh) * | 2018-08-30 | 2018-12-11 | 武汉理工大学 | 一种密码***及数字签名方法 |
WO2021031087A1 (zh) * | 2019-08-19 | 2021-02-25 | 华为技术有限公司 | 一种证书管理方法及装置 |
CN110601855A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种根证书管理方法、装置及电子设备、存储介质 |
CN111143888A (zh) * | 2019-12-25 | 2020-05-12 | 北京深思数盾科技股份有限公司 | 一种证书签发方法及*** |
CN111447214A (zh) * | 2020-03-25 | 2020-07-24 | 北京左江科技股份有限公司 | 一种基于指纹识别的公钥密码集中服务的方法 |
CN112737779A (zh) * | 2020-12-30 | 2021-04-30 | 深圳市宝能投资集团有限公司 | 一种密码机服务方法、装置、密码机及存储介质 |
Non-Patent Citations (5)
Title |
---|
Group-Signature and Group Session Key Combined Safety Message Authentication Protocol for VANETs;Chunhua Zhang ect.;《IEEE Access ( Volume: 7)》;全文 * |
基于密码技术的公文***应用研究;谢凌锋;《网络空间安全》;全文 * |
基于新一代国密算法的贵服通电子卡密钥管理方案;刘文岚;张旭光;李巍;翟海虹;;广播与电视技术(第12期);全文 * |
抗泄漏公钥密码体制的研究;潘梁静;;商丘职业技术学院学报(第03期);全文 * |
电子邮件IBE加密研究;龙毅宏;黄强;王维;;软件;20180215(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114301597A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108650082B (zh) | 待验证信息的加密和验证方法、相关装置及存储介质 | |
CN102024127B (zh) | 应用软件控制平台、使用者终端、分发***及方法 | |
CN109639427B (zh) | 一种数据发送的方法及设备 | |
US8086859B2 (en) | Generation of electronic signatures | |
CN108768664A (zh) | 密钥管理方法、装置、***、存储介质和计算机设备 | |
CN112737779B (zh) | 一种密码机服务方法、装置、密码机及存储介质 | |
US10650168B2 (en) | Data processing device | |
CN107743067B (zh) | 数字证书的颁发方法、***、终端以及存储介质 | |
WO2020038137A1 (zh) | 二维码生成方法、数据处理方法、装置及服务器 | |
CN109981287B (zh) | 一种代码签名方法及其存储介质 | |
CN108471403B (zh) | 一种账户迁移的方法、装置、终端设备及存储介质 | |
CN109495268B (zh) | 一种二维码认证方法、装置及计算机可读存储介质 | |
CN101296083A (zh) | 一种加密数据传输方法和*** | |
CN114780923B (zh) | 一种电子***的管控方法及*** | |
CN110798322B (zh) | 一种操作请求方法、装置、存储介质及处理器 | |
CN114301597B (zh) | 密钥验证方法、设备及可读存储介质 | |
CN109657170B (zh) | 网页加载方法、装置、计算机设备及存储介质 | |
JP4846464B2 (ja) | 複数公開鍵の証明書を発行及び検証するシステム、並びに、複数公開鍵の証明書を発行及び検証する方法 | |
CN111510448A (zh) | 汽车ota升级中的通讯加密方法、装置及*** | |
CN115150109A (zh) | 认证方法、装置及相关设备 | |
CN112364335A (zh) | 标识身份鉴别方法、装置及电子设备和存储介质 | |
JP2021100227A (ja) | IoT鍵管理システム,セキュアデバイス,IoTデバイス,デバイス管理装置およびセキュアエレメントの公開鍵証明書生成方法 | |
CN116528230A (zh) | 验证码处理方法、移动终端及可信服务*** | |
CN110855442A (zh) | 一种基于pki技术的设备间证书验证方法 | |
JP2004140636A (ja) | 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |