CN104023013B - 数据传输方法、服务端和客户端 - Google Patents
数据传输方法、服务端和客户端 Download PDFInfo
- Publication number
- CN104023013B CN104023013B CN201410240981.7A CN201410240981A CN104023013B CN 104023013 B CN104023013 B CN 104023013B CN 201410240981 A CN201410240981 A CN 201410240981A CN 104023013 B CN104023013 B CN 104023013B
- Authority
- CN
- China
- Prior art keywords
- service end
- client
- key
- rsa
- diffie
- 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
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种数据传输方法、服务端和客户端,所述方法,包括:服务端与客户端通过认证协议进行信息交互,相互进行身份认证;所述服务端和客户端通过密钥交换协议生成会话密钥;所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端;所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。上述的方案可以实现传输的数据包由客户端向服务端的单向传输,构建过程简单,可以有效节约计算资源,使得数据的传输更加安全可靠。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据传输方法、服务端和客户端。
背景技术
网络管道操作,是一种基于网络的单向数据传输方法,能够将由客户端的标准输入得到的数据,传输至服务端,并由服务端输出至标准输出。若配合管道(pipeline)使用,就能将上游程序的标准输出传输至远程主机下的下游程序的标准输入,类似于将POSIX***中的管道机制网络化,故称之为网络管道。
现有技术中,实现不同客户端与服务端之间的网络管道操作,通常可以采用下述的两种方法:一种是采用虚拟专用网络(Virtual Private Network,VPN)或者SSH(SecureShell,安全外壳协议)与TCP-PIPE(TCP-PIPE为一开源程序,该程序由Daniel.B于2004年8月11日在SourceForge.net上注册,用于在客户端和服务端之间进行远程管道操作)相结合的方式;另一种是采用SSH和管道来实现服务端和客户端之间的数据传输。
但是,上述的两种方法,或者由于对传输的数据不经过加密处理,需要构建并维持不可中断的安全通道,而存在着浪费计算资源的问题;或者需要依赖安全性不高的RPC(Remote Procedure Call Protocol,远程过程调用协议)服务,而存在安全性较差的问题;或者不符合业务流程,而导致容易产生误操作的问题,且上述两种方法均不支持多客户端与单服务端之间并发传输数据。
发明内容
本发明实施例解决的问题是如何安全地利用远程管道在客户端和服务端之间进行单向的数据传输。
为解决上述问题,本发明实施例提供了一种数据传输方法,所述方法包括:
服务端与客户端通过认证协议进行信息交互,相互进行身份认证具体包括:将所述服务端RSA私钥和客户端RSA公钥存储在所述服务端中,客户端RSA公钥由客户端的身份数据索引,将所述客户端RSA私钥和服务端RSA公钥存储在所述客户端中,所述服务端RSA公钥由服务端的身份数据索引,所述服务端RSA公钥和服务端RSA私钥、所述客户端RSA公钥和客户端RSA私钥分别采用RSA算法生成;所述客户端将自身的身份数据发送至所述服务端,向所述服务端发出服务请求;所述服务端根据客户端所发送的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端;所述客户端使用自身存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过加密的第一随机标识和所述服务端的身份数据,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功;所述客户端对所述服务端身份认证成功时,所述客户端所述服务端的身份数据确定服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为所述客户端根据解密得到的所述第一随机标识生成;所述服务端使用自身存储的与所述服务端RSA公钥相对应的服务端RSA私钥,解密经过加密的第二随机标识,当解密得到的第二随机标识与所述服务端根据解密得到的第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且所述服务端对所述客户端的身份认证成功;所述服务端和客户端通过密钥交换协议生成会话密钥;
所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端;
所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。
可选地,所述服务端和客户端通过密钥交换协议生成会话密钥,包括:
所述服务端使用客户端RSA公钥加密Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识,并发送至所述客户端,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成;
所述客户端使用与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过所述客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识;
当解密得到正确的第二随机标识时,所述客户端根据解密得到的Diffie-Hellman公钥和服务端Diffie-Hellman公钥计算出会话密钥;
所述客户端使用服务端RSA公钥加密客户端Diffie-Hellman公钥和所述第二随机标识,并发送至所述服务端,其中,所述客户端Diffie-Hellman公钥由所述客户端根据解密得到的Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的客户端Diffie-Hellman私钥生成;
所述服务端使用与所述服务端RSA公钥相对应的服务端RSA私钥,解密所述经过服务端RSA公钥加密的客户端Diffie-Hellman公钥和第二随机标识;
当得到正确的第二随机标识时,所述服务端根据所述Diffie-Hellman公钥和解密得到所述客户端Diffie-Hellman公钥计算出会话密钥;
所述服务端使用自身计算得到的会话密钥和第一流加密算法,加密所述第二随机标识生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端;
所述客户端使用自身计算得到的会话密钥和所述第一流加密算法生成密文第二随机标识,并使用所述密文第二随机标识和所述第二流加密算法解密所述经过服务端加密的验证数据,当得到正确的验证数据时,证明所述服务端和所述客户端均计算出了正确的会话密钥。
可选地,所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端,包括:
所述客户端使用所述第一流加密算法和所述会话密钥加密所述第二随机标识,得到所述密文第二随机标识;
所述客户端使用所述第二流加密算法和所述密文第二随机标识对待传输的数据包进行加密,生成密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和第二随机标识生成。
可选地,所述服务端使用所述会话密钥和加密算法解密所接收的经过客户端加密的数据包,并执行相应的操作,包括:
所述服务端采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识;
所述服务端采用所述第二流加密算法和所述密文第二随机标识,解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息;
采用所述数字签名算法验证所述数字签名信息;
当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作。
可选地,当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作,包括:
当所述指令信息为第一数值时,所述服务端对于解密得到的消息信息不执行任何操作;
当所述指令信息为第二数值时,所述服务端在接收数据结束后,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求;
当所述指令信息为第三数值时,所述服务端在接收数据结束后,中断与所述客户端的连接并退出;
当所述指令信息为第四数值时,所述服务端解压缩所述解密得到的消息信息;
当所述指令信息为第五数值时,所述服务端请求与所述客户端重新通过所述密钥交换协议生成新的会话密钥。
可选地,所述指令信息位于所述待传输数据包的第一字节,并由所述客户端在向所述服务端传输数据结束时置为相应的数值。
可选地,当所述客户端向所述服务端传输的数据量达到预设阈值时,所述客户端将所述指令信息设置为第五数值,所述服务端和所述客户端重新通过密钥交换协议生成新的会话密钥。
可选地,所述客户端为一台以上。
本发明实施例还提供了一种服务端,包括:
第一身份认证单元,适于通过认证协议与客户端进行信息交互,对所述客户端进行身份认证,包括:第一存储子单元,适于存储服务端RSA私钥和客户端RSA公钥,客户端RSA公钥由所述客户端的身份数据索引,其中,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA密钥对和客户端RSA密钥对分别采用RSA算法生成,所述客户端RSA私钥和服务端RSA公钥存储于所述客户端上,所述服务端RSA公钥由服务端的身份数据索引;第一加密子单元,适于根据所接收的客户端的身份数据确定第一存储子单元中存储的客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和所述服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端;第一接收子单元,适于接收客户端采用服务端的身份数据确定的服务端RSA公钥加密的第二随机标识;第一解密子单元,适于采用所述第一存储子单元中存储的服务端RSA私钥,解密经过客户端采用服务端RSA公钥加密的所述第二随机标识,当解密得到的第二随机标识,与根据所述第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且对所述客户端的身份认证成功;
第一密钥交换单元,适于与所述客户端通过密钥交换协议生成会话密钥;
接收单元,适于接收客户端使用加密算法和所述会话密钥加密的数据包;
解密单元,适于使用第一密钥交换单元生成的会话密钥和所述加密算法,解密所述接收单元所接收的经过客户端加密的数据包;
执行单元,适于获取并根据所述解密单元解密得到的数据包,执行相应的操作。
可选地,所述第一密钥交换单元包括:
第一生成子单元,适于根据Diffie-Hellman算法生成Diffie-Hellman公钥、服务端Diffie-Hellman私钥和服务端Diffie-Hellman公钥,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成;
第二接收子单元,适于接收所述客户端发送过来的所述客户端的身份数据,接收所述客户端发送的服务请求;
第二加密子单元,适于使用根据所述第二接收子单元接收的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一生成子单元生成的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识;
第一发送子单元,适于将经过所述第二加密子单元加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识发送至所述客户端;
第三接收子单元,适于接收客户端发送的使用服务端的身份数据确定的服务端RSA公钥加密的客户端Diffie-Hellman公钥和所述第二随机标识;
第二解密子单元,适于使用第一存储子单元中所存储的服务端RSA私钥对所述第三接收子单元接收的经过所述客户端采用服务端RSA公钥加密的客户端Diffie-Hellman公钥和所述第二随机标识;
第一计算子单元,适于当所述第二解密子单元解密得到正确的所述第二随机标识时,使用所述Diffie-Hellman公钥和所述第二解密子单元解密得到客户端Diffie-Hellman公钥计算会话密钥;
第三加密子单元,适于使用所述第一计算子单元计算得出的会话密钥和第一流加密算法加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
所述接收单元包括:第四接收子单元,适于接收客户端采用所述第二流加密算法和所述密文第二随机标识对待传输的数据包加密生成的密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和所述第二随机标识生成。
可选地,所述解密单元包括:
第三解密子单元,适于采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息;
数字签名验证单元,适于采用所述数字签名算法验证所述第三解密子单元解密得到的数字签名信息;
执行子单元,适于当所述数字签名验证单元验证所述数字签名信息正确时,根据解密得到的指令信息执行相应的操作。
可选地,所述执行子单元包括:
第一执行模块,适于当所述指令信息为第一数值时,对所述解密得到的消息信息不执行任何操作;
第二执行模块,适于当所述指令信息为第二数值时,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求;
第三执行模块,适于当所述指令信息为第三数值时,中断与所述客户端的连接并退出;
第四执行模块,适于当所述指令信息为第四数值时,解压缩解密得到的消息信息;
第五执行模块,当所述指令信息为第五数值时,请求与客户端重新会话密钥通过所述密钥交换协议生成新的会话密钥。
本发明实施例还提供了一种客户端,包括:
第二身份认证单元,适于通过认证协议与服务端进行信息交互,对所述服务端进行身份认证,包括:第二存储子单元,适于存储客户端RSA私钥和服务端RSA公钥,服务端RSA公钥由所述服务端的身份数据索引,其中,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述服务端RSA密钥对和服务端RSA密钥对采用RSA算法生成,所述服务端RSA私钥和客户端RSA公钥存储于所述服务端上,所述客户端RSA公钥由所述客户端的身份数据索引;第二发送子单元,适于将所述客户端的身份数据发送至所述服务端,向所述服务端发出服务请求;第五接收子单元,适于接收所述服务端采用第二发送子单元发送的客户端的身份数据确定的客户端RSA公钥加密的服务端的身份数据和第一随机标识;第三解密子单元,适于采用所述第二存储子单元中存储的与客户端RSA公钥相对应的客户端RSA私钥,解密所述第五接收子单元接收的经过服务端采用客户端RSA公钥加密的服务端的身份数据和第一随机标识,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功;第四加密子单元,适于当所述第三解密子单元对于所述服务端的身份认证成功时,采用根据第三解密子单元解密得到的所述服务端的身份数据确定所述第二存储子单元中存储的服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为根据第三解密子单元解密得到的第一随机标识生成;
第二密钥交换单元,适于与经过第二身份认证单元认证的服务端通过密钥交换协议生成会话密钥;
加密单元,适于采用所述第二密钥交换单元生成的会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
可选地,所述第二密钥交换单元包括:
第六接收子单元,适于接收经过所述服务端使用客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成;
第四解密子单元,适于使用第二存储子单元存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密所述第六接收子单元接收的经过客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识;
第二生成子单元,适于根据第四解密子单元解密得到的Diffie-Hellman公钥生成客户端Diffie-Hellman私钥,并根据所述Diffie-Hellman公钥和客户端Diffie-Hellman私钥生成客户端Diffie-Hellman公钥;
第二计算子单元,适于当所述第四解密子单元解密得到正确的第二随机标识时,根据所述第四解密子单元解密得到的Diffie-Hellman公钥和所述服务端Diffie-Hellman公钥计算会话密钥;
第五加密子单元,适于使用第二存储子单元中存储的服务端RSA公钥,加密所述第二生成子单元生成的客户端Diffie-Hellman公钥和所述第二随机标识,并发送至所述服务端;
第七接收子单元,适于接收服务端采用第一流加密算法和所述会话密钥加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密的验证数据;
第五解密子单元,适于使用第二计算子单元计算得到的会话密钥和第一流加密算法加密第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法,解密所述第六接收子单元接收的经过所述服务端加密的验证数据,当得到正确的验证数据时,证明所述客户端和所述服务端均计算出了正确的会话密钥。
可选地,所述加密单元包括:
信息输入子单元,适于输入待传输的消息信息;
第六加密子单元,适于使用所述会话密钥和所述第一流加密算法加密所述第二随机标识,得到密文第二随机标识;
签名生成子单元,适于采用数字签名算法加密指令信息、所述消息信息和所述第二随机标识,生成数字签名信息;
第七加密子单元,适于采用第二流加密算法和所述第六加密子单元得到的密文随机标识加密待传输的数据包,生成密文数据包,所述待传输数据包包括所述指令信息、消息信息和所述签名生成子单元生成的数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出;
第三发送子单元,适于将所述第七加密子单元生成的密文数据包发送至所述服务端。
可选地,所述加密单元还包括:指令设置子单元,适于在所述第三发送子单元向服务端传输数据结束时,将所述指令信息置为相应的数值。
可选地,所述相应的数值包括第一数值、第二数值、第三数值、第四数值或者第五数值;
当所述指令信息为第一数值时,指示服务端对于所述解密得到的消息信息不执行任何操作;
当所述指令信息为第二数值时,指示服务端中断与客户端的连接,并指示服务端持续监听服务端口,以确定是否有服务请求;
当所述指令信息为第三数值时,指示服务端中断与所述客户端的连接并退出;
当所述指令信息为第四数值时,指示服务端解压缩解密得到的消息信息;
当所述指令信息为第五数值时,指示服务端与重新进行密钥交换,生成新的会话密钥。
可选地,所述加密单元还包括:统计子单元,适于统计所述第三发送子单元发送给所述服务端的数据量。
与现有技术相比,本发明的技术方案具有以下的优点:
上述的技术方案,由于在进行数据传输之前,客户端和服务端之间通过认证协议相互认证对方的身份,再通过密钥交换协议计算会话密钥,并采用计算得到的会话密钥和加密算法来对传输的数据包进行加密和解密,实现传输的数据包安全地由客户端向服务端的单向传输,构建简单,无需额外消耗计算资源,因此,数据的传输更加安全可靠,并可以有效节约计算资源。
进一步地,由于采用指令对服务端执行的操作进行控制,可以满足多样的数据传输需求。
进一步地,由于RSA加密算法对于客户端与服务端在身份认证阶段和密钥交换阶段交互的信息进行加密,可以有效提高数据传输的安全性,并可以有效防止中间人攻击。
进一步地,由于并在客户端与服务端的交互的信息中加入了第一随机标识或者第二随机标识,可以有效防止重放攻击。
进一步地,由于采用Diffie-hellman密匙交换协议计算客户端和服务端的对称的会话密钥,由于所述会话密钥由双方各自生成,而非由一方计算出后传输给另一方,因此,可以有效防止会话密钥被第三方截获,而对数据传输的安全造成威胁。
进一步地,由于采用第一流加密算法和会话会话密钥加密第二会话标识,生成密文第二随机标识,可以有效防止重放攻击,再使用第二流加密算法和密文第二随机标识来加密传输的数据,使得每次加密数据使用的密钥均不相同,可以有效防止生日攻击,因此,可以提高数据传输的安全性。
进一步地,由于采用数字签名算法对指令信息、消息信息和第二随机标识生成数字签名信息,可以确认数据包发送者的真实身份、以及数据包的完整性和保密性。
进一步地,由于一台以上的客户端可以同时向服务端传输数据,可以满足客户端与服务端之间并发传输数据的需求。
附图说明
图1是本发明实施例中的一种数据传输方法的流程图;
图2是本发明实施例中的另一种数据传输方法的流程图;
图3是本发明实施例中的一种服务端的结构示意图;
图4是本发明实施例中的服务端的第一身份认证单元的结构示意图;
图5是本发明实施例中的服务端的第一密钥交换单元的结构示意图;
图6是本发明实施例中的服务端的接收单元的结构示意图;
图7是本发明实施例中的服务端的解密单元的结构示意图;
图8是本发明实施例中的客户端的结构示意图;
图9是本发明实施例中的客户端的第二身份认证单元的结构示意图;
图10是本发明实施例中的客户端的第二密钥交换单元的结构示意图;
图11是本发明实施例中的客户端中的加密单元的结构示意图。
具体实施方式
现有技术中,利用管道来建立客户端和服务端之间的数据传输,通常采用下述两种方式:
一种是采用VPN(Virtual Private Network,虚拟专用网络)或者SSH(SecureShell,安全外壳协议)与TCP-PIPE相结合的方式,即:首先,在客户端与服务端之间架设VPN或者采用SSH代理,以构建安全通道,然后,在RPC上注册TCP-PIPE服务端。最后,使用TCP-PIPE客户端与TCP-PIPE服务端进行数据传输。
一方面,由于采用TCP-PIPE客户端与TCP-PIPE服务端之间采用明文方式进行数据的传输,因此需要额外地构建长期存在的安全通道,以确保传输数据的安全性,因而存在着会浪费资源。另一方面,由于TCP-PIPE服务端需要依赖RPC服务来进行数据的传输,由于RPC服务本身的安全性不高,因此也增加客户端和服务端被入侵的风险。
另一种是采用SSH和管道来实现客户端与服务端之间的数据传输,该种方法有两种实现方式,以业务服务端向业务客户端传输数据为例,包括:
一种实现方式是通过SSH客户端将需要在业务服务端执行的命令传输到SSH服务端。然后,再利用管道将SSH服务端命令运行后的结果从SSH客户端的标准输出传递至下游程序的标准输入。
另一种实现方式是将业务服务端本地运行的结果利用管道引导至SSH客户端的标准输入,再将需要在业务服务端运行的命令传递至SSH服务端,以此,将业务服务端的本地数据传输至业务客户端。
由此可见,在方法中,无论第一种实现方式还是第二种实现方式均不符合正常的数据传输流程,因此,容易导致误操作。
同时,上述的两种方式均不支持多台客户端和服务端之间的并发通信,无法满足服务端与多台客户端进行并发通信的需求。
为解决现有技术中存在的上述问题,本发明实施例采用在数据传输之前先进行身份认证,再计算会话密钥,并利用所计算出来的会话密钥来进行数据传输,可以有效提高数据传输的安全性,节约计算资源,简单易用。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1示出了本发明实施例中的一种数据传输方法的流程图。如图1所示数据传输方法,可以包括:
步骤S11:服务端与客户端通过认证协议进行信息交互,相互进行身份认证。
在具体实施中,服务端和客户端可以通过认证协议进行信息交互,相互确定对方的身份,以确定对方不是入侵者。
步骤S12:所述服务端和客户端通过密钥交换协议生成会话密钥。
在具体实施中,服务端和客户端可以采用密匙交换协议计算会话密钥,并验证双方是否计算出了正确的会话密钥,当双方均计算出正确的会话密钥时,则可以进行后续的数据传输。
步骤S13:所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
在具体实施中,当服务端和客户端生成正确的会话密钥时,客户端可以使用计算出来的会话密钥和加密算法对待传输的数据包进行加密,以确认数据包发发送者的真实身份,并确保数据包的保密性和完整性。
在具体实施中,为了进一步确保数据传输的安全性,可以采用流加密算法来对待传输的数据包进行加密,由于客户端在每次传输数据时,采用不同的密钥对传输的数据进行加密,可以有效避免采用不变的密钥对数据进行加密所产生的安全性问题。
步骤S14:所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。
在具体实施中,服务端可以使用自身计算得到的会话密钥和加密算法,将客户端采用会话密钥和所述加密算法加密的数据进行解密,并根据解密得到的数据执行相应的操作。例如,客户端可以根据解密得到的数据中的指令的信息,执行相应的操作。
图2示出了本发明实施例中的另一种数据传输方法的流程图。如图2所述的数据传输方法,可以包括:
步骤S201:将所述服务端RSA私钥和客户端RSA公钥存储在所述服务端中,客户端RSA公钥由客户端的身份数据索引,将所述客户端RSA私钥和服务端RSA公钥存储在所述客户端中,所述服务端RSA公钥由服务端的身份数据索引。
在具体实施中,所述服务端RSA私钥和服务端RSA公钥构成服务端RSA密钥对,客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,服务端RSA密钥对和客户端密钥对可以分别由服务端和客户端采用RSA算法生成,也可以由第三方生成。
在具体实施中,客户端RSA公钥由客户端的身份数据索引,即:服务端可以根据客户端的身份数据来确定相应的客户端RSA公钥。所述服务端RSA公钥由服务端的身份数据索引,即客户端可以根据客户端的身份数据来确定相应的客户端RSA公钥
步骤S202:所述客户端将自身的身份数据发送至所述服务端。
在具体实施中,客户端可以首先将自身的身份数据发送至客户端,以向所述服务端发出服务请求。其中,客户端的身份数据可以用于唯一地确定所述客户端,以及存储在服务端上的客户端RSA公钥。
步骤S203:所述服务端根据客户端所发送的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端。
在具体实施中,服务端可以首先根据客户端发送的客户端的身份数据来确定存储于自身客户端RSA公钥,并可以使用所确定的客户端RSA公钥对自身的身份数据和第一随机标识进行加密。其中,服务端的身份数据可以为客户端用于确定存储于客户端的服务端的RSA公钥,第一随机标识可以为客户端用于生成第二随机标识。
步骤S204:所述客户端使用自身存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过加密的第一随机标识和所述服务端的身份数据,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功。
在具体实施中,客户端在接收到服务端采用客户端RSA公钥加密的第一随机标识和服务端的身份数据后,可以在自身存储的客户端RSA私钥库中查找相应的客户端RSA私钥,并使用查找到的客户端RSA私钥解密经过客户端RSA公钥加密的身份数据和第二随机标识。
客户端经过解密得到服务端的身份数据和第二随机标识时,可以将解密得到的服务端的身份数据与所接收的服务端的身份数据的明文进行比较,以确定二者是否一致。当确定解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,证明客户端所接收的经过加密的服务端的身份数据和第二随机标识确实为服务端发送过来的,客户端对于服务端的身份认证成功。
步骤S205:所述客户端对所述服务端身份认证成功时,所述客户端所述服务端的身份数据确定服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端。
在具体实施中,所述客户端对所述服务端身份认证成功时,客户端可以根据解密得到的服务端的身份数据,确定自身存储的服务端RSA公钥,并采用所确定的服务端RSA公钥解密第二随机标识,并发送至服务端。
在具体实施中,第二随机标识可以为根据解密得到的服务端发送的第一随机标识生成。例如,第一随机标识可以为一随机数,客户端可以以第一随机标识为种子,采用安全随机数算法生成第二随机标识。
步骤S206:所述服务端使用自身存储的与所述服务端RSA公钥相对应的服务端RSA私钥,解密经过加密的第二随机标识,当解密得到的第二随机标识与所述服务端根据解密得到的第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且所述服务端对所述客户端的身份认证成功。
在具体实施中,服务端可以在自身存储的服务端RSA私钥库中,查找与服务端RSA公钥相对应的服务端RSA私钥,并可以使用查找得到的服务端RSA私钥对于经过客户端加密的第二随机标识进行解密。
在具体实施中,在客户端和服务端相互进行身份认证的过程中,客户端和服务端的数据采用RSA算法对交互的信息数据进行加密和解密。由于RSA私钥一般会进行秘密保存,RSA公钥则可能会被公布,而处于公众可得的状态。当RSA公钥被公布时,任何人都可以使用处于公众可得状态的RSA公钥对经过RSA私钥加密的数据进行解密。
因此,在本发明实施例中的数据传输方法中,在客户端和服务端相互进行身份认证的过程中,采用RSA公钥对传输的信息数据加密,而采用秘密保存的RSA私钥对经过RSA公钥加密的信息数据进行解密。因此,即使相应的RSA公钥被公布,任何第三方也无法解密经过客户端和服务端加密的数据,可以提高数据传输的安全性。
在具体实施中,当客户端和服务端相互身份认证成功时,双方便可以进入下一步的密钥交换阶段,以生成会话密钥。
在本发明的实施例中,服务端和客户端交换会话密钥可以采用Diffie-Hellman密匙交换协议进行。具体而言,可以包括:
步骤S207:所述服务端使用客户端RSA公钥,加密Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识,并发送至所述客户端。
在具体实施中,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成。
在具体实施中,根据Diffie-Hellman密匙交换协议,可以首先由服务端确定Diffie-Hellman公钥。其中,Diffie-Hellman公钥包括两个全局公开的参数,一个素数q和一个整数a,a是q的一个本原根。服务端可选择一个随机标识Xs且Xs<q作为服务端Diffie-Hellman私钥,并可以根据公式Ys=a^Xs mod q计算服务端Diffie-Hellman公钥Ys。服务端将对服务端Diffie-Hellman私钥进行保密存放,而服务端Diffie-Hellman公钥可以由服务端经过加密后发送至客户端,以使得客户端可以获得服务端Diffie-Hellman公钥。
步骤S208:所述客户端使用与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过所述客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识。
在具体实施中,为了获取服务端所传送的Diffie-Hellman公钥和服务端Diffie-Hellman公钥,客户端可以在自身存储的客户端RSA私钥库中查找相应的客户端RSA私钥,并使用查找得到的客户端RSA私钥解密经过客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识,以便计算自身的客户端Diffie-Hellman私钥和客户端Diffie-Hellman公钥,并验证所接收的经过加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识的身份。
步骤S209:当解密得到正确的第二随机标识时,所述客户端根据解密得到的Diffie-Hellman公钥和服务端Diffie-Hellman公钥计算出会话密钥。
在具体实施中,当客户端获取Diffie-Hellman公钥和服务端Diffie-Hellman公钥后,可以采用公式K=(Ys)^Xc mod q,计算出会话密钥K。
步骤S210:所述客户端使用服务端RSA公钥加密客户端Diffie-Hellman公钥和所述第二随机标识,并发送至所述服务端。
在具体实施中,根据Diffie-Hellman密钥交换协议,为了让服务端可以采用客户端Diffie-Hellman公钥,采用公式:K=(Yc)^Xs mod q,计算得到会话密钥K,首先可以将客户端计算得到的客户端Diffie-Hellman公钥加密后发送至服务端。
由于采用Diffie-Hellman密钥交换算法,仅在需要的时候,计算客户端和服务端的对称的会话密钥,且会话密钥本身无须传输,可以有效减少对称密钥遭受攻击的机会,提高安全性。
另外,由于在客户端和服务端发送的数据中加入了第一随机标识或者第二随机标识,可以有效防止第三方截获客户端和服务端发送的数据包,伪装成客户端或者服务端,将之前截获的数据包重新放入网络,向客户端或者服务端发送,因而可以提高数据传输的安全性。
步骤S211:所述服务端使用与所述服务端RSA公钥相对应的服务端RSA私钥,解密所述经过服务端RSA公钥加密的客户端Diffie-Hellman公钥和第二随机标识。
在具体实施中,客户端在经过解密得到的Diffie-Hellman公钥后,可以随机选择一个私有的随机标识Xc<q作为客户端Diffie-Hellman私钥,并根据公式Yc=a^Xc mod q计算得到自身的客户端Diffie-Hellman公钥Yc。其中,客户端Diffie-Hellman密钥Xc由客户端保密存放,而客户端Diffie-Hellman公钥Yc则可以能被服务端公开获得。
在具体实施中,为了获取客户端所传送的客户端Diffie-Hellman公钥和第二随机标识,服务端可以在自身存储的服务端RSA私钥库中查找相应的服务端RSA私钥,并使用查找得到的服务端RSA私钥,解密经过服务端RSA公钥加密的客户端Diffie-Hellman公钥,以便计算会话密钥K。
步骤S212:当得到正确的第二随机标识时,所述服务端根据所述Diffie-Hellman公钥和解密得到所述客户端Diffie-Hellman公钥计算出会话密钥。
在具体实施中,当客户端采用服务端RSA私钥解密得到正确的第二随机标识时,证明其所接收的数据包确实为本次会话产生,解密得到的客户端Diffie-Hellman公钥也为经过身份认证的客户端发送。
在具体实施中,当服务端获取客户端Diffie-Hellman公钥后,可以采用公式:K=(Yc)^Xs mod q,计算出会话密钥K。
由于K=(YB)^XA mod q=(a^XB mod q)^XA mod q=(a^XB)^XA mod q=a^(XBXA)mod q=(a^XA)^XB mod q=(a^XA mod q)^XB mod q=(YA)^XB mod q,因此,服务端和客户端将可以计算出相同的会话密钥。
现有的RSA算法,RSA私钥一般会进行秘密保存,RSA公钥则可能会被公布,处于公众可得的状态。当RSA公钥被公布时,任何人都可以使用处于公众可得状态的RSA公钥对经过RSA私钥加密的数据进行解密。
因此,在本发明实施例中的数据传输方法中,在客户端和服务端进行密钥交换的过程中,采用RSA公钥对传输的信息数据加密,而采用秘密保存的RSA私钥对经过RSA公钥加密的信息数据进行解密,即使相应的RSA公钥被公布,任何第三方也无法解密经过客户端和服务端加密的数据,可以提高数据传输的安全性。
同时,由于采用Diffie-Hellman密匙交换协议来计算客户端和服务端的对称密钥,由于所述会话密钥由双方各自生成,而非由一方计算出后传输给另一方,因此,可以有效防止会话密钥被第三方截获,而对数据传输的安全造成威胁
在具体实施中,当服务端和客户端分别计算得到会话密钥后,可以进一步通过相应的信息交互来确定双方是否均计算出了正确的对称会话密钥。具体而言,可以包括:
步骤S213:所述服务端使用自身计算得到的会话密钥和第一流加密算法,加密所述第二随机标识生成,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
在具体实施中,验证数据可以根据实际的需要进行设置。例如,验证数据可以随机生成的随机标识等。
在具体实施中,第一流加密算法和第二流加密算法可以相同,也可以不相同。
步骤S214:所述客户端使用自身计算得到的会话密钥和所述第一流加密算法生成密文第二随机标识,并使用所述密文第二随机标识和所述第二流加密算法解密所述经过服务端加密的验证数据,当得到正确的验证数据时,证明所述服务端和所述客户端均计算出了正确的对称的会话密钥。
在具体实施中,根据Diffie-Hellman密匙交换协议,当客户端使用会话密钥对加密的验证数据进行解密时,可以首先使用自身计算出的会话密钥和所述第六加密算法对第二随机标识进行加密,得到第二随机标识的密文,即密文第二随机标识。然后,服务端可以使用密文第二随机标识和第二流加密算法对于经过客户端加密的验证数据进行解密。当服务端和客户端计算出的会话密钥均正确时,则服务端使用会使用密文第二随机标识和第二流加密算法对客户端加密的验证数据进行解密,便可以获取正确的验证数据。此时,可以确定服务端和客户端均计算出了正确的会话密钥,可以进入后续的数据传输阶段。
在具体实施中,验证数据可以根据实际的需要进行设置。例如,可以为字符串、数字等。
步骤S215:所述客户端使用所述第一流加密算法和所述会话密钥加密所述第二随机标识,得到所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识对待传输的数据包进行加密,生成密文数据包。
在具体实施中,为了确保待传输数据在传输过程中的安全,可以不直接采用会话密钥加密待传输的数据,而可以首先采用会话密钥和第一流加密算法加密第二随机标识,得到密文第二随机标识,再使用得到的密文第二随机标识和第二流加密算法加密待传输的数据包,生成密文数据包。第一流加密的存在,使得每次加密待传输的数据包采用的密钥会不断变化,降低了不同数据包加密后生成的密文产生冲突的可能性,因此,可以有效防御生日攻击,提高数据传输的安全性。
在具体实施中,当服务端通过解密得到正确的数据包时,由于第二随机标识的存在,服务端便可以确定所接收的数据包确为本次会话产生,而不是第三方截获数据包后重放的数据包,因此,可以提高数据传输的安全性。
在具体实施中,客户端所生成的密文数据包中可以包括指令信息、消息信息和数字签名信息。其中:
在具体实施中,所述指令信息可以位于待传输的数据包的第一字节,并可以由客户端在向服务端传输数据结束时置为相应的数值。例如:
当所述指令为第一数值时,所述服务端对于解密得到的消息信息不执行任何操作。
当所述指令为第二数值时,所述服务端在接收数据结束后,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求。此时,当客户端向服务端发送新的服务请求时,服务端可以接收并响应。
当所述指令为第三数值时,所述服务端在接收数据结束后,中断与所述客户端的连接并退出。此时,服务端已经退出,当客户端向服务端发送新的服务请求时,服务端将无法接收并响应。
当所述指令为第四数值时,所述服务端解压缩所述解密得到的消息信息。在具体实施中,当所述指令为第四数值时,说明客户端通过标准输入输入的消息信息经过了压缩处理,因此,服务端在读取到指令信息为第四数值时,可以对经过客户端压缩的消息信息进行解压缩。
当所述指令为第五数值时,所述服务端请求与所述客户端重新通过所述密钥交换协议生成新的会话密钥。
在具体实施中,数字签名信息可以为采用所述数字签名算法加密指令信息、消息信息和第二随机标识生成。
在具体实施中,生成数字签名信息所采用的算法可以根据实际的需要进行选择。例如,可以选择消息摘要算法(Message Digest Algorithm,简称MD5)。
在具体实施中,当所述客户端向所述服务端传输的数据量达到预设阈值时,所述客户端将所述指令信息设置为第五数值,所述服务端和所述客户端重新通过密钥交换协议生成新的会话密钥。
在具体实施中,所述加密算法可以为RC4加密算法。但是,由于RC4加密算法会受到生日攻击,为了确保数据传输的安全性,当所述客户端向服务端传输的数据量达到预设阈值,客户端可以将所述指令信息设置为第五数值,所述服务端和所述客户端重新交换会话密钥。
在具体实施中,为了防止第三方截获传输的数据,并伪装成客户端向服务端传送数据,在本发明实施例中的数据传输方法中,在服务端和客户端传输的数据中加入了第一随机标识或者第二随机标识。第一随机标识和第二随机标识的存在可以有效防止重放攻击,提高数据传输的安全性和可靠性。
在具体实施中,本发明实施例中的客户端可以为一台以上,也即本发明实施例中的数据传输方法可以支持一台服务端与多台客户端同时进行通信,进行并发处理,因此。可以满足服务端同时与一台以上的客户端进行并发通信的需求。
图3示出了本发明实施例中的一种服务端的结构示意图。如图3所示的服务端可以包括依次连接的第一身份认证单元31、第一密钥交换单元32、接收单元33、解密单元34和执行单元35,第一密钥交换单元32还与解密单元34相连接。其中:
第一身份认证单元31,适于通过认证协议与客户端进行信息交互,对所述客户端进行身份认证。
第一密钥交换单元32,适于与经过第一身份认证单元31认证的客户端通过密钥交换协议生成会话密钥。
接收单元33,适于接收客户端使用加密算法和第一密钥交换单元32生成的会话密钥加密的数据包。
解密单元34,适于使用第一密钥交换单元32生成的会话密钥和所述加密算法,解密接收单元33所接收的经过客户端加密的数据包。
执行单元35,适于获取并根据解密单元34解密得到的数据包,执行相应的操作。
图4示出了本发明实施例中的服务端的第一身份认证单元的结构示意图。如图4所示的第一身份认证单元可以包括:第一存储子单元41、第一加密子单元42、第一接收子单元43、第一解密子单元44,第一存储子单元41分别与第一加密子单元42和第一解密子单元43相连接。其中:
第一存储子单元41,适于存储服务端RSA私钥和客户端RSA公钥。
在具体实施中,第一存储子单元41存储的客户端RSA公钥由所述客户端的身份数据索引,其中,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA密钥对和客户端RSA密钥对分别采用RSA算法生成,所述客户端RSA私钥和服务端RSA公钥存储于所述客户端上,所述服务端RSA公钥由服务端的身份数据索引。
第一加密子单元42,适于根据所接收的客户端的身份数据确定第一存储子单元41中存储的客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和所述服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端。
第一接收子单元43,适于接收客户端采用服务端的身份数据确定的服务端RSA公钥加密的第二随机标识。
第一解密子单元44,适于采用所述第一存储子单元41中存储的服务端RSA私钥,解密第一接收子单元43接收的经过客户端采用服务端RSA公钥加密的所述第二随机标识,当解密得到的第二随机标识与根据所述第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且对所述客户端的身份认证成功。
图5示出了本发明实施例中的服务端的第一密钥交换单元的结构。如图5所示的第一密钥交换单元可以包括第一生成子单元51、第二接收子单元52、第二加密子单元53、第一发送子单元54、第三接收子单元55、第二解密子单元56、第一计算子单元57和第三加密子单元58,第一生成子单元51与第二接收子单元52相连接,第二加密子单元53分别与第一生成子单元51、第二接收子单元52、第一发送子单元54相连接,第二解密子单元56分别与第一生成子单元51和第三接收子单元55相连接,第二解密子单元56、第一计算子单元57和第三加密子单元58依次连接。其中:
第一生成子单元51,适于根据Diffie-Hellman算法生成Diffie-Hellman公钥、服务端Diffie-Hellman私钥和服务端Diffie-Hellman公钥。
第二接收子单元52,适于接收所述客户端发送过来的所述客户端的身份数据,接收所述客户端发送的服务请求。
第二加密子单元53,适于使用根据所述第二接收子单元52接收的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一生成子单元51生成的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识。
第一发送子单元54,适于将经过第二加密子单元53加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识发送至所述客户端。
第三接收子单元55,适于接收客户端发送的使用服务端的身份数据确定的服务端RSA公钥加密的客户端Diffie-Hellman公钥和所述第二随机标识。
第二解密子单元56,适于使用第一存储子单元51中存储的服务端RSA私钥对第三接收子单元55接收的经过所述客户端采用服务端RSA公钥加密的客户端Diffie-Hellman公钥和所述第二随机标识。
第一计算子单元57,适于当第二解密子单元56解密得到正确的所述第二随机标识时,使用第二解密子单元56解密得到的Diffie-Hellman公钥和客户端Diffie-Hellman公钥计算会话密钥。
第三加密子单元58,适于使用第一计算子单元57计算得出的会话密钥和第一流加密算法加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
图6示出了本发明实施例中的服务端的接收单元的结构。如图6所示的接收单元可以包括:第四接收子单元61,适于接收客户端采用所述第二流加密算法和所述密文第二随机标识对待传输的数据包加密生成的密文数据包。
在具体实施中,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和所述第二随机标识生成。
图7示出了本发明实施例中的服务端的解密单元的结构示意图。如图7所示的解密单元可以包括:第一解密子单元71、数字签名验证单元72和执行子单元73,第一解密子单元71分别与数字签名验证单元72和执行子单元73相连接。其中:
第三解密子单元71,适于采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息。
数字签名验证单元72,适于采用所述数字签名算法验证第一解密子单元71解密得到的数字签名信息是否正确。
执行子单元73,适于当数字签名验证单元72验证所述数字签名信息正确时,根据解密得到的指令信息执行相应的操作。
在具体实施中,所述执行子单元73可以进一步包括第一执行模块731、第二执行模块732、第三执行模块733、第四执行模块734和第五执行模块735。其中:
第一执行模块731,适于当所述指令信息为第一数值时,对所述解密得到的消息信息不执行任何操作。
第二执行模块732,适于当所述指令信息为第二数值时,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求。
第三执行模块733,适于当所述指令信息为第三数值时,中断与所述客户端的连接并退出。
第四执行模块734,适于当所述指令信息为第四数值时,解压缩解密得到的消息信息。
第五执行模块735,当所述指令信息为第五数值时,请求与客户端重新会话密钥通过所述密钥交换协议生成新的会话密钥。
图8示出了本发明实施例中的客户端的结构。如图8所示的客户端,可以包括依次连接的第二身份认证单元81、第二密钥交换单元82和加密单元83。其中:
第二身份认证单元81,适于通过认证协议与服务端进行信息交互,对所述服务端进行身份认证。
第二密钥交换单元82,适于与经过第二身份认证单元81认证的服务端通过密钥交换协议生成会话密钥。
加密单元83,适于采用所述第二密钥交换单元82生成的会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
图9示出了本发明实施例中的客户端的第二身份认证单元的结构。如图9所述的第二身份认证单元可以包括第二存储子单元91、第二发送子单元92、第五接收子单元93、第三解密子单元94和第四加密子单元95,第二存储子单元91分别与第三解密子单元94和第四加密子单元95相连接,第五接收子单元93、第三解密子单元94和第四加密子单元95依次连接。其中:
第二存储子单元91,适于存储客户端RSA私钥和服务端RSA公钥,服务端RSA公钥由所述服务端的身份数据索引。
在具体实施中,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对。所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对。所述服务端RSA密钥对和服务端RSA密钥对采用RSA算法生成。所述服务端RSA私钥和客户端RSA公钥存储于所述服务端上,所述客户端RSA公钥由所述客户端的身份数据索引。
第二发送子单元92,适于将所述客户端的身份数据发送至所述服务端,向所述服务端发出服务请求。
第五接收子单元93,适于接收所述服务端采用第二发送子单元92发送的客户端的身份数据确定的客户端RSA公钥加密的服务端的身份数据和第一随机标识。
第三解密子单元94,适于采用所述第二存储子单元91中存储的与客户端RSA公钥相对应的客户端RSA私钥,解密第五接收子单元93所接收的经过服务端采用客户端RSA公钥加密的服务端的身份数据和第一随机标识,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功。
第四加密子单元95,适于当第三解密子单元94对所述服务端的身份认证成功时,采用根据第三解密子单元94解密得到的所述服务端的身份数据确定所述第二存储子单元91中存储的服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端。
在具体实施中,所述第二随机标识可以根据第三解密子单元解密得到的第一随机标识生成。
图10示出了本发明实施例中的客户端的第二密钥交换单元的结构。如图10所示的第二密钥交换单元可以包括第六接收子单元101、第四解密子单元102、第二生成子单元103、第二计算子单元104、第五加密子单元105、第七接收子单元106和第五解密子单元107,第四解密子单元102分别与第六接收子单元101、第二生成子单元103和第二计算子单元104相连接,第二生成子单元103还与第五加密子单元105相连接,第五解密子单元107还分别与第二计算子单元104和第六接收子单元106相连接。其中:
第六接收子单元101,适于接收经过所述服务端使用客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识。
在具体实施中,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成。
第四解密子单元102,适于使用第二存储子单元中存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密第六接收子单元101接收的经过客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识。
第二生成子单元103,适于根据第四解密子单元102解密得到正确的第二随机标识时,采用第四解密子单元102解密得到的Diffie-Hellman公钥生成客户端Diffie-Hellman私钥,并根据所述Diffie-Hellman公钥和客户端Diffie-Hellman私钥生成客户端Diffie-Hellman公钥。
第二计算子单元104,适于当第四解密子单元102解密得到正确的第二随机标识时,根据第四解密子单元102解密得到的Diffie-Hellman公钥和服务端Diffie-Hellman公钥计算会话密钥。
第五加密子单元105,适于使用第二存储子单元中存储的服务端RSA公钥,加密所述第二生成子单元103生成的客户端Diffie-Hellman公钥和所述第二随机标识,并发送至所述服务端。
第七接收子单元106,适于接收服务端采用所述密文第二随机标识和所述第二流加密算法加密的验证数据。
第五解密子单元107,适于使用第二计算子单元104计算得到的会话密钥和第一流加密算法加密第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法,解密所述第六接收子单元106接收的经过所述服务端加密的验证数据,当得到正确的验证数据时,证明所述客户端和所述服务端均计算出了正确的会话密钥。
图11示出了本发明实施例中的客户端的加密单元的结构示意图。如图11所示的加密单元110,可以包括信息输入子单元111、第六加密子单元112、签名生成子单元113、第七加密子单元114和第三发送子单元115,第七加密子单元114分别与信息输入子单元111、第六加密子单元112和签名生成子单元113相连接,签名生成子单元113还分别与信息输入子单元111和第六加密子单元112相连接。其中:
信息输入子单元111,适于输入待传输的消息信息。
第六加密子单元112,适于使用所述会话密钥和所述第一流加密算法加密所述第二随机标识,生成密文第二随机标识。
签名生成子单元113,适于采用数字签名算法加密指令信息、信息输入子单元111输入的消息信息和第二随机标识,生成数字签名信息。
第七加密子单元114,适于采用第六加密子单元112生成的密文随机标识和第二流加密算法加密待传输的数据包,生成密文数据包。
第三发送子单元115,适于将所述第七加密子单元114生成的密文数据包发送至所述服务端。
在具体实施中,所述待传输数据包可以包括所述指令信息、信息输入子单元111输入的消息信息和所述签名生成子单元113生成的数字签名信息。其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出。
在具体实施中,加密单元110还可以包括:指令设置子单元116,适于在所述第三发送子单元115向服务端传输数据结束时,将所述指令信息置为相应的数值。
在具体实施中,加密单元110还可以包括:统计子单元117,适于统计第三发送子单元115发送给所述服务端的数据量。当统计子单元117统计的第三发送子单元115发送给服务端的数据量达到预设的阈值时,服务端和客户端重新通过密钥交换协议,生成新的会话密钥。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及***做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (19)
1.一种数据传输方法,其特征在于,包括:
服务端与客户端通过认证协议进行信息交互,相互进行身份认证,具体包括:将所述服务端RSA私钥和客户端RSA公钥存储在所述服务端中,客户端RSA公钥由客户端的身份数据索引,将所述客户端RSA私钥和服务端RSA公钥存储在所述客户端中,所述服务端RSA公钥由服务端的身份数据索引,所述服务端RSA公钥和服务端RSA私钥、所述客户端RSA公钥和客户端RSA私钥分别采用RSA算法生成;所述客户端将自身的身份数据发送至所述服务端,向所述服务端发出服务请求;所述服务端根据客户端所发送的客户端的身份数据确定客户端RSA公钥,并使用所确定的所述客户端RSA公钥加密第一随机标识和服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端;所述客户端使用自身存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过加密的第一随机标识和所述服务端的身份数据,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功;所述客户端对所述服务端身份认证成功时,所述客户端基于所述服务端的身份数据确定服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为所述客户端根据解密得到的所述第一随机标识生成;所述服务端使用自身存储的与所述服务端RSA公钥相对应的服务端RSA私钥,解密经过加密的第二随机标识,当解密得到的第二随机标识与所述服务端根据解密得到的第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且所述服务端对所述客户端的身份认证成功;
所述服务端和客户端通过密钥交换协议生成会话密钥;
所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端;
所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。
2.根据权利要求1所述的数据传输方法,其特征在于,所述服务端和客户端通过密钥交换协议生成会话密钥,包括:
所述服务端使用客户端RSA公钥加密Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识,并发送至所述客户端,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成;
所述客户端使用与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过所述客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和第二随机标识;
当解密得到正确的第二随机标识时,所述客户端根据解密得到的Diffie-Hellman公钥和服务端Diffie-Hellman公钥计算出会话密钥;
所述客户端使用服务端RSA公钥加密客户端Diffie-Hellman公钥和所述第二随机标识,并发送至所述服务端,其中,所述客户端Diffie-Hellman公钥由所述客户端根据解密得到的Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的客户端Diffie-Hellman私钥生成;
所述服务端使用与所述服务端RSA公钥相对应的服务端RSA私钥,解密所述经过服务端RSA公钥加密的客户端Diffie-Hellman公钥和第二随机标识;
当得到正确的第二随机标识时,所述服务端根据所述Diffie-Hellman公钥和解密得到所述客户端Diffie-Hellman公钥计算出会话密钥;
所述服务端使用自身计算得到的会话密钥和第一流加密算法加密所述第二随机标识生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端;
所述客户端使用自身计算得到的会话密钥和所述第一流加密算法生成密文第二随机标识,并使用所述密文第二随机标识和所述第二流加密算法解密所述经过服务端加密的验证数据,当得到正确的验证数据时,证明所述服务端和所述客户端均计算出了正确的会话密钥。
3.根据权利要求2所述的数据传输方法,其特征在于,所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端,包括:
所述客户端使用所述第一流加密算法和所述会话密钥加密所述第二随机标识,得到所述密文第二随机标识;
所述客户端使用所述第二流加密算法和所述密文第二随机标识对待传输的数据包进行加密,生成密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和第二随机标识生成。
4.根据权利要求3所述的数据传输方法,其特征在于,所述服务端使用所述会话密钥和加密算法解密所接收的经过客户端加密的数据包,并执行相应的操作,包括:
所述服务端采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识;
所述服务端采用所述第二流加密算法和所述密文第二随机标识,解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息;
采用所述数字签名算法验证所述数字签名信息;
当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作。
5.根据权利要求4所述的数据传输方法,其特征在于,当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作,包括:
当所述指令信息为第一数值时,所述服务端对于解密得到的消息信息不执行任何操作;
当所述指令信息为第二数值时,所述服务端在接收数据结束后,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求;
当所述指令信息为第三数值时,所述服务端在接收数据结束后,中断与所述客户端的连接并退出;
当所述指令信息为第四数值时,所述服务端解压缩所述解密得到的消息信息;
当所述指令信息为第五数值时,所述服务端请求与所述客户端重新通过所述密钥交换协议生成新的会话密钥。
6.根据权利要求4所述的数据传输方法,其特征在于,所述指令信息位于所述待传输数据包的第一字节,并由所述客户端在向所述服务端传输数据结束时置为相应的数值。
7.根据权利要求4所述的数据传输方法,其特征在于,当所述客户端向所述服务端传输的数据量达到预设阈值时,所述客户端将所述指令信息设置为第五数值,所述服务端和所述客户端重新通过密钥交换协议生成新的会话密钥。
8.根据权利要求1所述的数据传输方法,其特征在于,所述客户端为一台以上。
9.一种服务端,其特征在于,包括:
第一身份认证单元,适于通过认证协议与客户端进行信息交互,对所述客户端进行身份认证;所述第一身份认证单元包括:第一存储子单元,适于存储服务端RSA私钥和客户端RSA公钥,客户端RSA公钥由所述客户端的身份数据索引,其中,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA密钥对和客户端RSA密钥对分别采用RSA算法生成,所述客户端RSA私钥和服务端RSA公钥存储于所述客户端上,所述服务端RSA公钥由服务端的身份数据索引;第一加密子单元,适于根据所接收的客户端的身份数据确定第一存储子单元中存储的客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和所述服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端;第一接收子单元,适于接收客户端采用服务端的身份数据确定的服务端RSA公钥加密的第二随机标识;
第一解密子单元,适于采用所述第一存储子单元中存储的服务端RSA私钥,解密第一接收子单元接收的经过客户端采用服务端RSA公钥加密的所述第二随机标识,当解密得到的第二随机标识,与根据所述第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且对所述客户端的身份认证成功;
第一密钥交换单元,适于与所述客户端通过密钥交换协议生成会话密钥;
接收单元,适于接收客户端使用加密算法和所述会话密钥加密的数据包;
解密单元,适于使用第一密钥交换单元生成的会话密钥和所述加密算法,解密所述接收单元所接收的经过客户端加密的数据包;
执行单元,适于获取并根据所述解密单元解密得到的数据包,执行相应的操作。
10.根据权利要求9所述的服务端,其特征在于,所述第一密钥交换单元包括:
第一生成子单元,适于根据Diffie-Hellman算法生成Diffie-Hellman公钥、服务端Diffie-Hellman私钥和服务端Diffie-Hellman公钥,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成;
第二接收子单元,适于接收所述客户端发送过来的所述客户端的身份数据,接收所述客户端发送的服务请求;
第二加密子单元,适于使用根据所述第二接收子单元接收的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一生成子单元生成的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识;
第一发送子单元,适于将经过所述第二加密子单元加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识发送至所述客户端;
第三接收子单元,适于接收客户端发送的使用服务端的身份数据确定的服务端RSA公钥加密的客户端Diffie-Hellman公钥和所述第二随机标识;
第二解密子单元,适于使用第一存储子单元中所存储的服务端RSA私钥对所述第三接收子单元接收的经过所述客户端采用服务端RSA公钥加密的客户端Diffie-Hellman公钥和所述第二随机标识;
第一计算子单元,适于当所述第二解密子单元解密得到正确的所述第二随机标识时,使用所述Diffie-Hellman公钥和所述第二解密子单元解密得到客户端Diffie-Hellman公钥计算会话密钥;
第三加密子单元,适于使用所述第一计算子单元计算得出的会话密钥和第一流加密算法加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
11.根据权利要求10所述的服务端,其特征在于,所述接收单元包括:
第四接收子单元,适于接收客户端采用所述第二流加密算法和所述密文第二随机标识对待传输的数据包加密生成的密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和所述第二随机标识生成。
12.根据权利要求11所述的服务端,其特征在于,所述解密单元包括:
第三解密子单元,适于采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息;
数字签名验证单元,适于采用所述数字签名算法验证所述第三解密子单元解密得到的数字签名信息;
执行子单元,适于当所述数字签名验证单元验证所述数字签名信息正确时,根据解密得到的指令信息执行相应的操作。
13.根据权利要求12所述的服务端,其特征在于,所述执行子单元包括:
第一执行模块,适于当所述指令信息为第一数值时,对所述解密得到的消息信息不执行任何操作;
第二执行模块,适于当所述指令信息为第二数值时,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求;
第三执行模块,适于当所述指令信息为第三数值时,中断与所述客户端的连接并退出;
第四执行模块,适于当所述指令信息为第四数值时,解压缩解密得到的消息信息;
第五执行模块,当所述指令信息为第五数值时,请求与客户端重新会话密钥通过所述密钥交换协议生成新的会话密钥。
14.一种客户端,其特征在于,包括:
第二身份认证单元,适于通过认证协议与服务端进行信息交互,对所述服务端进行身份认证;所述第二身份认证单元包括:第二存储子单元,适于存储客户端RSA私钥和服务端RSA公钥,服务端RSA公钥由所述服务端的身份数据索引,其中,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述服务端RSA密钥对和服务端RSA密钥对采用RSA算法生成,所述服务端RSA私钥和客户端RSA公钥存储于所述服务端上,所述客户端RSA公钥由所述客户端的身份数据索引;第二发送子单元,适于将所述客户端的身份数据发送至所述服务端,向所述服务端发出服务请求;第五接收子单元,适于接收所述服务端采用第二发送子单元发送的客户端的身份数据确定的客户端RSA公钥加密的服务端的身份数据和第一随机标识;第三解密子单元,适于采用所述第二存储子单元中存储的与客户端RSA公钥相对应的客户端RSA私钥,解密所述第五接收子单元接收的经过服务端采用客户端RSA公钥加密的服务端的身份数据和第一随机标识,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功;第四加密子单元,适于当所述第三解密子单元对于所述服务端的身份认证成功时,采用根据第三解密子单元解密得到的所述服务端的身份数据确定所述第二存储子单元中存储的服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为根据第三解密子单元解密得到的第一随机标识生成;
第二密钥交换单元,适于与经过第二身份认证单元认证的服务端通过密钥交换协议生成会话密钥;
加密单元,适于采用所述第二密钥交换单元生成的会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
15.根据权利要求14所述的客户端,其特征在于,所述第二密钥交换单元包括:
第六接收子单元,适于接收经过所述服务端使用客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识,所述Diffie-Hellman公钥由所述服务端生成,所述服务端Diffie-Hellman公钥由所述服务端利用所述Diffie-Hellman公钥和根据所述Diffie-Hellman公钥生成的服务端Diffie-Hellman私钥生成;
第四解密子单元,适于使用第二存储子单元存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密所述第六接收子单元接收的经过客户端RSA公钥加密的Diffie-Hellman公钥、服务端Diffie-Hellman公钥和所述第二随机标识;
第二生成子单元,适于根据第四解密子单元解密得到的Diffie-Hellman公钥生成客户端Diffie-Hellman私钥,并根据所述Diffie-Hellman公钥和客户端Diffie-Hellman私钥生成客户端Diffie-Hellman公钥;
第二计算子单元,适于当所述第四解密子单元解密得到正确的第二随机标识时,根据所述第四解密子单元解密得到的Diffie-Hellman公钥和所述服务端Diffie-Hellman公钥计算会话密钥;
第五加密子单元,适于使用第二存储子单元中存储的服务端RSA公钥,加密所述第二生成子单元生成的客户端Diffie-Hellman公钥和所述第二随机标识,并发送至所述服务端;
第七接收子单元,适于接收服务端采用第一流加密算法和所述会话密钥加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密的验证数据;
第五解密子单元,适于使用第二计算子单元计算得到的会话密钥和第一流加密算法加密第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法,解密所述第七接收子单元接收的经过所述服务端加密的验证数据,当得到正确的验证数据时,证明所述客户端和所述服务端均计算出了正确的会话密钥。
16.根据权利要求15所述的客户端,其特征在于,所述加密单元包括:
信息输入子单元,适于输入待传输的消息信息;
第六加密子单元,适于使用所述会话密钥和所述第一流加密算法加密所述第二随机标识,得到密文第二随机标识;
签名生成子单元,适于采用数字签名算法加密指令信息、所述消息信息和所述第二随机标识,生成数字签名信息;
第七加密子单元,适于采用第二流加密算法和所述第六加密子单元得到的密文随机标识加密待传输的数据包,生成密文数据包,所述待传输数据包包括所述指令信息、消息信息和所述签名生成子单元生成的数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出;
第三发送子单元,适于将所述第七加密子单元生成的密文数据包发送至所述服务端。
17.根据权利要求16所述的客户端,其特征在于,所述加密单元还包括:指令设置子单元,适于在所述第三发送子单元向服务端传输数据结束时,将所述指令信息置为相应的数值。
18.根据权利要求16所述的客户端,其特征在于,所述相应的数值包括第一数值、第二数值、第三数值、第四数值或者第五数值;
当所述指令信息为第一数值时,指示服务端对于所述解密得到的消息信息不执行任何操作;
当所述指令信息为第二数值时,指示服务端中断与客户端的连接,并指示服务端持续监听服务端口,以确定是否有服务请求;
当所述指令信息为第三数值时,指示服务端中断与所述客户端的连接并退出;
当所述指令信息为第四数值时,指示服务端解压缩解密得到的消息信息;
当所述指令信息为第五数值时,指示服务端与重新进行密钥交换,生成新的会话密钥。
19.根据权利要求16所述的客户端,其特征在于,所述加密单元还包括:统计子单元,适于统计所述第三发送子单元发送给所述服务端的数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410240981.7A CN104023013B (zh) | 2014-05-30 | 2014-05-30 | 数据传输方法、服务端和客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410240981.7A CN104023013B (zh) | 2014-05-30 | 2014-05-30 | 数据传输方法、服务端和客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104023013A CN104023013A (zh) | 2014-09-03 |
CN104023013B true CN104023013B (zh) | 2017-04-12 |
Family
ID=51439583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410240981.7A Active CN104023013B (zh) | 2014-05-30 | 2014-05-30 | 数据传输方法、服务端和客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104023013B (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104821951B (zh) * | 2015-05-26 | 2019-04-19 | 新华三技术有限公司 | 一种安全通信的方法和装置 |
CN106341375B (zh) * | 2015-07-14 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 实现资源加密访问的方法及*** |
WO2017096599A1 (zh) * | 2015-12-10 | 2017-06-15 | 深圳市大疆创新科技有限公司 | 安全通信***、方法及装置 |
CN105939520A (zh) * | 2016-03-18 | 2016-09-14 | 李明 | 一种通信连接的建立方法、设备及*** |
CN105719120B (zh) * | 2016-04-25 | 2019-11-15 | 成都木马人网络科技有限公司 | 一种加密快递单隐私信息的方法 |
CN106101097A (zh) * | 2016-06-08 | 2016-11-09 | 美的集团股份有限公司 | 家电设备及其与云服务器的通讯***及方法、云服务器 |
CN106250517A (zh) * | 2016-08-02 | 2016-12-21 | 广东电网有限责任公司中山供电局 | 区域电网用电量数据的存储***和方法 |
CN106161472A (zh) * | 2016-09-05 | 2016-11-23 | 上海前隆金融信息服务有限公司 | 一种数据加密的方法、装置及*** |
CN106453319A (zh) * | 2016-10-14 | 2017-02-22 | 北京握奇智能科技有限公司 | 一种基于安全模块的数据传输***及方法 |
CN106790223B (zh) * | 2017-01-13 | 2020-10-20 | 无锡英威腾电梯控制技术有限公司 | 一种数据传输的方法和设备及其*** |
CN106777362A (zh) * | 2017-01-19 | 2017-05-31 | 杭州云灵科技有限公司 | 一种html页面的信息采集方法 |
CN106953728B (zh) * | 2017-03-28 | 2020-08-25 | 联想(北京)有限公司 | 一种数据传输方法和电子设备 |
CN107231354A (zh) * | 2017-06-02 | 2017-10-03 | 四川铭扬通信科技有限公司 | 一种数据传输单元的数据传输方法及*** |
CN107425959A (zh) * | 2017-06-20 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种实现加密处理的方法、***、客户端及服务端 |
CN107231368A (zh) * | 2017-06-22 | 2017-10-03 | 四川长虹电器股份有限公司 | 提升面向互联网开放的软件接口安全性的方法 |
CN111615701B (zh) * | 2017-11-23 | 2024-02-09 | 华为技术有限公司 | 一种用于存储加密数据的***和方法 |
CN107979596B (zh) * | 2017-11-24 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种直播中防止刷人气行为的方法及*** |
CN108471423B (zh) * | 2018-04-02 | 2021-03-09 | 北京奇艺世纪科技有限公司 | 一种私钥的获取方法及*** |
CN108923956A (zh) * | 2018-06-13 | 2018-11-30 | 广州微林软件有限公司 | 一种网络数据传输的方法 |
CN109587149A (zh) * | 2018-12-11 | 2019-04-05 | 许昌许继软件技术有限公司 | 一种数据的安全通信方法及装置 |
CN109617886B (zh) * | 2018-12-21 | 2021-07-27 | 广东宏大欣电子科技有限公司 | 基于tcp通信的客户端数据加密方法和服务端数据加密方法 |
AU2020260951A1 (en) * | 2019-01-28 | 2021-09-09 | Knectiq Inc. | System and method for secure electronic data transfer |
CN111614596B (zh) * | 2019-02-22 | 2021-07-09 | 北京大学 | 一种基于IPv6隧道技术的远程设备控制方法及*** |
EP3713188B1 (de) | 2019-03-19 | 2024-06-19 | Siemens Mobility GmbH | Verfahren und übertragungsvorrichtung zur datenübertragung zwischen zwei netzwerken |
CN111753312B (zh) * | 2019-03-26 | 2023-09-08 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置、设备和*** |
CN110430204A (zh) * | 2019-08-12 | 2019-11-08 | 徐州恒佳电子科技有限公司 | 一种基于第三方密码簿服务器的改进型json安全通信方法 |
CN110519054A (zh) * | 2019-08-29 | 2019-11-29 | 四川普思科创信息技术有限公司 | 一种基于可信计算技术进行物联网数据安全保护的方法 |
CN110808829B (zh) * | 2019-09-27 | 2023-04-18 | 国电南瑞科技股份有限公司 | 一种基于密钥分配中心的ssh认证方法 |
CN113114610B (zh) * | 2020-01-13 | 2022-11-01 | 杭州萤石软件有限公司 | 一种取流方法、装置及设备 |
CN111327629B (zh) * | 2020-03-04 | 2021-07-27 | 广州柏视医疗科技有限公司 | 身份验证方法、客户端和服务端 |
CN111756690A (zh) * | 2020-05-19 | 2020-10-09 | 北京明略软件***有限公司 | 一种数据处理***、方法及服务器 |
CN111800467B (zh) * | 2020-06-04 | 2023-02-14 | 河南信大网御科技有限公司 | 远程同步通信方法、数据交互方法、设备及可读存储介质 |
CN112351023A (zh) * | 2020-10-30 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 一种数据共享和传输的方法及*** |
CN112702712A (zh) * | 2020-12-25 | 2021-04-23 | 江苏鸣实纯钧科技有限公司 | 一种车载终端数据加密传输的方法和*** |
CN112861148B (zh) * | 2021-01-28 | 2022-02-18 | 北京深思数盾科技股份有限公司 | 数据处理方法、服务端、客户端及加密机 |
CN113037484B (zh) * | 2021-05-19 | 2021-08-24 | 银联商务股份有限公司 | 数据传输方法、装置、终端、服务器及存储介质 |
CN113572741A (zh) * | 2021-06-30 | 2021-10-29 | 深圳市证通云计算有限公司 | 一种基于国密sm2-sm3-sm4算法实现数据的安全传输的方法 |
CN113364816B (zh) * | 2021-08-11 | 2021-10-26 | 北京蔚领时代科技有限公司 | 基于多通道交换协议的数据传输*** |
CN114143026B (zh) * | 2021-10-26 | 2024-01-23 | 福建福诺移动通信技术有限公司 | 基于非对称与对称加密的数据安全接口及其工作方法 |
CN114513339A (zh) * | 2022-01-21 | 2022-05-17 | 国网浙江省电力有限公司金华供电公司 | 一种安全认证方法、***及装置 |
CN115001705B (zh) * | 2022-05-25 | 2024-01-26 | 深圳市证通电子股份有限公司 | 一种基于加密设备的网络协议安全提升方法 |
CN117475533A (zh) * | 2022-07-21 | 2024-01-30 | 广州汽车集团股份有限公司 | 数据传输方法及装置、设备、计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459506A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 密钥协商方法、用于密钥协商的***、客户端及服务器 |
CN101771535A (zh) * | 2008-12-30 | 2010-07-07 | 上海茂碧信息科技有限公司 | 终端和服务器之间的双向认证方法 |
CN103354498A (zh) * | 2013-05-31 | 2013-10-16 | 北京鹏宇成软件技术有限公司 | 一种基于身份的文件加密传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1391073B8 (en) * | 2001-05-01 | 2018-09-05 | OneSpan International GmbH | Method and system for increasing security of a secure connection |
US20040003287A1 (en) * | 2002-06-28 | 2004-01-01 | Zissimopoulos Vasileios Bill | Method for authenticating kerberos users from common web browsers |
-
2014
- 2014-05-30 CN CN201410240981.7A patent/CN104023013B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459506A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 密钥协商方法、用于密钥协商的***、客户端及服务器 |
CN101771535A (zh) * | 2008-12-30 | 2010-07-07 | 上海茂碧信息科技有限公司 | 终端和服务器之间的双向认证方法 |
CN103354498A (zh) * | 2013-05-31 | 2013-10-16 | 北京鹏宇成软件技术有限公司 | 一种基于身份的文件加密传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104023013A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104023013B (zh) | 数据传输方法、服务端和客户端 | |
CN104219228B (zh) | 一种用户注册、用户识别方法及*** | |
US9166793B2 (en) | Efficient authentication for mobile and pervasive computing | |
CN108111301A (zh) | 基于后量子密钥交换实现ssh协议的方法及其*** | |
CN108347419A (zh) | 数据传输方法和装置 | |
CN109951513B (zh) | 基于量子密钥卡的抗量子计算智能家庭量子云存储方法和*** | |
CN102780698A (zh) | 物联网平台中用户终端安全通信的方法 | |
Chen et al. | Privacy-preserving encrypted traffic inspection with symmetric cryptographic techniques in IoT | |
CN104935553B (zh) | 统一身份认证平台及认证方法 | |
US12010216B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
CN106850191A (zh) | 分布式存储***通信协议的加密、解密方法及装置 | |
CN112235107A (zh) | 一种数据传输方法、装置、设备和存储介质 | |
CN110020524A (zh) | 一种基于智能卡的双向认证方法 | |
CN114143117B (zh) | 数据处理方法及设备 | |
US11528127B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
CN109104278A (zh) | 一种加密解密方法 | |
CN107483388A (zh) | 一种安全通信方法及其终端和云端 | |
CN114915396B (zh) | 一种基于国密算法的跳变密钥数字通信加密***和方法 | |
CN110519052A (zh) | 基于物联网操作***的数据交互方法和装置 | |
CN106230840B (zh) | 一种高安全性的口令认证方法 | |
CN111416712A (zh) | 基于多个移动设备的量子保密通信身份认证***及方法 | |
CN107276996A (zh) | 一种日志文件的传输方法及*** | |
AlJabri et al. | [Retracted] A Comprehensive Review of Lightweight Authenticated Encryption for IoT Devices | |
CN115865313A (zh) | 一种轻量级隐私保护纵向联邦学习模型参数聚合方法 | |
CN112822015B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Jingyi Inventor after: Kang Kai Inventor before: Zhang Jingyi |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |