会话保持方法及相关设备与流程

文档序号:17005317发布日期:2019-03-02 02:00阅读:195来源:国知局
会话保持方法及相关设备与流程

本申请涉及通信技术领域,尤其涉及会话保持方法及相关设备。



背景技术:

随着物联网(internetofthings,iot)技术的发展,iot应用越来越广泛,iot用户/终端数量快速增长,组网场景也越来越多样化。iot终端通过网络地址转换(networkaddresstranslation,nat)设备与公网的iot平台进行对接,以传输数据。根据市场安全需要,采用数据报传输层安全(datagramtransportlayersecurity,dtls)保护iot终端和iot平台之间传输的数据。

dtls会话由iot终端和iot平台握手建立,建立成功后,双方使用五元组(即源/目的ip地址、源/目的端口号以及协议类型)或四元组(即源/目的ip地址和源/目的端口号)唯一标识该dtls连接,因此,发送方在数据包的ip头携带五元组/四元组,将包含该数据包的报文发送给接收方,接收方可以根据五元组/四元组找到相应的dtls安全上下文,根据dtls安全上下文对数据包进行解密/完整性校验等处理。但是,关于海量iot终端周期发送数据的场景(例如水表一天或者更长时间发送一次数据),要求低功耗。比如要求几千毫安时的电池使用5~10年,则iot终端每次发送数据之后就进入深度休眠状态以便省电,处于深度休眠状态的iot终端与iot平台之间不存在交互,导致nat表项(源ip地址/目的ip地址,源端口/目的端口对应关系表)等资源老化。在nat表项老化的情况下,iot终端每次向iot平台发送的数据包所携带的五元组/四元组均不相同,导致iot平台无法根据数据包携带的五元组/四元组找到准确的dtls上下文,iot终端需要和iot平台之间重新协商以建立dtls连接,重新协商所消耗的资源比发送数据所消耗的资源多,导致会话保持的适用性较低,数据传输效率较低,功耗较高。



技术实现要素:

本发明实施例提供一种会话保持方法及相关设备,通过使用会话标识信息保持dtls会话,可提升数据传输效率,节省功耗,并提高会话保持的适用性。

第一方面,本发明实施例提供一种会话保持方法,包括:

服务器在与客户端之间建立dtls会话时,产生会话标识信息,所述会话标识信息用于标识所述dtls会话;

所述服务器将所述会话标识信息发送给所述客户端;

所述服务器通过所述dtls会话接收来自所述客户端的第一数据,所述第一数据携带所述会话标识信息;

所述服务器根据所述会话标识信息所对应的dtls上下文,对所述第一数据进行处理。

在一种可能的设计方案中,所述服务器还可以在到达会话标识更新时间时,对所述会话标识信息进行更新,得到更新后的会话标识信息;所述服务器将第二数据发送给客户端,第二数据包括会话标识信息和所述更新后的会话标识信息;所述服务器通过所述dtls会话接收来自所述客户端的第三数据,所述第三数据携带所述更新后的会话标识信息;所述服务器根据所述更新后的会话标识信息所对应的dtls上下文,对所述第三数据进行处理。

在一种可能的设计方案中,所述服务器在到达会话标识更新时间时,对所述会话标识信息进行更新,得到更新后的会话标识信息之后,还包括:

所述服务器对所述更新后的会话标识信息进行加密,得到更新且加密后的会话标识信息;

其中,所述第二数据包括所述会话标识信息和所述更新且加密后的会话标识信息。

在一种可能的设计方案中,所述服务器在到达会话标识更新时间时,对所述会话标识信息进行更新,得到更新后的会话标识信息之后,还包括:

所述服务器对所述更新后的会话标识信息进行完整性保护,得到更新且完整性保护后的会话标识信息;

其中,所述第二数据包括所述会话标识信息和所述更新且完整性保护后的会话标识信息。

在一种可能的设计方案中,所述服务器在到达会话标识更新时间时,对所述会话标识信息进行更新,得到更新后的会话标识信息之后,还包括:

所述服务器对所述更新后的会话标识信息进行加密和完整性保护,得到加密且完整性保护后的会话标识信息;

其中,所述第二数据包括所述会话标识信息和所述加密且完整性保护后的会话标识信息。

