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

文档序号:9420147阅读:325来源:国知局
一种安全导入、签发证书的方法、设备及服务器的制造方法
【技术领域】
[0001]本发明涉及信息安全领域,尤其涉及一种安全导入、签发证书的方法、设备及服务器。
【背景技术】
[0002]数字证书是互联网通讯中用来标志和证明网络通信双方身份的数字信息文件,包含公开密钥拥有者信息以及公开密钥的文件。它由一个权威机构-----CA(CertificateAuthority,证书授权)中心发行,人们可以在网上用它来识别对方的身份。以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性。
[0003]现有技术中,有的银行将本行颁发证书及下载证书交付于CFCA(中国金融认证中心)进行负责。这样存在以下问题:1.CFCA可以自行进行证书颁发及下载,银行没有束缚力。2.非法用户可以通过CFCA现有的机制自行申请下载证书的请求码,在本地随意进行证书下载和更换。3.若在CSP (加密服务提供程序)正常支持的情况下,非法客户可以将自己的证书下载至银行下发的智能密钥设备(USBKey)中。

【发明内容】

[0004]为解决现有技术中存在的问题,本发明提出了一种安全导入、签发证书的方法、设备及服务器。
[0005]本发明提供的技术方案包括一种安全签发证书的服务器及其方法、一种安全导入证书的设备及其方法;
[0006]其中,一种安全签发证书的服务器,包括:
[0007]接收模块,用于接收第二数据包和证书请求,并从所述证书请求中获取第一数据包;
[0008]验证模块,用于对所述第一数据包、所述证书请求和所述第二数据包进行验证,当全部通过验证时触发发证模块工作,否则触发发送模块工作;
[0009]发证模块,用于在所述验证模块的触发下签发证书;
[0010]发送模块,用于将发证模块签发的所述证书发送给设备端,或者是在所述验证模块的触发下向所述设备端返回失败信息;
[0011 ] 所述验证模块,还具体用于从所述第二数据包中获取设备证书、第二签名算法对象标识符、第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
[0012]所述服务器还包括解析模块;
[0013]所述接收模块还用于接收下载证书报文,所述解析模块,用于解析所述下载证书报文获取第二数据包和证书请求;
[0014]所述发送模块,还用于向所述设备端返回包含所述证书的下载证书响应报文。
[0015]以及,一种安全签发证书的方法,包括:
[0016]服务器端接收设备端发送的第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回所述证书,否则向所述设备端返回失败信息;
[0017]所述对所述第二数据包进行验证具体为,从所述第二数据包中获取设备证书、第二签名算法对象标识符和第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
[0018]上述方法还包括,当所述服务器端接收到所述设备端发来的下载证书报文时,解析所述下载证书报文获取第二数据包和证书请求;所述向所述设备端返回所述证书具体为向所述设备端返回包含所述证书的下载证书响应报文。
[0019]其中,一种安全导入证书的设备,包括:
[0020]初始化模块,用于执行初始化操作;
[0021]生成模块,用于根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包;
[0022]发送模块,用于将所述证书请求和所述第二数据包发送给服务器端;
[0023]接收模块,用于接收所述服务器端返回的证书;
[0024]导入模块,用于将所述接收模块接收到的所述证书导入设备中。
[0025]上述生成模块,还具体用于根据所述证书请求、所述第二数据包组织生成下载证书报文;上述发送模块,还具体用于将所述下载证书报文发送给服务器端。
[0026]以及,一种安全导入证书的方法,包括:
[0027]设备端执行初始化操作;
[0028]所述设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,将所述证书请求和所述第二数据包发送给服务器端;
[0029]所述设备端接收所述服务器端返回的证书并完成证书导入。
[0030]所述将所述证书请求和所述第二数据包发送给服务器端具体为,根据所述证书请求、所述第二数据包组织生成下载证书报文,并发送给服务器端;
[0031]所述设备端接收所述服务器端返回的证书并完成证书导入具体为,所述设备端接收所述服务器端返回的下载证书响应报文,解析所述下载证书响应报文,判断是否存在所述证书,是则完成证书导入,否则证书导入失败。
[0032]采用本发明达到的有益效果:能够有效管理CFCA下发证书的过程,提高证书签发流程和导入流程的安全性,从而有效防范非法用户对证书的随意下载和更改。
【附图说明】
[0033]图1是本发明实施例1提供的一种安全导入证书的设备及签发证书的服务器的组成结构示意图;
[0034]图2是本发明实施例2提供的一种安全导入、签发证书的方法流程图;
[0035]图3是本发明实施例3提供的一种安全导入、签发证书的方法流程图。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]实施例1
[0038]本实施例提供的一种安全签发证书的服务器,如图1所示,包括:
[0039]接收模块1,用于接收第二数据包和证书请求,并从所述证书请求中获取第一数据包;
[0040]验证模块2,用于对所述第一数据包、所述证书请求和所述第二数据包进行验证,当全部通过验证时触发发证模块3工作,否则触发发送模块4工作;
[0041]所述验证模块2还具体用于,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证。具体用于,从所述证书请求中获取第一签名算法标识符和第一签名值,使用第一数据包中的签名公钥对所述第一签名值解密得到解密数据,根据所述第一签名算法对象标识符所指示的哈希算法对所述第一数据包计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
[0042]发证模块3,用于在所述验证模块2的触发下签发证书;
[0043]发送模块4,用于将发证模块3签发的所述证书发送给设备端,或者是在所述验证模块2的触发下向所述设备端返回失败信息。
[0044]所述验证模块2包括第一判断单元、第二判断单元和第三判断单元;
[0045]所述第一判断单元,用于判断第二数据包的格式是否合法,是则从所述第二数据包中获取第二签名算法对象标识符、设备证书和第二签名值,并触发第二判断单元工作,否则第二数据包不合法,未通过验证;
[0046]所述第二判断单元,用于验证所述设备证书中包含的DN项和颁发者信息是否合法,是则触发第三判断单元工作,否则第二数据包不合法,未通过验证;
[0047]所述第三判断单元,用于使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
[0048]所述接收模块I还用于接收下载证书报文,所述发送模块4,还用于向所述设备端返回包含所述证书的下载证书响应报文。所述服务器还包括解析模块5。
[0049]所述解析模块5,用于解析所述下载证书报文获取第二数据包和证书请求;还用于解析所述下载证书报文获得设备序列号和PUK码。
[0050]相应的,所述验证模块2还包括第四判断单元和第五判断单元;
[0051]所述第四判断单元,用于判断所述设备序列号是否与预先存储的设备序列号一致,是则所述设备序列号合法,通过验证;否则所述设备序列号不合法,未通过验证;
[0052]所述第五判断单元,用于判断所述PUK码是否与预先存储的PUK码一致,是则所述PUK码合法,通过验证,否则所述PUK码不合法,未通过验证。
[0053]与上述服务器相对应,本实施例提供的一种安全导入证书的设备,包括:
[0054]初始化模块11,用于执行初始化操作;
[0055]生成模块12,用于根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包;
[0056]发送模块13,用于将所述证书请求和所述第二数据包发送给服务器端;
[0057]接收模块14,用于接收所述服务器端返回的证书;
[0058]导入模块15,用于将所述接收模块14接收到的所述证书导入设备中。
[0059]上述生成模块12,还具体用于根据所述证书请求、所述第二数据包组织生成下载证书报文;发送模块13,还具体用于将所述下载证书报文发送给服务器端。
[0060]本实施例提供的所述设备可以是包括USBKey和主机,所述主机包括所述初始化模块11、所述发送模块13、所述接收模块14和所述导入模块15,所述USBKey包括所述生成模块12,所述导入模块15具体用于将所述证书导入到所述USBKey中的用户管理区。
[0061]上述生成模块12,还用于生成签名公钥和私钥并存储在用户管理区;相应的,所述初始化模块11,具体用于清空USBKey中的用户管理区,还具体用于初始化PIN码为默认PIN 码。
[0062]本实施例提供的设备还包括:
[0063]获取模块,用于获取设备序列号,提示用户输入PUK码;相应的,所述接收模块14,还用于接收用户输入的PUK码;所述生成模块12,还具体用于根据所述证书请求、所述第二数据包、所述设备序列号、所述PUK码组织生成下载证书报文;所述发送模块13,还具体用于将所述下载证书报文发送给服务器端。
[0064]本实施例提供的一种如图1所示设备的导入证书的工作方法流程,包括:
[0065]步骤S1:设备端执行初始化操作;
[0066]具体的,所述初始化操作包括,清空用户管理区,所述用户管理区用于存储已下载证书和设备生成的签名公钥和私钥。
[0067]步骤S2:设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,将所述证书请求和所述第二数据包发送给服务器端;
[0068]具体的,所述第一数据包中包含签名公钥和DN项。所述证书请求中包含第一签名算法对象标识符、第一签名值和第一数据包。
[0069]优选的,设备端包括USBKey和主机,本步骤具体为主机中中间件完成的操作,还可以是主机完成的操作,详见实施例2和3中的描述。
[0070]步骤S3:设备端接收所述服务器端返回的证书并完成证书导入。
[0071]优选的,所述完成证书导入具体为将所述证书导入到所述USBKey中。
[0072]上述步骤S1-步骤S3可以替换为:
[0073]步骤SI丨:设备端执行初始化操作;
[0074]具体的,所述初始化操作包括,清空用户管理区,初始化PIN码为默认PIN码。
[0075]步骤S2':设备端根据第一数据包组成证书请求,根据设备证书、第二签名算法对象标识符和第二签名值组成第二数据包,根据所述证书请求、所述第二数据包组织生成下载证书报文,并发送给服务器端;
[0076]步骤S3':设备端接收所述服务器端返回的下载证书响应报文,解析所述下载证书响应报文,判断是否存在所述证书,是则完成证书导入,否则证书导入失败。
[0077]本实施例提供的一种如图1所示服务器的签发证书的工作方法流程,包括:
[0078]服务器端接收设备端发送的第二数据包和证书请求,从所述证书请求中获取第一数据包,对所述第一数据包、所述证书请求、所述第二数据包进行验证,若全部通过验证则服务器端签发证书,并向所述设备端返回所述证书,否则向所述设备端返回失败信息;
[0079]具体的,对所述第一数据包进行验证具体为,验证所述第一数据包中的DN项是否合法,是则第一数据包合法,通过验证,否则第一数据包不合法,未通过验证。
[0080]对所述证书请求进行验证具体为,从所述证书请求中获取第一签名算法标识符和第一签名值,使用第一数据包中的签名公钥对所述第一签名值解密得到解密数据,根据所述第一签名算法对象标识符所指示的哈希算法对所述第一数据包计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则证书请求合法,通过验证,否则证书请求不合法,未通过验证。
[0081]对所述第二数据包进行验证具体为,从所述第二数据包中获取设备证书、第二签名算法对象标识符、第二签名值,使用所述设备证书的公钥对所述第二签名值解密得到解密数据,根据所述第二签名算法对象标识符所指示的哈希算法对所述证书请求计算得到摘要值,比对所述解密数据和所述摘要值是否一致,是则第二数据包合法,通过验证,否则第二数据包不合法,未通过验证。
[0082]或者是,当所述服务器端接收到所述设备端发来的下载
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1