CN105141420B - 一种安全导入、签发证书的方法、设备及服务器 - Google Patents

一种安全导入、签发证书的方法、设备及服务器 Download PDF

Info

Publication number
CN105141420B
CN105141420B CN201510454779.9A CN201510454779A CN105141420B CN 105141420 B CN105141420 B CN 105141420B CN 201510454779 A CN201510454779 A CN 201510454779A CN 105141420 B CN105141420 B CN 105141420B
Authority
CN
China
Prior art keywords
certificate
data packet
signature
equipment
verified
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
Application number
CN201510454779.9A
Other languages
English (en)
Other versions
CN105141420A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201510454779.9A priority Critical patent/CN105141420B/zh
Publication of CN105141420A publication Critical patent/CN105141420A/zh
Application granted granted Critical
Publication of CN105141420B publication Critical patent/CN105141420B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种安全导入、签发证书的方法、设备及服务器,属于信息安全领域。本发明公开的内容包括导入证书的设备向签发证书的服务器发送下载证书请求,签发证书的服务器收到请求后对请求中包含的数据内容进行验证,若均通过验证则向设备签发证书,否则不签发证书。所述下载证书请求中包含有第二数据包,所述第二数据包中包含有设备证书。本发明提供的方法、设备及服务器,能够提高证书签发流程和导入流程的安全性,从而有效防范非法用户对证书的随意下载和更改。

Description

一种安全导入、签发证书的方法、设备及服务器
技术领域
本发明涉及信息安全领域,尤其涉及一种安全导入、签发证书的方法、设备及服务器。
背景技术
数字证书是互联网通讯中用来标志和证明网络通信双方身份的数字信息文件,包含公开密钥拥有者信息以及公开密钥的文件。它由一个权威机构-----CA(CertificateAuthority,证书授权)中心发行,人们可以在网上用它来识别对方的身份。以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性。
现有技术中,有的银行将本行颁发证书及下载证书交付于CFCA(中国金融认证中心)进行负责。这样存在以下问题:1.CFCA可以自行进行证书颁发及下载,银行没有束缚力。2.非法用户可以通过CFCA现有的机制自行申请下载证书的请求码,在本地随意进行证书下载和更换。3.若在CSP(加密服务提供程序)正常支持的情况下,非法客户可以将自己的证书下载至银行下发的智能密钥设备(USBKey)中。
发明内容
为解决现有技术中存在的问题,本发明提出了一种安全导入、签发证书的方法、设备及服务器。
本发明提供的技术方案包括一种安全签发证书的服务器及其方法、一种安全导入证书的设备及其方法;
其中,一种安全签发证书的服务器,包括:
接收模块,用于接收第二数据包和证书请求,并从所述证书请求中获取第一数据包;
验证模块,用于对所述第一数据包、所述证书请求和所述第二数据包进行验证,当全部通过验证时触发发证模块工作,否则触发发送模块工作;
发证模块,用于在所述验证模块的触发下签发证书;
发送模块,用于将发证模块签发的所述证书发送给设备端,或者是在所述验证模块的触发下向所述设备端返回失败信息;
所述验证模块,还具体用于从所述第二数据包中获取设备证书、第二签名算法对象标识符、第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
所述服务器还包括解析模块;
所述接收模块还用于接收下载证书报文,所述解析模块,用于解析所述下载证书报文获取第二数据包和证书请求;
所述发送模块,还用于向所述设备端返回包含所述证书的下载证书响应报文。
以及,一种安全签发证书的方法,包括:
服务器端接收设备端发送的第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回所述证书,否则向所述设备端返回失败信息;
所述对所述第二数据包进行验证具体为,从所述第二数据包中获取设备证书、第二签名算法对象标识符和第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
上述方法还包括,当所述服务器端接收到所述设备端发来的下载证书报文时,解析所述下载证书报文获取第二数据包和证书请求;所述向所述设备端返回所述证书具体为向所述设备端返回包含所述证书的下载证书响应报文。
其中,一种安全导入证书的设备,包括:
初始化模块,用于执行初始化操作;
生成模块,用于根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包;
发送模块,用于将所述证书请求和所述第二数据包发送给服务器端;
接收模块,用于接收所述服务器端返回的证书;
导入模块,用于将所述接收模块接收到的所述证书导入设备中。
上述生成模块,还具体用于根据所述证书请求、所述第二数据包组织生成下载证书报文;上述发送模块,还具体用于将所述下载证书报文发送给服务器端。
以及,一种安全导入证书的方法,包括:
设备端执行初始化操作;
所述设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,将所述证书请求和所述第二数据包发送给服务器端;
所述设备端接收所述服务器端返回的证书并完成证书导入。
所述将所述证书请求和所述第二数据包发送给服务器端具体为,根据所述证书请求、所述第二数据包组织生成下载证书报文,并发送给服务器端;
所述设备端接收所述服务器端返回的证书并完成证书导入具体为,所述设备端接收所述服务器端返回的下载证书响应报文,解析所述下载证书响应报文,判断是否存在所述证书,是则完成证书导入,否则证书导入失败。
采用本发明达到的有益效果:能够有效管理CFCA下发证书的过程,提高证书签发流程和导入流程的安全性,从而有效防范非法用户对证书的随意下载和更改。
附图说明
图1是本发明实施例1提供的一种安全导入证书的设备及签发证书的服务器的组成结构示意图;
图2是本发明实施例2提供的一种安全导入、签发证书的方法流程图;
图3是本发明实施例3提供的一种安全导入、签发证书的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供的一种安全签发证书的服务器,如图1所示,包括:
接收模块1,用于接收第二数据包和证书请求,并从所述证书请求中获取第一数据包;
验证模块2,用于对所述第一数据包、所述证书请求和所述第二数据包进行验证,当全部通过验证时触发发证模块3工作,否则触发发送模块4工作;
所述验证模块2还具体用于,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证。具体用于,从所述证书请求中获取第一签名算法标识符和第一签名值,使用第一数据包中的签名公钥对所述第一签名值解密得到解密数据,根据所述第一签名算法对象标识符所指示的哈希算法对所述第一数据包计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
发证模块3,用于在所述验证模块2的触发下签发证书;
发送模块4,用于将发证模块3签发的所述证书发送给设备端,或者是在所述验证模块2的触发下向所述设备端返回失败信息。
所述验证模块2包括第一判断单元、第二判断单元和第三判断单元;
所述第一判断单元,用于判断第二数据包的格式是否合法,是则从所述第二数据包中获取第二签名算法对象标识符、设备证书和第二签名值,并触发第二判断单元工作,否则第二数据包不合法,未通过验证;
所述第二判断单元,用于验证所述设备证书中包含的DN项和颁发者信息是否合法,是则触发第三判断单元工作,否则第二数据包不合法,未通过验证;
所述第三判断单元,用于使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
所述接收模块1还用于接收下载证书报文,所述发送模块4,还用于向所述设备端返回包含所述证书的下载证书响应报文。所述服务器还包括解析模块5。
所述解析模块5,用于解析所述下载证书报文获取第二数据包和证书请求;还用于解析所述下载证书报文获得设备序列号和PUK码。
相应的,所述验证模块2还包括第四判断单元和第五判断单元;
所述第四判断单元,用于判断所述设备序列号是否与预先存储的设备序列号一致,是则所述设备序列号合法,通过验证;否则所述设备序列号不合法,未通过验证;
所述第五判断单元,用于判断所述PUK码是否与预先存储的PUK码一致,是则所述PUK码合法,通过验证,否则所述PUK码不合法,未通过验证。
与上述服务器相对应,本实施例提供的一种安全导入证书的设备,包括:
初始化模块11,用于执行初始化操作;
生成模块12,用于根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包;
发送模块13,用于将所述证书请求和所述第二数据包发送给服务器端;
接收模块14,用于接收所述服务器端返回的证书;
导入模块15,用于将所述接收模块14接收到的所述证书导入设备中。
上述生成模块12,还具体用于根据所述证书请求、所述第二数据包组织生成下载证书报文;发送模块13,还具体用于将所述下载证书报文发送给服务器端。
本实施例提供的所述设备可以是包括USBKey和主机,所述主机包括所述初始化模块11、所述发送模块13、所述接收模块14和所述导入模块15,所述USBKey包括所述生成模块12,所述导入模块15具体用于将所述证书导入到所述USBKey中的用户管理区。
上述生成模块12,还用于生成签名公钥和私钥并存储在用户管理区;相应的,所述初始化模块11,具体用于清空USBKey中的用户管理区,还具体用于初始化PIN码为默认PIN码。
本实施例提供的设备还包括:
获取模块,用于获取设备序列号,提示用户输入PUK码;相应的,所述接收模块14,还用于接收用户输入的PUK码;所述生成模块12,还具体用于根据所述证书请求、所述第二数据包、所述设备序列号、所述PUK码组织生成下载证书报文;所述发送模块13,还具体用于将所述下载证书报文发送给服务器端。
本实施例提供的一种如图1所示设备的导入证书的工作方法流程,包括:
步骤S1:设备端执行初始化操作;
具体的,所述初始化操作包括,清空用户管理区,所述用户管理区用于存储已下载证书和设备生成的签名公钥和私钥。
步骤S2:设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,将所述证书请求和所述第二数据包发送给服务器端;
具体的,所述第一数据包中包含签名公钥和DN项。所述证书请求中包含第一签名算法对象标识符、第一签名值和第一数据包。
优选的,设备端包括USBKey和主机,本步骤具体为主机中中间件完成的操作,还可以是主机完成的操作,详见实施例2和3中的描述。
步骤S3:设备端接收所述服务器端返回的证书并完成证书导入。
优选的,所述完成证书导入具体为将所述证书导入到所述USBKey中。
上述步骤S1-步骤S3可以替换为:
步骤S1′:设备端执行初始化操作;
具体的,所述初始化操作包括,清空用户管理区,初始化PIN码为默认PIN码。
步骤S2′:设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,根据所述证书请求、所述第二数据包组织生成下载证书报文,并发送给服务器端;
步骤S3′:设备端接收所述服务器端返回的下载证书响应报文,解析所述下载证书响应报文,判断是否存在所述证书,是则完成证书导入,否则证书导入失败。
本实施例提供的一种如图1所示服务器的签发证书的工作方法流程,包括:
服务器端接收设备端发送的第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回所述证书,否则向所述设备端返回失败信息;
具体的,对所述第一数据包进行验证具体为,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证。
对所述证书请求进行验证具体为,从所述证书请求中获取第一签名算法标识符和第一签名值,使用第一数据包中的签名公钥对所述第一签名值解密得到解密数据,根据所述第一签名算法对象标识符所指示的哈希算法对所述第一数据包计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
对所述第二数据包进行验证具体为,从所述第二数据包中获取设备证书、第二签名算法对象标识符、第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
或者是,当所述服务器端接收到所述设备端发来的下载证书报文时,解析所述下载证书报文获取第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回包含所述证书的下载证书响应报文,否则向所述设备端返回包含失败信息的下载证书响应报文。
进一步的,解析所述下载证书报文还可以获得设备序列号和PUK码,服务器端还需要对所述设备序列号和所述PUK码进行验证。
实施例2
预植证书是指该证书由CFCA预先在智能密钥设备(简称USBKey)中生成,由用户向发证机构申领,发证机构对用户的身份进行审核并与证书绑定后方生效的数字证书。本实施例以CFCA给USBKey下载预植证书的过程为例进行详细介绍。
如图2所示,本实施例提供的一种安全导入、签发证书的方法,包括:
步骤101:主机判断是否有USBKey插入,是则执行步骤102,否则继续执行步骤101;
步骤102:主机调用监控接口检测当前插入的USBKey是否符合预设条件,是则执行步骤103,否则返回执行步骤101;
具体的,主机调用监控接口,判断该接口的返回值,若等于预设值则当前插入的USBKey符合预设条件,执行步骤103,若等于其他值则返回执行步骤101。
例如,主机检测当前插入的USBKey是否是交行的USBKey具体为,主机调用监控接口waitforslotevent,判断是否返回1,是则当前插入的USBKey是交行的USBKey,否则不是。
进一步的,当监控接口Waitforslotevent被调用时,执行:
1-1:获取当前插入的scsi设备的symboliclink;
1-2:将获取的symboliclink与预先约定的值比对,若一致则执行1-3,否则返回0;
1-3:根据symboliclink在通讯密钥文件中获取通讯密钥,利用通讯密钥与当前插入的scsi设备进行一下connectkey操作,若成功连接则返回1,否则返回0。
步骤103:主机对USBKey进行初始化;
本实施例中,初始化具体为清空USBKey中的用户管理区。
所述用户管理区用于存储已下载证书和下载证书过程中USBKey生成的签名密钥对。
步骤104:主机调用USBKey操作接口获取第一签名值、签名公钥,根据签名公钥组成第一数据包,根据第一数据包、第一签名算法OID和第一签名值组成证书请求;
本步骤具体包括:
104-1:主机调用USBKey操作接口,向USBKey发送生成密钥对指令,USBKey生成签名公钥和私钥;
具体的,所述签名公钥和私钥存储在USBKey中的用户管理区。
104-2:主机调用USBKey操作接口,向USBKey发送获取签名公钥指令,USBKey向主机返回签名公钥;
104-3:主机调用USBKey操作接口,根据签名公钥和DN项组成第一数据包,主机将第一数据包作为签名原文向USBKey发送签名指令,USBKey使用签名私钥对第一数据包计算签名得到第一签名值,并向主机返回第一签名值;
具体的,DN(Distinguished Name):唯一甄别名。通常包括CN、OU、O、C等组成部分。CN(Common Name):公用名。OU(Organization Unit):组织单元。O(Organization):组织。C(Country):国家或地区。
例如,根据签名公钥和DN项组成的第一数据包为:
30 81 ce 02 01 01 30 6e 31 22 30 2006 03 55 04
03 13 19 36 30 31 33 30 37 31 30 3030 30 30 30
35 30 40 5b 32 30 30 30 30 30 30 5d31 0b 30 09
06 03 55 04 06 13 02 43 4e 31 14 3012 06 03 55
04 0a 13 0b 42 41 4e 4b 43 4f 4d 4d20 43 41 31
12 30 10 06 03 55 04 0b 13 09 43 7573 74 6f 6d
65 72 73 31 11 30 0f 06 03 55 04 0b13 08 42 41
4e 4b 43 4f 4d 4d 30 59 30 13 06 072a 86 48 ce
3d 02 01 04 08 2a 81 1c cf 55 01 822d 03 42 00
04 71 9d 8c 11 27 7a a1 50 f6 ff 90e3 ff 11 5d
65 47 a2 a0 7e 88 0f af 2c e1 5a c2cb 56 54 f9
36 7b cd e9 42 8b 21 0f 16 4a a6 ec05 90 b4 fa
c9 a0 75 ff ad 47 60 c3 21 70 29 3372 7f 3e fa
18
104-4:主机根据第一数据包、第一签名算法OID和第一签名值组织生成证书请求。
本实施中,OID是指对象标识符,第一签名算法OID用于唯一标识第一签名算法。例如,第一签名算法OID=06 08 2a 81 1c cf 55 01 8375 ,其在证书请求中的格式为:300c 06 08 2a 81 1c cf 55 01 8375 05 00,对应的是基于SM2算法和SM3的签名。
例如,本步骤组织生成的证书请求为:
30 82 01 28 30 81 ce 02 01 01 30 6e 31 22 30 20
06 03 55 04 03 13 19 36 30 31 33 30 37 31 30 30
30 30 30 30 35 30 40 5b 32 30 30 30 30 30 30 5d
31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 14 30
12 06 03 55 04 0a 13 0b 42 41 4e 4b 43 4f 4d 4d
20 43 41 31 12 30 10 06 03 55 04 0b 13 09 43 75
73 74 6f 6d 65 72 73 31 11 30 0f 06 03 55 04 0b
13 08 42 41 4e 4b 43 4f 4d 4d 30 59 30 13 06 07
2a 86 48 ce 3d 02 01 04 08 2a 81 1c cf 55 01 82
2d 03 42 00 04 71 9d 8c 11 27 7a a1 50 f6 ff 90
e3 ff 11 5d 65 47 a2 a0 7e 88 0f af 2c e1 5a c2
cb 56 54 f9 36 7b cd e9 42 8b 21 0f 16 4a a6 ec
05 90 b4 fa c9 a0 75 ff ad 47 60 c3 21 70 29 33
72 7f 3e fa 18 30 0c 06 08 2a 81 1c cf 55 01 83
75 05 00 03 47 00 30 44 02 20 35 fa 54 6b 89 fb
77 55 91 9a 67 cd 34 70 33 ea f2 77 51 8a 40 63
18 44 35 18 5e ca 61 07 6a 6c 02 20 7f d1 86 b2
18 13 31 1e 45 84 db da 1f 6a 91 a9 e2 19 c0 fe
04 6c 68 1e f7 30 a4 4b 45 63 eb b1
证书请求对应的BASE64编码为:
MIIBKDCBzgIBATBuMSIwIAYDVQQDExk2MDEzMDcxMDAwMDAwNTBAWzIwMDAwMDBdMQswCQYDVQQGEwJDTjEUMBIGA1UEChMLQkFOS0NPTU0gQ0ExEjAQBgNVBAsTCUN1c3RvbWVyczERMA8GA1UECxMIQkFOS0NPTU0wWTATBgcqhkjOPQIBBAgqgRzPVQGCLQNCAARxnYwRJ3qhUPb/kOP/EV1lR6KgfogPryzhWsLLVlT5NnvN6UKLIQ8WSqbsBZC0+smgdf+tR2DDIXApM3J/PvoYMAwGCCqBHM9VAYN1BQADRwAwRAIgNfpUa4n7d1WRmmfNNHAz6vJ3UYpAYxhENRheymEHamwCIH/RhrIYEzEeRYTb2h9qkaniGcD+BGxoHvcwpEtFY+ux
步骤105:主机调用USBKey操作接口获取第二签名值、设备证书,根据设备证书、第二签名算法OID和第二签名值组成第二数据包;
本步骤具体包括:
105-1:主机调用USBKey操作接口,将证书请求作为签名原文向USBKey发送签名指令,USBKey使用设备证书私钥对证书请求计算签名得到第二签名值,向主机返回第二签名值;
105-2:主机调用调用USBKey操作接口,向USBKey发送获取设备证书指令,USBKey向主机返回设备证书;
具体的,所述设备证书存储在非用户管理区。
105-3:主机根据设备证书、第二签名算法OID和第二签名值组织生成第二数据包。
例如,本步骤组织生成的第二数据包为:
30 82 04 f8 06 09 2a 86 48 86 f7 0d 01 07 02 a0
82 04 e9 30 82 04 e5 02 01 01 31 0b 30 09 06 05
2b 0e 03 02 1a 05 00 30 21 06 09 2a 86 48 86 f7
0d 01 07 01 a0 14 04 12 46 6f 72 20 70 61 6e 6d
69 6e 20 74 65 73 74 21 21 21 a0 82 02 fe 30 82
02 fa 30 82 02 63 a0 03 02 01 02 02 08 31 32 33
34 31 33 39 35 30 0d 06 09 2a 86 48 86 f7 0d 01
01 05 05 00 30 78 31 0b 30 09 06 03 55 04 06 13
02 43 4e 31 13 30 11 06 03 55 04 0a 13 0a 62 6f
63 63 6f 6d 2e 63 6f 6d 31 11 30 0f 06 03 55 04
0b 13 08 42 41 4e 4b 43 4f 4d 4d 31 14 30 12 06
03 55 04 0b 13 0b 45 6e 74 65 72 70 72 69 73 65
73 31 2b 30 29 06 03 55 04 03 13 22 30 34 30 40
38 32 30 31 32 30 37 31 38 30 32 40 5b 38 30 30
30 30 36 30 36 32 33 5d 40 30 30 30 31 35 30 1e
17 0d 30 32 30 36 31 36 30 32 34 35 34 32 5a 17
0d 33 35 30 36 30 31 30 34 30 30 30 30 5a 30 61
31 18 30 16 06 03 55 04 03 0c 0f 36 32 31 34 30
34 31 30 30 30 30 30 32 35 33 31 10 30 0e 06 03
55 04 0b 0c 07 44 65 76 69 63 65 73 31 11 30 0f
06 03 55 04 0b 0c 08 42 41 4e 4b 43 4f 4d 4d 31
13 30 11 06 03 55 04 0a 0c 0a 62 6f 63 63 6f 6d
2e 63 6f 6d 31 0b 30 09 06 03 55 04 06 0c 02 43
4e 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01
01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01
01 00 bb 09 6c 0d ae a1 55 21 3e 4e 08 c2 58 38
10 60 69 57 bf 9d aa 3d 6b 02 ea 8e 5f 73 a4 3d
f7 9d 83 40 c6 6f 2c 34 15 3e 3a fe 01 ec 16 8a
dd bf e3 f0 bb 83 a3 2a 94 eb a2 28 b7 da 16 e9
d8 0d 03 60 68 05 13 35 0e e4 1f 21 1d 36 8c 3d
65 e9 93 56 ce 66 91 e1 78 6d b3 0b 9f 06 f7 40
b3 54 5e e8 b7 f6 f7 aa fd 81 47 f0 4f 33 43 a8
9a 09 96 3e 6a 91 92 f6 a9 e6 51 a2 c5 ca bf 13
a5 d3 bd c9 88 5e bd c9 a7 e4 5a fa f6 41 34 8d
8c d4 90 9e 41 2f 90 ba 30 c4 3f 1b 74 37 b0 37
73 c0 e4 aa f8 4c c9 f5 7a 17 dd 10 9f 99 85 7b
57 20 3f 42 d4 10 9a 4c c9 23 78 31 d9 b2 c2 43
85 6a 80 13 37 d2 b8 3c e7 d7 0d 90 13 b3 e6 b1
3e 7d 8d ee 62 5b 35 e8 7e 24 22 fc d6 86 98 65
bb ae 5f db 2d 41 b4 f6 15 45 00 da 52 6a 1c a0
f6 8b a4 f9 d8 cd 1b 2f 75 0e 57 6f 71 7a 75 29
ae 9d 02 03 01 00 01 a3 20 30 1e 30 0b 06 03 55
1d 0f 04 04 03 02 05 e0 30 0f 06 03 55 1d 13 01
01 ff 04 05 30 03 01 01 ff 30 0d 06 09 2a 86 48
86 f7 0d 01 01 05 05 00 03 81 81 00 15 73 55 2d
98 6c fc fe 0d ec ce 4c 92 15 a0 b2 33 8c cd 35
14 6f 7f 2a 39 6f 73 f9 ea 1e 7e 1d 6c 0f f4 97
9a f6 9a 1e 8b db 8c ff c7 9a 82 7d f3 aa c4 1c
81 b0 9f ff f2 1f 8e c9 72 49 70 15 d9 00 a5 33
6b ee 37 e0 ac 56 d9 a9 5c 05 c4 4e a2 ca 07 0d
b7 e0 4a 1e 0f 2b f3 57 91 49 b6 63 0a de 87 de
57 fb 60 21 9c 72 49 52 fc 82 1f 39 e0 ec 77 b5
35 50 2e a7 86 f7 4b 70 69 74 bc d9 31 82 01 ac
30 82 01 a8 02 01 01 30 81 84 30 78 31 0b 30 09
06 03 55 04 06 13 02 43 4e 31 13 30 11 06 03 55
04 0a 13 0a 62 6f 63 63 6f 6d 2e 63 6f 6d 31 11
30 0f 06 03 55 04 0b 13 08 42 41 4e 4b 43 4f 4d
4d 31 14 30 12 06 03 55 04 0b 13 0b 45 6e 74 65
72 70 72 69 73 65 73 31 2b 30 29 06 03 55 04 03
13 22 30 34 30 40 38 32 30 31 32 30 37 31 38 30
32 40 5b 38 30 30 30 30 36 30 36 32 33 5d 40 30
30 30 31 35 02 08 31 32 33 34 31 33 39 35 30 09
06 05 2b 0e 03 02 1a 05 00 30 0d 06 09 2a 86 48
86 f7 0d 01 01 01 05 00 04 82 01 00 90 92 be 36
43 ce 8b 13 e6 ac bb 11 8e 80 04 df 12 27 24 7b
5d f8 8b bd 73 26 42 dd 18 32 46 7b 50 de 68 63
24 ed 28 bf 43 82 ca 0b 30 0e ed bd 9c 65 2d dc
19 57 4c c8 2d a9 5a e5 d8 2b fa 55 0d 56 2d 85
60 12 cb 61 69 72 76 bd 1b c8 d9 eb 87 86 57 45
2d 6b 72 31 53 00 6e 36 2d b4 a9 ff 3b fe 96 5c
05 44 ce d4 99 50 89 70 12 d7 b2 c3 b1 9d 07 19
5f 56 b9 b7 56 b1 9a e5 9a f3 91 24 9e 13 72 f7
d3 19 d6 27 54 97 f7 b0 f6 ee c2 7e a0 82 71 c3
e1 2c 45 b4 39 98 22 1e 44 a8 87 79 5c 90 45 98
48 52 b8 ec 13 2f fe 81 c8 36 d6 01 3f 96 6c 55
4d b0 68 ff dc 19 f8 45 5c fd 50 fe 36 da 5b 3c
08 7f f3 e5 30 d2 f9 cf 4b ee 1d 80 32 34 9f a6
e7 37 da bd 53 b4 b5 92 f9 ab aa 3a 06 59 41 fc
25 73 4f f0 a3 ee 81 2f 56 61 f7 90 ca 9a 86 cc
c1 84 b6 54 1f 21 08 ca 8a 8e 1c 97
第二数据包对应的BASE64编码为:
MIIE+AYJKoZIhvcNAQcCoIIE6TCCBOUCAQExCzAJBgUrDgMCGgUAMCEGCSqGSIb3DQEHAaAUBBJGb3IgcGFubWluIHRlc3QhISGgggL+MIIC+jCCAmOgAwIBAgIIMTIzNDEzOTUwDQYJKoZIhvcNAQEFBQAweDELMAkGA1UEBhMCQ04xEzARBgNVBAoTCmJvY2NvbS5jb20xETAPBgNVBAsTCEJBTktDT01NMRQwEgYDVQQLEwtFbnRlcnByaXNlczErMCkGA1UEAxMiMDQwQDgyMDEyMDcxODAyQFs4MDAwMDYwNjIzXUAwMDAxNTAeFw0wMjA2MTYwMjQ1NDJaFw0zNTA2MDEwNDAwMDBaMGExGDAWBgNVBAMMDzYyMTQwNDEwMDAwMDI1MzEQMA4GA1UECwwHRGV2aWNlczERMA8GA1UECwwIQkFOS0NPTU0xEzARBgNVBAoMCmJvY2NvbS5jb20xCzAJBgNVBAYMAkNOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwlsDa6hVSE+TgjCWDgQYGlXv52qPWsC6o5fc6Q9952DQMZvLDQVPjr+AewWit2/4/C7g6MqlOuiKLfaFunYDQNgaAUTNQ7kHyEdNow9ZemTVs5mkeF4bbMLnwb3QLNUXui39veq/YFH8E8zQ6iaCZY+apGS9qnmUaLFyr8TpdO9yYhevcmn5Fr69kE0jYzUkJ5BL5C6MMQ/G3Q3sDdzwOSq+EzJ9XoX3RCfmYV7VyA/QtQQmkzJI3gx2bLCQ4VqgBM30rg859cNkBOz5rE+fY3uYls16H4kIvzWhphlu65f2y1BtPYVRQDaUmocoPaLpPnYzRsvdQ5Xb3F6dSmunQIDAQABoyAwHjALBgNVHQ8EBAMCBeAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAVc1UtmGz8/g3szkySFaCyM4zNNRRvfyo5b3P56h5+HWwP9Jea9poei9uM/8eagn3zqsQcgbCf//IfjslySXAV2QClM2vuN+CsVtmpXAXETqLKBw234EoeDyvzV5FJtmMK3ofeV/tgIZxySVL8gh854Ox3tTVQLqeG90twaXS82TGCAawwggGoAgEBMIGEMHgxCzAJBgNVBAYTAkNOMRMwEQYDVQQKEwpib2Njb20uY29tMREwDwYDVQQLEwhCQU5LQ09NTTEUMBIGA1UECxMLRW50ZXJwcmlzZXMxKzApBgNVBAMTIjA0MEA4MjAxMjA3MTgwMkBbODAwMDA2MDYyM11AMDAwMTUCCDEyMzQxMzk1MAkGBSsOAwIaBQAwDQYJKoZIhvcNAQEBBQAEggEAkJK+NkPOixPmrLsRjoAE3xInJHtd+Iu9cyZC3RgyRntQ3mhjJO0ov0OCygswDu29nGUt3BlXTMgtqVrl2Cv6VQ1WLYVgEsthaXJ2vRvI2euHhldFLWtyMVMAbjYttKn/O/6WXAVEztSZUIlwEteyw7GdBxlfVrm3VrGa5ZrzkSSeE3L30xnWJ1SX97D27sJ+oIJxw+EsRbQ5mCIeRKiHeVyQRZhIUrjsEy/+gcg21gE/lmxVTbBo/9wZ+EVc/VD+NtpbPAh/8+Uw0vnPS+4dgDI0n6bnN9q9U7S1kvmrqjoGWUH8JXNP8KPugS9WYfeQypqGzMGEtlQfIQjKio4clw
步骤106:主机将证书请求和第二数据包发送给后台服务器;
具体的,主机将证书请求和第二数据包以BASE64编码形式发送给后台服务器。
步骤107:后台服务器接收到证书请求和第二数据包,解析所述证书请求获得第一数据包;
步骤108:后台服务器分别对所述证书请求、所述第一数据包和所述第二数据包进行验证,若全部通过验证则执行步骤109,否则执行步骤111;
本实施例中具体的:
1)对所述第一数据包进行验证包括:验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证;
2)对所述证书请求进行验证包括:解析所述证书请求时还会获得第一签名算法OID和第一签名值,使用第一数据包中的公钥对所述第一签名值解密得到解密数据,根据第一签名算法OID所指示的哈希算法对第一数据包计算得到摘要值,比对所述解密数据和摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
3)对所述第二数据包进行验证包括:
a1:判断第二数据包的格式是否合法,是则解析所述第二数据包得到设备证书和第二签名值,执行a2,否则第二数据包不合法,未通过验证;
a2:验证所述设备证书的DN项和颁发者信息是否合法,是则执行a3,否则第二数据包不合法,未通过验证;
例如,判断DN项是否满足:CN=15位智慧网盾序列号@[7位编号],OU=Customers,OU=BANKCOMM,O=BANKCOMM CA,C=CN,若满足则DN项合法,否则不合法;以及检测颁发者信息是否为交行二级CA根证书,是则颁发者信息合法,否则不合法。
a3:使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据第二签名算法OID所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
步骤109:后台服务器签发证书给主机;
具体的,后台服务器将证书以BASE64编码形式发送给主机。
例如,本步骤签发的证书为:
30 82 02 c3 30 82 02 2c a0 03 02 01 02 02 04 ab
cd ef 12 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05
05 00 30 6e 31 0b 30 09 06 03 55 04 06 13 02 63
6e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a
69 6e 67 31 10 30 0e 06 03 55 04 07 13 07 48 61
69 44 69 61 6e 31 10 30 0e 06 03 55 04 0a 13 07
43 75 73 74 6f 6d 65 31 16 30 14 06 03 55 04 0b
13 0d 42 41 4e 4b 43 4f 4d 4d 00 00 00 00 00 31
11 30 0f 06 03 55 04 03 13 08 42 41 4e 4b 43 4f
4d 4d 30 1e 17 0d 31 35 30 35 32 35 30 32 35 31
32 31 5a 17 0d 31 37 30 38 30 32 30 32 35 31 32
31 5a 30 5a 31 0b 30 09 06 03 55 04 06 13 02 63
6e 31 14 30 12 06 03 55 04 0a 13 0b 42 41 4e 4b
43 4f 4d 4d 20 43 41 31 11 30 0f 06 03 55 04 0b
13 08 42 41 4e 4b 43 4f 4d 4d 31 22 30 20 06 03
55 04 03 14 19 36 30 31 33 30 37 31 30 30 30 30
30 30 35 30 40 5b 31 30 30 30 30 30 30 5d 30 82
01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05
00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 bd
5d 13 a6 65 ea 8c 45 cc 9f b1 bf ae 22 32 f1 e2
29 36 a5 40 35 e0 ab f9 82 7c 16 6a aa 47 4c d9
1f bb 66 1c f0 4d 60 13 8b e9 d6 8d 4c 64 f7 e6
d7 f9 42 97 a4 d6 56 fd bc 18 39 27 ed 28 c0 b0
a1 5b 01 97 77 ca e7 c1 a7 cb 66 19 5c 6a 73 79
17 18 71 82 7a 2e ce 10 45 cf 83 f2 15 69 ab eb
b8 01 93 a5 cd a3 21 c1 54 e4 eb 76 4a 3b 8f fd
81 70 0b fe dc 50 81 4a c8 d7 bf 5b 20 c2 55 4a
2d d6 93 a4 96 09 07 b2 23 90 19 13 63 48 57 bf
16 b0 af 38 15 8f b2 3e df 78 a0 ba f5 18 5e e9
69 8f 11 5d ed ae 81 b7 f7 ce fd d4 22 ce 50 23
62 d6 ac c9 44 47 fe 40 07 8d dd f0 52 6e 21 37
8d 70 2c c0 29 fc ef e1 c5 7e b4 d1 73 42 fe dd
bd 9c 8d 5d 65 0e 9d 5c 30 7e b3 6a bb 27 cf 31
d9 28 2e c6 da f6 11 96 c6 12 ad 8d b6 ff a9 f7
ad 3c c7 b5 e5 9b 04 4f 52 04 8a 4f 54 32 89 02
03 01 00 01 30 0d 06 09 2a 86 48 86 f7 0d 01 01
05 05 00 03 81 81 00 27 c9 0f 1b 57 dc 78 cf 54
ab 70 2a 68 e2 1b b7 d8 3d cb 18 bf 80 5a aa 7b
bc 0c 61 c6 4d b4 a4 2f 7c bb 17 78 5f 40 ab f1
e1 ee c5 74 17 c6 55 5f 5f 2b 47 12 7d 5a b3 b0
88 cb d8 51 0b 9c 20 8c 6e 79 12 1b 4c 7f 5f 00
c6 fd 47 a1 f9 37 98 f8 9a ec 92 a8 0a 04 6d fb
f7 68 df c2 b3 82 6b 4d 90 57 bf 98 1b 2f 38 19
d2 d1 0f c9 98 e0 ae 45 f2 d7 89 67 77 04 cc ef
ce e8 c7 9e 7e 58
所述证书对应的BASE64编码为:
MIICwzCCAiygAwIBAgIEq83vEjANBgkqhkiG9w0BAQUFADBuMQswCQYDVQQGEwJjbjEQMA4GA1UECBMHQmVpSmluZzEQMA4GA1UEBxMHSGFpRGlhbjEQMA4GA1UEChMHQ3VzdG9tZTEWMBQGA1UECxMNQkFOS0NPTU0AAAAAADERMA8GA1UEAxMIQkFOS0NPTU0wHhcNMTUwNTI1MDI1MTIxWhcNMTcwODAyMDI1MTIxWjBaMQswCQYDVQQGEwJjbjEUMBIGA1UEChMLQkFOS0NPTU0gQ0ExETAPBgNVBAsTCEJBTktDT01NMSIwIAYDVQQDFBk2MDEzMDcxMDAwMDAwNTBAWzEwMDAwMDBdMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvV0TpmXqjEXMn7G/riIy8eIpNqVANeCr+YJ8FmqqR0zZH7tmHPBNYBOL6daNTGT35tf5Qpek1lb9vBg5J+0owLChWwGXd8rnwafLZhlcanN5FxhxgnouzhBFz4PyFWmr67gBk6XNoyHBVOTrdko7j/2BcAv+3FCBSsjXv1sgwlVKLdaTpJYJB7IjkBkTY0hXvxawrzgVj7I+33iguvUYXulpjxFd7a6Bt/fO/dQizlAjYtasyURH/kAHjd3wUm4hN41wLMAp/O/hxX600XNC/t29nI1dZQ6dXDB+s2q7J88x2Sguxtr2EZbGEq2Ntv+p9608x7XlmwRPUgSKT1QyiQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBACfJDxtX3HjPVKtwKmjiG7fYPcsYv4Baqnu8DGHGTbSkL3y7F3hfQKvx4e7FdBfGVV9fK0cSfVqzsIjL2FELnCCMbnkSG0x/XwDG/Ueh+TeY+JrskqgKBG3792jfwrOCa02QV7+YGy84GdLRD8mY4K5F8teJZ3cEzO/O6MeeflgJ
步骤110:主机将证书导入USBKey中,并对USBKey进行检测,若通过检测则执行步骤113,若未通过检测则执行步骤112;
具体的,导入的证书存储在USBKey的用户管理区。
主机对USBKey进行检测具体包括:
b1:主机调用获取签名证书接口,从USBKey中获取证书,将获取的证书与接收到的后台服务器签发的证书进行比对,若一致则执行b2,若不一致则未通过检测;
b2:主机调用检测接口,判断是否检测成功,是则通过检测,否则未通过检测。
具体的,调用检测接口检测USBKey中证书的完整性,以确保导入证书的USBKey下发到用户手中可直接使用。进一步的,调用检测接口还检测USBKey中存储的签名密钥对的完整性。
步骤111:后台服务器向主机返回失败信息;
步骤112:主机提示证书下载失败,结束。
步骤113:主机提示证书下载成功,结束。
实施例3
本实施例以银行CA给USBKey下载证书的过程为例进行详细介绍。如图3所示,本实施例提供的一种安全导入、签发证书的方法,包括以下步骤:
步骤201:客户端与USBKey建立连接,提示输入PUK码;
具体的,所述PUK码为用户在银行柜台获取的一个10位字符串,由数字和大写字母组成。例如,PUK码为KD47BVRU3E。
步骤202:客户端接收到PUK码后,对USBKey进行初始化;
本实施例中,初始化具体为将USBKey还原为出厂状态,例如将PI N码初始化为默认PIN,清空用户管理区。
所述用户管理区用于存储已下载证书和下载证书过程中USBKey生成的签名密钥对。
步骤203:客户端使用默认PIN获取权限访问USBKey,调用USBKey操作接口获取第一签名值和签名公钥,根据签名公钥组成第一数据包,根据第一数据包、第一签名算法OID和第一签名值组成证书请求;
本步骤具体包括:
203-1:客户端调用USBKey操作接口,向USBKey发送生成密钥对指令,USBKey生成签名公钥和私钥;
具体的,所述签名公钥和私钥存储在USBKey中的用户管理区。
203-2:客户端调用USBKey操作接口,向USBKey发送获取签名公钥指令,USBKey向主机返回签名公钥;
203-3:客户端调用USBKey操作接口,根据签名公钥和DN项组成第一数据包,主机将第一数据包作为签名原文向USBKey发送签名指令,USBKey使用签名私钥对第一数据包计算签名得到第一签名值,并向主机返回第一签名值;
203-4:客户端根据第一数据包、第一签名算法OID和第一签名值组织生成证书请求。
步骤204:客户端调用USBKey操作接口获取第二签名值、设备证书,根据设备证书、第二签名算法OID和第二签名值组成第二数据包;
本步骤具体包括:
204-1:客户端调用USBKey操作接口,将证书请求作为签名原文向USBKey发送签名指令,USBKey使用设备证书私钥对证书请求计算签名得到第二签名值,向客户端返回第二签名值;
204-2:客户端调用USBKey操作接口,向USBKey发送获取设备证书指令,USBKey向客户端返回设备证书;
具体的,所述设备证书存储在非用户管理区。
204-3:客户端根据设备证书、第二签名算法OID和第二签名值组织生成第二数据包。
步骤205:客户端根据证书请求、第二数据包、PUK码、设备序列号组织生成下载证书报文,并上传给后台服务器;
具体的,所述下载证书报文采用json格式报文。客户端将证书请求的BASE64编码、第二数据包的BASE64编码、PUK码以及设备序列号拼接得到json格式的下载证书报文。
例如,本步骤组织得到的下载证书报文为:
{"REQ_BODY":{"nKeyNo":"611800001120010","puk":"KD47BVRU3E","plainP10":"MIICsjCCAZoCADBuMSIw...","signP10":"MIIFVgYJKoZIhvcNAQcC..."},"REQ_HEAD":{}}
其中nKeyNo是设备序列号,puk为PUK码,由用户输入,plainP10是证书请求,signP10是第二数据包。
步骤206:后台服务器接收到下载证书报文,解析下载证书报文获得证书请求、第一数据包、第二数据包、PUK码和设备序列号;
步骤207:后台服务器分别对所述设备序列号、所述PUK码、所述第一数据包、所述证书请求和所述第二数据包进行验证,若全部通过验证则执行步骤208,否则执行步骤209;
本实施例中具体的,
1)对所述设备序列号进行验证具体为,判断所述设备序列号是否与预先存储的设备序列号一致,是则所述设备序列号合法,通过验证;否则所述设备序列号不合法,未通过验证;
2)对所述PUK码进行验证具体为,判断所述PUK码是否与预先存储的PUK码一致,是则所述PUK码合法,通过验证,否则所述PUK码不合法,未通过验证;
优选的,对PUK码进行验证还包括,判断PUK码的使用次数是否达到使用上限,是则未通过验证,否则通过验证。
3)对所述第一数据包进行验证具体为,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证;
4)对所述证书请求进行验证包括:解析所述证书请求时还会获得第一签名算法OID和第一签名值,使用第一数据包中的公钥对所述第一签名值解密得到解密数据,根据第一签名算法OID所指示的哈希算法对第一数据包计算得到摘要值,比对所述解密数据和摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
5)对所述第二数据包进行验证包括:
a1:判断第二数据包的格式是否合法,是则解析所述第二数据包得到设备证书和第二签名值,执行a2,否则第二数据包不合法,未通过验证;
a2:验证所述设备证书的DN项和颁发者信息是否合法,是则执行a3,否则第二数据包不合法,未通过验证;
例如,判断DN项是否满足:CN=15位智慧网盾序列号@[7位编号],OU=Customers,OU=BANKCOMM,O=BANKCOMM CA,C=CN,若满足则DN项合法,否则不合法;以及检测颁发者信息是否为交行二级CA根证书,是则颁发者信息合法,否则不合法。
a3:使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据第二签名算法OID所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
步骤208:后台服务器签发证书,根据证书组织生成响应报文返回给客户端,然后执行步骤210;
例如,根据证书组织生成的响应报文如下:
{"RSP_HEAD":{"TRAN_SUCCESS":"1"},"RSP_BODY":{"returnCode":"0013CM0000","returnMsg":"解锁成功","certEntity":"MIIDvDCCAyWgAwIBAgIE...","dn":"CN=502014121011150@[1000000],OU=Customers,OU=BANKCOMM,O=boccom.com,C=CN","confCount":"1"}}
其中,returnCode是返回码,returnCode后四位为4个0时,表示交易成功,否则表示交易失败,交易失败时,certEntity、dn、confCount为空;returnMsg是返回信息,交易失败时,管理工具提示错误信息;certEntity是cer格式的证书实体;dn是证书主题;confCount是解锁码已使用次数,6-confCount是解锁码仍可使用次数。
步骤209:后台服务器组织生成包含失败信息的响应报文,并返回给客户端;
例如,生成的包含失败信息的响应报文如下:
{"RSP_HEAD":{"TRAN_SUCCESS":"1"},"RSP_BODY":{"returnCode":"0013CM0001","returnMsg":"交易失败","confCount":"0"}}
步骤210:客户端解析接收到的响应报文,判断解析结果,若包含成功信息则执行步骤211,若包含失败信息则执行步骤212;
具体的,判断响应报文中的返回码returnCode的后四位,若均为0表示包含成功信息,执行步骤211,否则表示包含失败信息,执行步骤212。
步骤211:客户端从报文中解析出证书并导入到USBKey中,并提示证书下载成功,结束;
优选的,在提示证书下载成功之后还包括,客户端弹出对话框提示用户修改PIN码。
步骤212:客户端提示证书下载失败,结束。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (28)