在一种可能的设计方案中,所述服务器将所述会话标识信息发送给所述客户端之前,还可以将所述会话标识信息与会话标识数据库中除所述会话标识信息以外的其他会话标识信息进行比较,所述会话标识数据库包含用于标识与所述服务器之间建立的各个dtls会话的会话标识信息;当所述会话标识信息与所述其他会话标识信息均不相同时,触发所述服务器将所述会话标识信息发送给所述客户端。

在一种可能的设计方案中,所述服务器产生会话标识信息,具体可以为:所述服务器与所述客户端之间进行dtls协商;当协商成功时,所述服务器产生所述会话标识信息。

在一种可能的设计方案中,所述服务器与所述客户端之间进行dtls协商,具体可以为:所述服务器接收来自所述客户端的会话保持请求消息;所述服务器响应所述会话保持请求消息,并在所述服务器支持dtls会话保持时,向所述客户端发送会话保持确认消息,所述会话保持确认消息用于指示所述服务器支持dtls会话保持。

在一种可能的设计方案中,所述服务器还可以通过所述dtls会话向所述客户端发送第四数据,所述第四数据携带所述会话标识信息。

第二方面,本发明实施例提供一种会话保持方法,包括:

客户端接收来自服务器的会话标识信息,所述会话标识信息是所述服务器在与所述客户端之间建立dtls会话时产生的,所述会话标识信息用于标识所述dtls会话;

所述客户端通过所述dtls会话向所述服务器发送第一数据,所述第一数据携带所述会话标识信息。

在一种可能的设计方案中,所述客户端还可以接收来自所述服务器的第二数据,所述第二数据包括所述会话标识信息和更新后的会话标识信息;所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新后的会话标识信息;所述客户端通过所述dtls会话向所述服务器发送第三数据,所述第三数据携带所述更新后的会话标识信息。

在一种可能的设计方案中,第二数据包括所述会话标识信息和更新且加密后的会话标识信息,所述更新且加密后的会话标识信息是所述服务器对所述更新后的会话标识信息进行加密得到的;

所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新后的会话标识信息,包括:所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述加密后的会话标识信息;所述客户端对所述加密后的会话标识信息进行解密,得到所述更新后的会话标识信息。

在一种可能的设计方案中,第二数据包括所述会话标识信息和更新且完整性保护后的会话标识信息,所述更新且完整性保护后的会话标识信息是所述服务器对所述更新后的会话标识信息进行完整性保护得到的;

所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新后的会话标识信息,包括:所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新且完整性保护后的会话标识信息;所述客户端对所述更新且完整性保护后的会话标识信息进行完整性校验,得到所述更新后的会话标识信息。

在一种可能的设计方案中,第二数据包括所述会话标识信息和加密且完整性保护后的会话标识信息,所述加密且完整性保护后的会话标识信息是所述服务器对所述更新后的会话标识信息进行加密和完整性保护得到的;

所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新后的会话标识信息,包括:所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述加密且完整性保护后的会话标识信息;所述客户端对所述加密且完整性保护后的会话标识信息进行解密和完整性校验,得到所述更新后的会话标识信息。

在一种可能的设计方案中,所述客户端还可以接收来自所述服务器的第四数据,所述第四数据携带所述会话标识信息;所述客户端根据所述会话标识信息所对应的dtls上下文,对所述第四数据进行处理。

在一种可能的设计方案中,所述客户端接收来自服务器的会话标识信息,具体可以为:所述客户端与所述服务器之间进行dtls协商;当协商成功时,所述客户端接收来自所述服务器的会话标识信息。

在一种可能的设计方案中,所述客户端与所述服务器之间进行dtls协商,具体可以为:所述客户端向所述服务器发送会话保持请求消息;当接收到来自所述服务器的会话保持确认消息时,确定协商成功,所述会话保持确认消息用于指示所述服务器支持dtls会话保持。

在一种可能的设计方案中,所述客户端通过所述dtls会话向所述服务器发送第一数据之后,还可以将所述客户端的运行状态更新为休眠状态。

第三方面,本发明实施例还提供了一种服务器,该服务器具有实现上述方法示例中服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。

在一种可能的设计方案中,服务器的结构中可包括处理单元、接收单元和发送单元,所述处理单元被配置为支持服务器执行上述方法中相应的功能。所述接收单元和发送单元用于支持服务器与其他设备之间的通信。所述服务器还可以包括存储单元,所述存储单元用于与处理单元耦合,其保存服务器必要的程序指令和数据。作为示例,处理单元可以为处理器,接收单元可以为接收器,发送单元可以为发射器,存储单元可以为存储器。

第四方面,本发明实施例提供一种客户端,该客户端具有实现上述方法示例中客户端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。

在一种可能的设计方案中,客户端的结构中包括处理单元、接收单元和发送单元,所述处理单元被配置为支持客户端执行上述方法中相应的功能。所述接收单元和发送单元用于支持客户端与其他设备之间的通信。所述客户端还可以包括存储单元,所述存储单元用于与处理单元耦合,其保存客户端必要的程序指令和数据。作为示例,处理单元可以为处理器,接收单元可以为接收器,发送单元可以为发射器,存储单元可以为存储器。

第五方面,本发明实施例提供了一种会话保持系统,该系统包括上述方面的服务器和/或客户端。在另一种可能的设计方案中,该系统还可以包括本发明实施例提供的方案中与该服务器或客户端进行交互的其他设备。

第六方面,本发明实施例提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包括用于执行上述方面所设计的程序。

第七方面,本发明实施例提供了一种计算机存储介质,用于储存为上述客户端所用的计算机软件指令,其包括用于执行上述方面所设计的程序。

第八方面,本发明实施例提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

第九方面,本发明实施例提供了一种芯片系统,该芯片系统包括处理器,用于服务器实现上述方面中所涉及的功能,例如,例如生成或处理上述方法中所涉及的数据和/或信息。在一种可能的设计方案中,所述芯片系统还包括存储器,所述存储器,用于保存服务器必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

第十方面,本发明实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持客户端实现上述方面中所涉及的功能,例如,例如接收或处理上述方法中所涉及的数据和/或信息。在一种可能的设计方案中,所述芯片系统还包括存储器,所述存储器,用于保存客户端必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

实施本发明实施例,服务器在与客户端之间建立dtls会话时,产生会话标识信息;服务器将会话标识信息发送给客户端;服务器通过dtls会话接收来自客户端的第一数据,第一数据携带会话标识信息;服务器根据会话标识信息所对应的dtls上下文,对第一数据进行处理。相对传统的会话保持方法在nat表项老化的情况下,客户端每次向服务器发送的数据包所携带的五元组/四元组均不相同,导致服务器无法根据数据包携带的五元组/四元组找到准确的dtls上下文,客户端需要和iot平台之间重新协商以建立dtls会话,本发明实施例中会话标识信息和五元组/四元组解耦,无论五元组/四元组是否相同,均可通过使用会话标识信息保持dtls会话,可提升数据传输效率,节省功耗,并提高会话保持的适用性。

附图说明

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

图1是本发明实施例提供的一种会话保持系统的结构示意图;

图2是本发明实施例提供的一种会话保持方法的交互示意图;

图3是本发明实施例提供的一种服务器的结构示意图;

图4是本发明另一实施例提供的一种服务器的结构示意图;

图5是本发明另一实施例提供的一种服务器的结构示意图;

图6是本发明实施例提供的一种客户端的结构示意图;

图7是本发明另一实施例提供的一种客户端的结构示意图;

图8是本发明另一实施例提供的一种客户端的结构示意图。

具体实施方式

下面结合本发明实施例中的附图对本发明实施例进行描述。

应理解,本申请的技术方案可具体应用于各种使用dtls传输数据的通信系统中,例如:全球移动通讯系统(globalsystemofmobilecommunication,gsm)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、时分同步码分多址(timedivision-synchronouscodedivisionmultipleaccess,td-scdma)、通用移动通信系统(universalmobiletelecommunicationsystem,umts)、长期演进(longtermevolution,lte)系统等,随着通信技术的不断发展,本申请的技术方案还可用于未来网络,如第五代移动通信技术(thefifthgenerationmobilecommunicationtechnology,5g)系统,也可以称为新空口(newradio,nr)系统,或者可用于d2d(devicetodevice)系统,m2m(machinetomachine)系统等等,本申请不做限定。

本申请结合服务器进行描述,该服务器可以是iot平台或其他任意服务器(例如应用服务器)等等。

在本申请中,客户端可以应用于终端中,终端可以包括iot终端或其他任意设备。其中,终端是一种具有通信功能的设备,可以包括具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等,可选的,还可以包括具有有线通信功能的设备。在不同的网络中终端可以叫做不同的名称,例如:用户设备(userequipment,ue),终端,移动台,用户单元,站台,蜂窝电话,个人数字助理,无线调制解调器,无线通信设备,手持设备,膝上型电脑,无绳电话,无线本地环路台等。为描述方便,本申请中可将终端简称为ue。该终端可以是指无线终端、有线终端。该无线终端可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备,其可以经无线接入网(如ran,radioaccessnetwork)与一个或多个核心网进行通信。

下面对本申请的应用场景进行介绍,请参见图1,图1是本发明实施例提供的一种会话保持系统的架构图。具体的,如图1所示,该会话保持系统中可包括至少一个客户端101和服务器102,客户端101可以通过采用dtls协议接入到服务器102,以便客户端101与服务器102之间建立dtls会话,服务器102在与客户端101之间建立dtls会话时,可以产生会话标识信息,并将会话标识信息发送给客户端101,客户端101可以通过dtls会话向服务器发送第一数据,第一数据携带该会话标识信息,则服务器102可以根据会话标识信息所对应的dtls上下文,对第一数据进行处理,无需重新协商以建立dtls会话,可提升数据传输效率,节省功耗,并提高会话保持的适用性。另外,本发明实施例中,客户端101与服务器102通过dtls会话传输数据,可提升数据的传输安全。

可选的,服务器102还可以将第四数据发送给客户端101,第四数据携带该会话标识信息,则客户端101可以根据该会话标识信息所对应的dtls上下文,对第四数据进行处理。

可选的,服务器102产生会话标识信息所使用的算法可以包括计数counter、基于hmac的一次性密码算法(anhmac-basedone-timepasswordalgorithm,hotp)、安全散列演算法-1(securehashalgorithm-1,shai)、安全散列演算法-3(securehashalgorithm-3,sha3)或者伪随机函数(pseudo-randomfunction,prf)等。服务器102可以将会话标识信息通过数据报文发送给客户端101。

需要说明的是,当存在多个客户端时,服务器可以分别和不同客户端建立不同dtls会话。针对不同dtls会话,服务器可以生成不同会话标识信息,以标识该dtls会话。

可选的,该会话保持系统还可以包括网络地址转换(networkaddresstranslation,nat)设备103,该nat设备103可以存储nat表项,nat表项可以包括dtls会话所对应的源网络之间互连的协议(internetprotocol,ip)地址/目的ip地址,与源端口/目的端口之间的对应关系。示例性的,客户端的运行状态更新为休眠状态之后,客户端与服务器之间无数据传输,将导致nat表项老化。

本申请公开了一种会话保持方法及相关设备,通过使用会话标识信息保持dtls会话,可提升数据传输效率,并节省功耗。以下分别详细说明。

请参见图2,图2是本发明实施例提供的一种会话保持方法的交互示意图,具体的,如图2所示,本发明实施例的会话保持方法可以包括以下步骤:

201、服务器与客户端之间进行dtls协商。

在初始入网阶段,服务器可以与客户端之间进行dtls协商,具体的,客户端可以向服务器发送会话保持请求消息,服务器响应会话保持请求消息,并在服务器支持dtls会话保持时,向客户端发送会话保持确认消息,会话保持确认消息用于指示服务器支持dtls会话保持。需要说明的是,dtls协商的具体方式可以包括如下两种:

一、客户端向服务器发送clienthello消息(即上述会话保持请求消息),clienthello消息可以携带resume_id,示例性的,resume_id可以为10000…00,当服务器支持dtls会话保持时,可以继续后续协商,即与客户端之间协商更新后的会话标识信息在加密过程中所需的加密算法,以及密钥和/或私钥,还可以与客户端之间协商更新后的会话标识信息在完整性保护过程中所需的完整性保护算法,以及在完整性校验过程中所需的完整性校验算法等。当服务器不支持dtls会话保持时,服务器可以向客户端发送会话保持失败消息,例如alert或其他异常响应。

二、客户端向服务器发送clienthello消息(即上述会话保持请求消息),clienthello消息可以携带扩展信息(extension,例如extensiontype=36),当服务器支持dtls会话保持时,服务器可以向客户端发送会话保持确认消息(例如serverhello),该会话保持确认消息可以携带上述扩展信息,以指示服务器支持dtls会话保持。当服务器不支持dtls会话保持时,可以按照标准dtls进行异常处理。

202、当协商成功时,服务器产生会话标识信息。

当协商成功时,客户端与服务器之间成功建立dtls会话,服务器可以产生会话标识信息,会话标识信息可以用于标识该dtls会话。由于本方案基于标准dtls,因此提供向已经标准化的dtls兼容机制,resume-id(即会话标识信息)位于dtlsrecord头,所有数据包头均携带resume-id,在数据包头的resume-id有完整性保护(已经标准化dtls提供的完整性保护机制)。示例性的,服务器产生会话标识信息的具体方法可如下所示:

struct{

contenttypetype;

protocolversionversion;

uint16epoch;

uint48sequence_number;

uint64resume_id;//newfield

uint16length;

opaquefragment[dtlsplaintext.length];

}dtlsplaintext;

需要说明的是,会话标识信息的长度可以大于等于64bits,其中会话标识信息的高位1bit可以固定为1;次高bit为0,用于指示版本标识;后62bits用于标识随机生成的内容,不同会话标识信息的后62bits所包含的内容各不相同。

需要说明的是,不同dtls会话可以对应不同的dtls上下文,则服务器产生会话标识信息之后,可以建立会话标识信息和该会话标识信息所标识会话的dtls上下文的对应关系。进一步的,当服务器对会话标识信息进行更新,得到更新后的会话标识信息时,服务器可以将上述会话标识信息和dtls上下文的对应关系更新为更新后的会话标识信息和上述dtls上下文的对应关系。

可选的,服务器产生会话标识信息之后,可以将该会话标识信息与会话标识数据库中除该会话标识信息以外的其他会话标识信息进行比较,会话标识数据库包含用于标识与服务器之间建立的各个dtls会话的会话标识信息,当会话标识信息与其他会话标识信息均不相同时,服务器可以将该会话标识信息发送给客户端。例如,服务器与客户端3之间建立第三dtls会话之前,分别和客户端1之间建立了第一dtls会话,以及和客户端2之间建立了第二dtls会话,其中用于标识第一dtls会话的会话标识信息为10110...00,用于标识第二dtls会话的会话标识信息为10101...10,服务器可以将用于标识第一dtls会话的会话标识信息和用于标识第二dtls会话的会话标识信息存储到会话标识数据库中,服务器产生用于标识第三dtls会话的会话标识信息之后,可以将用于标识第三dtls会话的会话标识信息分别和用于标识第一dtls会话的会话标识信息,以及用于标识第二dtls会话的会话标识信息进行比较,例如用于标识第三dtls会话的会话标识信息为10001...00,则服务器可以确定用于标识第三dtls会话的会话标识信息与会话标识数据库中的其他会话标识信息均不相同。

可选的,服务器产生会话标识信息之后,可以将该会话标识信息存储到会话标识数据库中。

需要说明的是,服务器产生会话标识信息之后,检测并确保会话标识信息的唯一性和随机性,可避免会话标识信息碰撞,确保一个会话标识信息唯一标识一个dtls会话,保证针对不同客户端的会话标识信息各不相同,提升海量终端同时与服务器之间建立dtls会话时的数据传输安全。

203、服务器将会话标识信息发送给客户端。

具体的,服务器产生会话标识信息之后,可以将会话标识信息通过finish消息或者update消息发送给客户端,客户端接收到该会话标识信息之后,可以存储该会话标识信息,并建立会话标识信息和该会话标识信息所标识会话的dtls上下文的对应关系。

204、客户端通过dtls会话向服务器发送第一数据,第一数据携带会话标识信息。

可选的,服务器可以通过该dtls会话向客户端发送第四数据,第四数据携带该会话标识信息,客户端可以根据会话标识信息所对应的dtls上下文,对第三数据进行处理。

需要说明的是,客户端与服务器之间传输的数据均需要携带会话标识信息,以便接收端(例如客户端或者服务器)根据该会话标识信息保持dtls会话。

205、服务器根据会话标识信息所对应的dtls上下文,对第一数据进行处理。

