CN102833253B - 建立客户端与服务器安全连接的方法及服务器 - Google Patents

建立客户端与服务器安全连接的方法及服务器 Download PDF

Info

Publication number
CN102833253B
CN102833253B CN201210310885.6A CN201210310885A CN102833253B CN 102833253 B CN102833253 B CN 102833253B CN 201210310885 A CN201210310885 A CN 201210310885A CN 102833253 B CN102833253 B CN 102833253B
Authority
CN
China
Prior art keywords
client
server
session
key
private key
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
Application number
CN201210310885.6A
Other languages
English (en)
Other versions
CN102833253A (zh
Inventor
朱为
吴廷鹏
沈剑
周婧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201210310885.6A priority Critical patent/CN102833253B/zh
Publication of CN102833253A publication Critical patent/CN102833253A/zh
Application granted granted Critical
Publication of CN102833253B publication Critical patent/CN102833253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种建立客户端与服务器安全连接的方法及服务器。该方法包括:服务器获取客户端发送的连接发起请求,根据连接发起请求使用非对称加密算法通过协商确定加密密钥,完成与客户端的握手;服务器使用加密密钥与客户端进行通信。借助于本发明的技术方案,能够保证用户无论是在何种恶劣的网络环境下都能快速实现与服务器安全交换数据从而实现对互联网业务的访问,同时在会话意外断开时能迅速恢复原会话,极大的提升了用户体验。

Description

建立客户端与服务器安全连接的方法及服务器
技术领域
本发明涉及移动通讯领域,特别是涉及一种建立客户端与服务器安全连接的方法及服务器。
背景技术
在现有技术中,安全套接层(Secure Sockets Layer,简称为SSL)协议是网络通信中经常用到的一个用来保证会话安全性的标准协议。SSL协议以及其相关协议如安全电子交易协议(Secure Electronic Transaction,简称为SET)、和传输层安全(Transport Layer Security,简称为TLS)均使用了非对称加密算法、对称加密算法、以及摘要算法来实现动态会话密钥协商及会话加密,同时实现通信双方身份认证,其中,对称加密算法是加密和解密使用同一个密钥的加密方法,非对称加密算法是加密和解密使用一对密钥(由两个满足一定关系的密钥组成的密钥对)的中不同的密钥的加密方法,其中,非对称加密算法中的密钥对分为公钥和私钥,其中,公钥是指非对称加密算法中公开给大众的密钥,私钥是指非对称加密算法中保留给个人保密的密钥。
由于SSL协议及其相关协议主要是为电子商务等应用场景而设计,因此其实现比较复杂,基础设施要求高,例如,需要专门的证书管理中心等,且在应用于处在无线网络环境中的移动终端时,由于密钥协商过程相当复杂,会导致会话建立的速度相当慢,甚至会因为网络连接不稳定导致协商一直不能成功而不能实现安全通信。
发明内容
本发明提供一种建立客户端与服务器安全连接的方法及服务器,以解决现有技术中在不稳定的网络环境下客户端不能安全高效地与服务器实现加密会话的问题。
本发明提供一种建立客户端与服务器安全连接的方法,包括:服务器获取客户端发送的连接发起请求,根据连接发起请求使用非对称加密算法通过协商确定加密密钥,完成与客户端的握手;服务器使用加密密钥与客户端进行通信。
优选地,服务器根据连接发起请求使用非对称加密算法通过至少两次协商确定对称加密密钥。
优选地,连接发起请求中携带有客户端指定的当前连接所使用的加密算法;服务器根据连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥具体包括:服务器根据客户端指定的加密算法随机生成第一协商公私钥对,并使用选择的约定公私钥对中的私钥0加密第一协商公私钥对中的公钥1,并将加密后的公钥1发送给客户端;客户端使用约定公私钥对中的公钥0解密并得到公钥1,并随机生成第二协商公私钥对,使用公钥1加密第二协商公私钥对中的公钥2,并将加密后的公钥2发送给服务器;服务器使用第一协商密钥对中的私钥1解密并得到公钥2;并随机生成对称加密密钥,使用公钥2将对称加密密钥进行加密,并将加密后的对称加密密钥发送给客户端;客户端使用第二协商公私钥对中的私钥2解密并得到对称加密密钥。
优选地,上述方法还包括:服务器为当前连接分配一个唯一的会话标识ID,并将会话ID记录在与当前连接相关的会话状态中;使用对称加密密钥和对称加密算法将会话ID发送给客户端;客户端使用对称加密密钥进行解密,获取会话ID,并保存会话ID;服务器在与客户端断开链接后,在预定时间内保存与客户端的会话状态。
优选地,连接发起请求中携带有上次连接的会话ID的明文、以及使用对称加密密钥加密的用户信息;当客户端断开了与服务器的连接后需要重新连接服务器时,上述方法还包括:服务器接收客户端发送的连接发起请求,并获取会话ID;服务器根据会话ID判断相应的会话状态中是否保存有相应的会话ID,如果存在相应的会话ID,则使用相应的加密密钥对连接发起请求进行解密,获取用户信息;服务器根据用户信息对客户端进行鉴权,在鉴权通过的情况下,与客户端进行会话快速恢复,直接使用相应的加密密钥与客户端进行通信。
本发明还提供了一种服务器,包括:连接模块,用于获取客户端发送的连接发起请求,根据连接发起请求使用非对称加密算法通过协商确定加密密钥,完成与客户端的握手;通信模块,用于使用加密密钥与客户端进行通信。
优选地,连接模块根据连接发起请求使用非对称加密算法通过至少两次协商确定对称加密密钥。
优选地,连接发起请求中携带有客户端指定的当前连接所使用的加密算法;连接模块具体用于:根据客户端指定的加密算法随机生成第一协商公私钥对,并使用选择的约定公私钥对中的私钥0加密第一协商公私钥对中的公钥1,并将加密后的公钥1发送给客户端;获取客户端使用公钥1加密的第二协商公私钥对中的公钥2;使用第一协商密钥对中的私钥1解密并得到公钥2;并随机生成对称加密密钥,使用公钥2将对称加密密钥进行加密,并将加密后的对称加密密钥发送给客户端。
优选地,服务器还包括:保存模块,用于为当前连接分配一个唯一的会话标识ID,并将会话ID记录在与当前连接相关的会话状态中,并使用会话的对称加密密钥将会话ID进行对称加密后发送给客户端,与客户端断开链接后,在预定时间内保存与客户端的会话状态。
优选地,连接发起请求中携带有上次连接的会话ID的明文、以及使用对称加密密钥加密的用户信息;服务器还包括:会话快速恢复模块,用于当客户端断开了与服务器的连接后需要重新连接服务器时,接收客户端发送的连接发起请求,并获取会话ID,根据会话ID判断相应的会话状态中是否保存有相应的会话ID,如果存在相应的会话ID,则使用相应的加密密钥对连接发起请求进行解密,获取用户信息;根据用户信息对客户端进行鉴权,在鉴权通过的情况下,与客户端进行会话快速恢复,直接使用相应的加密密钥与客户端进行通信。
本发明有益效果如下:
通过使用非对称加密算法协商确定对称加密密钥,并使用对称加密密钥与客户端进行通信,解决了现有技术中在不稳定的网络环境下客户端不能安全高效地与服务器实现加密会话的问题,能够保证用户无论是在何种恶劣的网络环境下都能快速实现与服务器安全交换数据从而实现对互联网业务的访问,极大的提升了用户体验。
附图说明
图1是本发明实施例的建立客户端与服务器安全连接的方法的流程图;
图2是本发明实施例的客户端和服务器进行四步握手过程的示意图;
图3是本发明实施例的客户端握手的流程图;
图4是本发明实施例的服务器握手的流程图;
图5是本发明实施例的服务器的结构示意图。
具体实施方式
为了解决现有技术中在不稳定的网络环境下(如手机等移动终端使用无线上网等环境)客户端不能安全高效地与服务器实现加密会话的问题,本发明提供了一种在复杂的网络环境中客户端高效地与服务器建立安全信道的方法和服务器,本发明实施例的技术方案保证了用户无论是在何种恶劣的网络环境下都能快速实现与服务器安全交换数据从而实现对互联网业务的访问,极大的提升了用户体验。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
根据本发明的实施例,提供了一种建立客户端与服务器安全连接的方法,图1是本发明实施例的建立客户端与服务器安全连接的方法的流程图,如图1所示,根据本发明实施例的建立客户端与服务器安全连接的方法包括如下处理:
步骤101,服务器获取客户端发送的连接发起请求,根据连接发起请求使用非对称加密算法通过协商确定加密密钥,完成与客户端的握手,其中,上述加密密钥可以为对称加密密钥,也可以为非对称加密密钥,但在实际应用中,由于效率的考虑一般使用对称加密密钥;
本发明实施例以加密密钥为对称加密密钥为例对本发明实施例进行说明。
优选地,在实际应用中,服务器根据连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥。
在实际应用中,客户端发送的连接发起请求中携带有客户端指定的当前连接所使用的加密算法;服务器根据连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥具体包括如下处理:
步骤1,服务器根据客户端指定的加密算法随机生成第一协商公私钥对,并使用选择的约定公私钥对中的私钥0加密第一协商公私钥对中的公钥1,并将加密后的公钥1发送给客户端;
步骤2,客户端使用约定公私钥对中的公钥0解密并得到公钥1,并随机生成第二协商公私钥对,使用公钥1加密第二协商公私钥对中的公钥2,并将加密后的公钥2发送给服务器;
步骤3,服务器使用第一协商密钥对中的私钥1解密并得到公钥2;并随机生成对称加密密钥,使用公钥2将对称加密密钥进行加密,并将加密后的对称加密密钥发送给客户端;
步骤4,客户端使用第二协商公私钥对中的私钥2解密并得到对称加密密钥。
步骤102,服务器使用加密密钥与客户端进行通信。
为了便于会话快速恢复,优选地,在本发明实施例中,服务器会为当前连接分配一个唯一的会话标识ID,并将会话ID记录在与当前连接相关的会话状态中;随后,服务器使用对称加密密钥和对称加密算法将会话ID加密后发送给客户端;客户端使用对称加密密钥进行解密,获取会话ID,并保存会话ID;服务器在与客户端断开链接后,在预定时间内也会保存与客户端的会话状态,该预定时间可以根据经验值进行设置。
在客户端申请进行会话快速恢复时,在客户端发送的连接发起请求中还需要携带有上次连接的会话ID的明文、以及使用对称加密密钥加密的用户信息。当客户端断开了与服务器的连接后需要重新连接服务器时,服务器接收客户端发送的连接发起请求,并获取会话ID;服务器根据会话ID判断相应的会话状态中是否保存有相应的会话ID,如果存在相应的会话ID,则使用与该会话ID相对应的加密密钥(可以使对称加密密钥,也可以是非对称加密密钥)对连接发起请求进行解密,获取用户信息(例如,用户IP);服务器根据用户信息对客户端进行鉴权(例如,判断用户IP与当前连接IP是否一致,如果一致则鉴权通过,否则,鉴权不通过),在鉴权通过的情况下,与客户端进行会话快速恢复,直接使用与该会话ID相对应的加密密钥与客户端进行通信。
以下结合附图,对本发明的上述技术方案进行详细说明。
为了保证客户端和服务器之间连接的安全性,客户端和服务器之间的所有请求都应该经过加密,在本发明实施例中,为了提高效率,选择使用对称加密算法对客户端和服务器端的通信进行加密,此外,也可以使用非对称加密算法对客户端和服务器端的通信进行加密;在本发明实施例中,对称加密密钥使用非对称加密算法通过两次协商确定,安全信道的建立必须满足以下两个条件:
条件1,任何第三方无法伪造服务器;
条件2,在破解客户端代码的情况下,即使截获其他用户发送的加密请求,也无法解密。
为了满足以上两个条件,在本发明实施例中,客户端和服务器都必须有一个随机生成密钥的过程,图2是本发明实施例的客户端和服务器进行四步握手过程的示意图,客户端(Client,简称为C)和服务器(Server,简称为S)进行四步握手过程如图2所示,需要说明的是,在四步握手过程中,需要使用到以下公私钥对:
1、约定公私钥对0(p0,s0):约定公私钥对0为写死在代码中的公私钥,在本发明实施例中,设置有公私钥池,服务器每次选一个,并告诉客户端每次选中的是公私钥池中的哪一个约定公私钥对0,客户端可以通过约定公私钥对0验证请求的确来自服务器。
2、协商公私钥对1(p1,s1):服务器随机生成的协商密钥;
3、协商公私钥对2(p2,s2):客户端随机生成的协商密钥;
4、对称密钥3(key3):服务器随机生成的对称密钥,用于最终的对称加密。
需要说明的是,上述p代表公钥,s代表私钥,序号0表示事先约定的约定公私钥对,序号1、3表示服务器随机生成的协商公私钥对,序号2表示客户端随机生成的协商公私钥对。
如图2所示,在本发明实施例中,客户端和服务器进行四步握手过程如下:
步骤1,C->S:客户端向服务器发起连接S1,S1包中可以指定当前本次连接使用何种对称加密算法及非对称加密算法的协议参数,另外可能包含一些上次会话(如果有上次会话的话)的数据等,在会话恢复的过程中使用,会话恢复过程在后面会进行详细的说明;
步骤2,S->C:服务器根据客户端指定的加密算法随机生成“协商公私钥对1”(上述第一协商公私钥对),使用“约定公私钥对0”中的“私钥0”加密“公钥1”,发送给客户端,这一步发送的包称为S2包;
步骤3,C->S:客户端收到S2包后,使用“约定公私钥对0”中的“公钥0”解密并得到“公钥1”;客户端随机生成“协商公私钥对2”(上述第二协商公私钥对),并使用“公钥1”加密“公钥2”,发送给服务器,这一步发送的包称为S3包;
步骤4,S->C:服务器收到S3包后,使用“协商密钥对1”中的“私钥1”解密并得到“公钥2”;服务器随机生成“对称密钥3”(上述对称加密密钥),用“公钥2”将其加密,并发送给客户端,这一步发送的包称为S4包。
步骤5,之后所有客户端与服务器之间的通讯都通过“对称密钥3”来完成,至此四步握手完成;
步骤6,服务器为本次连接分配一个唯一的“会话ID”并记录在此连接相关的会话状态中,即使客户端连接断开后,也保存与客户端的会话状态一段时间,然后使用“对称密钥3”和对称加密算法将“会话ID”传送给客户端,客户端将此“会话ID”记录;需要说明的是,上述会话状态是指:描述客户端与服务器的一次连接的所有信息的集合。
进行快速会话恢复的处理如下:
步骤1,当客户端由于种种原因断开了连接后需要重新连接服务器时,在发送S1包时就将自己本地记录的上次“会话ID”的明文,连同自己的IP等私人信息(上述用户信息)经过内存中保存的“对称密钥3”加密后的密文发送给服务器;
步骤2,服务器收到S1包后,检查保存的会话中是否还有S1包中携带的“会话ID”存在,如果存在则找出对应连接的“对称密钥3”来解密后面的密文,如果发现当前连接IP等其它私人信息与客户端传送过来的吻合(对应于上述根据用户信息对客户端进行鉴权的步骤),则可认为客户端此时是申请进行会话快速恢复,而不需要重新握手,直接使用以前的对称密钥3进行安全通信。
以下分别详细说明客户端和服务器两端的各自处理流程
图3是本发明实施例的客户端握手的流程图,如图3所示,包括如下处理:
步骤1,客户端判断是否有上次连接的会话ID,如果判断为是,执行步骤2,否则,执行步骤3;
步骤2,在S1包中增加上次连接的会话ID以及使用保存的与该会话ID相应的加密密钥加密的IP地址等私人信息,发起恢复会话请求,并执行步骤4;
步骤3,客户端向服务器端发送携带有指定加密算法的S1包申请与服务器进行握手,并执行步骤5;
步骤4,客户端判断恢复会话是否成功,如果判断为是,执行步骤7,否则,执行步骤3;
步骤5,分析服务器返回的S2包,根据S2包的内容向服务器发送S3包,执行步骤6;
步骤6,分析服务器返回的S4包,根据S4包的内容获得加密密钥,执行步骤7;
步骤7,与服务器开始会话。
图4是本发明实施例的服务器握手的流程图,如图4所示,包括如下处理:
步骤1,服务器判断收到的S1包中是否携带有恢复会话信息(会话ID、以及IP等私人信息),如果判断为是,执行步骤2,否则,执行步5;
步骤2,查找会话ID并获取S1包中的IP等私人信息,执行步骤3;
步骤3,验证当前连接IP是否与S1包中的IP等私人信息相吻合,如果判断为是,执行步骤4,否则,执行步骤5;
步骤4,返回给客户端会话恢复成功信息,执行步骤7;
步骤5,向客户端发送S2包,与客户端进行正常握手;
步骤6,接收客户端发送的S3包,并根据S3包发送S4包,完成与客户端的握手;
步骤7,与客户端开始会话。
综上所述,借助于本发明实施例的技术方案,通过使用非对称加密算法协商确定对称加密密钥,并使用对称加密密钥与客户端进行通信,解决了现有技术中在不稳定的网络环境下客户端不能安全高效地与服务器实现加密会话的问题,能够保证用户无论是在何种恶劣的网络环境下都能快速实现与服务器安全交换数据从而实现对互联网业务的访问,极大的提升了用户体验。
根据本发明的实施例,提供了一种服务器,图5是本发明实施例的服务器的结构示意图,如图5所示,根据本发明实施例的服务器包括:连接模块50、以及通信模块52,以下对本发明实施例的各个模块进行详细的说明。
连接模块50,用于获取客户端发送的连接发起请求,根据连接发起请求使用非对称加密算法通过协商确定加密密钥,完成与客户端的握手;其中,上述加密密钥可以为对称加密密钥,也可以为非对称加密密钥;
本发明实施例以加密密钥为对称加密密钥为例对本发明实施例进行说明。
优选地,连接模块50具体用于:根据连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥。
在实际应用中,客户端发送的连接发起请求中携带有客户端指定的当前连接所使用的加密算法;连接模块50具体用于:根据客户端指定的加密算法随机生成第一协商公私钥对,并使用选择的约定公私钥对中的私钥0加密第一协商公私钥对中的公钥1,并将加密后的公钥1发送给客户端;获取客户端使用公钥1加密的第二协商公私钥对中的公钥2;使用第一协商密钥对中的私钥1解密并得到公钥2;并随机生成对称加密密钥,使用公钥2将对称加密密钥进行加密,并将加密后的对称加密密钥发送给客户端。
通信模块52,用于使用加密密钥与客户端进行通信。
为了便于会话快速恢复,服务器还包括:保存模块,用于为当前连接分配一个唯一的会话标识ID,并将会话ID记录在与当前连接相关的会话状态中,并使用对称加密密钥和对称加密算法将会话ID发送给客户端,与客户端断开链接后,在预定时间内保存与客户端的会话状态。
在客户端申请进行会话快速恢复时,在客户端发送的连接发起请求中还需要携带有上次连接的会话ID的明文、以及使用对称加密密钥加密的用户信息。
服务器还包括的会话快速恢复模块再当客户端断开了与服务器的连接后需要重新连接服务器时,接收客户端发送的连接发起请求,并获取会话ID,根据会话ID判断相应的会话状态中是否保存有相应的会话ID,如果存在相应的会话ID,则使用相应的加密密钥(可以使对称加密密钥,也可以是非对称加密密钥)对连接发起请求进行解密,获取用户信息(例如,用户IP);根据用户信息对客户端进行鉴权(例如,判断用户IP与当前连接IP是否一致,如果一致则鉴权通过,否则,鉴权不通过),在鉴权通过的情况下,与客户端进行会话快速恢复,直接使用相应的加密密钥与客户端进行通信。
以下结合附图,对本发明的上述技术方案进行详细说明。
为了保证客户端和服务器之间连接的安全性,客户端和服务器之间的所有请求都应该经过加密,在本发明实施例中,为了提高效率,选择使用对称加密算法对客户端和服务器端的通信进行加密,此外,也可以使用非对称加密算法对客户端和服务器端的通信进行加密;在本发明实施例中,对称加密密钥使用非对称加密算法通过两次协商确定,安全信道的建立必须满足以下两个条件:
条件1,任何第三方无法伪造服务器;
条件2,在破解客户端代码的情况下,即使截获其他用户发送的加密请求,也无法解密。
为了满足以上两个条件,在本发明实施例中,客户端和服务器都必须有一个随机生成密钥的过程,图2是本发明实施例的客户端和服务器进行四步握手过程的示意图,客户端(Client,简称为C)和服务器(Server,简称为S)进行四步握手过程如图2所示,需要说明的是,在四步握手过程中,需要使用到以下公私钥对:
1、约定公私钥对0(p0,s0):约定公私钥对0为写死在代码中的公私钥,在本发明实施例中,设置有公私钥池,服务器每次选一个,并告诉客户端每次选中的是公私钥池中的哪一个约定公私钥对0,客户端可以通过约定公私钥对0验证请求的确来自服务器。
2、协商公私钥对1(p1,s1):服务器随机生成的协商密钥;
3、协商公私钥对2(p2,s2):客户端随机生成的协商密钥;
4、对称密钥3(key3):服务器随机生成的对称密钥,用于最终的对称加密。
需要说明的是,上述p代表公钥,s代表私钥,序号0表示事先约定的约定公私钥对,序号1、3表示服务器随机生成的协商公私钥对,序号2表示客户端随机生成的协商公私钥对。
如图2所示,在本发明实施例中,客户端和服务器进行四步握手过程如下:
步骤1,C->S:客户端向服务器发起连接S1,S1包中可以指定当前本次连接使用何种对称加密算法及非对称加密算法的协议参数,另外可能包含一些上次会话(如果有上次会话的话)的数据等,在会话恢复的过程中使用,会话恢复过程在后面会进行详细的说明;
步骤2,S->C:服务器根据客户端指定的加密算法随机生成“协商公私钥对1”(上述第一协商公私钥对),使用“约定公私钥对0”中的“私钥0”加密“公钥1”,发送给客户端,这一步发送的包称为S2包;
步骤3,C->S:客户端收到S2包后,使用“约定公司要对0”中的“公钥0”解密并得到“公钥1”;客户端随机生成“协商公私钥对2”(上述第二协商公私钥对),并使用“公钥1”加密“公钥2”,发送给服务器,这一步发送的包称为S3包;
步骤4,S->C:服务器收到S3包后,使用“协商密钥对1”中的“私钥1”解密并得到“公钥2”;服务器随机生成“对称密钥3”(上述对称加密密钥),用“公钥2”将其加密,并发送给客户端,这一步发送的包称为S4包。
步骤5,之后所有客户端与服务器之间的通讯都通过“对称密钥3”来完成,至此四步握手完成;
步骤6,服务器为本次连接分配一个唯一的“会话ID”并记录在此连接相关的会话状态中,即使客户端连接断开后,也保存与客户端的会话状态一段时间,然后使用“对称密钥3”和对称加密算法将“会话ID”传送给客户端,客户端将此“会话ID”记录;需要说明的是,上述会话状态是指:描述客户端与服务器的一次连接的所有信息的集合。
进行快速会话恢复的处理如下:
步骤1,当客户端由于种种原因断开了连接后需要重新连接服务器时,在发送S1包时就将自己本地记录的上次“会话ID”的明文,连同自己的IP等私人信息(上述用户信息)经过内存中保存的“对称密钥3”加密后的密文发送给服务器;
步骤2,服务器收到S1包后,检查保存的会话中是否还有S1包中携带的“会话ID”存在,如果存在则找出对应连接的“对称密钥3”来解密后面的密文,如果发现当前连接IP等其它私人信息与客户端传送过来的吻合(对应于上述根据用户信息对客户端进行鉴权的步骤),则可认为客户端此时是申请进行会话快速恢复,而不需要重新握手,直接使用以前的对称密钥3进行安全通信。
以下分别详细说明客户端和服务器两端的各自处理流程
图3是本发明实施例的客户端握手的流程图,如图3所示,包括如下处理:
步骤1,客户端判断是否有上次连接的会话ID,如果判断为是,执行步骤2,否则,执行步骤3;
步骤2,在S1包中增加上次连接的会话ID以及使用保存的与该会话ID相应的加密密钥加密的IP地址等私人信息,发起恢复会话请求,并执行步骤4;
步骤3,客户端向服务器端发送携带有指定加密算法的S1包申请与服务器进行握手,并执行步骤5;
步骤4,客户端判断恢复会话是否成功,如果判断为是,执行步骤7,否则,执行步骤3;
步骤5,分析服务器返回的S2包,根据S2包的内容向服务器发送S3包,执行步骤6;
步骤6,分析服务器返回的S4包,根据S4包的内容获得加密密钥,执行步骤7;
步骤7,与服务器开始会话。
图4是本发明实施例的服务器握手的流程图,如图4所示,包括如下处理:
步骤1,服务器判断收到的S1包中是否携带有恢复会话信息(会话ID、以及IP等私人信息),如果判断为是,执行步骤2,否则,执行步5;
步骤2,查找会话ID并获取S1包中的IP等私人信息,执行步骤3;
步骤3,验证当前连接IP是否与S1包中的IP等私人信息相吻合,如果判断为是,执行步骤4,否则,执行步骤5;
步骤4,返回给客户端会话恢复成功信息,执行步骤7;
步骤5,向客户端发送S2包,与客户端进行正常握手;
步骤6,接收客户端发送的S3包,并根据S3包发送S4包,完成与客户端的握手;
步骤7,与客户端开始会话。
综上所述,借助于本发明实施例的技术方案,通过使用非对称加密算法协商确定对称加密密钥,并使用对称加密密钥与客户端进行通信,解决了现有技术中在不稳定的网络环境下客户端不能安全高效地与服务器实现加密会话的问题,能够保证用户无论是在何种恶劣的网络环境下都能快速实现与服务器安全交换数据从而实现对互联网业务的访问,极大的提升了用户体验。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
应当注意的是,在本发明的控制器的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的控制器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (6)

1.一种建立客户端与服务器安全连接的方法,其特征在于,包括:
服务器获取客户端发送的连接发起请求,根据所述连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥,完成与所述客户端的握手;其中,所述连接发起请求中携带有所述客户端指定的当前连接所使用的加密算法;所述服务器根据所述连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥具体包括:所述服务器根据所述客户端指定的加密算法随机生成第一协商公私钥对,并使用选择的约定公私钥对中的私钥0加密所述第一协商公私钥对中的公钥1,并将加密后的公钥1发送给客户端;所述客户端使用所述约定公私钥对中的公钥0解密并得到所述公钥1,并随机生成第二协商公私钥对,使用所述公钥1加密所述第二协商公私钥对中的公钥2,并将加密后的所述公钥2发送给所述服务器;所述服务器使用所述第一协商密钥对中的私钥1解密并得到所述公钥2;并随机生成所述对称加密密钥,使用所述公钥2将所述对称加密密钥进行加密,并将加密后的对称加密密钥发送给所述客户端;所述客户端使用所述第二协商公私钥对中的私钥2解密并得到所述对称加密密钥;
所述服务器使用所述加密密钥与所述客户端进行通信。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务器为当前连接分配一个唯一的会话标识ID,并将所述会话ID记录在与所述当前连接相关的会话状态中;
使用所述对称加密密钥和对称加密算法将所述会话ID发送给所述客户端;
所述客户端使用所述对称加密密钥进行解密,获取所述会话ID,并保存所述会话ID;
所述服务器在与所述客户端断开链接后,在预定时间内保存与所述客户端的会话状态。
3.如权利要求2所述的方法,其特征在于,所述连接发起请求中携带有上次连接的会话ID的明文、以及使用所述对称加密密钥加密的用户信息;
当所述客户端断开了与所述服务器的连接后需要重新连接所述服务器时,所述方法还包括:
所述服务器接收所述客户端发送的所述连接发起请求,并获取所述会话ID;
所述服务器根据所述会话ID判断相应的会话状态中是否保存有相应的会话ID,如果存在所述相应的会话ID,则使用相应的加密密钥对所述连接发起请求进行解密,获取所述用户信息;
所述服务器根据所述用户信息对所述客户端进行鉴权,在鉴权通过的情况下,与所述客户端进行会话快速恢复,直接使用所述相应的加密密钥与所述客户端进行通信。
4.一种服务器,其特征在于,包括:
连接模块,用于获取客户端发送的连接发起请求,根据所述连接发起请求使用非对称加密算法通过两次协商确定对称加密密钥,完成与所述客户端的握手,所述连接发起请求中携带有所述客户端指定的当前连接所使用的加密算法;所述连接模块具体用于:根据所述客户端指定的加密算法随机生成第一协商公私钥对,并使用选择的约定公私钥对中的私钥0加密所述第一协商公私钥对中的公钥1,并将加密后的公钥1发送给客户端;获取所述客户端使用所述公钥1加密的第二协商公私钥对中的公钥2;使用所述第一协商密钥对中的私钥1解密并得到所述公钥2;并随机生成所述对称加密密钥,使用所述公钥2将所述对称加密密钥进行加密,并将加密后的对称加密密钥发送给所述客户端;
通信模块,用于使用所述加密密钥与所述客户端进行通信。
5.如权利要求4所述的服务器,其特征在于,所述服务器还包括:
保存模块,用于为当前连接分配一个唯一的会话标识ID,并将所述会话ID记录在与所述当前连接相关的会话状态中,并使用所述对称加密密钥和对称加密算法将所述会话ID发送给所述客户端,与所述客户端断开链接后,在预 定时间内保存与所述客户端的会话状态。
6.如权利要求5所述的服务器,其特征在于,所述连接发起请求中携带有上次连接的会话ID的明文、以及使用所述对称加密密钥加密的用户信息;
所述服务器还包括:会话快速恢复模块,用于当所述客户端断开了与所述服务器的连接后需要重新连接所述服务器时,接收所述客户端发送的所述连接发起请求,并获取所述会话ID,根据所述会话ID判断相应的会话状态中是否保存有相应的会话ID,如果存在所述相应的会话ID,则使用相应的加密密钥对所述连接发起请求进行解密,获取所述用户信息;根据所述用户信息对所述客户端进行鉴权,在鉴权通过的情况下,与所述客户端进行会话快速恢复,直接使用所述相应的加密密钥与所述客户端进行通信。
CN201210310885.6A 2012-08-29 2012-08-29 建立客户端与服务器安全连接的方法及服务器 Active CN102833253B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210310885.6A CN102833253B (zh) 2012-08-29 2012-08-29 建立客户端与服务器安全连接的方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210310885.6A CN102833253B (zh) 2012-08-29 2012-08-29 建立客户端与服务器安全连接的方法及服务器

Publications (2)

Publication Number Publication Date
CN102833253A CN102833253A (zh) 2012-12-19
CN102833253B true CN102833253B (zh) 2015-09-16

Family

ID=47336223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210310885.6A Active CN102833253B (zh) 2012-08-29 2012-08-29 建立客户端与服务器安全连接的方法及服务器

Country Status (1)

Country Link
CN (1) CN102833253B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108092761A (zh) * 2016-11-22 2018-05-29 广东亿迅科技有限公司 一种基于rsa和3des的密钥管理方法及***

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986716B (zh) * 2014-05-21 2017-02-01 深圳大学 Ssl连接的建立方法以及基于ssl连接的通信方法及装置
CN105656839A (zh) * 2014-11-11 2016-06-08 江苏威盾网络科技有限公司 一种基于加密技术的移动终端安全防护***及方法
CN105743847A (zh) * 2014-12-09 2016-07-06 北京大唐高鸿数据网络技术有限公司 基于WebSocket实现SIP信令安全传输的方法
CN104468126B (zh) * 2014-12-26 2018-08-21 北京深思数盾科技股份有限公司 一种安全通信***及方法
CN105812313B (zh) * 2014-12-29 2019-12-27 阿里巴巴集团控股有限公司 恢复会话的方法和服务器、生成会话凭证的方法和装置
KR101627256B1 (ko) * 2015-01-08 2016-06-03 (주)넷텐션 다수 분산서버를 구비한 네트워크 통신의 세션 이양 방법
CN104580537A (zh) * 2015-02-06 2015-04-29 深圳中兴网信科技有限公司 基于xmpp客户端与服务器的快速重连方法、终端和服务器
CN104660616A (zh) * 2015-03-18 2015-05-27 上海斐讯数据通信技术有限公司 一种会话可保持的服务端及其会话处理方法
CN105490813B (zh) * 2015-11-26 2019-03-01 广州华多网络科技有限公司 一种用户安全访问web的方法及装置
CN106685911B (zh) * 2016-07-29 2020-12-04 腾讯科技(深圳)有限公司 一种数据处理方法及鉴权服务器、客户端
CN106603542A (zh) * 2016-12-22 2017-04-26 北京雷石天地电子技术有限公司 一种云端和线下场所服务器的通信方法与装置
CN106790269B (zh) * 2017-02-15 2020-09-29 东软集团股份有限公司 应用程序超时登录的恢复方法及装置
CN107070653B (zh) * 2017-05-05 2020-07-10 长沙卡友信息服务股份有限公司 一种pos交易加密***、方法、posp前置服务器和pos终端
CN109246172A (zh) * 2017-07-11 2019-01-18 华为技术有限公司 一种恢复会话的方法、装置及计算机存储介质
CN109428876B (zh) * 2017-09-01 2021-10-08 腾讯科技(深圳)有限公司 一种握手连接方法及装置
CN107508673A (zh) * 2017-09-11 2017-12-22 金蝶软件(中国)有限公司 Erp与第三方组件之间密钥获取的方法及相关装置
CN107547570B (zh) * 2017-09-30 2023-12-05 国信优易数据股份有限公司 一种数据安全服务平台和数据安全传输方法
CN108173644A (zh) * 2017-12-04 2018-06-15 珠海格力电器股份有限公司 数据传输加密方法、装置、存储介质、设备及服务器
US10972770B2 (en) * 2018-01-10 2021-04-06 Citrix Systems, Inc. Method for encrypting data streams with negotiable and adaptable encryption levels
CN108599923A (zh) * 2018-02-26 2018-09-28 华南师范大学 云计算服务器间数据高效安全传输的实现方法
CN108737377A (zh) * 2018-04-17 2018-11-02 深圳市网心科技有限公司 数据保护方法、服务器及计算机可读存储介质
CN109245891A (zh) * 2018-09-13 2019-01-18 国云科技股份有限公司 一种基于rsa算法的随机密钥生成方法
CN111181900B (zh) * 2018-11-13 2022-04-22 深圳光启高等理工研究院 一种数据报文发送和接收方法、存储介质及处理器
CN109257387A (zh) * 2018-11-20 2019-01-22 郑州云海信息技术有限公司 用于断线重连的方法和装置
CN110048994A (zh) * 2018-12-05 2019-07-23 香港乐蜜有限公司 一种通信方法和装置
CN110224976B (zh) * 2019-04-29 2020-05-12 北京邮电大学 一种加密通信方法、装置及计算机可读存储介质
CN110519054A (zh) * 2019-08-29 2019-11-29 四川普思科创信息技术有限公司 一种基于可信计算技术进行物联网数据安全保护的方法
CN111565107B (zh) * 2020-07-14 2020-11-27 腾讯科技(深圳)有限公司 基于云服务平台的密钥处理方法、装置和计算机设备
CN111988299A (zh) * 2020-08-14 2020-11-24 杭州视洞科技有限公司 一种客户端和服务器可信链接的建立方式
CN112738051B (zh) * 2020-12-24 2023-12-01 深圳赛安特技术服务有限公司 数据信息加密方法、***及计算机可读存储介质
CN112926076B (zh) * 2021-03-29 2023-03-21 中国建设银行股份有限公司 一种数据处理的方法、装置和***
CN113382001B (zh) * 2021-06-09 2023-02-07 湖南快乐阳光互动娱乐传媒有限公司 一种通信加密方法及相关装置
CN115580399A (zh) * 2022-09-27 2023-01-06 深圳市天视通技术有限公司 一种网络通信连接方法、装置、网络通信***及存储介质
CN116346877A (zh) * 2022-12-09 2023-06-27 广州通康创智软件有限公司 一种远程终端管理方法及***
CN117573390A (zh) * 2023-11-20 2024-02-20 航天信息(广东)有限公司 一种数据处理方法、云端、客户端及数据处理***
CN118199880A (zh) * 2024-05-15 2024-06-14 上海黑瞳信息技术有限公司 基于ecdh算法的通信协议、***、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700634A (zh) * 2004-05-20 2005-11-23 国际商业机器公司 在两计算机间传输数据的***和方法
CN101022455A (zh) * 2006-12-26 2007-08-22 北京大学 一种Web通信加密方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250073A1 (en) * 2003-06-03 2004-12-09 Cukier Johnas I. Protocol for hybrid authenticated key establishment
CN1980120A (zh) * 2005-12-02 2007-06-13 宏碁股份有限公司 具有保密功能与无线局域网连线的登入方法及其***
CN102081713B (zh) * 2011-01-18 2013-01-16 苏州国芯科技有限公司 一种用于防止数据泄密的办公***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700634A (zh) * 2004-05-20 2005-11-23 国际商业机器公司 在两计算机间传输数据的***和方法
CN101022455A (zh) * 2006-12-26 2007-08-22 北京大学 一种Web通信加密方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108092761A (zh) * 2016-11-22 2018-05-29 广东亿迅科技有限公司 一种基于rsa和3des的密钥管理方法及***

Also Published As

Publication number Publication date
CN102833253A (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN102833253B (zh) 建立客户端与服务器安全连接的方法及服务器
CN109347809B (zh) 一种面向自主可控环境下的应用虚拟化安全通信方法
EP3633913B1 (en) Provisioning a secure connection using a pre-shared key
CN110380852B (zh) 双向认证方法及通信***
EP2792100B1 (en) Method and device for secure communications over a network using a hardware security engine
CN108401011A (zh) 内容分发网络中握手请求的加速方法、设备及边缘节点
CN104702611A (zh) 一种保护安全套接层会话密钥的设备及方法
CN113630407B (zh) 使用对称密码技术增强mqtt协议传输安全的方法和***
CN105307165A (zh) 基于移动应用的通信方法、服务端和客户端
CN107800675A (zh) 一种数据传输方法、终端以及服务器
CN113612605A (zh) 使用对称密码技术增强mqtt协议身份认证方法、***和设备
CN101286849A (zh) 基于约定算法的第三方认证***和方法
CN109194474A (zh) 一种数据传输方法及装置
CN105491015B (zh) 一种数据通信及存储方法
CN101631305A (zh) 一种加密方法及***
CN104901803A (zh) 一种基于cpk标识认证技术的数据交互安全保护方法
CN110601825A (zh) 密文的处理方法及装置、存储介质、电子装置
CN110839240A (zh) 一种建立连接的方法及装置
CN110690969A (zh) 一种多方协同完成双向ssl/tls认证的方法和***
CN117081736A (zh) 密钥分发方法、密钥分发装置、通信方法及通信装置
CN105991622A (zh) 一种报文验证方法及设备
CN108040071A (zh) 一种VoIP音视频加密密钥动态切换方法
CN105591748B (zh) 一种认证方法和装置
CN114650173A (zh) 一种加密通讯方法及***
CN107181739B (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
C14 Grant of patent or utility model
GR01 Patent grant