1.一种安全导入证书的方法,其特征是,包括:
设备端执行初始化操作;
所述设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,将所述证书请求和所述第二数据包发送给服务器端;服务器端接收设备端发送的第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回所述证书,否则向所述设备端返回失败信息;所述对所述第二数据包进行验证具体为,从所述第二数据包中获取设备证书、第二签名算法对象标识符和第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证;
所述设备端接收所述服务器端返回的证书并完成证书导入。
2.根据权利要求1所述的方法,其特征是:所述将所述证书请求和所述第二数据包发送给服务器端具体为,根据所述证书请求、所述第二数据包组织生成下载证书报文,并发送给服务器端;
所述设备端接收所述服务器端返回的证书并完成证书导入具体为,所述设备端接收所述服务器端返回的下载证书响应报文,解析所述下载证书响应报文,判断是否存在所述证书,是则完成证书导入,否则证书导入失败。
3.根据权利要求1所述的方法,其特征是:所述第一数据包中包含签名公钥和DN项。
4.根据权利要求1所述的方法,其特征是:所述证书请求中包含第一签名算法对象标识符、第一签名值和第一数据包。
5.根据权利要求2所述的方法,其特征是:所述方法还包括:设备端获取设备序列号,提示用户输入PUK码,以及接收用户输入的PUK码;
所述设备端根据所述证书请求、所述第二数据包组织生成下载证书报文具体为,所述设备端根据所述证书请求、所述第二数据包、所述设备序列号、所述PUK码组织生成下载证书报文。
6.根据权利要求1所述的方法,其特征是:所述初始化操作包括,清空用户管理区,所述用户管理区用于存储已下载证书和设备生成的签名公钥和私钥。
7.根据权利要求6所述的方法,其特征是:所述初始化操作还包括初始化PIN码为默认PIN码。
8.根据权利要求1所述的方法,其特征是:所述设备端包括USBKey和主机,所述完成证书导入具体为将所述证书导入到所述USBKey中。
9.一种安全签发证书的方法,其特征是,包括:
服务器端接收设备端发送的第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回所述证书,否则向所述设备端返回失败信息;
所述对所述第二数据包进行验证具体为,从所述第二数据包中获取设备证书、第二签名算法对象标识符和第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
10.根据权利要求9所述的方法,其特征是:所述方法还包括,当所述服务器端接收到所述设备端发来的下载证书报文时,解析所述下载证书报文获取第二数据包和证书请求;
所述向所述设备端返回所述证书具体为向所述设备端返回包含所述证书的下载证书响应报文。
11.根据权利要求10所述的方法,其特征是:所述方法还包括服务器端解析所述下载证书报文获得设备序列号和PUK码,并对所述设备序列号和所述PUK码进行验证。
12.根据权利要求9所述的方法,其特征是:所述对所述第一数据包进行验证具体为,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证。
13.根据权利要求9所述的方法,其特征是:所述对所述证书请求进行验证具体为,从所述证书请求中获取第一签名算法标识符和第一签名值,使用第一数据包中的签名公钥对所述第一签名值解密得到解密数据,根据所述第一签名算法对象标识符所指示的哈希算法对所述第一数据包计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
14.根据权利要求9所述的方法,其特征是:所述对所述第二数据包进行验证具体包括:
步骤a1:判断第二数据包的格式是否合法,是则从所述第二数据包中获取第二签名算法对象标识符、设备证书和第二签名值,执行步骤a2,否则第二数据包不合法,未通过验证;
步骤a2:验证所述设备证书中包含的DN项和颁发者信息是否合法,是则执行步骤a3,否则第二数据包不合法,未通过验证;
步骤a3:使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
15.根据权利要求11所述的方法,其特征是:所述对所述设备序列号进行验证具体为,判断所述设备序列号是否与预先存储的设备序列号一致,是则所述设备序列号合法,通过验证;否则所述设备序列号不合法,未通过验证;
所述对所述PUK码进行验证具体为,判断所述PUK码是否与预先存储的PUK码一致,是则所述PUK码合法,通过验证,否则所述PUK码不合法,未通过验证。
16.一种安全签发证书的服务器,其特征是,包括:
接收模块,用于接收第二数据包和证书请求,并从所述证书请求中获取第一数据包;
验证模块,用于对所述第一数据包、所述证书请求和所述第二数据包进行验证,当全部通过验证时触发发证模块工作,否则触发发送模块工作;
发证模块,用于在所述验证模块的触发下签发证书;
发送模块,用于将发证模块签发的所述证书发送给设备端,或者是在所述验证模块的触发下向所述设备端返回失败信息;
所述验证模块,还具体用于从所述第二数据包中获取设备证书、第二签名算法对象标识符、第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
17.根据权利要求16所述的服务器,其特征是:所述服务器还包括解析模块;
所述接收模块还用于接收下载证书报文,所述解析模块,用于解析所述下载证书报文获取第二数据包和证书请求;
所述发送模块,还用于向所述设备端返回包含所述证书的下载证书响应报文。
18.根据权利要求17所述的服务器,其特征是:所述解析模块,还用于解析所述下载证书报文获得设备序列号和PUK码;
所述验证模块,还用于对所述设备序列号和所述PUK码进行验证。
19.根据权利要求16所述的服务器,其特征是:所述验证模块还具体用于,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证。
20.根据权利要求16所述的服务器,其特征是:所述验证模块还具体用于,从所述证书请求中获取第一签名算法标识符和第一签名值,使用第一数据包中的签名公钥对所述第一签名值解密得到解密数据,根据所述第一签名算法对象标识符所指示的哈希算法对所述第一数据包计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
21.根据权利要求16所述的服务器,其特征是:所述验证模块包括第一判断单元、第二判断单元和第三判断单元;
所述第一判断单元,用于判断第二数据包的格式是否合法,是则从所述第二数据包中获取第二签名算法对象标识符、设备证书和第二签名值,并触发第二判断单元工作,否则第二数据包不合法,未通过验证;
所述第二判断单元,用于验证所述设备证书中包含的DN项和颁发者信息是否合法,是则触发第三判断单元工作,否则第二数据包不合法,未通过验证;
所述第三判断单元,用于使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
22.根据权利要求18所述的服务器,其特征是:所述验证模块包括第四判断单元和第五判断单元;
所述第四判断单元,用于判断所述设备序列号是否与预先存储的设备序列号一致,是则所述设备序列号合法,通过验证;否则所述设备序列号不合法,未通过验证;
所述第五判断单元,用于判断所述PUK码是否与预先存储的PUK码一致,是则所述PUK码合法,通过验证,否则所述PUK码不合法,未通过验证。
23.一种与权利要求16所述安全签发证书的服务器配套使用的安全导入证书的设备端,其特征是,所述设备端包括:
初始化模块,用于执行初始化操作;
生成模块,用于根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包;
发送模块,用于将所述证书请求和所述第二数据包发送给所述服务器;
接收模块,用于接收所述服务器返回的证书;
导入模块,用于将所述接收模块接收到的所述证书导入设备端中。
24.根据权利要求23所述的设备端,其特征是:
所述生成模块,还具体用于根据所述证书请求、所述第二数据包组织生成下载证书报文;
所述发送模块,还具体用于将所述下载证书报文发送给所述服务器。
25.根据权利要求23所述的设备端,其特征是:所述设备端还包括:
获取模块,用于获取设备序列号,提示用户输入PUK码;
所述接收模块,还用于接收用户输入的PUK码;
所述生成模块,还具体用于根据所述证书请求、所述第二数据包、所述设备序列号、所述PUK码组织生成下载证书报文;
所述发送模块,还具体用于将所述下载证书报文发送给所述服务器。
26.根据权利要求23所述的设备端,其特征是:所述设备端包括USBKey和主机,所述主机包括所述初始化模块、所述发送模块、所述接收模块和所述导入模块,所述USBKey包括所述生成模块,所述导入模块具体用于将所述证书导入到所述USBKey中的用户管理区。
27.根据权利要求26所述的设备端,其特征是:所述生成模块,还用于生成签名公钥和私钥并存储在用户管理区;
所述初始化模块,具体用于清空USBKey中的用户管理区。
28.根据权利要求23所述的设备端,其特征是:所述初始化模块,还具体用于初始化PIN码为默认PIN码。
CN201510454779.9A 2015-07-29 2015-07-29 一种安全导入、签发证书的方法、设备及服务器 Active CN105141420B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510454779.9A CN105141420B (zh) 2015-07-29 2015-07-29 一种安全导入、签发证书的方法、设备及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510454779.9A CN105141420B (zh) 2015-07-29 2015-07-29 一种安全导入、签发证书的方法、设备及服务器

