本发明涉及一种安全认证方法及装置,尤其是指一种数据传输安全认证方法及装置。
背景技术:
目前在数据传输安全上普遍采用https协议,https是一个信息安全通道,采用证书双向认证机制来保证数据传输的安全性,采用签名技术来维护数据的完整性,确保数据在传输过程中不被篡改。由于https是基于web应用服务,针对非web应用将无法使用https相关机制,并且https只能保证防止数据在传输过程中被篡改,无法实现防重放。
因此,需要对非web应用领域数据传输通道的安全认证提出进一步改进。
技术实现要素:
本发明所要解决的技术问题是:提供一种数据传输安全认证方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:一种数据传输安全认证方法,包括步骤,
s20、客户端与服务器之间进行数字证书双向认证,所述数字证书双向认证采用非对称性算法加密,并且客户端生成客户端随机数,服务器生成服务器随机数;
s30、服务器将客户端随机数与服务器随机数根据约定算法生成aeskey,并验证客户端随机数与服务器随机数的合法性;
s40、客户端使用aeskey对交互数据进行加密。
优选地,所述步骤s20具体包括,
s21、客户端将客户端证书与客户端随机数用服务器公钥加密发送给服务器;
s22、服务器使用服务器私钥解密客户端证书与客户端随机数,判断客户端证书是否为服务器颁发,是则获取客户端公钥,否则断开连接;
s23、服务器生成服务器随机数,服务器使用客户端公钥将服务器证书与服务器随机数加密后发送给客户端;
s24、客户端用私钥对服务器证书与服务器随机数进行解密,判断服务器证书是否合法,合法则获取服务器随机数,不合法则断开连接。
优选地,所述步骤s30具体包括,
s31、客户端将客户端随机数与服务器随机数根据约定算法生成aeskey,使用aes算法及aeskey加密服务器随机数后发送至服务器;
s32、服务器使用aes算法及aeskey对加密的服务器随机数进行解密,并判断所述服务器随机数是否为服务器生成的随机数,若不是则断开连接;
s33、服务器使用aes算法与aeskey对客户端随机数加密后发送至客户端;
s34、客户端使用aes算法与aeskey对加密的客户端随机数进行解密,判断所述客户端随机数是否为客户端生成的随机数,若不是则断开连接。
优选地,所述数据传输安全认证方法还包括步骤,
s10、服务器生成ca证书,并将ca证书颁发给客户端,所述ca证书包括客户端证书与服务器证书。
一种数据传输安全认证装置,包括,
数字证书认证模块,用于客户端与服务器之间进行数字证书双向认证,所述数字证书双向认证采用非对称性算法加密,并且客户端生成客户端随机数,服务器生成服务器随机数;
密钥生成模块,用于服务器将客户端随机数与服务器随机数根据约定算法生成aeskey,并验证客户端随机数与服务器随机数的合法性;
交互数据加密模块,用于客户端使用aeskey对交互数据进行加密。
优选地,所述数字证书认证模块具体包括,
客户端证书加密发送单元,用于客户端将客户端证书与客户端随机数用服务器公钥加密发送给服务器;
客户端证书验证单元,用于服务器使用服务器私钥解密客户端证书与客户端随机数,判断客户端证书是否为服务器颁发,是则获取客户端公钥,否则断开连接;
服务器随机数生成加密单元,用于服务器生成服务器随机数,服务器使用客户端公钥将服务器证书与服务器随机数加密后发送给客户端;
服务器证书验证单元,用于客户端用私钥对服务器证书与服务器随机数进行解密,判断服务器证书是否合法,合法则获取服务器随机数,不合法则断开连接。
优选地,所述密钥生成模块具体包括,
密钥生成单元,用于客户端将客户端随机数与服务器随机数根据约定算法生成aeskey,使用aes算法及aeskey加密服务器随机数后发送至服务器;
服务器随机数验证单元,用于服务器使用aes算法及aeskey对加密的服务器随机数进行解密,并判断所述服务器随机数是否为服务器生成的随机数,若不是则断开连接;
客户端随机数加密发送单元,用于服务器使用aes算法与aeskey对客户端随机数加密后发送至客户端;
客户端随机数验证单元,用于客户端使用aes算法与aeskey对加密的客户端随机数进行解密,判断所述客户端随机数是否为客户端生成的随机数,若不是则断开连接。
优选地,所述的数据传输安全认证装置还包括,
数字证书颁发模块,用于服务器生成ca证书,并将ca证书颁发给客户端,所述ca证书包括客户端证书与服务器证书。
本发明的技术方案中,客户端与服务器通过数字证书对客户端的用户进行认证,认证过程采用非对称加密技术加密,增强了数据的安全性;通过客户端生成的客户端随机数与服务器生成的服务器随机数生成密钥来对数据进行加密,能够提高服务器对数据的处理效率,能够支持更大的客户端用户并发量。
附图说明
下面结合附图详述本发明的具体结构。
图1为本发明一具体实施例的数据传输安全认证方法流程图;
图2为本发明一具体实施例的数字证书验证流程图;
图3为本发明一具体实施例的密钥生成验证流程图;
图4为本发明一具体实施例的数据传输安全认证装置框图;
图5为本发明一具体实施例的数字证书认证模块框图;
图6为本发明一具体实施例的密钥生成模块框图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,一种数据传输安全认证方法,包括步骤,
s20、客户端与服务器之间进行数字证书双向认证,所述数字证书双向认证采用非对称性算法加密,并且客户端生成客户端随机数,服务器生成服务器随机数;
s30、服务器将客户端随机数与服务器随机数根据约定算法生成aeskey,并验证客户端随机数与服务器随机数的合法性;
s40、客户端使用aeskey对交互数据进行加密。
本技术方案基于ca证书的双向认证,采用rsa+aes混合加密技术,使用rsa加密能够增强数据的安全性,但是加密效率低,作为一个接入服务器,对接着大量的互联网用户,如果全部采用rsa加密保证数据安全,将大大地降低了服务器的处理效率,无法支持更大的用户并发量。为了提高服务器处理效率,保证数据通信的安全性,本技术方案采用rsa+aes混合加密技术,通过rsa认证用户身份,aes握手密钥。针对数据加密密钥的安全性,我们使用了单点部分上传的方式,没有将一个完整的aes数据加密密钥在网络上传输,一个完整的aes数据加密密钥aeskey是由客户端随机数+服务器端随机数+字符标识进行相关计算而生成,ca证书由服务器生成并将客户端证书颁发给用户;使用aeskey对数据进行加密,加密的数据包里设有标识,能够有效防止数据重放。
实施例一
请参阅图2,在一具体实施例中,所述步骤s20具体包括,
s21、客户端将客户端证书与客户端随机数用服务器公钥加密发送给服务器;
s22、服务器使用服务器私钥解密客户端证书与客户端随机数,判断客户端证书是否为服务器颁发,是则获取客户端公钥,否则断开连接;
s23、服务器生成服务器随机数,服务器使用客户端公钥将服务器证书与服务器随机数加密后发送给客户端;
s24、客户端用私钥对服务器证书与服务器随机数进行解密,判断服务器证书是否合法,合法则获取服务器随机数,不合法则断开连接。
本实施例中,客户端证书由服务器生成,直接发送至客户端,打包在客户端的文件有客户端证书、服务器证书、客户端密钥对文件以客户端生成的随机数,打包文件采用服务器公钥(从服务器证书获取)进行加密,发送给服务器。服务器获得客户端证书和客户端随机数,验证客户端证书是否为服务器颁发(验证客户端证书的序列号和md5值,客户端证书的相关信息已经预先在服务器进行配置),是则获取客户端证书的公钥,否则断开连接。服务器端将客户端随机数与服务器随机数使用约定算法生成aeskey。客户端用其私钥解密服务器发送的数据,验证服务器发送服务器证书和客户端本地打包的证书是否一致,是则获取服务器随机数,否则断开连接。
实施例二
请参阅图3,在一具体实施例中,所述步骤s30具体包括,
s31、客户端将客户端随机数与服务器随机数根据约定算法生成aeskey,使用aes算法及aeskey加密服务器随机数后发送至服务器;
s32、服务器使用aes算法及aeskey对加密的服务器随机数进行解密,并判断所述服务器随机数是否为服务器生成的随机数,若不是则断开连接;
s33、服务器使用aes算法与aeskey对客户端随机数加密后发送至客户端;
s34、客户端使用aes算法与aeskey对加密的客户端随机数进行解密,判断所述客户端随机数是否为客户端生成的随机数,若不是则断开连接。
本实施例中,用于生成数据加密的密钥,经过对生成密钥的随机数进行了多次验证,确保了密钥的安全性,同时能够保证被加密的数据的安全性,同时使用密钥对数据进行加密,大大提高服务器的处理效率,让服务器支持更大的客户端的用户并发量。
实施例三
在一具体实施例中,所述数据传输安全认证方法还包括步骤,
s10、服务器生成ca证书,并将ca证书颁发给客户端,所述ca证书包括客户端证书与服务器证书。
本实施例中,服务器生成ca证书,该证书生成后,直接被打包到客户端,被打包的文件包括有服务器证书、客户端证书及客户端密钥对文件。
请参阅图4,一种数据传输安全认证装置,包括,
数字证书认证模块,用于客户端与服务器之间进行数字证书双向认证,所述数字证书双向认证采用非对称性算法加密,并且客户端生成客户端随机数,服务器生成服务器随机数;
密钥生成模块,用于服务器将客户端随机数与服务器随机数根据约定算法生成aeskey,并验证客户端随机数与服务器随机数的合法性;
交互数据加密模块,用于客户端使用aeskey对交互数据进行加密。
本技术方案基于ca证书的双向认证,采用rsa+aes混合加密技术,数字证书认证模块使用rsa加密能够增强数据的安全性,但是加密效率低,作为一个接入服务器,对接着大量的互联网用户,如果全部采用rsa加密保证数据安全,将大大地降低了服务器的处理效率,无法支持更大的用户并发量。为了提高服务器处理效率,保证数据通信的安全性,本技术方案采用rsa+aes混合加密技术,通过rsa认证用户身份,aes握手密钥。针对数据加密密钥的安全性,我们使用了单点部分上传的方式,没有将一个完整的aes数据加密密钥在网络上传输,一个完整的aes数据加密密钥aeskey是由客户端随机数+服务器端随机数+字符标识进行相关计算而生成,ca证书由服务器生成并将客户端证书颁发给用户;交互数据加密模块使用密钥生成模块生成的aeskey对数据进行加密,加密的数据包里设有标识,能够有效防止数据重放。
实施例四
请参阅图5,在一具体实施例中,所述数字证书认证模块具体包括,
客户端证书加密发送单元,用于客户端将客户端证书与客户端随机数用服务器公钥加密发送给服务器;
客户端证书验证单元,用于服务器使用服务器私钥解密客户端证书与客户端随机数,判断客户端证书是否为服务器颁发,是则获取客户端公钥,否则断开连接;
服务器随机数生成加密单元,用于服务器生成服务器随机数,服务器使用客户端公钥将服务器证书与服务器随机数加密后发送给客户端;
服务器证书验证单元,用于客户端用私钥对服务器证书与服务器随机数进行解密,判断服务器证书是否合法,合法则获取服务器随机数,不合法则断开连接。
本实施例中,客户端证书由服务器生成,直接发送至客户端,打包在客户端的文件有客户端证书、服务器证书、客户端密钥对文件以客户端生成的随机数,客户端证书加密发送单元采用服务器公钥(从服务器证书获取)进行加密,发送给服务器。客户端证书验证单元获得客户端证书和客户端随机数,验证客户端证书是否为服务器颁发(验证客户端证书的序列号和md5值,客户端证书的相关信息已经预先在服务器进行配置),是则获取客户端证书的公钥,否则断开连接。服务器随机数生成加密单元生成客户端随机数,将客户端随机数与服务器随机数使用约定算法生成aeskey。服务器证书验证单元用客户端私钥解密服务器发送的数据,验证服务器发送服务器证书和客户端本地打包的证书是否一致,是则获取服务器随机数,否则断开连接。
实施例五
请参阅图6,在一具体实施例中,所述密钥生成模块具体包括,
密钥生成单元,用于客户端将客户端随机数与服务器随机数根据约定算法生成aeskey,使用aes算法及aeskey加密服务器随机数后发送至服务器;
服务器随机数验证单元,用于服务器使用aes算法及aeskey对加密的服务器随机数进行解密,并判断所述服务器随机数是否为服务器生成的随机数,若不是则断开连接;
客户端随机数加密发送单元,用于服务器使用aes算法与aeskey对客户端随机数加密后发送至客户端;
客户端随机数验证单元,用于客户端使用aes算法与aeskey对加密的客户端随机数进行解密,判断所述客户端随机数是否为客户端生成的随机数,若不是则断开连接。
本实施例中,用于生成数据加密的密钥,经过对生成密钥的随机数进行了多次验证,确保了密钥的安全性,同时能够保证被加密的数据的安全性,同时使用密钥对数据进行加密,大大提高服务器的处理效率,让服务器支持更大的客户端的用户并发量。
实施例六
在一具体实施例中,所述的数据传输安全认证装置还包括,
数字证书颁发模块,用于服务器生成ca证书,并将ca证书颁发给客户端,所述ca证书包括客户端证书与服务器证书。
本实施例中,服务器的数字证书颁发模块生成ca证书,该证书生成后,直接被打包到客户端,被打包的文件包括有服务器证书、客户端证书及客户端密钥对文件。
综上所述,本发明的实施例中,客户端与服务器通过数字证书对客户端的用户进行认证,认证过程采用非对称加密技术加密,增强了数据的安全性;通过客户端生成的客户端随机数与服务器生成的服务器随机数生成密钥来对数据进行加密,能够提高服务器对数据的处理效率,能够支持更大的客户端用户并发量,同时解决了客户端用户身份认证,防止数据被窃取及篡改以及数据重放攻击等问题。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。