数据传输方法、服务端和客户端的制作方法

文档序号:7805266阅读:173来源:国知局
数据传输方法、服务端和客户端的制作方法
【专利摘要】一种数据传输方法、服务端和客户端,所述方法,包括:服务端与客户端通过认证协议进行信息交互,相互进行身份认证;所述服务端和客户端通过密钥交换协议生成会话密钥;所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端;所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。上述的方案可以实现传输的数据包由客户端向服务端的单向传输,构建过程简单,可以有效节约计算资源,使得数据的传输更加安全可靠。
【专利说明】数据传输方法、服务端和客户端
【技术领域】
[0001]本发明涉及数据传输【技术领域】,特别是涉及一种数据传输方法、服务端和客户端。【背景技术】
[0002]网络管道操作,是一种基于网络的单向数据传输方法,能够将由客户端的标准输入得到的数据,传输至服务端,并由服务端输出至标准输出。若配合管道(pipeline)使用,就能将上游程序的标准输出传输至远程主机下的下游程序的标准输入,类似于将POSIX系统中的管道机制网络化,故称之为网络管道。
[0003]现有技术中,实现不同客户端与服务端之间的网络管道操作,通常可以采用下述的两种方法:一种是采用虚拟专用网络(Virtual Private Network, VPN)或者SSH(SecureShell,安全外壳协议)与TCP-PIPE (TCP-PIPE为一开源程序,该程序由Daniel.B于2004年8月11日在SourceForge.net上注册,用于在客户端和服务端之间进行远程管道操作)相结合的方式;另一种是采用SSH和管道来实现服务端和客户端之间的数据传输。
[0004]但是,上述的两种方法,或者由于对传输的数据不经过加密处理,需要构建并维持不可中断的安全通道,而存在着浪费计算资源的问题;或者需要依赖安全性不高的RPC(Remote Procedure Call Protocol,远程过程调用协议)服务,而存在安全性较差的问题;或者不符合业务流程,而导致容易产生误操作的问题,且上述两种方法均不支持多客户端与单服务端之间并发传输数据。

【发明内容】

[0005]本发明实施例解决的问题是如何安全地利用远程管道在客户端和服务端之间进行单向的数据传输。
[0006]为解决上述问题,本发明实施例提供了一种数据传输方法,所述方法包括:
[0007]服务端与客户端通过认证协议进行信息交互,相互进行身份认证;
[0008]所述服务端和客户端通过密钥交换协议生成会话密钥;
[0009]所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端;
[0010]所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。
[0011 ] 可选地,服务端与客户端通过认证协议进行信息交互,相互进行身份认证,包括:
[0012]将所述服务端RSA私钥和客户端RSA公钥存储在所述服务端中,客户端RSA公钥由客户端的身份数据索引,将所述客户端RSA私钥和服务端RSA公钥存储在所述客户端中,所述服务端RSA公钥由服务端的身份数据索引,所述服务端RSA公钥和服务端RSA
[0013]私钥、所述客户端RSA公钥和客户端RSA私钥分别采用RSA算法生成;
[0014]所述客户端将自身的身份数据发送至所述服务端,向所述服务端发出服务请求;
[0015]所述服务端根据客户端所发送的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端;
[0016]所述客户端使用自身存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过加密的第一随机标识和所述服务端的身份数据,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功;
[0017]所述客户端对所述服务端身份认证成功时,所述客户端所述服务端的身份数据确定服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为所述客户端根据解密得到的所述第一随机标识生成;
[0018]所述服务端使用自身存储的与所述服务端RSA公钥相对应的服务端RSA私钥,解密经过加密的第二随机标识,当解密得到的第二随机标识与所述服务端根据解密得到的第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且所述服务端对所述客户端的身份认证成功。
[0019]可选地,所述服务端和客户端通过密钥交换协议生成会话密钥,包括:
[0020]所述服务端使用客户端RSA公钥,加密Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识,并发送至所述客户端,所述Deffie-Hellman公钥由所述服务端生成,所述服务端Deffie-Hel Iman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成;
[0021]所述客户端使用与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过所述客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识;
[0022]当解密得到正确的的第二随机标识时,所述客户端根据解密得到的Deffie-Hellman公钥和服务端Deffie-Hellman公钥计算出会话密钥;
[0023]所述客户端使用服务端RSA公钥加密客户端Deffie-Hellman公钥和所述第二随机标识,并发送至所述服务端,其中,所述客户端Deffie-Hellman公钥由所述客户端根据解密得到的Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的客户端Deffie-Hellman私钥生成;
[0024]所述服务端使用与所述服务端RSA公钥相对应的服务端RSA私钥,解密所述经过服务端RSA公钥加密的客户端Deffie-Hellman公钥和第二随机标识;
[0025]当得到正确的第二随机标识时,所述服务端根据所述Deffie-Hellman公钥和解密得到所述客户端Deffie-Hellman公钥计算出会话密钥;
[0026]所述服务端使用自身计算得到的会话密钥和第一流加密算法,加密所述第二随机标识生成,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端;
[0027]所述客户端使用自身计算得到的会话密钥和所述第一流加密算法生成密文第二随机标识,并使用所述密文第二随机标识和所述第二流加密算法解密所述经过服务端加密的验证数据,当得到正确的验证数据时,证明所述服务端和所述客户端均计算出了正确的会话密钥。
[0028]可选地,所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端,包括:[0029]所述客户端使用所述第一流加密算法和所述会话密钥加密所述第二随机标识,得到所述密文第二随机标识;
[0030]所述客户端使用所述第二流加密算法和所述密文第二随机标识对待传输的数据包进行加密,生成密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和第二随机标识生成。
[0031]可选地,所述服务端使用所述会话密钥和加密算法解密所接收的经过客户端加密的数据包,并执行相应的操作,包括:
[0032]所述服务端采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识;
[0033]所述服务端采用所述第二流加密算法和所述密文第二随机标识,解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息;
[0034]采用所述数字签名算法验证所述数字签名信息;
[0035]当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作。
[0036]可选地,当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作,包括:
[0037]当所述指令为第一数值时,所述服务端对于解密得到的消息信息不执行任何操作;
[0038]当所述指令为第二数值时,所述服务端在接收数据结束后,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求;
[0039]当所述指令为第三数值时,所述服务端在接收数据结束后,中断与所述客户端的连接并退出;
[0040]当所述指令为第四数值时,所述服务端解压缩所述解密得到的消息信息;
[0041]当所述指令为第五数值时,所述服务端请求与所述客户端重新通过所述密钥交换协议生成新的会话密钥。
[0042]可选地,所述指令信息位于所述待传输数据包的第一字节,并由所述客户端在向所述服务端传输数据结束时置为相应的数值。
[0043]可选地,当所述客户端向所述服务端传输的数据量达到预设阈值时,所述客户端将所述指令信息设置为第五数值,所述服务端和所述客户端重新通过密钥交换协议生成新的会话密钥。
[0044]可选地,所述客户端为一台以上。
[0045]本发明实施例还提供了一种服务端,包括:
[0046]第一身份认证单元,适于通过认证协议与客户端进行信息交互,对所述客户端进行身份认证;
[0047]第一密钥交换单元,适于与所述客户端通过密钥交换协议生成会话密钥;
[0048]接收单元,适于接收客户端使用加密算法和所述会话密钥加密的数据包;
[0049]解密单元,适于使用第一密钥交换单元生成的会话密钥和所述加密算法,解密所述接收单元所接收的经过客户端加密的数据包;
[0050]执行单元,适于获取并根据所述解密单元解密得到的数据包,执行相应的操作。
[0051]可选地,所述第一身份认证单元包括:
[0052]第一存储子单元,适于存储服务端RSA私钥和客户端RSA公钥,客户端RSA公钥由所述客户端的身份数据索引,其中,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA密钥对和客户端RSA密钥对分别采用RSA算法生成,所述客户端RSA私钥和服务端RSA公钥存储于所述客户端上,所述服务端RSA公钥由服务端的身份数据索引;
[0053]第一加密子单元,适于根据所接收的客户端的身份数据确定第一存储子单元中存储的客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和所述服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端;
[0054]第一接收子单元,适于接收客户端采用服务端的身份数据确定的服务端RSA公钥加密的第二随机标识;
[0055]第一解密子单元,适于采用所述第一存储子单元中存储的服务端RSA私钥,解密经过客户端采用服务端RSA公钥加密的所述第二随机标识,当解密得到的第二随机标识,与根据所述第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且对所述客户端的身份认证成功。
[0056]可选地,第一密钥交换单元包括:
[0057]第一生成子单元,适于根据Deffie-Hellman算法生成Deffie-Hellman公钥、服务端Deffie-Hel Iman私钥和服务端Deffie-Hel Iman公钥,所述Deffie-He I Iman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成;
[0058]第二接收子单元,适于接收所述客户端发送过来的所述客户端的身份数据,接收所述客户端发送的服务请求;
[0059]第二加密子单元,适于使用根据所述第二接收子单元接收的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一生成子单元生成的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识;
[0060]第一发送子单元,适于将经过所述第二加密子单元加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识发送至所述客户端;
[0061]第三接收子单元,适于接收客户端发送的使用服务端的身份数据确定的服务端RSA公钥加密的客户端Deffie-Hellman公钥和所述第二随机标识;
[0062]第二解密子单元,适于使用第一存储子单元中所存储的服务端RSA私钥对所述第三接收子单元接收的经过所述客户端采用服务端RSA公钥加密的客户端Deffie-Hellman公钥和所述第二随机标识;
[0063]第一计算子单元,适于当所述第二解密子单元解密得到正确的所述第二随机标识时,使用所述Deffie-Hellman公钥和所述第二解密子单元解密得到客户端Deffie-Hellman公钥计算会话密钥;
[0064]第三加密子单元,适于使用所述第一计算子单元计算得出的会话密钥和第一流加密算法加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
[0065]所述接收单元包括:第四接收子单元,适于接收客户端采用所述第二流加密算法和所述密文第二随机标识对待传输的数据包加密生成的密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和所述第二随机标识生成。
[0066]可选地,所述解密单元包括:
[0067]第三解密子单元,适于采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息;
[0068]数字签名验证单元,适于采用所述数字签名算法验证所述第三解密子单元解密得到的数字签名信息;
[0069]执行子单元,适于当所述数字签名验证单元验证所述数字签名信息正确时,根据解密得到的指令信息执行相应的操作。
[0070]可选地,所述执行子单元包括:
[0071]第一执行模块,适于当所述指令为第一数值时,对所述解密得到的消息信息不执行任何操作;
[0072]第二执行模块,适于当所述指令为第二数值时,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求;
[0073]第三执行模块,适于当所述指令为第三数值时,中断与所述客户端的连接并退出;
[0074]第四执行模块,适于当所述指令为第四数值时,解压缩解密得到的消息信息;
[0075]第五执行模块,当所述指令为第五数值时,请求与客户端重新会话密钥通过所述密钥交换协议生成新的会话密钥。
[0076]本发明实施例还提供了一种客户端,包括:
[0077]第二身份认证单元,适于通过认证协议与服务端进行信息交互,对所述服务端进行身份认证;
[0078]第二密钥交换单元,适于与经过第二身份认证单元认证的服务端通过密钥交换协议生成会话密钥;
[0079]加密单元,适于采用所述第二密钥交换单元生成的会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
[0080]可选地,所述第二身份认证单元包括:
[0081]第二存储子单元,适于存储客户端RSA私钥和服务端RSA公钥,服务端RSA公钥由所述服务端的身份数据索引,其中,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述服务端RSA密钥对和服务端RSA密钥对采用RSA算法生成,所述服务端RSA私钥和客户端RSA公钥存储于所述服务端上,所述客户端RSA公钥由所述客户端的身份数据索引;
[0082]第二发送子单元,适于将所述客户端的身份数据发送至所述服务端,向所述服务端发出服务请求;
[0083]第五接收子单元,适于接收所述服务端采用第二发送子单元发送的客户端的身份数据确定的客户端RSA公钥加密的服务端的身份数据和第一随机标识;
[0084]第三解密子单元,适于采用所述第二存储子单元中存储的与客户端RSA公钥相对应的客户端RSA私钥,解密所述第五接收子单元接收的经过服务端采用客户端RSA公钥加密的服务端的身份数据和第一随机标识,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功;
[0085]第四加密子单元,适于当所述第三解密子单元对于所述服务端的身份认证成功时,采用根据第三解密子单元解密得到的所述服务端的身份数据确定所述第二存储子单元中存储的服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为根据第三解密子单元解密得到的第一随机标识生成。
[0086]可选地,第二密钥交换单元包括:
[0087]第六接收子单元,适于接收经过所述服务端使用客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识,所述Deffie-Hellman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成;
[0088]第四解密子单元,适于使用第二存储子单元存储的与所述客户端RSA公钥相对应的客户端R S A私钥,解密所述第六接收子单元接收的经过客户端R S A公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识;
[0089]第二生成子单元,适于根据第四解密子单元解密得到的Deffie-Hellman公钥生成客户端Deffie-Hellman私钥,并根据所述Deffie-Hellman公钥和客户端Deffie-Hellman私钥生成客户端Deffie-Hellman公钥;
[0090]第二计算子单元,适于当所述第四解密子单元解密得到正确的的第二随机标识时,根据所述第四解密子单元解密得到的Deffie-Hellman公钥和所述服务端Deffie-Hellman公钥计算会话密钥;
[0091]第五加密子单元,适于使用第二存储子单元中存储的服务端RSA公钥,加密所述第二生成子单元生成的客户端Deffie-Hellman公钥和所述第二随机标识,并发送至所述服务端;
[0092]第七接收子单元,适于接收服务端采用第一流加密算法和所述会话密钥加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和所述第二流加密算法加密的验证数据;
[0093]第五解密子单元,适于使用第二计算子单元计算得到的会话密钥和第一流加密算法加密第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法,解密所述第六接收子单元接收的经过所述服务端加密的验证数据,当得到正确的验证数据时,证明所述客户端和所述服务端均计算出了正确的会话密钥。
[0094]可选地,所述发送单元包括:
[0095]信息输入子单兀,适于输入待传输的消息信息;
[0096]第六加密子单元,适于使用所述会话密钥和所述第一流加密算法加密所述第二随机标识,得到密文第二随机标识;
[0097]签名生成子单元,适于采用数字签名算法加密指令信息、所述消息信息和所述第二随机标识,生成数字签名信息;
[0098]第七加密子单元,适于采用第二流加密算法和所述第六加密子单元得到的密文随机标识加密待传输的数据包,生成密文数据包,所述待传输数据包包括所述指令信息、消息信息和所述签名生成子单元生成的数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出;
[0099]第三发送子单元,适于将所述第七加密子单元生成的密文数据包发送至所述服务端。
[0100]可选地,所述发送单元还包括:指令设置子单元,适于在所述第三发送子单元向服务端传输数据结束时,将所述指令信息置为相应的数值。
[0101]可选地,所述相应的数值包括第一数值、第二数值、第三数值、第四数值或者第五数值;
[0102]当所述指令为第一数值时,指示服务端对于所述解密得到的消息信息不执行任何操作;
[0103]当所述指令为第二数值时,指示服务端中断与客户端的连接,并指示服务端持续监听服务端口,以确定是否有服务请求;
[0104]当所述指令为第三数值时,指示服务端中断与所述客户端的连接并退出;
[0105]当所述指令为第四数值时,指示服务端解压缩解密得到的消息信息;
[0106]当所述指令为第五数值时,指示服务端与重新进行密钥交换,生成新的会话密钥。
[0107]可选地,所述发送单元还包括:统计子单元,适于统计所述第三发送子单元发送给所述服务端的数据量。
[0108]与现有技术相比,本发明的技术方案具有以下的优点:
[0109]上述的技术方案,由于在进行数据传输之前,客户端和服务端之间通过认证协议相互认证对方的身份,再通过密钥交换协议计算会话密钥,并采用计算得到的会话密钥和加密算法来对传输的数据包进行加密和解密,实现传输的数据包安全地由客户端向服务端的单向传输,构建简单,无需额外消耗计算资源,因此,数据的传输更加安全可靠,并可以有效节约计算资源。
[0110]进一步地,由于采用指令对服务端执行的操作进行控制,可以满足多样的数据传输需求。
[0111]进一步地,由于RSA加密算法对于客户端与服务端在身份认证阶段和密钥交换阶段交互的信息进行加密,可以有效提高数据传输的安全性,并可以有效防止中间人攻击。
[0112]进一步地,由于并在客户端与服务端的交互的信息中加入了第一随机标识或者第二随机标识,可以有效防止重放攻击。
[0113]进一步地,由于采用Diffie-hellman密匙交换协议计算客户端和服务端的对称的会话密钥,由于所述会话密钥由双方各自生成,而非由一方计算出后传输给另一方,因此,可以有效防止会话密钥被第三方截获,而对数据传输的安全造成威胁。
[0114]进一步地,由于采用第一流加密算法和会话会话密钥加密第二会话标识,生成密文第二随机标识,可以有效防止重放攻击,再使用第二流加密算法和密文第二随机标识来加密传输的数据,使得每次加密数据使用的密钥均不相同,可以有效防止生日攻击,因此,可以提高数据传输的安全性。
[0115]进一步地,由于采用数字签名算法对指令信息、消息信息和第二随机标识生成数字签名信息,可以确认数据包发送者的真实身份、以及数据包的完整性和保密性。
[0116]进一步地,由于一台以上的客户端可以同时向服务端传输数据,可以满足客户端与服务端之间并发传输数据的需求。
【专利附图】

【附图说明】
[0117]图1是本发明实施例中的一种数据传输方法的流程图;
[0118]图2是本发明实施例中的另一种数据传输方法的流程图;
[0119]图3是本发明实施例中的一种服务端的结构示意图;
[0120]图4是本发明实施例中的服务端的第一身份认证单元的结构示意图;
[0121]图5是本发明实施例中的服务端的第一密钥交换单元的结构示意图;
[0122]图6是本发明实施例中的服务端的接收单元的结构示意图;
[0123]图7是本发明实施例中的服务端的解密单元的结构示意图;
[0124]图8是本发明实施例中的客户端的结构示意图;
[0125]图9是本发明实施例中的客户端的第二身份认证单元的结构示意图;
[0126]图10是本发明实施例中的客户端的第二密钥交换单元的结构示意图;
[0127]图11是本发明实施例中的客户端中的发送单元的结构示意图。
【具体实施方式】
[0128]现有技术中,利用管道来建立客户端和服务端之间的数据传输,通常采用下述两种方式:
[0129]一种是米用 VPN (Virtual Private Network,虚拟专用网络)或者 SSH (SecureShell,安全外壳协议)与TCP-PIPE相结合的方式,即:首先,在客户端与服务端之间架设VPN或者采用SSH代理,以构建安全通道,然后,在RPC上注册TCP-PIPE服务端。最后,使用TCP-PIPE客户端与TCP-PIPE服务端进行数据传输。
[0130]一方面,由于采用TCP-PIPE客户端与TCP-PIPE服务端之间采用明文方式进行数据的传输,因此需要额外地构建长期存在的安全通道,以确保传输数据的安全性,因而存在着会浪费资源。另一方面,由于TCP-PIPE服务端需要依赖RPC服务来进行数据的传输,由于RPC服务本身的安全性不高,因此也增加客户端和服务端被入侵的风险。
[0131]另一种是采用SSH和管道来实现客户端与服务端之间的数据传输,该种方法有两种实现方式,以业务服务端向业务客户端传输数据为例,包括:
[0132]一种实现方式是通过SSH客户端将需要在业务服务端执行的命令传输到SSH服务端。然后,再利用管道将SSH服务端命令运行后的结果从SSH客户端的标准输出传递至下游程序的标准输入。
[0133]另一种实现方式是将业务服务端本地运行的结果利用管道引导至SSH客户端的标准输入,再将需要在业务服务端运行的命令传递至SSH服务端,以此,将业务服务端的本地数据传输至业务客户端。[0134]由此可见,在方法中,无论第一种实现方式还是第二种实现方式均不符合正常的数据传输流程,因此,容易导致误操作。
[0135]同时,上述的两种方式均不支持多台客户端和服务端之间的并发通信,无法满足服务端与多台客户端进行并发通信的需求。
[0136]为解决现有技术中存在的上述问题,本发明实施例采用在数据传输之前先进行身份认证,再计算会话密钥,并利用所计算出来的会话密钥来进行数据传输,可以有效提高数据传输的安全性,节约计算资源,简单易用。
[0137]为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0138]图1示出了本发明实施例中的一种数据传输方法的流程图。如图1所示数据传输方法,可以包括:
[0139]步骤Sll:服务端与客户端通过认证协议进行信息交互,相互进行身份认证。
[0140]在具体实施中,服务端和客户端可以通过认证协议进行信息交互,相互确定对方的身份,以确定对方不是入侵者。
[0141]步骤S12:所述服务端和客户端通过密钥交换协议生成会话密钥。
[0142]在具体实施中,服务端和客户端可以采用密匙交换协议计算会话密钥,并验证双方是否计算出了正确的会话密钥,当双方均计算出正确的会话密钥时,则可以进行后续的数据传输。
[0143]步骤S13:所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
[0144]在具体实施中,当服务端和客户端生成正确的会话密钥时,客户端可以使用计算出来的会话密钥和加密算法对待传输的数据包进行加密,以确认数据包发发送者的真实身份,并确保数据包的保密性和完整性。
[0145]在具体实施中,为了进一步确保数据传输的安全性,可以采用流加密算法来对待传输的数据包进行加密,由于客户端在每次传输数据时,采用不同的密钥对传输的数据进行加密,可以有效避免采用不变的密钥对数据进行加密所产生的安全性问题。
[0146]步骤S14:所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。
[0147]在具体实施中,服务端可以使用自身计算得到的会话密钥和加密算法,将客户端采用会话密钥和所述加密算法加密的数据进行解密,并根据解密得到的数据执行相应的操作。例如,客户端可以根据解密得到的数据中的指令的信息,执行相应的操作。
[0148]图2示出了本发明实施例中的另一种数据传输方法的流程图。如图2所述的数据传输方法,可以包括:
[0149]步骤S201:将所述服务端RSA私钥和客户端RSA公钥存储在所述服务端中,客户端RSA公钥由客户端的身份数据索引,将所述客户端RSA私钥和服务端RSA公钥存储在所述客户端中,所述服务端RSA公钥由服务端的身份数据索引。
[0150]在具体实施中,所述服务端RSA私钥和服务端RSA公钥构成服务端RSA密钥对,客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,服务端RSA密钥对和客户端密钥对可以分别由服务端和客户端采用RSA算法生成,也可以由第三方生成。[0151]在具体实施中,客户端RSA公钥由客户端的身份数据索引,S卩:服务端可以根据客户端的身份数据来确定相应的客户端RSA公钥。所述服务端RSA公钥由服务端的身份数据索引,即客户端可以根据客户端的身份数据来确定相应的客户端RSA公钥
[0152]步骤S202:所述客户端将自身的身份数据发送至所述服务端。
[0153]在具体实施中,客户端可以首先将自身的身份数据发送至客户端,以向所述服务端发出服务请求。其中,客户端的身份数据可以用于唯一地确定所述客户端,以及存储在服务端上的客户端RSA公钥。
[0154]步骤S203:所述服务端根据客户端所发送的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端。
[0155]在具体实施中,服务端可以首先根据客户端发送的客户端的身份数据来确定存储于自身客户端RSA公钥,并可以使用所确定的客户端RSA公钥对自身的身份数据和第一随机标识进行加密。其中,服务端的身份数据可以为客户端用于确定存储于客户端的服务端的RSA公钥,第一随机标识可以为客户端用于生成第二随机标识。
[0156]步骤S204:所述客户端使用自身存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过加密的第一随机标识和所述服务端的身份数据,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功。
[0157]在具体实施中,客户端在接收到服务端采用客户端RSA公钥加密的第一随机标识和服务端的身份数据后,可以在自身存储的客户端RSA私钥库中查找相应的客户端RSA私钥,并使用查找到的客户端RSA私钥解密经过客户端RSA公钥加密的身份数据和第二随机标识。
[0158]客户端经过解密得到服务端的身份数据和第二随机标识时,可以将解密得到的服务端的身份数据与所接收的服务端的身份数据的明文进行比较,以确定二者是否一致。当确定解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,证明客户端所接收的经过加密的服务端的身份数据和第二随机标识确实为服务端发送过来的,客户端对于服务端的身份认证成功。
[0159]步骤S205:所述客户端对所述服务端身份认证成功时,所述客户端所述服务端的身份数据确定服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端。
[0160]在具体实施中,所述客户端对所述服务端身份认证成功时,客户端可以根据解密得到的服务端的身份数据,确定自身存储的服务端RSA公钥,并采用所确定的服务端RSA公钥解密第二随机标识,并发送至服务端。
[0161]在具体实施中,第二随机标识可以为根据解密得到的服务端发送的第一随机标识生成。例如,第一随机标识可以为一随机数,客户端可以以第一随机标识为种子,采用安全随机数算法生成第二随机标识。
[0162]步骤S206:所述服务端使用自身存储的与所述服务端RSA公钥相对应的服务端RSA私钥,解密经过加密的第二随机标识,当解密得到的第二随机标识与所述服务端根据解密得到的第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且所述服务端对所述客户端的身份认证成功。
[0163]在具体实施中,服务端可以在自身存储的服务端RSA私钥库中,查找与服务端RSA公钥相对应的服务端RSA私钥,并可以使用查找得到的服务端RSA私钥对于经过客户端加密的第二随机标识进行解密。
[0164]在具体实施中,在客户端和服务端相互进行身份认证的过程中,客户端和服务端的数据采用RSA算法对交互的信息数据进行加密和解密。由于RSA私钥一般会进行秘密保存,RSA公钥则可能会被公布,而处于公众可得的状态。当RSA公钥被公布时,任何人都可以使用处于公众可得状态的RSA公钥对经过RSA私钥加密的数据进行解密。
[0165]因此,在本发明实施例中的数据传输方法中,在客户端和服务端相互进行身份认证的过程中,采用RSA公钥对传输的信息数据加密,而采用秘密保存的RSA私钥对经过RSA公钥加密的信息数据进行解密。因此,即使相应的RSA公钥被公布,任何第三方也无法解密经过客户端和服务端加密的数据,可以提高数据传输的安全性。
[0166]在具体实施中,当客户端和服务端相互身份认证成功时,双方便可以进入下一步的密钥交换阶段,以生成会话密钥。
[0167]在本发明的实施例中,服务端和客户端交换会话密钥可以采用Deffie-Hellman密匙交换协议进行。具体而言,可以包括:
[0168]步骤S207:所述服务端使用客户端RSA公钥,加密Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识,并发送至所述客户端。
[0169]在具体实施中,所述Deffie-Hellman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成。
[0170]在具体实施中,根据Deffie-Hel Iman密匙交换协议,可以首先由服务端确定Deffie-Hellman公钥。其中,Deffie-Hellman公钥包括两个全局公开的参数,一个素数q和一个整数a,a是q的一个本原根。服务端可选择一个随机标识Xs且Xs〈q作为服务端Deffie-Hellman私钥,并可以根据公式Ys = a'Xs mod q计算服务端Deffie-Hellman公钥Ys。服务端将对服务端Deffie-Hellman私钥进行保密存放,而服务端Deffie-Hellman公钥可以由服务端经过加密后发送至客户端,以使得客户端可以获得服务端Deffie-Hellman公钥。
[0171]步骤S208:所述客户端使用与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过所述客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识。
[0172]在具体实施中,为了获取服务端所传送的Deffie-Hellman公钥和服务端Deffie-Hellman公钥,客户端可以在自身存储的客户端RSA私钥库中查找相应的客户端RSA私钥,并使用查找得到的客户端RSA私钥解密经过客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识,以便计算自身的客户端Deffie-Hellman私钥和客户端Deffie-Hellman公钥,并验证所接收的经过加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识的身份。
[0173]步骤S209:当解密得到正确的的第二随机标识时,所述客户端根据解密得到的Deffie-Hellman公钥和服务端Deffie-Hellman公钥计算出会话密钥。
[0174]在具体实施中,当客户端获取Deffie-Hellman公钥和服务端Deffie-Hellman公钥后,可以采用公式K = (Ys) "Xe mod q,计算出会话密钥K。
[0175]步骤S210:所述客户端使用服务端RSA公钥加密客户端Deffie-Hellman公钥和所述第二随机标识,并发送至所述服务端。
[0176]在具体实施中,根据Deffie-Hellman密钥交换协议,为了让服务端可以采用客户端Deffie-Hellman公钥,采用公式:K = (Yc) "Xs mod q,计算得到会话密钥K,首先可以将客户端计算得到的客户端Deffie-Hellman公钥加密后发送至服务端。
[0177]由于采用Deffie-Hellman密钥交换算法,仅在需要的时候,计算客户端和服务端的对称的会话密钥,且会话密钥本身无须传输,可以有效减少对称密钥遭受攻击的机会,提高安全性。
[0178]另外,由于在客户端和服务端发送的数据中加入了第一随机标识或者第二随机标识,可以有效防止第三方截获客户端和服务端发送的数据包,伪装成客户端或者服务端,将之前截获的数据包重新放入网络,向客户端或者服务端发送,因而可以提高数据传输的安全性。
[0179]步骤S211:所述服务端使用与所述服务端RSA公钥相对应的服务端RSA私钥,解密所述经过服务端RSA公钥加密的客户端Deffie-Hellman公钥和第二随机标识。
[0180]在具体实施中,客户端在经过解密得到的Deffie-Hellman公钥后,可以随机选择一个私有的随机标识Xc〈q作为客户端Deffie-Hellman私钥,并根据公式Yc = a'Xc mod q计算得到自身的客户端Deffie-Hellman公钥Yc。其中,客户端Deffie-Hellman密钥Xe由客户端保密存放,而客户端Deffie-Hellman公钥Yc则可以能被服务端公开获得。
[0181]在具体实施中,为了获取客户端所传送的客户端Deffie-Hellman公钥和第二随机标识,服务端可以在自身存储的服务端RSA私钥库中查找相应的服务端RSA私钥,并使用查找得到的服务端RSA私钥,解密经过服务端RSA公钥加密的客户端Deffie-Hellman公钥,以便计算会话密钥K。
[0182]步骤S212:当得到正确的第二随机标识时,所述服务端根据所述Deffie-Hellman公钥和解密得到所述客户端Deffie-Hellman公钥计算出会话密钥。
[0183]在具体实施中,当客户端采用服务端RSA私钥解密得到正确的第二随机标识时,证明其所接收的数据包确实为本次会话产生,解密得到的客户端Deffie-Hellman公钥也为经过身份认证的客户端发送。
[0184]在具体实施中,当服务端获取客户端Deffie-Hellman公钥后,可以采用公式:K =(Yc) ~Xs mod q,计算出会话密钥K。
[0185]由于 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,因此,服务端和客户端将可以计算出相同的会话密钥。
[0186]现有的RSA算法,RSA私钥一般会进行秘密保存,RSA公钥则可能会被公布,处于公众可得的状态。当RSA公钥被公布时,任何人都可以使用处于公众可得状态的RSA公钥对经过RSA私钥加密的数据进行解密。
[0187]因此,在本发明实施例中的数据传输方法中,在客户端和服务端进行密钥交换的过程中,采用RSA公钥对传输的信息数据加密,而采用秘密保存的RSA私钥对经过RSA公钥加密的信息数据进行解密,即使相应的RSA公钥被公布,任何第三方也无法解密经过客户端和服务端加密的数据,可以提高数据传输的安全性。
[0188]同时,由于采用Deffie-Hellman密匙交换协议来计算客户端和服务端的对称密钥,由于所述会话密钥由双方各自生成,而非由一方计算出后传输给另一方,因此,可以有效防止会话密钥被第三方截获,而对数据传输的安全造成威胁
[0189]在具体实施中,当服务端和客户端分别计算得到会话密钥后,可以进一步通过相应的信息交互来确定双方是否均计算出了正确的对称会话密钥。具体而言,可以包括:
[0190]步骤S213:所述服务端使用自身计算得到的会话密钥和第一流加密算法,加密所述第二随机标识生成,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
[0191]在具体实施中,验证数据可以根据实际的需要进行设置。例如,验证数据可以随机生成的随机标识等。
[0192]在具体实施中,第一流加密算法和第二流加密算法可以相同,也可以不相同。
[0193]步骤S214:所述客户端使用自身计算得到的会话密钥和所述第一流加密算法生成密文第二随机标识,并使用所述密文第二随机标识和所述第二流加密算法解密所述经过服务端加密的验证数据,当得到正确的验证数据时,证明所述服务端和所述客户端均计算出了正确的对称的会话密钥。
[0194]在具体实施中,根据Deffie-Hellman密匙交换协议,当客户端使用会话密钥对加密的验证数据进行解密时,可以首先使用自身计算出的会话密钥和所述第六加密算法对第二随机标识进行加密,得到第二随机标识的密文,即密文第二随机标识。然后,服务端可以使用密文第二随机标识和第二流加密算法对于经过客户端加密的验证数据进行解密。当服务端和客户端计算出的会话密钥均正确时,则服务端使用会使用密文第二随机标识和第二流加密算法对客户端加密的验证数据进行解密,便可以获取正确的验证数据。此时,可以确定服务端和客户端均计算出了正确的会话密钥,可以进入后续的数据传输阶段。
[0195]在具体实施中,验证数据可以根据实际的需要进行设置。例如,可以为字符串、数字等。
[0196]步骤S215:所述客户端使用所述第一流加密算法和所述会话密钥加密所述第二随机标识,得到所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识对待传输的数据包进行加密,生成密文数据包。
[0197]在具体实施中,为了确保待传输数据在传输过程中的安全,可以不直接采用会话密钥加密待传输的数据,而可以首先采用会话密钥和第一流加密算法加密第二随机标识,得到密文第二随机标识,再使用得到的密文第二随机标识和第二流加密算法加密待传输的数据包,生成密文数据包。第一流加密的存在,使得每次加密待传输的数据包采用的密钥会不断变化,降低了不同数据包加密后生成的密文产生冲突的可能性,因此,可以有效防御生日攻击,提高数据传输的安全性。
[0198]在具体实施中,当服务端通过解密得到正确的数据包时,由于第二随机标识的存在,服务端便可以确定所接收的数据包确为本次会话产生,而不是第三方截获数据包后重放的数据包,因此,可以提高数据传输的安全性。
[0199]在具体实施中,客户端所生成的密文数据包中可以包括指令信息、消息信息和数字签名信息。其中:[0200]在具体实施中,所述指令信息可以位于待传输的数据包的第一字节,并可以由客户端在向服务端传输数据结束时置为相应的数值。例如:
[0201]当所述指令为第一数值时,所述服务端对于解密得到的消息信息不执行任何操作。
[0202]当所述指令为第二数值时,所述服务端在接收数据结束后,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求。此时,当客户端向服务端发送新的服务请求时,服务端可以接收并响应。
[0203]当所述指令为第三数值时,所述服务端在接收数据结束后,中断与所述客户端的连接并退出。此时,服务端已经退出,当客户端向服务端发送新的服务请求时,服务端将无法接收并响应。
[0204]当所述指令为第四数值时,所述服务端解压缩所述解密得到的消息信息。在具体实施中,当所述指令为第四数值时,说明客户端通过标准输入输入的消息信息经过了压缩处理,因此,服务端在读取到指令信息为第四数值时,可以对经过客户端压缩的消息信息进行解压缩。
[0205]当所述指令为第五数值时,所述服务端请求与所述客户端重新通过所述密钥交换协议生成新的会话密钥。
[0206]在具体实施中,数字签名信息可以为采用所述数字签名算法加密指令信息、消息信息和第二随机标识生成。
[0207]在具体实施中,生成数字签名信息所采用的算法可以根据实际的需要进行选择。例如,可以选择消息摘要算法(Message Digest Algorithm,简称MD5)。
[0208]在具体实施中,当所述客户端向所述服务端传输的数据量达到预设阈值时,所述客户端将所述指令信息设置为第五数值,所述服务端和所述客户端重新通过密钥交换协议生成新的会话密钥。
[0209]在具体实施中,所述加密算法可以为RC4加密算法。但是,由于RC4加密算法会受到生日攻击,为了确保数据传输的安全性,当所述客户端向服务端传输的数据量达到预设阈值,客户端可以将所述指令信息设置为第五数值,所述服务端和所述客户端重新交换会话密钥。
[0210]在具体实施中,为了防止第三方截获传输的数据,并伪装成客户端向服务端传送数据,在本发明实施例中的数据传输方法中,在服务端和客户端传输的数据中加入了第一随机标识或者第二随机标识。第一随机标识和第二随机标识的存在可以有效防止重放攻击,提高数据传输的安全性和可靠性。
[0211 ] 在具体实施中,本发明实施例中的客户端可以为一台以上,也即本发明实施例中的数据传输方法可以支持一台服务端与多台客户端同时进行通信,进行并发处理,因此。可以满足服务端同时与一台以上的客户端进行并发通信的需求。
[0212]图3示出了本发明实施例中的一种服务端的结构示意图。如图3所示的服务端可以包括依次连接的第一身份认证单元31、第一密钥交换单元32、接收单元33、解密单元34和执行单元35,第一密钥交换单元32还与解密单元34相连接。其中:
[0213]第一身份认证单元31,适于通过认证协议与客户端进行信息交互,对所述客户端进行身份认证。[0214]第一密钥交换单元32,适于与经过第一身份认证单元31认证的客户端通过密钥交换协议生成会话密钥。
[0215]接收单元33,适于接收客户端使用加密算法和第一密钥交换单元32生成的会话密钥加密的数据包。
[0216]解密单元34,适于使用第一密钥交换单元32生成的会话密钥和所述加密算法,解密接收单元33所接收的经过客户端加密的数据包。
[0217]执行单元35,适于获取并根据解密单元34解密得到的数据包,执行相应的操作。
[0218]图4示出了本发明实施例中的服务端的第一身份认证单元的结构示意图。如图4所示的第一身份认证单元可以包括:第一存储子单元41、第一加密子单元42、第一接收子单元43、第一解密子单元44,第一存储子单元41分别与第一加密子单元42和第一解密子单元43相连接。其中:
[0219]第一存储子单元41,适于存储服务端RSA私钥和客户端RSA公钥。
[0220]在具体实施中,第一存储子单元41存储的客户端RSA公钥由所述客户端的身份数据索引,其中,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA密钥对和客户端RSA密钥对分别采用RSA算法生成,所述客户端RSA私钥和服务端RSA公钥存储于所述客户端上,所述服务端RSA公钥由服务端的身份数据索引。
[0221]第一加密子单元42,适于根据所接收的客户端的身份数据确定第一存储子单元41中存储的客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和所述服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端。
[0222]第一接收子单元43,适于接收客户端采用服务端的身份数据确定的服务端RSA公钥加密的第二随机标识。
[0223]第一解密子单元44,适于采用所述第一存储子单元41中存储的服务端RSA私钥,解密第一接收子单元43接收的经过客户端采用服务端RSA公钥加密的所述第二随机标识,当解密得到的第二随机标识与根据所述第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且对所述客户端的身份认证成功。
[0224]图5示出了本发明实施例中的服务端的第一密钥交换单元的结构。如图5所示的第一密钥交换单元可以包括第一生成子单元51、第二接收子单元52、第二加密子单元53、第一发送子单元54、第三接收子单元55、第二解密子单元56、第一计算子单元57和第三加密子单元58,第一生成子单元51与第二接收子单元52相连接,第二加密子单元53分别与第一生成子单元51、第二接收子单元52、第一发送子单元54相连接,第二解密子单元56分别与第一生成子单元51和第三接收子单元55相连接,第二解密子单元56、第一计算子单元57和第三加密子单元58依次连接。其中:
[0225]第一生成子单元51,适于根据Deffie-Hel Iman算法生成Deffie-Hel Iman公钥、服务端 Deffie-Hellman 私钥和服务端 Deffie-Hellman 公钥。
[0226]第二接收子单元52,适于接收所述客户端发送过来的所述客户端的身份数据,接收所述客户端发送的服务请求。
[0227]第二加密子单元53,适于使用根据所述第二接收子单元52接收的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一生成子单元51生成的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识。
[0228]第一发送子单元54,适于将经过第二加密子单元53加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识发送至所述客户端。
[0229]第三接收子单元55,适于接收客户端发送的使用服务端的身份数据确定的服务端RSA公钥加密的客户端Deffie-Hellman公钥和所述第二随机标识。
[0230]第二解密子单元56,适于使用第一存储子单元51中存储的服务端RSA私钥对第三接收子单元55接收的经过所述客户端采用服务端RSA公钥加密的客户端Deffie-Hellman公钥和所述第二随机标识。
[0231]第一计算子单元57,适于当第二解密子单元56解密得到正确的所述第二随机标识时,使用第二解密子单元56解密得到的Deffie-Hellman公钥和客户端Deffie-Hellman公钥计算会话密钥。
[0232]第三加密子单元58,适于使用第一计算子单元57计算得出的会话密钥和第一流加密算法加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
[0233]图6示出了本发明实施例中的服务端的接收单元的结构。如图6所示的接收单元可以包括:第四接收子单元61,适于接收客户端采用所述第二流加密算法和所述密文第二随机标识对待传输的数据包加密生成的密文数据包。
[0234]在具体实施中,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和所述第二随机标识生成。
[0235]图7示出了本发明实施例中的服务端的解密单元的结构示意图。如图7所示的解密单元可以包括:第一解密子单元71、数字签名验证单元72和执行子单元73,第一解密子单元71分别与数字签名验证单元72和执行子单元73相连接。其中:
[0236]第三解密子单元71,适于采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息。
[0237]数字签名验证单元72,适于采用所述数字签名算法验证第一解密子单元71解密得到的数字签名信息是否正确。
[0238]执行子单元73,适于当数字签名验证单元72验证所述数字签名信息正确时,根据解密得到的指令信息执行相应的操作。
[0239]在具体实施中,所述执行子单元73可以进一步包括第一执行模块731、第二执行模块732、第三执行模块733、第四执行模块734和第五执行模块735。其中:
[0240]第一执行模块731,适于当所述指令为第一数值时,对所述解密得到的消息信息不执行任何操作。
[0241]第二执行模块732,适于当所述指令为第二数值时,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求。
[0242]第三执行模块733,适于当所述指令为第三数值时,中断与所述客户端的连接并退出。
[0243]第四执行模块734,适于当所述指令为第四数值时,解压缩解密得到的消息信息。
[0244]第五执行模块735,当所述指令为第五数值时,请求与客户端重新会话密钥通过所述密钥交换协议生成新的会话密钥。
[0245]图8示出了本发明实施例中的客户端的结构。如图8所示的客户端,可以包括依次连接的第二身份认证单元81、第二密钥交换单元82和加密单元83。其中:
[0246]第二身份认证单元81,适于通过认证协议与服务端进行信息交互,对所述服务端进行身份认证。
[0247]第二密钥交换单元82,适于与经过第二身份认证单元81认证的服务端通过密钥交换协议生成会话密钥。
[0248]加密单元83,适于采用所述第二密钥交换单元82生成的会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
[0249]图9示出了本发明实施例中的客户端的第二身份认证单元的结构。如图9所述的第二身份认证单元可以包括第二存储子单元91、第二发送子单元92、第五接收子单元93、第三解密子单元94和第四加密子单元95,第二存储子单元91分别与第三解密子单元94和第四加密子单元95相连接,第五接收子单元93、第三解密子单元94和第四加密子单元95依次连接。其中:
[0250]第二存储子单元91,适于存储客户端RSA私钥和服务端RSA公钥,服务端RSA公钥由所述服务端的身份数据索引。
[0251]在具体实施中,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对。所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对。所述服务端RSA密钥对和服务端RSA密钥对采用RSA算法生成。所述服务端RSA私钥和客户端RSA公钥存储于所述服务端上,所述客户端RSA公钥由所述客户端的身份数据索引。
[0252]第二发送子单元92,适于将所述客户端的身份数据发送至所述服务端,向所述服务端发出服务请求。
[0253]第五接收子单元93,适于接收所述服务端采用第二发送子单元92发送的客户端的身份数据确定的客户端RSA公钥加密的服务端的身份数据和第一随机标识。
[0254]第三解密子单元94,适于采用所述第二存储子单元91中存储的与客户端RSA公钥相对应的客户端RSA私钥,解密第五接收子单元93所接收的经过服务端采用客户端RSA公钥加密的服务端的身份数据和第一随机标识,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功。
[0255]第四加密子单元95,适于当第三解密子单元94对所述服务端的身份认证成功时,采用根据第三解密子单元94解密得到的所述服务端的身份数据确定所述第二存储子单元91中存储的服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端。
[0256]在具体实施中,所述第二随机标识可以根据第三解密子单元解密得到的第一随机标识生成。
[0257]图10示出了本发明实施例中的客户端的第二密钥交换单元的结构。如图10所示的第二密钥交换单元可以包括第六接收子单元101、第四解密子单元102、第二生成子单元103、第二计算子单元104、第五加密子单元105、第七接收子单元106和第五解密子单元107,第四解密子单元102分别与第六接收子单元101、第二生成子单元103和第二计算子单元104相连接,第二生成子单元103还与第五加密子单元105相连接,第五解密子单元107还分别与第二计算子单元104和第六接收子单元106相连接。其中:
[0258]第六接收子单元101,适于接收经过所述服务端使用客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识。
[0259]在具体实施中,所述Deffie-Hellman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成。
[0260]第四解密子单元102,适于使用第二存储子单元中存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密第六接收子单元101接收的经过客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识。
[0261]第二生成子单元103,适于根据第四解密子单元102解密得到正确的第二随机标识时,采用第四解密子单元102解密得到的Deffie-Hellman公钥生成客户端Deffie-Hellman私钥,并根据所述Deffie-Hellman公钥和客户端Deffie-Hellman私钥生成客户端Deffie-Hellman 公钥。
[0262]第二计算子单元104,适于当第四解密子单元102解密得到正确的的第二随机标识时,根据第四解密子单元102解密得到的Deffie-Hellman公钥和服务端Deffie-Hellman公钥计算会话密钥。
[0263]第五加密子单元105,适于使用第二存储子单元中存储的服务端RSA公钥,加密所述第二生成子单元103生成的客户端Deffie-Hellman公钥和所述第二随机标识,并发送至所述服务端。
[0264]第七接收子单元106,适于接收服务端采用所述密文第二随机标识和所述第二流加密算法加密的验证数据。
[0265]第五解密子单元107,适于使用第二计算子单元104计算得到的会话密钥和第一流加密算法加密第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法,解密所述第六接收子单元106接收的经过所述服务端加密的验证数据,当得到正确的验证数据时,证明所述客户端和所述服务端均计算出了正确的会话密钥。
[0266]图11示出了本发明实施例中的客户端的发送单元的结构示意图。如图11所示的发送单元,可以包括信息输入子单元111、第六加密子单元112、签名生成子单元113、第七加密子单元114和第三发送子单元115,第七加密子单元114分别与信息输入子单元111、第六加密子单元112和签名生成子单元113相连接,签名生成子单元113还分别与信息输入子单元111和第六加密子单元112相连接。其中:
[0267]信息输入子单兀111,适于输入待传输的消息信息。
[0268]第六加密子单元112,适于使用所述会话密钥和所述第一流加密算法加密所述第二随机标识,生成密文第二随机标识。
[0269]签名生成子单元113,适于采用数字签名算法加密指令信息、信息输入子单元111输入的消息信息和第二随机标识,生成数字签名信息。
[0270]第七加密子单元114,适于采用第六加密子单元112生成的密文随机标识和第二流加密算法加密待传输的数据包,生成密文数据包。
[0271]第三发送子单元115,适于将所述第七加密子单元114生成的密文数据包发送至所述服务端。
[0272]在具体实施中,所述待传输数据包可以包括所述指令信息、信息输入子单元111输入的消息信息和所述签名生成子单元113生成的数字签名信息。其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出。
[0273]在具体实施中,发送单元还可以包括:指令设置子单元116,适于在所述第三发送子单元115向服务端传输数据结束时,将所述指令信息置为相应的数值。
[0274]在具体实施中,发送单元还可以包括:统计子单元117,适于统计第三发送子单元115发送给所述服务端的数据量。当统计子单元117统计的第三发送子单元115发送给服务端的数据量达到预设的阈值时,服务端和客户端重新通过密钥交换协议,生成新的会话密钥。
[0275]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0276]以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
【权利要求】
1.一种数据传输方法,其特征在于,包括: 服务端与客户端通过认证协议进行信息交互,相互进行身份认证; 所述服务端和客户端通过密钥交换协议生成会话密钥; 所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端; 所述服务端使用所述会话密钥和加密算法解密所接收的经过加密的数据包,并执行相应的操作。
2.根据权利要求1所述的数据传输方法,其特征在于,服务端与客户端通过认证协议进行信息交互,相互进行身份认证,包括: 将所述服务端RSA私钥和客户端RSA公钥存储在所述服务端中,客户端RSA公钥由客户端的身份数据索引,将所述客户端RSA私钥和服务端RSA公钥存储在所述客户端中,所述服务端RSA公钥由服务端的身份数据索引,所述服务端RSA公钥和服务端RSA私钥、所述客户端RSA公钥和客户端RSA私钥分别采用RSA算法生成; 所述客户端将自身的身份数据发送至所述服务端,向所述服务端发出服务请求;所述服务端根据客户端所发送的客户端的身份数据确定客户端RSA公钥,并使用所确定的所述客户端RSA公钥加密第一随机标识和服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端; 所述客户端使用自 身存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过加密的第一随机标识和所述服务端的身份数据,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功; 所述客户端对所述服务端身份认证成功时,所述客户端所述服务端的身份数据确定服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为所述客户端根据解密得到的所述第一随机标识生成; 所述服务端使用自身存储的与所述服务端RSA公钥相对应的服务端RSA私钥,解密经过加密的第二随机标识,当解密得到的第二随机标识与所述服务端根据解密得到的第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且所述服务端对所述客户端的身份认证成功。
3.根据权利要求2所述的数据传输方法,其特征在于,所述服务端和客户端通过密钥交换协议生成会话密钥,包括: 所述服务端使用客户端RSA公钥,加密Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识,并发送至所述客户端,所述Deffie-Hellman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成; 所述客户端使用与所述客户端RSA公钥相对应的客户端RSA私钥,解密经过所述客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和第二随机标识;当解密得到正确的的第二随机标识时,所述客户端根据解密得到的Deffie-Hellman公钥和服务端Deffie-Hellman公钥计算出会话密钥; 所述客户端使用服务端RSA公钥加密客户端Deffie-Hellman公钥和所述第二随机标识,并发送至所述服务端,其中,所述客户端Deffie-Hellman公钥由所述客户端根据解密得到的Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的客户端Deffie-Hellman私钥生成; 所述服务端使用与所述服务端RSA公钥相对应的服务端RSA私钥,解密所述经过服务端RSA公钥加密的客户端Deffie-Hellman公钥和第二随机标识; 当得到正确的第二随机标识时,所述服务端根据所述Deffie-Hellman公钥和解密得到所述客户端Deffie-Hellman公钥计算出会话密钥; 所述服务端使用自身计算得到的会话密钥和第一流加密算法,加密所述第二随机标识生成,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端; 所述客户端使用自身计算得到的会话密钥和所述第一流加密算法生成密文第二随机标识,并使用所述密文第二随机标识和所述第二流加密算法解密所述经过服务端加密的验证数据,当得到正确的验证数据时,证明所述服务端和所述客户端均计算出了正确的会话密钥。
4.根据权利要求3所述的数据传输方法,其特征在于,所述客户端采用加密算法和所述会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端,包括: 所述客户端使用所述第一流加密算法和所述会话密钥加密所述第二随机标识,得到所述密文第二随机标识; 所述客户端使用所述第二流加密算法和所述密文第二随机标识对待传输的数据包进行加密,生成密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和第二随机标识生成。
5.根据权利要求4所述的数据传输方法,其特征在于,所述服务端使用所述会话密钥和加密算法解密所接收的经过客户端加密的数据包,并执行相应的操作,包括: 所述服务端采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识; 所述服务端采用所述第二流加密算法和所述密文第二随机标识,解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息; 采用所述数字签名算法验证所述数字签名信息; 当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作。
6.根据权利要求5所述的数据传输方法,其特征在于,当验证所述数字签名信息正确时,所述服务端根据解密得到的指令信息执行相应的操作,包括: 当所述指令为第一数值时,所述服务端对于解密得到的消息信息不执行任何操作;当所述指令为第二数值时,所述服务端在接收数据结束后,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求; 当所述指令为第三数值时,所述服务端在接收数据结束后,中断与所述客户端的连接并退出;当所述指令为第四数值时,所述服务端解压缩所述解密得到的消息信息; 当所述指令为第五数值时,所述服务端请求与所述客户端重新通过所述密钥交换协议生成新的会话密钥。
7.根据权利要求5所述的数据传输方法,其特征在于,所述指令信息位于所述待传输数据包的第一字节,并由所述客户端在向所述服务端传输数据结束时置为相应的数值。
8.根据权利要求5所述的数据传输方法,其特征在于,当所述客户端向所述服务端传输的数据量达到预设阈值时,所述客户端将所述指令信息设置为第五数值,所述服务端和所述客户端重新通过密钥交换协议生成新的会话密钥。
9.根据权利要求1所述的数据传输方法,其特征在于,所述客户端为一台以上。
10.一种服务端,其特征在于,包括: 第一身份认证单元,适于通过认证协议与客户端进行信息交互,对所述客户端进行身份认证; 第一密钥交换单元,适于与所述客户端通过密钥交换协议生成会话密钥; 接收单元,适于接收客户端使用加密算法和所述会话密钥加密的数据包; 解密单元,适于使用第一密钥交换单元生成的会话密钥和所述加密算法,解密所述接收单元所接收的经过客户端加密的数据包; 执行单元,适于获取并根据所述解密单元解密得到的数据包,执行相应的操作。
11.根据权利要求10所述的服务端,其特征在于,所述第一身份认证单元包括: 第一存储子单元,适于存储服务端RSA私钥和客户端RSA公钥,客户端RSA公钥由所述客户端的身份数据索引,其中,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA密钥对和客户端RSA密钥对分别采用RSA算法生成,所述客户端RSA私钥和服务端RSA公钥存储于所述客户端上,所述服务端RSA公钥由服务端的身份数据索引; 第一加密子单元,适于根据所接收的客户端的身份数据确定第一存储子单元中存储的客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一随机标识和所述服务端的身份数据,并将服务端的身份数据的明文与经过加密的第一随机标识和服务端的身份数据发送至所述客户端; 第一接收子单元,适于接收客户端采用服务端的身份数据确定的服务端RSA公钥加密的第二随机标识; 第一解密子单元,适于采用所述第一存储子单元中存储的服务端RSA私钥,解密第一接收子单元接收的经过客户端采用服务端RSA公钥加密的所述第二随机标识,当解密得到的第二随机标识,与根据所述第一随机标识计算得到的第二随机标识相同时,证明所接收的经过加密的第二随机标识为本次会话产生,且对所述客户端的身份认证成功。
12.根据权利要求11所述的服务端,其特征在于,第一密钥交换单元包括: 第一生成子单元,适于根据Deffie-Hellman算法生成Deffie-Hellman公钥、服务端Deffie-Hellman私钥和服务端Deffie-Hellman公钥,所述Deffie-He I Iman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成; 第二接收子单元,适于接收所述客户端发送过来的所述客户端的身份数据,接收所述客户端发送的服务请求; 第二加密子单元,适于使用根据所述第二接收子单元接收的客户端的身份数据确定客户端RSA公钥,并使用所确定的客户端RSA公钥加密第一生成子单元生成的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识; 第一发送子单元,适于将经过所述第二加密子单元加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识发送至所述客户端; 第三接收子单元,适于接收客户端发送的使用服务端的身份数据确定的服务端RSA公钥加密的客户端Deffie-Hellman公钥和所述第二随机标识; 第二解密子单元,适于使用第一存储子单元中所存储的服务端RSA私钥对所述第三接收子单元接收的经过所述客户端采用服务端RSA公钥加密的客户端Deffie-Hellman公钥和所述第二随机标识; 第一计算子单元,适于当所述第二解密子单元解密得到正确的所述第二随机标识时,使用所述Deffie-Hellman公钥和所述第二解密子单元解密得到客户端Deffie-Hellman公钥计算会话密钥; 第三加密子单元,适于使用所述第一计算子单元计算得出的会话密钥和第一流加密算法加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法加密验证数据,并发送至所述客户端。
13.根据权利要求12所述的服务端,其特征在于,所述接收单元包括: 第四接收子单元,适于接收客户端采用所述第二流加密算法和所述密文第二随机标识对待传输的数据包加密生成的密文数据包,所述待传输的数据包包括指令信息、消息信息和数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出,所述数字签名信息为采用数字签名算法加密所述指令信息、消息信息和所述第二随机标识生成。
14.根据权利要求10所述的服务端,其特征在于,所述解密单元包括: 第三解密子单元,适于采用所述第一流加密算法和所述会话密钥加密所述第二随机标识,生成所述密文第二随机标识,并使用所述第二流加密算法和所述密文第二随机标识解密所述密文数据包,得到所述指令信息、消息信息和数字签名信息; 数字签名验证单元,适于采用所述数字签名算法验证所述第三解密子单元解密得到的数字签名信息; 执行子单元,适于当所述数字签名验证单元验证所述数字签名信息正确时,根据解密得到的指令信息执行相应的操作。
15.根据权利要求12所述的服务端,其特征在于,所述执行子单元包括: 第一执行模块,适于当所述指令为第一数值时,对所述解密得到的消息信息不执行任何操作; 第二执行模块,适于当所述指令为第二数值时,中断与所述客户端的连接,并持续监听服务端口,以确定是否有新的服务请求; 第三执行模块,适于当所述指令为第三数值时,中断与所述客户端的连接并退出; 第四执行模块,适于当所述指令为第四数值时,解压缩解密得到的消息信息; 第五执行模块,当所述指令为第五数值时,请求与客户端重新会话密钥通过所述密钥交换协议生成新的会话密钥。
16.一种客户端,其特征在于,包括: 第二身份认证单元,适于通过认证协议与服务端进行信息交互,对所述服务端进行身份认证; 第二密钥交换单元,适于与经过第二身份认证单元认证的服务端通过密钥交换协议生成会话密钥; 加密单元,适于采用所述第二密钥交换单元生成的会话密钥对待传输的数据包进行加密,并将经过加密的数据包传输至所述服务端。
17.根据权利要求16所述的客户端,其特征在于,所述第二身份认证单元包括: 第二存储子单元,适于存储客户端RSA私钥和服务端RSA公钥,服务端RSA公钥由所述服务端的身份数据索引,其中,所述客户端RSA私钥和客户端RSA公钥构成客户端RSA密钥对,所述服务端RSA公钥和服务端RSA私钥构成服务端RSA密钥对,所述服务端RSA密钥对和服务端RSA密钥对采用RSA算法生成,所述服务端RSA私钥和客户端RSA公钥存储于所述服务端上,所述客户端RSA公钥由所述客户端的身份数据索引; 第二发送子单元,适于将所述客户端的身份数据发送至所述服务端,向所述服务端发出服务请求; 第五接收子单元,适于接收所述服务端采用第二发送子单元发送的客户端的身份数据确定的客户端RSA公 钥加密的服务端的身份数据和第一随机标识; 第三解密子单元,适于采用所述第二存储子单元中存储的与客户端RSA公钥相对应的客户端RSA私钥,解密所述第五接收子单元接收的经过服务端采用客户端RSA公钥加密的服务端的身份数据和第一随机标识,当解密得到的服务端的身份数据与所接收的服务端的身份数据的明文一致时,所述客户端对所述服务端身份认证成功; 第四加密子单元,适于当所述第三解密子单元对于所述服务端的身份认证成功时,采用根据第三解密子单元解密得到的所述服务端的身份数据确定所述第二存储子单元中存储的服务端RSA公钥,并使用所确定的服务端RSA公钥加密第二随机标识,并发送至所述服务端,所述第二随机标识为根据第三解密子单元解密得到的第一随机标识生成。
18.根据权利要求17所述的客户端,其特征在于,第二密钥交换单元包括: 第六接收子单元,适于接收经过所述服务端使用客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识,所述Deffie-Hellman公钥由所述服务端生成,所述服务端Deffie-Hellman公钥由所述服务端利用所述Deffie-Hellman公钥和根据所述Deffie-Hellman公钥生成的服务端Deffie-Hellman私钥生成; 第四解密子单元,适于使用第二存储子单元存储的与所述客户端RSA公钥相对应的客户端RSA私钥,解密所述第六接收子单元接收的经过客户端RSA公钥加密的Deffie-Hellman公钥、服务端Deffie-Hellman公钥和所述第二随机标识; 第二生成子单元,适于根据第四解密子单元解密得到的Deffie-Hellman公钥生成客户端Deffie-Hellman私钥,并根据所述Deffie-Hellman公钥和客户端Deffie-Hellman私钥生成客户端Deffie-Hellman公钥; 第二计算子单元,适于当所述第四解密子单元解密得到正确的的第二随机标识时,根据所述第四解密子单元解密得到的Deffie-Hellman公钥和所述服务端Deffie-Hellman公钥计算会话密钥; 第五加密子单元,适于使用第二存储子单元中存储的服务端RSA公钥,加密所述第二生成子单元生成的客户端Deffie-Hellman公钥和所述第二随机标识,并发送至所述服务端; 第七接收子单元,适于接收服务端采用第一流加密算法和所述会话密钥加密所述第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和所述第二流加密算法加密的验证数据; 第五解密子单元,适于使用第二计算子单元计算得到的会话密钥和第一流加密算法加密第二随机标识,生成密文第二随机标识,并采用所述密文第二随机标识和第二流加密算法,解密所述第七接收子单元接收的经过所述服务端加密的验证数据,当得到正确的验证数据时,证明所述客户端和所述服务端均计算出了正确的会话密钥。
19.根据权利要求18所述的客户端,其特征在于,所述发送单元包括: 信息输入子单兀,适于输入待传输的消息信息; 第六加密子单元,适于使用所述会话密钥和所述第一流加密算法加密所述第二随机标识,得到密文第二随机标识; 签名生成子单元,适于采用数字签名算法加密指令信息、所述消息信息和所述第二随机标识,生成数字签名信息; 第七加密子单元,适于采用第二流加密算法和所述第六加密子单元得到的密文随机标识加密待传输的数据包,生成密文数据包,所述待传输数据包包括所述指令信息、消息信息和所述签名生成子单元生成的数字签名信息,其中,所述指令信息指示所述服务端执行相应的操作,所述消息信息将被所述服务端传输至标准输出; 第三发送子单元,适于将所述第七加密子单元生成的密文数据包发送至所述服务端。
20.根据权利要求19所述的客户端,其特征在于,所述发送单元还包括:指令设置子单元,适于在所述第三发送子单元向服务端传输数据结束时,将所述指令信息置为相应的数值。
21.根据权利要求19所述的客户端,其特征在于,所述相应的数值包括第一数值、第二数值、第三数值、第四数值或者第五数值; 当所述指令为第一数值时,指示服务端对于所述解密得到的消息信息不执行任何操作; 当所述指令为第二数值时,指示服务端中断与客户端的连接,并指示服务端持续监听服务端口,以确定是否有服务请求; 当所述指令为第三数值时,指示服务端中断与所述客户端的连接并退出; 当所述指令为第四数值时,指示服务端解压缩解密得到的消息信息; 当所述指令为第五数值时,指示服务端与重新进行密钥交换,生成新的会话密钥。
22.根据权利要求19所述的客户端,其特征在于,所述发送单元还包括:统计子单元,适于统计所述第三发送子单元发送给所述服务端的数据量。
【文档编号】H04L9/32GK104023013SQ201410240981
【公开日】2014年9月3日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】张景逸 申请人:上海帝联信息科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1