具体的,服务器接收到第一数据之后,可以根据会话标识信息和dtls上下文的对应关系,获取第一数据携带的会话标识信息所对应的dtls上下文,并根据获取到的dtls上下文对第一数据进行解密或者完整性校验等处理。

206、客户端将客户端的运行状态更新为休眠状态。

客户端将第一数据发送给服务器,和/或客户端接收到来自服务器的第四数据之后,可以将客户端的运行状态更新为休眠状态。处于休眠状态的客户端与服务器之间无数据传输,将导致nat表项老化。需要说明的是,客户端完成本次数据传输之后,将客户端的运行状态更新为休眠状态或者其他类似休眠状态(例如数据暂停传输状态,即客户端与服务器在一段时间内无数据传输),可节省电量。

207、在到达会话标识更新时间时,服务器对会话标识信息进行更新,得到更新后的会话标识信息。

具体的,服务器可以提供会话标识信息周期更新机制,即服务器启动会话标识信息更新定时器,在到达会话标识更新时间时,服务器对会话标识信息进行更新,得到更新后的会话标识信息。

需要说明的是,服务器对会话标识信息进行周期更新,可防止客户端被跟踪,以确保数据传输安全。

208、服务器对更新后的会话标识信息进行加密和完整性保护,得到加密且完整性保护后的会话标识信息。

例如,若服务器与客户端协商得到的加密算法为非对称加密算法,则服务器可以使用协商得到的公钥对更新后的会话标识信息进行加密,并使用与客户端协商得到的完整性保护算法对上述会话标识信息进行完整性保护,得到加密且完整性保护后的会话标识信息。可选的,服务器还可以使用协商得到的私钥对更新后的会话标识信息进行加密,并使用与客户端协商得到的完整性保护算法对上述会话标识信息进行完整性保护,得到加密且完整性保护后的会话标识信息。非对称加密算法可以包括rsa加密算法(rsaalgorithm,rsa)、elgamal算法、背包算法、rabin加密算法、d-h算法(denavit–hartenberg,d-h)、椭圆曲线加密算法(ellipticcurvescryptography,ecc)等。

又如,若服务器与客户端协商得到的加密算法为对称加密算法,则服务器可以使用协商得到的密钥对更新后的会话标识信息进行加密,并使用与客户端协商得到的完整性保护算法对上述会话标识信息进行完整性保护,得到加密且完整性保护后的会话标识信息。对称加密算法可以包括数据加密标准(dataencryptionstandard,des)算法、三重数据加密算法(tripledes,3des)、分组密钥算法rc5或高级加密标准128(advancedencryptionstandard128,aes128)等。

209、服务器将第二数据发送给客户端,第二数据包括会话标识信息和加密且完整性保护后的会话标识信息。

示例性的,服务器可以将加密且完整性保护后的会话标识信息作为数据payload发送给客户端,客户端接收到的数据的头部包括更新前的会话标识信息。可选的,该数据可以是在已经协商成功的dtls安全通道中传输的。

210、客户端根据会话标识信息所对应的dtls上下文,对第二数据进行处理,得到加密且完整性保护后的会话标识信息。

211、客户端对加密且完整性保护后的会话标识信息进行解密和完整性校验,得到更新后的会话标识信息。

例如,若客户端与服务器协商得到的加密算法为非对称加密算法,且服务器使用协商得到的公钥对更新后的会话标识信息进行加密,并使用协商得到的完整性保护算法对上述会话标识信息进行完整性保护,得到加密且完整性保护后的会话标识信息,则客户端可以使用协商得到的私钥对加密且完整性保护后的会话标识信息进行解密,并使用协商得到的完整性校验算法对上述会话标识信息进行完整性校验,得到更新后的会话标识信息。可选的,若服务器使用协商得到的私钥对更新后的会话标识信息进行加密,并使用协商得到的完整性保护算法对上述会话标识信息进行完整性保护,得到加密且完整性保护后的会话标识信息,则客户端可以使用协商得到的密钥对加密且完整性保护后的会话标识信息进行解密,并使用协商得到的完整性校验算法对上述会话标识信息进行完整性校验,得到更新后的会话标识信息。

又如,若客户端与服务器协商得到的加密算法为对称加密算法,则客户端可以使用协商得到的密钥对加密且完整性保护后的会话标识信息进行解密,并使用协商得到的完整性校验算法对上述会话标识信息进行完整性校验,得到更新后的会话标识信息。