Publications (2)

Publication Number Publication Date
CN105141420A CN105141420A (zh) 2015-12-09
CN105141420B true CN105141420B (zh) 2018-09-25

Family

ID=54726640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510454779.9A Active CN105141420B (zh) 2015-07-29 2015-07-29 一种安全导入、签发证书的方法、设备及服务器

Country Status (1)

Country Link
CN (1) CN105141420B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429753A (zh) * 2015-12-30 2016-03-23 宇龙计算机通信科技(深圳)有限公司 提高VoLTE通信安全性的语音数据方法、系统及移动终端
CN106130736B (zh) * 2016-07-06 2019-08-20 北京元心科技有限公司 一种在企业移动管理系统中进行证书签发的方法和系统
CN107645382A (zh) * 2017-10-10 2018-01-30 飞天诚信科技股份有限公司 一种身份标识设备及其工作方法
CN108173659B (zh) * 2017-12-18 2020-11-10 河北华沃通信科技有限公司 一种基于ukey设备的证书管理方法、系统及终端设备
CN110061841B (zh) * 2018-01-18 2022-02-11 北京国盾量子信息技术有限公司 一种签名方法、验签方法及装置
CN112487391A (zh) * 2020-11-27 2021-03-12 交通银行股份有限公司 一种证书预植系统及其方法
CN114428947A (zh) * 2021-12-16 2022-05-03 北京握奇数据股份有限公司 一种USBKey设备生产过程批量灌装其设备证书的方法及系统
CN117411643B (zh) * 2023-12-11 2024-02-27 四川省数字证书认证管理中心有限公司 在线ukey的pin码安全系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527630A (zh) * 2008-12-31 2009-09-09 北京飞天诚信科技有限公司 远程制证的方法、服务器及系统
CN101977193A (zh) * 2010-10-28 2011-02-16 北京飞天诚信科技有限公司 安全下载证书的方法及系统
CN102271042A (zh) * 2011-08-25 2011-12-07 北京神州绿盟信息安全科技股份有限公司 数字证书认证方法、系统、USB Key设备和服务器
CN102932343A (zh) * 2012-10-26 2013-02-13 飞天诚信科技股份有限公司 一种下载数字证书的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700893B2 (en) * 2009-10-28 2014-04-15 Microsoft Corporation Key certification in one round trip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527630A (zh) * 2008-12-31 2009-09-09 北京飞天诚信科技有限公司 远程制证的方法、服务器及系统
CN101977193A (zh) * 2010-10-28 2011-02-16 北京飞天诚信科技有限公司 安全下载证书的方法及系统
CN102271042A (zh) * 2011-08-25 2011-12-07 北京神州绿盟信息安全科技股份有限公司 数字证书认证方法、系统、USB Key设备和服务器
CN102932343A (zh) * 2012-10-26 2013-02-13 飞天诚信科技股份有限公司 一种下载数字证书的方法和装置

Also Published As

Publication number Publication date
CN105141420A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
CN105141420B (zh) 一种安全导入、签发证书的方法、设备及服务器
CN104519066B (zh) 一种激活移动终端令牌的方法
CN104639534B (zh) 网站安全信息的加载方法和浏览器装置
CN106533687B (zh) 一种身份认证方法和设备
CN103297403B (zh) 一种实现动态密码认证的方法和系统
CN103338215B (zh) 基于国密算法建立tls通道的方法
CN105635049B (zh) 基于客户端标识密码的防伪税控方法和装置
CN110337797A (zh) 用于执行双因素认证的方法
CN108092776A (zh) 一种身份认证服务器和身份认证令牌
CN102075327B (zh) 一种实现电子钥匙解锁的方法、装置及系统
CN107786550A (zh) 一种自助设备的安全通信方法、安全通信系统及自助设备
CN101409619B (zh) 闪存卡及虚拟专用网密钥交换的实现方法
CN103716167A (zh) 一种安全采集和分发传输密钥的方法及装置
CN105553654B (zh) 密钥信息处理方法和装置、密钥信息管理系统
CA3164765A1 (en) Secure communication method and device based on identity authentication
CA2518032A1 (en) Methods and software program product for mutual authentication in a communications network
CN101577917A (zh) 一种安全的基于手机的动态密码验证方法
CN101631305B (zh) 一种加密方法及系统
CN110519046A (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN106790278A (zh) 一种双向认证方法及通信系统
CN103036681B (zh) 一种密码安全键盘装置及系统
CN109150897A (zh) 一种端到端的通信加密方法及装置
CN104125230B (zh) 一种短信认证服务系统以及认证方法
CN106713279A (zh) 一种视频终端身份认证系统
CN105721443A (zh) 一种链路会话密钥协商方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant