1.本技术涉及密码机技术领域,尤其涉及一种密钥验证方法、设备及可读存储介质。
背景技术:2.密码机(或密码卡)是运用密码对信息实施加(解)密处理和身份认证的专用设备,被应用于各行各业中,特别是在密码合规系统改造中的密码应用。传统的密码机使用时,密码机部署在自己企业机房内最安全的区域,对密码机生成密钥对的信任通过物理访问控制来实现。但是,随着云密码服务的应用和推广,需要密码机与云端连接以实现密码服务,在此场景中,密钥对的真实性对加(解)密的信息保护尤为重要。
3.但目前我国通过商用密码产品认证的密码机都无法提供有效证明,以验证密码机内密钥对的真实性,而传统的验证方式是,通过一个可信的安全审计人员在现场实时监督密钥对生成过程,并在生成结束后出具密钥生成报告给用户,用户通过出具的这份报告来证明自己的密钥对的确由本密码机生成。这样的操作无疑增加了密钥验证的复杂性,且对于大量密钥对生成和应用的云密码服务,这种验证效率很低的验证方式则是不可接受和无法实际操作的。
技术实现要素:4.本技术的主要目的在于提供一种密钥验证方法、设备及可读存储介质,旨在解决密码机密钥来源的验证效率低的技术问题。
5.为实现上述目的,本技术提供一种密钥验证方法,所述密钥验证方法包括步骤:
6.获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
7.验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
8.获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
9.可选地,所述验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息的步骤,包括:
10.验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
11.若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息。
12.可选地,所述验证所述私钥证明证书,得到私钥证明证书对应的验证文件的步骤,包括:
13.获取所述密码机设备证书的公钥;
14.通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
15.可选地,所述若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息的步骤,包括:
16.比对所述验证文件与所述证书请求文件的内容是否一致;
17.若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
18.若不一致,则输出密钥验证不通过的信息。
19.可选地,所述证书请求文件由原始数据经过密码算法加密处理得到,
20.所述比对所述验证文件与所述证书请求文件的内容是否一致的步骤之前,所述方法包括:
21.获取所述私钥证明证书对应的所述原始数据;
22.对所述原始数据进行密码运算,得到待对比的证书请求文件。
23.可选地,所述获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息的步骤,包括:
24.获取签发所述私钥证明证书的所述密码机设备证书;
25.获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
26.基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
27.若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的所述第二信息;
28.基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
29.可选地,所述基于所述私钥证明证书逐级由低至高向所述顶级根证书验证的步骤之前,包括:
30.获取所述私钥证明证书的私钥是否可以导出的信息;
31.若所述私钥可导出,则输出密钥验证不通过的信息。
32.可选地,所述至少一个签发证书包括所述私钥证明证书、所述密码机设备证书、设备原产地证书、制造商身份证书,其中,所述制造商身份证书的私钥对应的证书属于顶级根证书,
33.所述基于所述私钥证明证书逐级由低至高向所述顶级根证书验证的步骤,包括:
34.验证所述私钥证明证书是否由所述密码机设备证书签发;
35.若是,则验证所述密码机设备证书是否由所述设备原产地证书签发;
36.若是,则验证所述设备原产地证书是否由所述制造商身份证书签发;
37.以上验证步骤每一步若不是,则验证失败。
38.此外,为实现上述目的,本技术还提供一种密钥验证设备,所述密钥验证设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的密钥验证程序,所述密
钥验证程序被所述处理器执行时实现如上所述的密钥验证方法的步骤。
39.此外,为实现上述目的,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有密钥验证程序,所述密钥验证程序被处理器执行时实现如上所述的密钥验证方法的步骤。
40.与现有技术中,安全审计人员在现场实时监督密钥对生成过程相比,本技术通过获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息;通过上述方式,获取数字签名后包含有待验证密钥的私钥证明证书,对私钥证明证书进行验证,验证私钥证明证书是否由密码机生成,再通过证书信任链逐级从私钥证明证书向上验证,验证签发私钥证明证书的证书是否正确,若两级验证通过后,则确定待验证密钥由目标密码机生成,验证过程利用了证书签名不可篡改、签名身份可验证的特点,一级级往证书信任链上层验证,直到顶级根证书验证通过,其验证速度快,完全可以由程序自动完成,提高了密钥验证效率。
附图说明
41.图1是本技术密钥验证方法第一实施例的流程示意图;
42.图2是本技术密钥验证方法第一实施例的私钥证书签发流程图;
43.图3是本技术密钥验证方法第一实施例的私钥证书验证过程流程图;
44.图4是本技术密钥验证装置较佳实施例的功能模块示意图;
45.图5是本技术实施例方案涉及的硬件运行环境的结构示意图。
46.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
47.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
48.本技术提供一种密钥验证方法,参照图1,图1为本技术密钥验证方法第一实施例的流程示意图。
49.本技术实施例提供了密钥验证方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。密钥验证方法可应用于应用服务器的用于验证的程序模块中。为了便于描述,以下省略执行主体描述密钥验证方法的各个步骤。
50.密钥验证方法包括:
51.步骤s10,获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
52.步骤s20,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥
生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
53.步骤s30,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
54.具体步骤如下:
55.步骤s10,获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
56.在本实施例中,需要说明的是,密钥验证方法可以应用于密钥验证装置,该密钥验证装置属于密钥验证系统,该密钥验证系统从属于密钥验证设备。
57.在本实施例中,具体的应用场景可以是:随着云密码服务的应用和推广,需要密码机与云端其他服务连接以提供密码服务,在此场景中,密钥对的真实性对加(解)密的信息保护尤为重要。但目前我国通过商用密码产品认证的密码机都无法提供有效证明,以验证密码机内密钥对的真实性,而传统的验证方式是,通过一个可信的安全审计人员在现场实时监督密钥对生成过程,并在生成结束后出具密钥生成报告给用户,用户通过出具的这份报告来证明自己的密钥对的确由本密码机生成。这样的操作无疑增加了密钥对验证的复杂性,且对于大量密钥对生成和应用的云密码服务,此种验证效率很低的方式则是不可接受和无法实际操作的。
58.在本实施例中,需要说明的是,数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明,一套数字签名通常定义两种互补的运算,一个用于数字签名,另一个用于验证签名。通常情况下,数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用hash(哈希)函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
59.在本实施例中,为了证明数字签名可信,通常用户在使用数字签名前,需要向ca机构(certificate authority,证书颁发机构)申领一份数字证书,数字证书里含有证书持有者信息、公钥信息等。如ssl证书(secure sockets layer,数字证书的一种),服务器把证书传输给浏览器,浏览器从证书里获取证书持有者身份信息,因此能够证明该网站内容或数据真实。为了防止私钥泄露,许多应用都要求证书私钥由密码机生成并安全存储,这就需要验证数字证书中的密钥是否真的由其对应的密码机生成的结果。
60.获取密码机设备证书的私钥对证书请求文件数字签名后的私钥证明证书,证书请求文件用于ca签发用户证书用,其记载了生成待验证密钥的目标密码机和待验证密钥的相关信息,在ca获取私钥证明证书之前,待验证密钥和证书请求文件是用户在密码机(或密码卡)中操作而生成,将生成的证书请求文件和数字签名后的私钥证明证书一同提交给ca申请数字证明签名证书,当私钥证明证书验证通过时,表示获取到的证书请求文件的确是用户通过目标密码机生成的,则待验证密钥的确来自于证书请求文件中记载的目标密码机,从而解决密码机生成密钥自我证明的问题。其中,由于不同的制造商对应制造由各自不同
型号或编码的密码机,因此,目标密码机是指生成证书请求文件的密码机,但此时,还未验证证书请求文件是否由目标密码机生成,因此,目标密码机实际上是证书请求文件中记载的密码机,对应的验证密钥也是待验证的目标密码机生成的。每台密码机有一对不可导出密码机的设备证书私钥和设备证书,该设备证书可以是自签证书,也可以是其他ca签发的密码机设备证书。用户在目标密码机生成待验证密钥对和证书请求文件,同时用密码机设备证书数字签名该证书请求文件生成私钥证明证书,用户就可以把证书请求文件和私钥证明证书一起给证书签发ca,证书签发ca就可以用密码机设备证书来验证私钥证明证书和证书请求文件是否由同一待验证密钥生成,若是,就能确信此证书请求文件的确由目标密码机生成。
61.步骤s20,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
62.进一步地,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机,包括以下步骤a-b:
63.步骤a,验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
64.在本实施例中,若私钥证明证书和证书请求文件是由同一待验证密钥生成时,则ca对私钥证明证书和证书请求文件进行比较,若两个文件比较一致,则可确定私钥证明证书和证书请求文件是由同一待验证密钥生成,因此,对获取的私钥证明证书进行验证,得到私钥证明证书对应的验证文件,该验证文件用于后续与证书请求文件进行比较使用。
65.进一步地,验证所述私钥证明证书,得到私钥证明证书对应的验证文件,包括以下步骤a1-a2:
66.步骤a1,获取所述密码机设备证书的公钥;
67.步骤a2,通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
68.在本实施例中,基于密码机设备证书的私钥,获取密码机设备证书的公钥,当服务器信任该密码机设备证书时,便会保存该密码机设备证书的公钥,通过密码机设备证书的公钥通过解密算法对私钥证明证书进行验证,得到验证文件。其中,解密算法可以是,sm2算法(椭圆曲线公钥密码算法)、rsa((rivest-shamir-adleman)算法等。
69.步骤b,若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
70.在本实施例中,验证待验证密钥是否由目标密码机生成时,由于待验证密钥不可导出,因此,通过对包含由待验证密钥相关信息的证书请求文件进行验证,当验证私钥证明证书和证书请求文件均由待验证密钥生成,也即同一个待验证密钥生成,则能够证明证书请求文件是由密码机生成,而并非由他人经过电脑或其他工具生成得到,该密码机指代所有的商用密码机,包括目标密码机,需要进一步的验证,也能够证明该待验证密钥由目标密码机生成。
71.进一步地,若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息,包括以下步骤b1-b3:
72.步骤b1,比对所述验证文件与所述证书请求文件的内容是否一致;
73.步骤b2,若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
74.步骤b3,若不一致,则输出密钥验证不通过的信息。
75.在本实施例中,将对私钥证明证书解密得到验证文件和证书请求文件的内容进行对比,若验证文件和证书请求文件的内容一致,则确定私钥证明证书与证书请求文件由同一待验证密钥生成,也即,验证通过证书请求文件的确由密码机生成,系统显示待验证密钥由密码机生成的第一信息;反之,若验证文件和证书请求文件的内容不一致,则表示证书请求文件并给由密码机生成,因此,该证书请求文件可能已被修改过,或私钥证明证书被掉包、篡改,此时,结束验证,系统输出密钥验证不通过的信息。
76.进一步地,比对所述验证文件与所述证书请求文件的内容是否一致,包括以下步骤b11-b12:
77.步骤b11,获取所述私钥证明证书对应的所述原始数据;
78.步骤b12,对所述原始数据进行密码运算,得到待对比的证书请求文件。
79.在本实施例中,若证书请求文件是在数字签名过程中,通过散列函数对传输的原始数据进行计算,得到的散列值,也即传输的原始数据的信息摘要,则数字签名是对该散列值进行数字签名,其中,信息摘要是在进行数字签名的时候我们先对原始数据使用密码算法(如hash,哈希算法)计算得到。因此,获取私钥证明证书对应的原始数据,用私钥证明证书中的哈希算法对原始数据进行hash计算,得到待对比的证书请求文件。显然,通过以上处理,待对比的证书请求应当和私钥证明证书解密后的验证文件一致,除非原始数据或数字签名被篡改,因此,此时比较验证文件与待对比的证书请求文件是否一致,若一致,则系统显示待验证密钥由密码机生成的第一信息。
80.步骤s30,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
81.在本实施例中,证书信任链是一个有序的证书列表,包括ca(证书颁发机构)证书,使接收方能够验证发送方和所有ca是否值得信任,链中的每个证书都由链中下一个证书标识的实体签名,参考图2。要验证待验证密钥确实是由指定的密码机产生的,只需验证私钥证明证书是由目标密码机的密码机设备证书签发的,因为待验证密钥中的私钥具有不可导出属性,同时密码机设备证书的私钥也是不可导出到密码机之外的,所以只有在目标密码机内才能对生成的不可导出的私钥签发私钥证明证书。另外,需要进一步验证密码机设备证书的信任链,可通过验证密钥设备证书是由设备原产地证书签发的,直至该证书信任链验证结束。若证书信任链验证通过,则显示验证成功的第二信息,基于第一信息和第二信息,表示该待验证密钥的确由目标密码机生成,则输出密钥验证通过的信息。
82.进一步地,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息,包括以下步骤s31-s35:
83.步骤s31,获取签发所述私钥证明证书的所述密码机设备证书;
84.步骤s32,获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
85.步骤s33,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
86.步骤s34,若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的所述第二信息;
87.步骤s35,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
88.在本实施例中,获取签发私钥证明证书的密码机设备证书,获取密码机设备证书对应的证书信任链,该证书信任链包括至少一个签发证书,至少一个签发证书包括私钥证明证书、密码机设备证书、设备原产地证书、制造商身份证书,其中,私钥证明证书属于根证书,制造商身份证书属于顶级根证书,该证书信任链从顶级根证书起始于顶级根证书,终止于根证书,必须验证证书信任链中所有证书的签名,直至顶级根证书通过,顶级根ca证书始终由ca本身签名。当顶级根证书验证通过,则表示证书信任链验证通过,因此,显示验证成功的第二信息。基于第一信息和第二信息,确定待验证密钥由目标密码机生成,系统输出密钥验证通过的信息。
89.进一步地,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证,包括以下步骤s331-s334:
90.步骤s331,验证所述私钥证明证书是否由所述密码机设备证书签发;
91.步骤s332,若是,则验证所述密码机设备证书是否由所述设备原产地证书签发;
92.步骤s333,若是,则验证所述设备原产地证书是否由所述制造商身份证书签发;
93.步骤s334,以上验证步骤每一步若不是,则验证失败。
94.在本实施例中,在上述证书信任链中,私钥证明证书的私钥就是需要证明的用户私钥,其证书属性中必须含有专用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签发。
95.由此,参考图3,在得到私钥证明证书后,从根证书逐级由低至高验证,直至顶级根证书验证通过,也即证书信任链则验证通过,则表示待验证密钥的确由目标密码机生成。可以理解,验证私钥证明证书是否由密码机设备证书签发;若是,则验证密码机设备证书是否
由设备原产地证书签发;若是,则验证所述设备原产地证书是否由所述制造商身份证书签发,最后,由于制造商身份证书是自签证书或其他可信ca签发的证书,整个验证过程结束。若逐级验证的过程中,证书信任链中的某一个证书未验证通过,则结束验证,输出密钥验证不通过的信息。
96.需要说明的是,顶级根证书是根据该私钥证明证书的签发流程中的开始签发证书,其并非固定为制造商身份证书,可以理解,若签发私钥证明证书的起始证书是高于制造商身份证书的ca证书,则顶级根证书为该ca证书,验证时,当该ca证书验证通过后,则表明该证书信任链验证成功。
97.进一步地,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证之前,包括以下步骤s36-s37:
98.步骤s36,获取所述私钥证明证书的私钥是否可以导出的信息;
99.步骤s37,若所述私钥可导出,则输出密钥验证不通过的信息。
100.在本实施例中,密钥对包括私钥和公钥,公钥是公开的,用于验证使用,而私钥是自用的,用于签名使用,因此,在验证待验证密钥是否为目标密码机生成时,验证私钥是否为目标密码机生成即可,而为了提高验证准确率,私钥只有在不可导出的情况下被生成才有效,因此,用户在密码机上生成待验证密钥时,需设置为不可导出,然后生成对应的证书请求文件。因此,在验证时,需要获取私钥证明证书是否导出的信息,若私钥不可导出,则开始从证书信任链的根证书逐级向上验证,若私钥可导出,则验证结束,输出密钥验证不通过的信息。此证明机制同时支持国密sm2算法和国际rsa算法分别用于证明rsa密钥对生成和sm2密钥对生成。
101.需要说明的是,在签发的私钥证明证书中可以增加2个扩展字段,如:1.3.6.1.4.1.57933.8.5,用于记录私钥生成时间,此时间来自密码机系统时间,具体地,在生成私钥证明证书的同时请求时间戳签名,以增加时间信息,则就能同时证明私钥生成时间;第二个字段,如:1.3.6.1.4.1.57933.8.6,用于私钥其他属性,比如私钥是否可以导出等。因此,在验证私钥证明证书的私钥是否可以导出时,通过获取私钥证明证书中扩展的第二个字段便可知。
102.本技术密钥验证方法,包括以下步骤:获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,并获取生成所述密码机设备证书的私钥的目标密码机,其中,所述证书请求文件中包含待验证密钥;验证所述私钥证明证书,得到私钥证明证书对应的验证文件;若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息;通过上述方式,获取数字签名后包含有待验证密钥的私钥证明证书,对私钥证明证书进行验证,验证私钥证明证书是否由密码机生成,再通过证书信任链逐级从私钥证明证书向上验证,验证签发私钥证明证书的证书是否正确,若两级验证通过后,则确定待验证密钥由目标密码机生成,验证过程利用了证书签名不可篡改、签名身份可验证的特点,一级级往证书信任链上层验证,直到顶级根证书验证通过,其验证速度快,提高密钥验证效率。
103.本技术还提供一种密钥验证装置,参照图4,所述密钥验证装置包括:
104.第一获取模块10,获取通过密码机设备证书的私钥对证书请求文件数字签名后得到的私钥证明证书,其中,所述证书请求文件中记载有待验证密钥的信息,所述私钥证明证书中记载有生成所述待验证密钥的目标密码机的信息;
105.第一验证模块20,验证所述私钥证明证书与所述证书请求文件是否均由所述待验证密钥生成,若是,则显示所述待验证密钥由密码机生成的第一信息,其中,所述密码机包括所述目标密码机;
106.第二验证模块30,获取并验证所述私钥证明证书的证书信任链,若所述证书信任链验证通过,则显示验证成功的第二信息,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
107.可选地,所述第一验证模块20包括:
108.第一验证子模块,验证所述私钥证明证书,得到私钥证明证书对应的验证文件;
109.第一确定子模块,若所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,则显示所述待验证密钥由密码机生成的第一信息。
110.可选地,所述第一验证子模块包括:
111.第一获取子单元,获取所述密码机设备证书的公钥;
112.第一验证子单元,通过所述密码机设备证书的公钥对所述私钥证明证书进行验证,得到验证文件。
113.可选地,所述确定子模块包括:
114.比对子单元,比对所述验证文件与所述证书请求文件的内容是否一致;
115.第一判断子单元,若一致,则确定所述私钥证明证书和所述证书请求文件均由所述待验证密钥生成,显示所述待验证密钥由所述密码机生成的所述第一信息,其中,所述密码机包括所述目标密码机;
116.第二判断子单元,若不一致,则输出密钥验证不通过的信息。
117.可选地,所述确定子模块还包括:
118.第二获取子单元,获取所述私钥证明证书对应的所述原始数据;
119.运算子单元,对所述原始数据进行密码运算,得到待对比的证书请求文件。
120.可选地,所述第二验证模块30包括:
121.第一获取子模块,获取签发所述私钥证明证书的所述密码机设备证书;
122.第二获取子模块,获取所述密码机设备证书对应的证书信任链,所述证书信任链中包括至少一个签发证书,所述至少一个签发证书包括顶级根证书;
123.第二验证子模块,基于所述私钥证明证书逐级由低至高向所述顶级根证书验证;
124.第三验证子模块,若所述顶级根证书验证通过,则所述证书信任链验证通过,显示验证成功的所述第二信息;
125.第二确定子模块,基于所述第一信息和所述第二信息,确定所述待验证密钥由所述目标密码机生成,输出密钥验证通过的信息。
126.可选地,所述第二验证模块30还包括:
127.第三获取子模块,获取所述私钥证明证书的私钥是否可以导出的信息;
128.输出子模块,若所述私钥可导出,则输出密钥验证不通过的信息。
129.可选地,所述第二验证子模块,包括:
130.第二验证子单元,验证所述私钥证明证书是否由所述密码机设备证书签发;
131.第三验证子单元,若是,则验证所述密码机设备证书是否由所述设备原产地证书签发;
132.第四验证子单元,若是,则验证所述设备原产地证书是否由所述制造商身份证书签发;
133.第五验证子单元,以上验证步骤每一步若不是,则验证失败。
134.此外,本技术还提供一种密钥验证设备。如图5所示,图5是本技术实施例方案涉及的硬件运行环境的结构示意图。
135.需要说明的是,图5即可为密钥验证设备的硬件运行环境的结构示意图。
136.如图5所示,该密钥验证设备可以包括:处理器1001,例如cpu,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
137.可选地,密钥验证设备还可以包括rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。
138.本领域技术人员可以理解,图5中示出的密钥验证设备结构并不构成对密钥验证设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
139.如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及密钥验证程序。其中,操作系统是管理和控制密钥验证设备硬件和软件资源的程序,支持密钥验证程序以及其它软件或程序的运行。
140.在图5所示的密钥验证设备中,用户接口1003主要用于连接终端,与终端进行数据通信,如接收终端发送的用户信令数据;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的密钥验证程序,并执行如上所述的密钥验证方法的步骤。
141.本技术密钥验证设备具体实施方式与上述密钥验证方法各实施例基本相同,在此不再赘述。
142.此外,本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有密钥验证程序,所述密钥验证程序被处理器执行时实现如上所述的密钥验证方法的步骤。
143.本技术计算机可读存储介质具体实施方式与上述密钥验证方法各实施例基本相同,在此不再赘述。
144.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有
的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
145.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
146.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,设备,或者网络设备等)执行本技术各个实施例所述的方法。
147.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。