212、客户端通过dtls会话向服务器发送第三数据,第三数据携带更新后的会话标识信息。

可选的,客户端获取到更新后的会话标识信息之后,可以释放更新之前的会话标识信息,并存储更新后的会话标识信息。进一步的,客户端还可以将更新前的会话标识信息和dtls上下文的对应关系更新为更新后的会话标识信息和上述dtls上下文的对应关系。

213、服务器根据更新后的会话标识信息所对应的dtls上下文,对第三数据进行处理。

在本发明实施例中,服务器在与客户端之间建立dtls会话时,产生会话标识信息;服务器将会话标识信息发送给客户端;服务器通过dtls会话接收来自客户端的第一数据,第一数据携带会话标识信息;服务器根据会话标识信息所对应的dtls上下文,对第一数据进行处理。本发明实施例可提升数据传输效率,节省功耗,并提高会话保持的适用性。

请参见图3,是本发明实施例中所涉及的服务器的一种可能的结构示意图,参阅图3所示,该服务器可包括:接收单元301、处理单元302和发送单元303。其中,这些单元可以执行上述方法示例中的服务器的相应功能,例如,处理单元302,用于在与客户端之间建立dtls会话时,产生会话标识信息,所述会话标识信息用于标识所述dtls会话;发送单元303,用于将所述会话标识信息发送给所述客户端;接收单元301,用于通过所述dtls会话接收来自所述客户端的第一数据,所述第一数据携带所述会话标识信息;处理单元302,还用于根据所述会话标识信息所对应的dtls上下文,对所述第一数据进行处理。

可选的,所述处理单元302还用于在到达会话标识更新时间时,对所述会话标识信息进行更新,得到更新后的会话标识信息;

所述发送单元303,还用于将第二数据发送给所述客户端,第二数据包括会话标识信息和所述更新后的会话标识信息;

所述接收单元301,还用于通过所述dtls会话接收来自所述客户端的第三数据,所述第三数据携带所述更新后的会话标识信息;

所述处理单元302,还用于根据所述更新后的会话标识信息所对应的dtls上下文,对所述第三数据进行处理。

可选的,处理单元302,还用于在对所述会话标识信息进行更新,得到更新后的会话标识信息之后,对所述更新后的会话标识信息进行加密和完整性保护,得到加密且完整性保护后的会话标识信息;

其中,所述第二数据包括所述会话标识信息和所述加密且完整性保护后的会话标识信息。

可选的,所述处理单元302,还用于所述发送单元303将所述会话标识信息发送给所述客户端之前,将所述会话标识信息与会话标识数据库中除所述会话标识信息以外的其他会话标识信息进行比较,所述会话标识数据库包含用于标识与所述服务器之间建立的各个dtls会话的会话标识信息;

所述发送单元303,还用于当所述会话标识信息与所述其他会话标识信息均不相同时,将所述会话标识信息发送给所述客户端。

可选的,所述处理单元302产生会话标识信息,具体用于:

与所述客户端之间进行dtls协商;

当协商成功时,产生所述会话标识信息。

可选的,所述处理单元302与所述客户端之间进行dtls协商,具体用于:

接收来自所述客户端的会话保持请求消息;

响应所述会话保持请求消息,并在所述服务器支持dtls会话保持时,向所述客户端发送会话保持确认消息,所述会话保持确认消息用于指示所述服务器支持dtls会话保持。

可选的,所述发送单元303,还用于通过所述dtls会话向所述客户端发送第四数据,所述第四数据携带所述会话标识信息。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

在采用集成的单元的情况下,图4示出了上述实施例中所涉及的服务器的另一种可能的结构示意图,如图4所示,该服务器可包括:处理单元402和接收单元403、发送单元404。处理单元402可用于对服务器的动作进行控制管理,例如,处理单元402用于支持服务器执行图2中的过程201、202、205、207、208以及212等等,和/或用于本文所描述的技术的其它过程。接收单元403、发送单元404可用于支持服务器与其他网络实体的通信,例如与图1至图3中示出的功能单元(或模块)或网络实体之间的通信。服务器还可以包括存储单元401,用于存储服务器的程序代码和数据。

其中,处理单元402可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。接收单元403可以是接收器,发送单元404可以是发射器,或者接收单元403和发送单元404可以集成为收发器。存储单元401可以是存储器。

当处理单元402为处理器,接收单元403和发送单元404集成为收发器,存储单元401为存储器时,本发明实施例所涉及的服务器可以为图5所示的服务器。

参阅图5所示,该服务器可包括:处理器502、收发器503、存储器501以及总线504。其中,收发器503、处理器502以及存储器501通过总线504相互连接;总线504可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

请参见图6,是本发明实施例中所涉及的客户端的一种可能的结构示意图,参阅图6所示,该客户端可包括:发送单元601和接收单元602。其中,这些单元可以执行上述方法示例中的客户端的相应功能,例如,接收单元602,用于接收来自服务器的会话标识信息,所述会话标识信息是所述服务器在与所述客户端之间建立数据报传输层安全dtls会话时产生的,所述会话标识信息用于标识所述dtls会话;发送单元601,用于通过所述dtls会话向所述服务器发送第一数据,所述第一数据携带所述会话标识信息。

可选的,接收单元602,还用于接收来自所述服务器的第二数据,所述第二数据包括所述会话标识信息和更新后的会话标识信息;

所述客户端还包括:

处理单元603,用于根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新后的会话标识信息;

所述发送单元601,还用于通过所述dtls会话向所述服务器发送第三数据,所述第三数据携带所述更新后的会话标识信息。

可选的,所述第二数据包括所述会话标识信息和加密且完整性保护后的会话标识信息,所述加密且完整性保护后的会话标识信息是所述服务器对所述更新后的会话标识信息进行加密和完整性保护得到的;

所述处理单元603根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述更新后的会话标识信息,具体用于:

根据所述会话标识信息所对应的dtls上下文,对所述第二数据进行处理,得到所述加密且完整性保护后的会话标识信息;

对所述加密且完整性保护后的会话标识信息进行解密和完整性校验,得到所述更新后的会话标识信息。

可选的,所述接收单元602,还用于接收来自所述服务器的第四数据,所述第四数据携带所述会话标识信息;

所述客户端还包括:

处理单元603,用于根据所述会话标识信息所对应的dtls上下文,对所述第三数据进行处理。

可选的,所述接收单元602接收来自服务器的会话标识信息,具体用于:

与所述服务器之间进行dtls协商;

当协商成功时,接收来自所述服务器的会话标识信息。

可选的,所述接收单元602与所述服务器之间进行dtls协商,具体用于:

向所述服务器发送会话保持请求消息;

当接收到来自所述服务器的会话保持确认消息时,确定协商成功,所述会话保持确认消息用于指示所述服务器支持dtls会话保持。

可选的,所述客户端还包括:

处理单元603,用于所述发送单元601通过所述dtls会话向所述服务器发送第一数据之后,将所述客户端的运行状态更新为休眠状态。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

在采用集成的单元的情况下,图7示出了上述实施例中所涉及的客户端的另一种可能的结构示意图,如图7所示,该客户端可包括:处理单元702和接收单元703、发送单元704。处理单元702可用于对客户端的动作进行控制管理,和/或用于本文所描述的技术的其它过程。接收单元703、发送单元704可用于支持客户端与其他网络实体的通信,例如与图1至图5中示出的功能单元(或模块)或网络实体之间的通信。客户端还可以包括存储单元701,用于存储客户端的程序代码和数据。

其中,处理单元702可以是处理器或控制器,例如可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。接收单元703可以是接收器,发送单元704可以是发射器,或者接收单元703和发送单元704可以集成为收发器。存储单元701可以是存储器。

当处理单元702为处理器,接收单元703和发送单元704集成为收发器,存储单元701为存储器时,本发明实施例所涉及的客户端可以为图8所示的客户端。

参阅图8所示,该客户端可包括:处理器802、收发器803、存储器801以及总线804。其中,收发器803、处理器802以及存储器801通过总线804相互连接;总线804可以是pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(英文:randomaccessmemory,缩写:ram)、闪存、只读存储器(英文:readonlymemory,缩写:rom)、可擦除可编程只读存储器(英文:erasableprogrammablerom,缩写:eprom)、电可擦可编程只读存储器(英文:electricallyeprom,缩写:eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于相关设备中。当然,处理器和存储介质也可以作为分立组件存在于相关设备中。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

还应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请的范围。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrativelogicalblock)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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