一种实现智能密钥设备双向认证和交易的方法及装置与流程

文档序号:11324149阅读:406来源:国知局
一种实现智能密钥设备双向认证和交易的方法及装置与流程

本发明涉及信息安全领域,尤其涉及一种实现智能密钥设备双向认证和交易的方法及装置。



背景技术:

随着密码技术和计算机技术的发展,目前常用的1024位rsa算法面临严重的安全威胁,国家密码局决定采用国密算法(sm2算法和sm3算法)替换rsa算法。其中,sm2算法规定了签名、验证、密钥交换等具体细节,sm3用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。

智能密钥设备可实现待签名的敏感信息在智能密钥设备的液晶上进行显示,达到交易过程为用户可控状态和所见及所签的效果,杜绝了黑客篡改信息所带来的安全漏洞,在安全级别得到了质的提升。

目前,对于智能密钥设备多数银行仍旧使用rsa算法进行交易和双向认证,针对智能密钥设备,国密算法暂不支持双向认证和交易,安全性受到严重威胁。



技术实现要素:

本发明的目的是为了解决现有技术中存在的问题,提供了一种实现智能密钥设备双向认证和交易的方法及装置。

本发明采用的技术方案是:

一方面,一种实现智能密钥设备双向认证和交易的方法,方法包括:

步骤s1:当接收到服务器发送的获取客户端证书的请求时,智能密钥设备回送内置的客户端证书列表,客户端证书列表包括证书索引;

步骤s2:当接收到使用客户端证书签名的请求时,智能密钥设备根据请求中包含的证书索引检索证书,根据检索到的证书的属性判断客户端证书类型,如果是双向认证的证书,执行步骤s3;如果是交易的证书,则执行步骤s4;

步骤s3:智能密钥设备对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端,结束;

步骤s4:当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备判断客户端签名原文是否符合报文规范,是则执行步骤s5;否则执行步骤s6;

步骤s5:智能密钥设备解析客户端签名原文并显示交易信息,用户按键确认后,对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端,结束;

步骤s6:当智能密钥设备接收到客户端发送的签名请求后,解析客户端签名原文,对客户端签名原文进行摘要和签名运算,并将签名结果返回客户端,结束。

具体地,步骤s1中,判断客户端证书类型之后,还包括:当接收到客户端发送的密码和验证请求时,智能密钥设备验证密码是否正确,如果错误,向客户端返回错误信息,如果正确,向客户端返回正确信息后,等待接收到服务器发送的客户端证书。

具体地,智能密钥设备向客户端返回错误信息之前,还包括:智能密钥设备判断自身是否锁死,是则打开锁,执行智能密钥设备验证密码是否正确,否则向客户端返回错误信息。

具体地,步骤s3中将客户端签名结果返回客户端的时候,还包括:将客户端签名原文、客户端签名结果和客户端证书发送至服务器;

服务器接收到客户端发送的客户端签名原文、客户端签名结果和客户端证书,调用摘要运算接口对客户端签名结果做一次摘要运算。

进一步地,服务器收到客户端发送的客户端签名原文、客户端签名结果和客户端证书之后,还包括:服务器使用客户端证书验证客户端签名结果是否正确;服务器验证客户端证书是否合法。

优选地,步骤s3之前还包括:当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备解析客户端签名原文并判断客户端签名原文是否符合报文规范,是则向客户端返回错误信息,否则向客户端返回正确信息,执行步骤s3。

进一步地,步骤s3之前,还包括:客户端调用摘要运算接口对客户端签名原文进行摘要运算,并将摘要结果发送至智能密钥设备;

智能密钥设备接收到客户端发送的摘要结果后,将摘要结果作为客户端签名原文,解析当前客户端签名原文并判断当前客户端签名原文是否符合报文规范,是则向客户端返回错误信息,否则向客户端返回正确信息,执行步骤s3。

更近一步地,步骤s3中将客户端签名结果返回客户端时,还包括:将客户端签名原文、客户端签名结果和客户端证书发送至服务器;

服务器接收到客户端发送的当前客户端签名原文、客户端签名结果和客户端证书,调用摘要运算接口对客户端签名结果做两次摘要运算。

具体地,步骤s3中,将客户端签名结果返回客户端时,还包括:将客户端当前支持的对称加密算法返回客户端。

具体地,步骤s3中将客户端签名结果返回客户端后,还包括:服务器选择客户端支持的安全性最高的对称加密算法作为双向认证通信的加密算法,并使用客户端证书公钥对此加密算法进行加密,并将加密结果发送给客户端。

具体地,当接收到客户端发送的解密请求时,智能密钥设备对加密结果进行解密,并将解密得到的加密算法返回客户端。

进一步地,将解密结果返回客户端之后,还包括:客户端根据加密算法,通过生产随机数接口产生一随机数作为通信密钥,并使用服务器证书公钥加密发送给服务器,服务器接收到客户端发送的加密结果后,通过解密接口使用服务器证书私钥解密,获得双向认证加密用的通信密钥。

具体地,步骤s1之前还包括:客户端向服务器发送双向认证连接请求,服务器将服务器信息发送至客户端进行验证,验证未通过,客户端中断双向认证连接的建立,验证通过,服务器向客户端发送双向认证连接请求,执行步骤s1。

进一步地,步骤s1中服务器信息具体包括:服务器公钥证书、服务器签名原文和服务器签名结果;

将服务器信息发送至客户端进行验证之前,还包括:服务器通过随机数生成接口产生随机数作为服务器签名原文,通过摘要接口对服务器签名原文做摘要运算后,对摘要运算结果进行签名得到服务器签名结果。

再进一步地,服务器将服务器信息发送至客户端进行验证,具体包括:客户端验证服务器证书公钥是否合法;客户端验证服务器签名结果是否正确。

更进一步地,客户端验证服务器证书公钥是否合法,具体包括:客户端验证服务器公钥证书是否过期,客户端验证发行服务器证书的ca是否可靠,客户端验证发行者证书的公钥能否正确解开服务器证书的发行者的数字签名,客户端验证服务器证书上的域名是否和服务器的实际域名相匹配;

客户端验证服务器签名结果是否正确,具体包括:客户端对服务器签名原文进行摘要运算,使用服务器证书对服务器签名结果进行验证。

