本技术涉及区块链,尤其涉及一种基于区块链的证书生成管理方法、装置、设备及存储介质。
背景技术:
1、区块链(blockchain)技术是一种将数据区块有序连接,并以密码学方式保证其不可篡改、不可伪造的分布式账本技术。基于区块链的技术方案能够用于解决信任问题,实现信息与价值的自由传递,目前已在数字货币、资产交易、数字政务、存证防伪等领域得到应用;同时随着科技的发展,证书电子化有利于简化证书办理与发放的流程,提升与证书相关各项工作效率,同时可实现长期存证,杜绝假证,并实现证书的便捷查询与核验。电子证书要实现的这些功能特征,恰与区块链的技术特点相吻合,因此可以将电子证书写入区块链,用于达到电子证书可以在区块链中不可更改、不可伪造并长期存证的目的。
2、基于上述背景,如何将电子证书的相关数据信息存入区块链,在区块链上发证机构对企业或个人进行电子证书的颁发管理,并提高电子证书颁发效率为亟需解决的问题。
技术实现思路
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、证书上链模块,用于验证各证书信息块中的发证机构公钥合法后,利用所述发证机构公钥及所述第一签名确定所述证书信息块是否有效;
42、还用于对有效的证书信息块进行哈希计算,并将所述有效的证书信息块及对应的第一哈希值放入第一区块进行第一上链操作;
43、证书管理模块,用于查询并读取符合管理条件的目标证书信息块,并利用证书管理指令中的发证机构私钥对所述目标证书信息块中的发证机构公钥及对应的第一哈希值加密,得到第二签名;
44、还用于根据所述目标证书信息块对应的第一哈希值、第二签名、证书管理指令的操作类别及证书管理指令中的证书管理对象编号生成初始操作信息块;
45、管理上链模块,用于确定待上链的各初始操作信息块,并利用对应的目标证书信息块中的发证机构公钥对所述待上链的各初始操作信息块中对应的签名进行解密,确定所述待上链的各初始操作信息块是否有效;
46、还用于对有效的初始操作信息块进行哈希计算,并将所述有效的初始操作信息块及对应的第二哈希值放入第二区块进行第二上链操作。
47、第三方面,本技术提供一种基于区块链的证书生成管理设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面中任何一项所述的基于区块链的证书生成管理方法。
48、第四方面,本技术提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行如第一方面中任何一项所述的基于区块链的证书生成管理方法。
49、本技术提供的一种基于区块链的证书生成管理方法、装置、设备及存储介质,可以将电子证书的相关数据信息存入区块链,并对企业或个人进行电子证书的颁发管理,保证电子证书在区块链中不可更改、不可伪造、长期存证,并提高电子证书颁发效率。