具体地,步骤s4之前还包括:客户端读取智能密钥设备序列号,服务器验证用户信息和智能密钥设备序列号是否匹配,是则登陆网银系统成功,执行步骤s4,否则登录网银系统失败。

具体地,步骤s5和步骤s6中,将客户端签名结果返回客户端后,还包括:客户端将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,服务器接收到客户端发送的信息后,还包括:对客户端签名原文进行一次摘要运算,并根据用户信息和证书信息,比对当前证书是否是此用户绑定的证书,如果不是,交易失败;如果是,则服务器对签名原文进行摘要运算并验证签名是否成功,是则转账交易成功,否则转账交易失败。

具体地,根据检索到的证书的属性判断客户端证书类型,具体为:智能密钥设备根据证书的密钥值判断客户端证书类型。

另一方面,一种智能密钥设备双向认证和交易的装置,装置包括:

第一接收模块,用于接收服务器发送的获取客户端证书的请求;

回送模块,用于当第一接收模块接收到服务器发送的获取客户端证书的请求时,回送内置的客户端证书列表,客户端证书列表包括证书索引;

第二接收模块,用于接收使用客户端证书签名的请求;

检索模块,用于当第二接收模块接收到使用客户端证书签名的请求时,根据请求中包含的证书索引检索证书;

第一判断模块,用于根据检索模块检索到的证书的属性判断客户端证书类型;

运算模块,用于当第一判断模块判断客户端证书类型为双向认证的证书时,对客户端签名原文进行摘要和签名运算;还用于当显示模块显示交易信息后,用户按键确认后,对客户端签名原文进行摘要和签名运算;

发送模块,用于将运算模块得到的客户端签名结果发送至客户端;

第三接收模块,用于当第一判断模块判断客户端证书类型为交易的证书时,接收客户端发送的客户端签名原文和判断请求;

第二判断模块,用于当第三接收模块接收到客户端发送的客户端签名原文和判断请求时,判断客户端签名原文是否符合报文规范;

解析模块,用于当第二判断模块判断客户端签名原文符合报文规范时,解析客户端签名原文;还用于当第四接收模块接收到客户端发送的签名请求时,解析客户端签名原文;

显示模块,用于显示交易信息;

第四接收模块,用于当第二判断模块判断客户端签名原文不符合报文规范时,接收客户端发送的签名请求。

具体地,装置还包括:第五接收模块、验证模块、返回模块和第六接收模块;

第五接收模块,用于接收客户端发送的密码和验证请求;

验证模块,用于当第五接收模块接收到客户端发送的密码和验证请求时,验证密码是否正确;

返回模块,用于当验证模块验证密码错误时,向客户端返回错误信息;当验证模块验证密码正确时,向客户端返回正确信息;

第六接收模块,用于当验证模块验证密码正确时,等待接收到服务器发送的客户端证书。

优选地,装置还包括:第三判断模块;

第三判断模块,用于判断装置自身是否锁死;

验证模块,还用于当第三判断模块判断装置自身锁死时,打开锁验证密码是否正确;

返回模块,还用于当第三判断模块判断装置自身锁死时,向客户端返回错误信息。

具体地,发送模块,具体用于:将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,返回模块还用于:当第二判断模块判断客户端签名原文符合报文规范时,向客户端返回错误信息;当第二判断模块判断客户端签名原文不符合报文规范时,向客户端返回正确信息,运行运算模块。

优选地,装置还包括:第七接收模块和作为模块;

第七接收模块,用于接收客户端发送的摘要结果;

作为模块,用于当第七接收模块接收到客户端发送的摘要结果后,将摘要结果作为客户端签名原文;

解析模块,还用于解析客户端签名原文;

第二判断模块,还用于判断当前客户端签名原文是否符合报文规范;

返回模块,还用于当第二判断模块判断当前客户端签名原文符合报文规范时,向客户端返回错误信息;当第二判断模块判断当前客户端签名原文不符合报文规范时,向客户端返回正确信息;

运算模块,还用于当返回模块向客户端返回正确信息后,对客户端签名原文进行摘要和签名运算。

具体地,装置还包括:第八接收模块;

第八接收模块,用于接收客户端发送的签名请求。

具体地,发送模块,还具体用于:将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,发送模块,具体用于:将客户端当前支持的对称加密算法返回客户端。

优选地,装置还包括:第九接收模块和解密模块;

第九接收模块,用于接收客户端发送的解密请求;

解密模块,用于当第九接收模块接收到客户端发送的解密请求时,对加密结果进行解密,并将解密得到的加密算法返回客户端。

具体地,第一判断模块,具体用于:根据证书的密钥值判断客户端证书类型。

本发明取得的有益效果是:采用本发明的技术方法,智能密钥设备双向认证和交易,大大提高双向认证和交易的安全性。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例二中提供了一种实现智能密钥设备双向认证的方法;

图2为本发明实施例三中提供了一种实现智能密钥设备双向认证的方法;

图3为本发明实施例四中提供了一种实现智能密钥设备交易的方法;

图4为本发明实施例七中提供了一种实现智能密钥设备双向认证和交易的装置。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种实现智能密钥设备双向认证和交易的方法,该方法包括:

步骤s1:当接收到服务器发送的获取客户端证书的请求时,智能密钥设备回送内置的客户端证书列表,客户端证书列表包括证书索引;

步骤s2:当接收到使用客户端证书签名的请求时,智能密钥设备根据请求中包含的证书索引检索证书,根据检索到的证书的属性判断客户端证书类型,如果是双向认证的证书,执行步骤s3;如果是交易的证书,则执行步骤s4;

步骤s3:智能密钥设备对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端,结束;

步骤s4:当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备判断客户端签名原文是否符合报文规范,是则执行步骤s5;否则执行步骤s6;

步骤s5:智能密钥设备解析客户端签名原文并显示交易信息,用户按键确认后,对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端,结束;

步骤s6:当智能密钥设备接收到客户端发送的签名请求后,解析客户端签名原文,对客户端签名原文进行摘要和签名运算,并将签名结果返回客户端,结束。

具体地,步骤s1中,判断客户端证书类型之后,还包括:当接收到客户端发送的密码和验证请求时,智能密钥设备验证密码是否正确,如果错误,向客户端返回错误信息,如果正确,向客户端返回正确信息后,等待接收到服务器发送的客户端证书。

具体地,智能密钥设备向客户端返回错误信息之前,还包括:智能密钥设备判断自身是否锁死,是则打开锁,执行智能密钥设备验证密码是否正确,否则向客户端返回错误信息。

具体地,步骤s3中将客户端签名结果返回客户端的时候,还包括:将客户端签名原文、客户端签名结果和客户端证书发送至服务器;

服务器接收到客户端发送的客户端签名原文、客户端签名结果和客户端证书,调用摘要运算接口对客户端签名结果做一次摘要运算。

进一步地,服务器收到客户端发送的客户端签名原文、客户端签名结果和客户端证书之后,还包括:服务器使用客户端证书验证客户端签名结果是否正确;服务器验证客户端证书是否合法。

优选地,步骤s3之前还包括:当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备解析客户端签名原文并判断客户端签名原文是否符合报文规范,是则向客户端返回错误信息,否则向客户端返回正确信息,执行步骤s3。

进一步地,步骤s3之前,还包括:客户端调用摘要运算接口对客户端签名原文进行摘要运算,并将摘要结果发送至智能密钥设备;

智能密钥设备接收到客户端发送的摘要结果后,将摘要结果作为客户端签名原文,解析当前客户端签名原文并判断当前客户端签名原文是否符合报文规范,是则向客户端返回错误信息,否则向客户端返回正确信息,执行步骤s3。

更近一步地,步骤s3中将客户端签名结果返回客户端时,还包括:将客户端签名原文、客户端签名结果和客户端证书发送至服务器;

服务器接收到客户端发送的当前客户端签名原文、客户端签名结果和客户端证书,调用摘要运算接口对客户端签名结果做两次摘要运算。

具体地,步骤s3中,将客户端签名结果返回客户端时,还包括:将客户端当前支持的对称加密算法返回客户端。

具体地,步骤s3中将客户端签名结果返回客户端后,还包括:服务器选择客户端支持的安全性最高的对称加密算法作为双向认证通信的加密算法,并使用客户端证书公钥对此加密算法进行加密,并将加密结果发送给客户端。

具体地,当接收到客户端发送的解密请求时,智能密钥设备对加密结果进行解密,并将解密得到的加密算法返回客户端。

进一步地,将解密结果返回客户端之后,还包括:客户端根据加密算法,通过生产随机数接口产生一随机数作为通信密钥,并使用服务器证书公钥加密发送给服务器,服务器接收到客户端发送的加密结果后,通过解密接口使用服务器证书私钥解密,获得双向认证加密用的通信密钥。

具体地,步骤s1之前还包括:客户端向服务器发送双向认证连接请求,服务器将服务器信息发送至客户端进行验证,验证未通过,客户端中断双向认证连接的建立,验证通过,服务器向客户端发送双向认证连接请求,执行步骤s1。

进一步地,步骤s1中服务器信息具体包括:服务器公钥证书、服务器签名原文和服务器签名结果;

将服务器信息发送至客户端进行验证之前,还包括:服务器通过随机数生成接口产生随机数作为服务器签名原文,通过摘要接口对服务器签名原文做摘要运算后,对摘要运算结果进行签名得到服务器签名结果。

再进一步地,服务器将服务器信息发送至客户端进行验证,具体包括:客户端验证服务器证书公钥是否合法;客户端验证服务器签名结果是否正确。

更进一步地,客户端验证服务器证书公钥是否合法,具体包括:客户端验证服务器公钥证书是否过期,客户端验证发行服务器证书的ca是否可靠,客户端验证发行者证书的公钥能否正确解开服务器证书的发行者的数字签名,客户端验证服务器证书上的域名是否和服务器的实际域名相匹配;

客户端验证服务器签名结果是否正确,具体包括:客户端对服务器签名原文进行摘要运算,使用服务器证书对服务器签名结果进行验证。

具体地,步骤s4之前还包括:客户端读取智能密钥设备序列号,服务器验证用户信息和智能密钥设备序列号是否匹配,是则登陆网银系统成功,执行步骤s4,否则登录网银系统失败。

具体地,步骤s5和步骤s6中,将客户端签名结果返回客户端后,还包括:客户端将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,服务器接收到客户端发送的信息后,还包括:对客户端签名原文进行一次摘要运算,并根据用户信息和证书信息,比对当前证书是否是此用户绑定的证书,如果不是,交易失败;如果是,则服务器对签名原文进行摘要运算并验证签名是否成功,是则转账交易成功,否则转账交易失败。

具体地,根据检索到的证书的属性判断客户端证书类型,具体为:智能密钥设备根据证书的密钥值判断客户端证书类型。

实施例二

本实施例二提供了一种实现智能密钥设备双向认证的方法,如图1所示,包括:

步骤101:客户端安装智能密钥设备中间件并在网银证书系统下载签名证书;

在本实施例中,智能密钥设备中间件为安装在pc端的、能通过此软件的接口和智能密钥设备进行交互的软件。智能密钥设备可显示相关交易信息,它在设计时规定了第一次用签名算法进行签名时可直接对智能密钥设备外部的摘要结果进行签名,下载签名证书结束后,签名算法签名时不再对由软件实现的智能密钥设备外部摘要运算得到的摘要结果签名,所有签名原文必须传入智能密钥设备内部,由智能密钥设备硬件做摘要,然后再做签名,防止本智能密钥设备作为其它usbkey使用。

步骤102:客户端通过网络向服务器发送双向认证连接请求;

需要说明的是,本实施例中的服务器特指双向认证(ssl)服务器。

在本实施例中,客户端发送的双向认证连接请求包括双向认证协议的版本号、客户端支持的加密算法的种类以及其他服务器和客户端之间通讯所需要的信息。

步骤103:服务器收到客户端的请求后,生成服务器签名原文,并对服务器签名原文进行签名后,服务器将服务器公钥证书、服务器签名原文和服务器签名结果发给客户端;

具体地,在本实施例中,服务器通过随机数生成接口产生随机数作为签名原文,通过摘要接口对随机数做摘要(hash)运算,然后对摘要(hash)结果签名后,将服务器公钥证书、服务器签名原文和服务器签名结果发给客户端。

除此之外,服务器还向客户端传送了双向认证协议的版本号,服务器支持的加密算法的种类及其他相关信息。

例如,签名原文为123456,经过第二预设算法即摘要运算后的结果为:feqncco3yq9h5zugld3czjt4lbs=,通过第一预设算法即签名后的结果为:

miig3gyjkozihvcnaqccoiigzzccbsscaqexczajbgurdgmcgguamasgcsqgsib3dqehaaccbbwwggw4miieokadagecago24tumaaaaazkuma0gcsqgsib3dqebbquamdgxezarbgojkiajk/isz。

步骤104:客户端验证服务器公钥证书是否合法,如果是则执行步骤105,否则中断双向认证连接的建立;

在本实施例中,客户端利用服务器传过来的信息验证服务器公钥证书的合法性。其中,验证服务器公钥证书的合法性具体包括:判断服务器公钥证书是否过期,判断发行服务器证书的ca是否可靠,判断发行者证书的公钥能否正确解开服务器公钥证书的发行者的数字签名,判断服务器公钥证书上的域名是否和服务器的实际域名相匹配,当判断均为是时则服务器公钥证书合法,否则服务器公钥证书不合法。

具体地,颁发服务器证书或客户端证书时,被颁发的证书由ca根证书签名。通过根证书或证书链,可验证服务器证书和客户端证书的合法性,达到验证证书合法性的目的。

步骤105:客户端使用服务器公钥证书和服务器签名原文对服务器签名结果进行验证,验证通过则执行步骤106,验证未通过则中断双向认证连接的建立;

具体地,在本实施例中,客户端对签名原文进行摘要运算,然后调用验证签名方法、摘要结果,使用服务器公钥对签名结果进行验证,其中,签名结果可调用自定义的接口进行验证。

步骤106:服务器向客户端发送双向认证连接请求;

在本实施例中,服务器通过网络向客户端发送的双向认证连接请求,包括:双向认证协议的版本号、加密算法的种类以及其他服务器和客户端之间通讯所需要的信息。

步骤107:智能密钥设备验证pin码,验证未通过,则中断双向认证连接的建立,验证通过则执行步骤108;

具体地,在本实施例中,用户在客户端输入登录密码后,客户端将登录密码发送至智能密钥设备,智能密钥设备去比对此密码与自身预设的密码是否相同,如果相同,则验证通过,执行步骤108,否则中断双向认证连接的建立。

更具体地,在本实施例中,验证智能密钥设备的pin码,pin码验证通过后,签名接口才能进行签名,如果验证未通过,需判断智能密钥设备是否锁死,是则退出,否则继续验证pin码是否正确。

需要说明的是,在执行步骤108之前还包括:服务器将签名原文发送给智能密钥设备,智能密钥设备接收后,解析签名原文,判断签名原文是否符合报文规范,是则报错,结束双向认证,否则执行步骤108。由于签名原文是随机数,在双向认证中签名原文均是不符合报文规范,即无需使用智能密钥设备的按“确认”键,不显示信息,只需验证密码。

步骤108:客户端收到服务器发送的连接请求后,客户端生成签名原文,并通过智能密钥设备中间件接口找到智能密钥设备内的客户端证书,使用客户端证书通过签名接口对签名原文进行摘要和签名运算;

具体地,在本实施例中,客户端收到服务器请求后,客户端会先产生随机数作为签名原文,客户端将签名原文发送给智能密钥设备后,客户端调用签名接口并发送调用签名接口的请求给智能密钥设备,智能密钥设备对随机数进行摘要运算和签名运算。

一般情况下,通过软件接口调用客户端证书做签名运算前,摘要运算接口只包含摘要指令,签名接口只包含签名指令,但在本实施例中,签名接口既包含摘要指令又包含签名指令,即签名接口先后实现摘要和签名运算。

需要说明的是,在本实施例中,运用国密算法sm2进行签名运算,sm3进行摘要运算。

在本实施例中,调用的签名接口为skf_eccsigndata,接口skf_eccsigndata只做签名,但是为了避免本智能密钥设备作为其它usbkey使用,在本实施例中,接口skf_eccsigndata既做摘要,又做签名。接口签名前,必须先做摘要,一般摘要运算有对应接口实现,生成固定长度的数据。

例如,签名原文为123456,经过第二预设算法即摘要运算后的结果为:feqncco3yq9h5zugld3czjt4lbs=,通过第一预设算法即签名后的结果为:

miig3gyjkozihvcnaqccoiigzzccbsscaqexczajbgurdgmcgguamasgcsqgsib3dqehaaccbbwwggw4miieokadagecago24tumaaaaazkuma0gcsqgsib3dqebbquamdgxezarbgojkiajk/isz。

步骤109:签名结束后,客户端将客户端签名原文、客户端签名结果、客户端证书和当前支持的对称加密算法发送给服务器;

在本实施例中,客户端已告知服务器支持哪些对称加密算法,在服务器决定用哪种加密算法后,会将所用加密算法发送给客户端。

步骤110:服务器对客户端签名原文进行一次摘要运算;

例如,摘要后的结果为feqncco3yq9h5zugld3czjt4lbs=。

步骤111:服务器使用客户端证书验证客户端签名结果是否正确,是则执行步骤112,否则中断双向认证连接的建立;

在本实施例中,验证签名结果的时候,需要先对签名原文做摘要,再验证签名结果是否正确。具体地,先调用verify接口对签名原文做摘要后,对签名结果进行验证。

验证签名时候,需要先对签名原文做摘要,再验证。签名时候,也是嫌对签名原文作占用,再签名的。做摘要,是生成固定长度的数据。

步骤112:服务器验证客户端证书是否合法,验证通过则服务器临时保存客户端证书,继续执行步骤113,验证未通过中断双向认证连接的建立;

在本实施例中,服务器验证客户端证书是否合法具体包括:判断客户的证书使用日期是否有效,判断为客户提供证书的ca是否可靠,判断发行ca的公钥能否正确解开客户证书的发行ca的数字签名,检查客户的证书是否在证书废止列表(crl)中。

步骤113:服务器选择客户端支持的安全性最高的对称加密算法作为双向认证通信的加密算法,并用客户端证书公钥对此加密算法进行加密,并将加密结果发送给客户端;

在本实施例中,服务器通过服务器端加密接口,利用客户端证书公钥对此加密算法进行加密,在服务器验证完客户端证书后,客户端已经将支持的加密算法发送给服务器。

步骤114:客户端接收加密结果后,使用客户端证书私钥进行解密,根据服务器约定的加密算法,通过生产随机数接口产生一随机数,作为通信密钥,并使用服务器公钥对通信密钥进行加密,将加密结果发送给服务器;

在本实施例中,客户端接收到的加密结果,是使用智能密钥设备内对应证书的公钥进行加密的,使用同公钥对应的私钥,即可解密密文,得到加密前的数据,并且客户端通过解密接口、使用加密证书私钥进行解密。

步骤115:服务器接收客户端发送的加密结果,使用服务器私钥解密,获得双向认证加密用的通信密钥,双向通道建立,结束。

具体地,服务器接收到的加密结果是使用服务器证书的公钥加密产生的,使用同服务器证书对应的私钥,即可解密密文,得到机密前的数据。

在本实施例中,服务器获得双向认证加密用的通信密钥后,服务器、客户端接下来的通信,都使用约定好的对称加密算法和对称密钥加密,双向认证通道建立成功。

实施例三

本实施例提供一种实现智能密钥设备双向认证的方法,如图2所示,包括:

步骤201:客户端安装智能密钥设备中间件并在网银证书系统下载签名证书;

在本实施例中,智能密钥设备中间件为安装在pc端的、能通过此软件的接口和智能密钥设备进行交互的软件。智能密钥设备可显示相关交易信息,它在设计时规定了第一次用签名算法进行签名时可直接对智能密钥设备外部的摘要结果进行签名,下载签名证书结束后,签名算法签名时不再对由软件实现的智能密钥设备外部摘要运算得到的摘要结果签名,所有签名原文必须传入智能密钥设备内部,由智能密钥设备硬件做摘要,然后再做签名,防止本智能密钥设备作为其它usbkey使用。

步骤202:客户端通过网络向服务器发送双向认证连接请求;

需要说明的是,本实施例中的服务器特指双向认证(ssl)服务器。

在本实施例中,客户端发送的双向认证连接请求包括双向认证协议的版本号、加密算法的种类以及其他服务器和客户端之间通讯所需要的信息。

步骤203:服务器收到客户端的请求后,生成签名原文,并对签名原文进行签名后,服务器将服务器公钥证书、服务器签名原文和服务器签名结果发给客户端;

具体地,在本实施例中,服务器通过随机数生成接口产生随机数作为签名原文,通过摘要接口对随机数做摘要(hash)运算,然后对摘要(hash)结果签名后,将服务器公钥证书、服务器签名原文、服务器签名结果发给客户端。

除此之外,服务器还向客户端传送了双向认证协议的版本号,服务器支持的加密算法的种类及其他相关信息。

例如,签名原文为123456,经过第二预设算法即摘要运算后的结果为:feqncco3yq9h5zugld3czjt4lbs=,通过第一预设算法即签名后的结果为:

miig3gyjkozihvcnaqccoiigzzccbsscaqexczajbgurdgmcgguamasgcsqgsib3dqehaaccbbwwggw4miieokadagecago24tumaaaaazkuma0gcsqgsib3dqebbquamdgxezarbgojkiajk/isz。

步骤204:客户端验证服务器公钥证书是否合法,如果是则执行步骤205,否则中断双向认证连接的建立;

在本实施例中,客户端利用服务器传过来的信息验证服务器公钥证书的合法性。其中,验证服务器公钥证书的合法性具体包括:判断服务器公钥证书是否过期,判断发行服务器证书的ca是否可靠,判断发行者证书的公钥能否正确解开服务器公钥证书的发行者的数字签名,判断服务器公钥证书上的域名是否和服务器的实际域名相匹配。

具体地,颁发服务器证书或客户端证书时,被颁发的证书由ca根证书签名。通过根证书或证书链,可验证服务器证书和客户端证书的合法性,达到验证证书可信任的目的。

步骤205:客户端使用服务器公钥证书和服务器签名原文对服务器签名结果进行验证,验证通过则执行步骤206,验证未通过则客户端中断双向认证连接的建立;

具体地,在本实施例中,客户端通过摘要算法对签名原文进行摘要运算,然后调用验证签名方法、摘要结果,使用服务器公钥对签名结果进行验证。

步骤206:服务器向客户端发送双向认证连接请求;

在本实施例中,服务器通过网络向客户端发送的双向认证连接请求,包括:双向认证协议的版本号、加密算法的种类以及其他服务器和客户端之间通讯所需要的信息。

步骤207:智能密钥设备验证pin码,验证未通过,则中断双向认证连接的建立,验证通过则执行步骤208;

具体地,在本实施例中,用户在客户端输入登录密码后,客户端将登录密码发送至智能密钥设备,智能密钥设备去比对此密码与自身预设的密码是否相同,如果相同,则验证通过,执行步骤208,否则中断双向认证连接的建立。

更具体地,在本实施例中,验证智能密钥设备的pin码,pin码验证通过后,签名接口才能进行签名,如果验证未通过,需判断智能密钥设备是否锁死,是则退出,否则继续验证pin码是否正确。

需要说明的是,在执行步骤208之前还包括:服务器将签名原文发送给智能密钥设备,智能密钥设备接收后,解析签名原文,判断签名原文是否符合报文规范,是则报错,结束双向认证,否则执行步骤208。由于签名原文是随机数,在双向认证中签名原文均是不符合报文规范,即无需使用智能密钥设备的按“确认”键,不显示信息,只需验证密码。

步骤208:客户端收到服务器请求后,客户端生成签名原文,并通过智能密钥设备中间件找到智能密钥设备内的客户端证书,调用摘要运算接口对签名原文进行摘要运算;

具体地,在本实施例中,客户端收到服务器请求后,客户端会先产生随机数作为签名原文,然后通过摘要运算接口,在智能密钥设备的外部对签名原文进行摘要运算,生成固定长度的数据。

需要说明的是,在本实施例中,运用国密算法sm2进行签名运算,sm3进行摘要运算。

在本实施例中,调用的接口为skf_digestinit和skf_digest,

skf_digestinit接口进行摘要初始化,skf_digest接口进行摘要运算,两个接口相结合,实现摘要运算。

例如,签名原文为123456,经过第二预设算法即摘要运算后的结果为:feqncco3yq9h5zugld3czjt4lbs=。

在本实施例中,通过软件接口调用客户端证书做签名前,摘要运算接口只包含摘要指令,签名接口只包含签名指令,但在本实施例中,签名接口即包含摘要指令,又包含签名指令,即签名接口先后实现摘要和签名运算。在本实施例中,调用的签名接口为skf_eccsigndata,接口skf_eccsigndata只做签名,但是为了避免本智能密钥设备作为其它usbkey使用,在本实施例中,接口skf_eccsigndata既做摘要,又做签名。接口签名前,必须先做摘要,一般摘要运算有对应接口实现,生成固定长度的数据。

例如,签名原文为123456,经过第二预设算法即摘要运算后的结果为:8gkhg+vrpawjmzsfdh3riyk6ffg=,通过第一预设算法即签名后的结果为:

miig3gyjkozihvcnaqccoiigzzccbsscaqexczajbgurdgmcgguamasgcsqgsib3dqehaaccbbwwggw4miieokadagecago24tumaaaaazkuma0gcsqgsib3dqebbquamdgxezarbgojkiajk/isz。

步骤209:签名结束后,客户端将客户端签名原文、客户端签名结果、客户端证书和当前支持的对称加密算法发送给服务器;

在本实施例中,客户端已告知服务器支持哪些对称加密算法,在服务器决定用哪种加密算法后,会将所用算法发送给客户端。

步骤210:服务器对客户端签名原文进行两次摘要运算;

例如,第一次摘要后的结果为:feqncco3yq9h5zugld3czjt4lbs=,第二次摘要后的结果为:8gkhg+vrpawjmzsfdh3riyk6ffg=。

步骤211:服务器使用客户端证书验证客户端签名结果是否正确,是则执行步骤212,否则中断双向认证连接的建立;

在本实施例中,验证签名结果的时候,需要先对签名原文做摘要,再验证签名结果是否正确。具体地,先调用verify接口对签名原文做摘要后,对签名结果进行验证。

验证签名时候,需要先对签名原文做摘要,再验证。签名时候,也是先对签名原文作摘要,再签名的。做摘要,是生成固定长度的数据。

步骤212:服务器验证客户端证书是否合法,验证通过则服务器临时保存客户端证书,继续执行步骤213,验证未通过则服务器中断双向认证连接的建立;

在本实施例中,服务器验证客户端的公钥证书是否合法具体包括:判断客户的证书使用日期是否有效,判断为客户提供证书的ca是否可靠,判断发行ca的公钥能否正确解开客户证书的发行ca的数字签名,检查客户的证书是否在证书废止列表(crl)中。

步骤213:服务器选择客户端支持的安全性最高的对称加密算发法作为双向认证通信的加密算法,并用客户端证书对此加密算法进行加密后,将加密结果发送给客户端;

在本实施例中,服务器通过服务器端加密接口,利用客户端证书对此加密算法进行加密,在服务器验证完客户端证书后,客户端已经将支持的加密算法发送给服务器。

步骤214:客户端接收加密结果后,使用客户端证书私钥进行解密,根据服务器约定的对称加密算法,通过生产随机数接口产生一随机数,作为通信密钥,并使用服务器公钥加密发送给服务器;

在本实施例中,客户端接收到的加密结果,是使用智能密钥设备内对应证书的公钥进行加密的,使用同公钥对应的私钥,即可解密密文,得到加密前的数据,并且客户端通过解密接口、使用加密证书私钥进行解密。

步骤215:服务器接收客户端发送的加密结果,使用服务器私钥解密,获得双向认证加密用的通信密钥,双向通道建立,结束。

具体地,服务器接收到的加密结果是使用服务器证书的公钥加密产生的,使用同服务器证书对应的私钥,即可解密密文,得到机密前的数据。

在本实施例中,服务器获得双向认证加密用的通信密钥后,服务器、客户端接下来的通信,都使用约定好的对称加密算法和对称密钥加密,双向认证通道建立成功。

实施例四

本实施例提供了一种实现智能密钥设备交易的方法,如图3所示,包括:

步骤301:网银柜台安装智能密钥设备中间件并在网银证书系统下载签名证书;

步骤302:网银柜台通过智能密钥设备序列号、证书信息和用户网银账号绑定,成功开户;

在本实施例中,证书信息为证书序列号、证书有效期等;用户网银账号即为网银账号,例如身份证号或者银行卡号等等。

例如,智能密钥设备序列号为100000001,证书序列号为abc000001,银行卡号为:6201234567890123。

值得说明的是,用户账号、智能密钥设备序列号和证书序列号一一对应。在指定用户名的前提下,必须持有对应的智能密钥设备和对应的证书,才可进行网银交易。

步骤303:当用户登录网银系统时,客户端读取智能密钥设备序列号,服务器验证用户名、密码和智能密钥设备序列号是否匹配,是则登陆网银系统成功,执行步骤304,否则登录网银系统失败;

在本实施例中,在执行本步骤之前,还需要用户插入智能密钥设备并输入用户名、密码。

需要说明的是,本实施例中的服务器特指网银服务器。

步骤304:智能密钥设备接收到服务器传来的签名原文,判断签名原文是否符合报文规范,是则执行步骤305,否则执行步骤308;

在本实施例中,签名原文是转账的交易信息。

例如,若签名原文为:

“<?xmlversion="1.0"encoding="utf-8"?><t><d><m><k>

收款人名称:</k><v>张三</v></m><m><k>

收款人帐号:</k><v>955823609076818</v></m><m><k>

金额:</k><v>123.23</v></m></d><e><m><k>

流水号:</k><v>12345678</v></m></e></t>”,则符合报文规范;

若签名原文为:“收款人名称:张三收款人帐号:955823609076818金额:123.23流水号:12345678”,则不符合报文规范。

步骤305:智能密钥设备验证pin码,验证通过则执行步骤306,否则转账交易失败;

具体地,在本实施例中,智能密钥设备验证pin码通过后,智能密钥设备才能进行接下来的工作,如果验证未通过,需判断智能密钥设备是否锁死,是则退出,否则继续验证pin码是否正确,如果正确,则执行步骤306,否则转账交易失败。

步骤306:智能密钥设备解析交易报文并显示交易信息,判断交易信息是否正确,是则按键确认,执行步骤307,否则转账交易失败,退出;

步骤307:客户端将签名原文传给智能密钥设备,智能密钥设备调用签名接口,根据交易报文规范对签名原文进行摘要和签名运算,执行步骤310;

具体地,在本实施例中,客户端将签名原文传给智能密钥设备,在智能密钥设备内部对签名原文进行摘要运算后,客户端通过智能密钥设备中间件找到智能密钥设备内的客户端证书,调用签名接口根据交易报文规范对签名接口进行解析,并进行签名。

步骤308:智能密钥设备验证pin码,验证通过则执行步骤309,否则转账交易失败;

具体地,在本实施例中,智能密钥设备验证

通过后,智能密钥设备才能进行接下来的工作,如果验证未通过,需判断智能密钥设备是否锁死,是则退出,否则继续验证pin码是否正确,如果正确,执行步骤309,否则转账交易失败。

步骤309:客户端将签名原文传给智能密钥设备,通过智能密钥设备中间件找到智能密钥设备内的客户端证书,调用签名接口对签名原文进行摘要和签名运算;

步骤310:客户端将签名原文、客户端签名结果和客户端证书发送给服务器;

步骤311:服务器对客户端发送的签名原文进行一次摘要运算;

步骤312:服务器根据用户名和证书信息比对客户端证书是否是此用户绑定的证书,如果是,则执行步骤309,否则转账交易失败;

在本实施例中,服务器还需要验证用户对应的证书信息。

步骤313:服务器对签名原文进行摘要运算并验证签名是否成功,是则转账交易成功,否则转账交易失败。

具体地,在本实施例中,服务器接收客户端信息,对签名原文进行一次摘要运算后使用客户端证书验证签名结果是否正确,如果不正确则转账交易失败,如果正确,则服务器确认转账的报文格式是否正确,如果正确,则转账交易成功,否则转账交易失败。

更具体地,在本实施例中,对于符合报文格式的交易,在智能密钥设备按下“确认”键后签名成功,网银后台即可验证通过;对于不符合报文格式的交易,网银后台可以判断出来不是转账,验证签名失败。

实施例五

本实施例提供了智能密钥设备进行双向认证时执行的操作,包括:

步骤401:当接收到服务器发送的获取客户端证书的请求时,智能密钥设备回送内置的客户端证书列表,客户端证书列表包括证书索引;

在本实施例中,步骤401之前还包括:客户端向服务器发送双向认证连接请求,服务器将服务器信息发送至客户端进行验证,验证未通过,客户端中断双向认证连接的建立,验证通过,服务器向客户端发送双向认证连接请求,执行步骤401;

其中,服务器信息具体包括:服务器公钥证书、服务器签名原文和服务器签名结果;

进一步地,将服务器信息发送至客户端进行验证之前,还包括:服务器通过随机数生成接口产生随机数作为服务器签名原文,通过摘要接口对服务器签名原文做摘要运算后,对摘要运算结果进行签名得到服务器签名结果。

更进一步地,服务器将服务器信息发送至客户端进行验证,具体包括:客户端验证服务器证书公钥是否合法;客户端验证服务器签名结果是否正确;

再进一步地,客户端验证服务器证书公钥是否合法,具体包括:客户端验证服务器公钥证书是否过期,客户端验证发行服务器证书的ca是否可靠,客户端验证发行者证书的公钥能否正确解开服务器证书的发行者的数字签名,客户端验证服务器证书上的域名是否和服务器的实际域名相匹配;

客户端验证服务器签名结果是否正确,具体包括:客户端对服务器签名原文进行摘要运算,使用服务器证书对服务器签名结果进行验证。

步骤402:当接收到使用客户端证书签名的请求时,智能密钥设备根据使用客户端证书签名的请求中包含的证书索引检索证书,根据检索到的证书的属性判断客户端证书为双向认证的证书;

在本实施例中,根据检索到的证书的属性判断客户端证书类型,具体为:智能密钥设备根据证书的密钥值判断客户端证书类型。

例如,双向认证的证书的密钥值为:5;交易的证书的密钥值为:4。

步骤403:当接收到客户端发送的密码和验证请求时,智能密钥设备验证密码是否正确,如果错误,向客户端返回错误信息,如果正确,向客户端返回正确信息;

在本实施例中,向客户端返回错误信息之前,还包括:智能密钥设备判断自身是否锁死,是则打开锁重新验证密码是否正确,否则向客户端返回错误信息。

步骤404:当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备解析客户端签名原文并判断客户端签名原文是否符合报文规范,是则所向客户端返回错误信息,否则向客户端返回正确信息;

步骤405:当接收到客户端发送的签名请求时,智能密钥设备对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端;

在本实施例中,除了将客户端签名结果返回客户端外,还包括:客户端将客户端签名原文、客户端签名结果和客户端证书发送至服务器;

具体地,服务器接收到客户端发送的客户端签名原文、客户端签名结果和客户端证书,调用摘要运算接口对客户端签名结果做一次摘要运算。

具体地,服务器收到客户端发送的客户端签名原文、客户端签名结果和客户端证书后,还包括:服务器使用客户端证书验证服务器签名结果是否正确;服务器验证客户端证书是否合法;

在本实施例中,当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备解析客户端签名原文并判断客户端签名原文是否符合报文规范,是则所向客户端返回错误信息,否则向客户端返回正确信息,执行步骤405;

此外,在执行步骤405之前,还可以包括:客户端调用摘要运算接口对客户端签名原文进行摘要运算,并将摘要结果发送至智能密钥设备;智能密钥设备接收到客户端发送的摘要结果后,将摘要结果作为当前客户端签名原文,解析当前客户端签名原文并判断当前客户端签名原文是否符合报文规范,是则向客户端返回错误信息,否则向客户端返回正确信息;

更具体地,当接收到客户端发送的签名请求时,智能密钥设备对当前客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端。另外,将客户端签名结果返回客户端时,还包括:将客户端签名原文、客户端签名结果和客户端证书发送至服务器;

服务器接收到客户端发送的当前客户端签名原文、客户端签名结果和客户端证书,调用摘要运算接口对客户端签名结果做两次摘要运算。

在本实施例中,将客户端签名结果返回客户端外,还包括:将客户端当前支持的对称加密算法返回客户端。

将客户端签名结果返回客户端后,还包括:服务器选择客户端支持的安全性最高的对称加密算法作为双向认证通信的加密算法,并使用客户端证书公钥对此加密算法进行加密,并将加密结果发送给客户端。

步骤406:当接收到客户端发送的解密请求时,智能密钥设备进行解密,并将解密结果返回客户端。

具体地,在本实施例中,将解密结果返回客户端之后,还包括:客户端根据加密算法,通过生产随机数接口产生随机数作为通信密钥,并使用服务器证书公钥加密发送给服务器,服务器接收到客户端发送的加密结果后,通过解密接口使用服务器证书私钥解密,获得双向认证加密用的通信密钥。

实施例六

本实施例提供了智能密钥设备进行交易时执行的操作,包括:

步骤501:当接收到服务器发送的获取客户端证书的请求时,智能密钥设备回送内置的客户端证书列表,客户端证书列表包括证书索引;

步骤502:当接收到使用客户端证书签名的请求时,智能密钥设备根据使用客户端证书签名的请求中包含的证书索引检索证书,根据检索到的证书的属性判断客户端证书为交易的证书;

步骤502:当接收到客户端发送的密码和验证请求时,智能密钥设备验证密码是否正确,如果错误,向客户端返回错误信息,如果正确,向客户端返回正确信息,执行步骤s5;

步骤503:当接收到客户端发送的客户端签名原文和判断请求时,智能密钥设备判断是否符合报文规范,是则所向客户端返回错误信息,执行步骤504;否则向客户端返回正确信息,执行步骤505;

在本实施例中,在接收到客户端发送的客户端签名原文和判断请求之前,还包括:客户端读取智能密钥设备序列号,服务器验证用户信息和智能密钥设备序列号是否匹配,是则登陆成功,执行步骤503,否则登录失败。

步骤504:智能密钥设备解析客户端签名原文并显示交易信息,用户按键确认后,待接收客户端发送的签名请求后,对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端;

在本实施例中,将客户端签名结果返回客户端后,还包括:客户端将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,服务器接收到客户端发送的信息后,对客户端签名原文进行一次摘要运算,并根据用户信息和证书信息,比对当前证书是否是此用户绑定的证书,如果不是,交易失败;如果是,则服务器对签名原文进行摘要运算并验证签名是否成功,是则转账交易成功,否则转账交易失败。

步骤505:智能密钥设备解析客户端签名原文,待接收客户端发送的签名请求后,对客户端签名原文进行摘要和签名运算,并将签名结果返回客户端。

在本实施例中,将客户端签名结果返回客户端后,还包括:客户端将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,服务器接收到客户端发送的信息后,对客户端签名原文进行一次摘要运算,并根据用户信息和证书信息,比对当前证书是否是此用户绑定的证书,如果不是,交易失败;如果是,则服务器对签名原文进行摘要运算并验证签名是否成功,是则转账交易成功,否则转账交易失败。

实施例七

本实施例提供了一种实现智能密钥设备双向认证和交易的装置,如图4所示,包括:

第一接收模块601,用于接收服务器发送的获取客户端证书的请求;

回送模块602,用于当第一接收模块601接收到服务器发送的获取客户端证书的请求时,回送内置的客户端证书列表,客户端证书列表包括证书索引;

第二接收模块603,用于接收使用客户端证书签名的请求;

检索模块604,用于当第二接收模块603接收到使用客户端证书签名的请求时,根据使用客户端证书签名的请求中包含的证书索引检索证书;

第一判断模块605,用于当检索模块604检索到证书时,根据检索到的证书的属性判断客户端证书类型;

运算模块606,用于当第一判断模块605判断客户端证书类型为双向认证的证书时,对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端;还用于当显示模块611显示交易信息后,用户按键确认后,对客户端签名原文进行摘要和签名运算,并将客户端签名结果返回客户端;

发送模块607,用于将运算模块606得到的客户端签名结果发送至客户端;

第三接收模块608,用于当第一判断模块605判断客户端证书类型为交易的证书时,接收客户端发送的客户端签名原文和判断请求;

第二判断模块609,用于当第三接收模块608接收到客户端发送的客户端签名原文和判断请求时,判断客户端签名原文是否符合报文规范;

解析模块610,用于当第二判断模块609判断客户端签名原文符合报文规范时,还用于当第四接收模块612接收到客户端发送的签名请求时,解析客户端签名原文;

显示模块611,用于显示交易信息;

第四接收模块612,用于当第二判断模块609判断客户端签名原文不符合报文规范时,接收客户端发送的签名请求。

在本实施例中,装置还包括:第五接收模块、验证模块、返回模块和第六接收模块;

第五接收模块,用于接收客户端发送的密码和验证请求;

验证模块,用于当第五接收模块接收到客户端发送的密码和验证请求时,验证密码是否正确;

返回模块,用于当验证模块验证密码错误时,向客户端返回错误信息;当验证模块验证密码正确时,向客户端返回正确信息;

第六接收模块,用于当验证模块验证密码正确时,等待接收到服务器发送的客户端证书。

在本实施例中,装置还包括:第三判断模块;

第三判断模块,用于判断装置自身是否锁死;

验证模块,还用于当第三判断模块判断装置自身锁死时,打开锁重新验证密码是否正确;

返回模块,还用于当第三判断模块判断装置自身锁死时,向客户端返回错误信息。

具体地,发送模块607,具体用于:将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

具体地,返回装置还用于:当第二判断模块609判断客户端签名原文符合报文规范时,向客户端返回错误信息;当第二判断模块609判断客户端签名原文不符合报文规范时,向客户端返回正确信息,运行运算模块606。

进一步地,装置还包括:第七接收模块和作为模块;

第七接收模块,用于接收客户端发送的摘要结果;

作为模块,用于当第七接收模块接收到客户端发送的摘要结果后,将摘要结果作为当前客户端签名原文;

解析模块610,还用于解析解析当前客户端签名原文;

第二判断模块609,还用于判断当前客户端签名原文是否符合报文规范;

返回模块,还用于当第二判断模块609判断当前客户端签名原文符合报文规范时,向客户端返回错误信息;当第二判断模块609判断当前客户端签名原文不符合报文规范时,向客户端返回正确信息。

更进一步地,装置还包括:第八接收模块;

第八接收模块,用于接收客户端发送的签名请求。

具体地,发送模块607,具体用于:将客户端签名原文、客户端签名结果和客户端证书发送至服务器。

更具体地,发送模块607,具体用于:将客户端当前支持的对称加密算法返回所述客户端。

再进一步地,装置还包括:第九接收模块和解密模块;

第九接收模块,用于接收客户端发送的解密请求;

解密模块,用于当第九接收模块接收到客户端发送的解密请求时,对加密结果进行解密,并将解密得到的加密算法返回客户端。

具体地,在本实施例中,第一判断模块605,具体用于:根据证书的密钥值判断客户端证书类型。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1