通信隧道端点地址分离方法、终端、ePDG及存储介质与流程

文档序号:17049238发布日期:2019-03-05 19:52阅读:330来源:国知局
通信隧道端点地址分离方法、终端、ePDG及存储介质与流程

本发明涉及通信技术领域,尤其涉及一种通信隧道端点地址分离方法、终端、epdg及存储介质。



背景技术:

非授信的非3gpp(3rdgenerationpartnershipproject,第三代合作伙伴计划)接入网络接入3gpp演进分组核心网的网络架构中,ipsec(internetprotocolsecurity,internet协议安全性)隧道的两端端点分别是终端和epdg(evolvedpacketdatagateway,演进的分组数据网关)。在终端侧,ike(internetkeyexchange,internet密钥交换协议)sa(securityassociation,安全联盟)隧道和ipsecsa隧道的端点地址相同;在epdg侧,ikesa隧道和ipsecsa隧道的端点地址相同。由此可知,在现有的架构下,在终端侧和epdg侧,ikesa隧道和ipsecsa隧道的端点地址必须相同。

在虚拟化环境下,为了优化控制面和用户面的性能,可以将ikesa隧道的功能体和ipsecsa隧道的功能体部署在不同的vm(virtualmachine,虚拟机)上,每个vm对应一个业务地址。然而由于目前在终端侧和epdg侧,ikesa隧道和ipsecsa隧道的端点地址必须相同,导致不能将ikesa隧道的功能体和ipsecsa隧道的功能体部署在不同的vm。



技术实现要素:

本发明的主要目的在于提供一种通信隧道端点地址分离方法、终端、epdg及存储介质,旨在解决现有不能将ikesa隧道的功能体和ipsecsa隧道的功能体部署在不同的虚拟机的技术问题。

为实现上述目的,本发明提供一种通信隧道端点地址分离方法,所述通信隧道端点地址分离方法包括步骤:

当演进的分组数据网关epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;

所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

优选地,所述第二请求消息中携带所述终端的ipsecsa隧道端点地址。

优选地,所述第二响应消息中携带所述epdg的ipsecsa隧道端点地址。

优选地,所述当epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤包括:

当所述epdg接收到终端发送的第一请求消息时,根据所述第一请求消息与所述终端协商密钥参数,并与所述终端交换随机数和迪菲-赫尔曼diffie-hellman值,以建立ikesa隧道;

所述epdg根据所述密钥参数,以及交换后的随机数和diffie-hellman值生成第一响应消息,并将所述第一响应消息发送给所述终端。

优选地,所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息建立ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立的步骤包括:

当所述epdg接收到所述终端发送的采用密钥参数对应加密算法加密后的所述第二请求消息时,所述epdg采用与所述加密算法对应的解密算法解密加密后的所述第二请求消息,得到第二请求消息对应的明文信息,并将所述明文信息发送给认证授权计费服务器;

所述epdg接收所述认证授权计费服务器发送的根据所述明文信息认证所述终端所得的认证结果,并根据所述认证结果生成第二响应消息,加密所述第二响应消息,将加密后的所述第二响应消息返回给所述终端。

优选地,所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息建立ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端的步骤之后,还包括:

当所述epdg接收到所述终端发送的加密后的因特网协议安全数据时,解密所述因特网协议安全数据,并将解密后的所述因特网协议安全数据发送给分组数据网网关pgw;

所述epdg接收所述pgw响应所述因特网协议安全数据后发送的响应数据,并将所述响应数据发送给所述终端,以实现所述终端和所述pgw之间的数据交互。

优选地,所述当epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤包括:

当所述epdg接收到所述终端使用本地网络之间互连的协议ip地址作为源地址发送的第一请求消息时,所述epdg根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息;

所述epdg使用epdg侧的ikesa隧道端点地址作为源地址向所述终端的本地ip地址发送所述第一响应消息。

优选地,所述当epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤之后,还包括:

当所述epdg接收到所述终端发送的创建子安全联盟的请求消息,所述epdg根据所述创建子安全联盟的请求消息创建子安全联盟,并返回创建子安全联盟的响应消息给所述终端。

此外,为实现上述目的,本发明还提供一种终端,所述终端应用于通信隧道端点地址分离方法,所述通信隧道端点地址分离方法包括以下步骤:

所述终端发送第一请求消息给演进的分组数据网关epdg;

当所述终端接收到所述epdg根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道后发送的第一响应消息时,生成第二请求消息,并将所述第二请求消息发送给所述epdg;

所述终端接收所述epdg根据所述第二请求消息建立因特网协议安全ipsecsa隧道后发送的第二响应消息,完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

此外,为实现上述目的,本发明还提供一种演进的分组数据网关epdg,所述epdg包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的通信隧道端点地址分离程序,所述通信隧道端点地址分离程序被所述处理器执行时实现如下步骤:

当接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;

接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有通信隧道端点地址分离程序,所所述计算机可读存储介质上存储有通信隧道端点地址分离程序,所述通信隧道端点地址分离程序被处理器执行时实现如下步骤:

当接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;

接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

本发明通过当epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端,所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息与所述终端建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;其中,所述第二请求消息中携带有分离标识,表示所述终端支持epdg的ikesa隧道和ipsecsa隧道的端点地址分离。在终端侧和/或epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离,以将ikesa隧道的功能体和ipsecsa隧道的功能体部署在不同的虚拟机,从而提高ipsecsa隧道用户面的数据处理效率。

附图说明

图1是本发明实施例中非授信的非3gpp接入网络的一种网络架构;

图2为本发明通信隧道端点地址分离方法第一实施例的流程示意图;

图3为本发明实施例中在epdg侧实现ikesa隧道和ipsecsa隧道端点地址分离的一种示意图;

图4为本发明实施例中在终端侧实现ikesa隧道和ipsecsa隧道端点地址分离的一种示意图;

图5为本发明实施例中在终端侧和epdg侧都实现ikesa隧道和ipsecsa隧道端点地址分离的一种示意图;

图6为本发明通信隧道端点地址分离方法第二实施例的流程示意图;

图7为本发明实施例中在epdg侧实现ikesa隧道和ipsecsa隧道端点地址分离过程中数据交互的一种示意图;

图8为本发明实施例中在终端侧实现ikesa隧道和ipsecsa隧道端点地址分离过程中数据交互的一种示意图;

图9为本发明实施例中在终端侧和epdg侧都实现ikesa隧道和ipsecsa隧道端点地址分离过程中数据交互的一种示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的解决方案主要是:当演进的分组数据网关epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。以解决不能将ikesa隧道的功能体和ipsecsa隧道的功能体部署在不同的虚拟机的问题。

图1是本发明实施例中非授信的非3gpp接入网络的一种网络架构,如图1所示。在该架构中,非授信的非3gpp接入网络指的是wlan(wirelesslocalareanetworks)网络,终端可以通过wlan网络与lte(longtermevolution,长期演进)网络互通,如进行语音业务。

图1所示的网络架构主要包含了如下设备/网元:

ue(userequipment,用户设备):在本发明中,用户设备可理解为终端,终端可以接入wlan或lte网络,访问3gpp演进分组核心网的业务。

e-utran(evolvedumtsterrestrialradioaccessnetwork,演进的通用移动通讯系统陆地无线接入网):lte中的移动通信无线网络。

mme(mobilitymanagemententity,移动管理实体):控制面功能实体,临时存储用户数据的服务器,负责管理和存储终端上下文(比如终端/用户标识,移动性管理状态,用户安全参数等),为用户分配临时标识,处理mme和终端之间的所有非接入层消息。

hss(homesubscriberserver,归属用户服务器):用于永久存储用户签约数据。

servinggw(gateway),也即sgw:称为服务网关,该网关是一个用户面实体,负责用户面数据路由的处理,用于管理和存储终端的承载(bearer)上下文,如ip(internetprotocol,网络之间互连的协议)承载业务参数和网络内部路由信息等。servinggw是3gpp系统内部用户面的锚点,一个用户在一个时刻只能有一个servinggw;

pdngw(packetdatanetworkgateway,分组数据网网关),也即pgw:用于负责终端接入pdn(publicdatanetwork,公共数据网)的网关,分配用户ip地址,同时是3gpp和非3gpp接入系统的移动性锚点,用户在同一时刻能够接入多个pdngw。

pcrf(policyandchargingrulefunctionality,策略与计费规则功能单元):用于根据业务信息和用户签约信息以及运营商的配置信息产生控制用户数据传递的qos(qualityofservice,服务质量)规则以及计费规则,该功能实体也可以控制接入网中承载的建立和释放。

wlan(wirelesslocalareanetwork,无线局域网),非授信的非3gpp接入网络。

3gppaaaserver(3gppauthentication、authorization、accountingserver,3gpp认证授权计费服务器):负责对终端的认证和签约。

epdg:演进的分组数据网关是非授信的非3gpp网络(wlan)和3gpp网络互操作的接入网关。从wlan接入的终端,通过epdg到3gppaaaserver进行认证和签约,并通过epdg接入pdngw,进一步使用lte核心网的资源。

ims(ipmultimediasubsystem,网际协议多媒体子系统):是3gpp提出的支持ip多媒体业务的子系统,其显著特征是采用了sip(sessioninitialprotocol,会话初始协议)体系,通信与接入方式无关,具备多种多媒体业务的控制功能与承载能力分离、呼叫与会话分离、应用与服务分离、业务与网络分离,以及移动网与因特网业务融合等多种能力。

在非授信非3gppip接入网络(wlan)中,终端和epc(evolvedpacketcore,4g核心网络)之间的通信是不授信且不安全的。终端和epc之间的安全通信需要通过在终端和epdg之间建立ipsec(因特网协议安全)隧道来保证。ipsec隧道的建立主要包括以下阶段:

①ike_sa_init(因特网密钥交换_安全联盟_初始化)交互阶段,为ikesa(因特网密钥交换_安全联盟)协商安全参数,发送临时随机数(nonce),并发送diffie-hellman值;

②ike_auth(因特网密钥交换_认证)交互阶段,为第一个(通常只有一个)child_sa(子_安全联盟)建立sa(安全联盟),即第一个ipsecsa(因特网协议安全_安全联盟);

③create_child_sa(创建_子_安全联盟)交互阶段,创建一个child_sa。

本发明还提供一种epdg,所述epdg包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的通信隧道端点地址分离程序,存储器可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器可选的还可以是独立于前述处理器的存储装置。处理器可以用于调用存储器中存储的通信隧道端点地址分离程序,并执行以下步骤:

当接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;

接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

进一步地,所述第二请求消息中携带所述终端的ipsecsa隧道端点地址。

进一步地,所述第二响应消息中携带所述epdg的ipsecsa隧道端点地址。

进一步地,所述当接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤包括:

当接收到终端发送的第一请求消息时,根据所述第一请求消息与所述终端协商密钥参数,并与所述终端交换随机数和迪菲-赫尔曼diffie-hellman值,以建立ikesa隧道;

根据所述密钥参数,以及交换后的随机数和diffie-hellman值生成第一响应消息,并将所述第一响应消息发送给所述终端。

进一步地,所述接收所述终端发送的第二请求消息,根据所述第二请求消息建立ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立的步骤包括:

当接收到所述终端发送的采用密钥参数对应加密算法加密后的所述第二请求消息时,采用与所述加密算法对应的解密算法解密加密后的所述第二请求消息,得到第二请求消息对应的明文信息,并将所述明文信息发送给认证授权计费服务器;

接收所述认证授权计费服务器发送的根据所述明文信息认证所述终端所得的认证结果,并根据所述认证结果生成第二响应消息,加密所述第二响应消息,将加密后的所述第二响应消息返回给所述终端。

进一步地,所述接收所述终端发送的第二请求消息,根据所述第二请求消息建立ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端的步骤之后,处理器还可以用于调用存储器中存储的通信隧道端点地址分离程序,执行以下步骤:

当接收到所述终端发送的加密后的因特网协议安全数据时,解密所述因特网协议安全数据,并将解密后的所述因特网协议安全数据发送给分组数据网网关pgw;

接收所述pgw响应所述因特网协议安全数据后发送的响应数据,并将所述响应数据发送给所述终端,以实现所述终端和所述pgw之间的数据交互。

进一步地,所述当接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤包括:

当接收到所述终端使用本地网络之间互连的协议ip地址作为源地址发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息;

使用epdg侧的ikesa隧道端点地址作为源地址向所述终端的本地ip地址发送所述第一响应消息。

进一步地,所述当接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤之后,处理器还可以用于调用存储器中存储的通信隧道端点地址分离程序,执行以下步骤:

当接收到所述终端发送的创建子安全联盟的请求消息,根据所述创建子安全联盟的请求消息创建子安全联盟,并返回创建子安全联盟的响应消息给所述终端。

基于上述的结构,提出通信隧道端点地址分离方法的各个实施例。

参照图2,图2为本发明通信隧道端点地址分离方法第一实施例的流程示意图。

在本实施例中,提供了通信隧道端点地址分离方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

所述通信隧道端点地址分离方法包括:

步骤s10,当演进的分组数据网关epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端。

本发明可应用于ikev2协议建立ipsec隧道的场景,如可应用于非授信非3gppip接入网络(wlan),或者接入epc网络中,终端和epdg之间建立ipsec隧道的场景。ikesa隧道用于保护终端和epdg之间的ike信令报文,属于控制面的sa;ipsecsa隧道用于保护终端和epdg之间的数据报文,属于用户面的sa。在本发明实施例中,以终端作为ikev2机制的发起者initiator,epdg作为ikev2机制的响应者responder。

在本发明实施例中,可在epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离,也可在终端侧实现ikesa隧道和ipsecsa隧道的端点地址分离,或者在epdg侧和终端侧都实现ikesa隧道和ipsecsa隧道的端点地址分离。具体地,可参照图3、图4和图5,图3为本发明实施例中在epdg侧实现ikesa隧道和ipsecsa隧道端点地址分离的一种示意图;图4为本发明实施例中在终端侧实现ikesa隧道和ipsecsa隧道端点地址分离的一种示意图;图5为本发明实施例中在终端侧和epdg侧都实现ikesa隧道和ipsecsa隧道端点地址分离的一种示意图。

当建立ipsecsa隧道之前,需要先建立ikesa隧道时,在建立ikesa隧道时,终端向epdg发送第一请求消息,其中,第一请求消息为因特网密钥交换_安全联盟_初始化请求消息(ike_sa_init)。终端可通过第一请求消息请求与epdg协商密钥参数,交换临时随机数,以及交换diffie-hellman值。终端的临时随机数为终端的当前时间载荷。终端通过第一请求消息请求与epdg协商密钥参数过程中,是终端提供密钥算法,以供epdg选择。密钥算法包括但不限于des(dataencryptionstandard,数据加密标准)和aes(advancedencryptionstandard,高级加密标准)。需要说明的是,des可包括多种密钥长度,aes的加密形式也不止一种。diffie-hellman是一种密钥交换算法,是一种确保共享密钥安全穿越不安全网络的方法,它是oakley算法的一个组成部分。

当epdg接收到终端发送的第一请求消息时,根据第一请求消息建立ikesa(因特网密钥交换_安全联盟)隧道,具体地,当epdg与终端协商好密钥参数,完成临时随机数和diffie-hellman值交换后,即表明成功建立了ikesa隧道。当成功建立ikesa隧道后,epdg生成与第一请求消息对应的第一响应消息,返回给终端,以供终端在接收到第一响应消息后,发送第二请求消息给epdg。其中,第二请求消息中携带有分离标识,表示终端支持epdg的控制面地址和用户面地址分离,即终端支持epdg侧的ikesa隧道和ipsecsa隧道的端点地址分离。第二请求消息为因特网密钥交换_认证请求消息(ike_auth),分离标识为cu_separate_support(控制面用户面_分离_支持)notifypayload(通知载荷)。第二请求消息还可携带有终端标识和apn(accesspointname,接入点名称)信息。

进一步地,通信隧道端点地址分离方法还包括:

步骤a,当所述epdg接收到所述终端使用本地网络之间互连的协议ip地址作为源地址发送的第一请求消息时,所述epdg根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息。

步骤b,所述epdg使用epdg侧的ikesa隧道端点地址作为源地址向所述终端的本地ip地址发送所述第一响应消息。

具体地,终端使用localip(本地ip)作为源地址向epdg侧的ikesa隧道的端点地址(swuikeip)发送ike_sa_init的协商请求,请求epdg协商密钥参数,并将其临时随机数和diffie-hellman值发送给epdg。当epdg接收到ike_sa_init的协商请求,以及终端的临时随机数和diffie-hellman值时,根据ike_sa_init的协商请求协商密钥参数,并将其临时随机数和终端的临时随机数进行交换,以及将其diffie-hellman值与终端的diffie-hellman值进行交换,以建立ikesa隧道。epdg根据协商所得的密钥参数、其临时随机数和diffie-hellman值生成ike_sa_init协商的响应消息,即生成第一响应消息,使用其swuikeip作为源地址向终端的localip发送第一响应消息。需要说明的是,在建立ikesa隧道后,终端和epdg在后续传输ike信令报文时,所传输的ike信令报文受ikesa保护。

进一步地,步骤s10包括:

步骤c,当所述epdg接收到终端发送的第一请求消息时,根据所述第一请求消息与所述终端协商密钥参数,并与所述终端交换随机数和迪菲-赫尔曼diffie-hellman值,以建立ikesa隧道。

步骤d,所述epdg根据所述密钥参数,以及交换后的随机数和diffie-hellman值生成第一响应消息,并将所述第一响应消息发送给所述终端。

当epdg接收到终端发送的第一请求消息时,根据第一请求消息与终端协商密钥参数,并与终端交换随机数和diffie-hellman值,以建立ikesa隧道。epdg根据协商所得的密钥参数,以及交换后的随机数和diffie-hellman值生成第一响应消息,并将第一响应消息发送给终端。终端在接收到第一响应消息后,终端生成第二请求消息,并获取第一响应消息中的密钥参数对应的加密算法。终端采用该加密算法加密第二请求消息,得到加密后的第二请求消息,并将加密后的第二请求消息发送给epdg。需要说明的是,终端加密第二请求消息的加密算法是在建立ikesa隧道过程中,epdg与终端协商好的。

步骤s20,所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

当epdg接收到终端发送的第二请求消息时,epdg根据第二请求消息建立ipsecsa隧道,并生成与第二请求消息对应的第二响应消息,将第二响应消息返回给终端。

进一步,步骤s20还包括:

步骤e,当所述epdg接收到所述终端发送的采用密钥参数对应加密算法加密后的所述第二请求消息时,所述epdg采用与所述加密算法对应的解密算法解密加密后的所述第二请求消息,得到第二请求消息对应的明文信息,并将所述明文信息发送给认证授权计费服务器。

步骤f,所述epdg接收所述认证授权计费服务器发送的根据所述明文信息认证所述终端所得的认证结果,并根据所述认证结果生成第二响应消息,加密所述第二响应消息,将加密后的所述第二响应消息返回给所述终端。

具体地,当epdg接收到终端发送加密后的第二请求消息时,采用与终端协商好的解密算法解密加密后的第二请求消息,即采用与终端加密第二请求消息加密算法对应的解密算法解密加密后的第二请求消息,以得到第二请求消息对应的明文信息。可以理解的是,终端加密第二请求消息的加密算法与epdg解密加密后的第二请求消息的解密算法是同一算法。

当epdg得到明文信息后,将明文信息发送给认证授权计费服务器aaaserver,以供aaaserver根据明文信息完成对终端的鉴权认证,得到认证结果,并将认证结果返回给epdg。具体地,对终端的认证可采用psk(pre-sharedkey,预共享密钥模式)、pk3(publickeyinfrustructure,公钥基础设施),以及rsa(rsaalgorithm)等算法;当使用wlan接入epc的场景下,对终端的认证采用epa(extensibleauthenticationprotocol)算法。

当epdg接收到aaaserver发送的认证结果后,根据认证结果生成第二响应消息,并采用与终端协商好的加密算法加密第二响应消息,得到加密后的第二响应,并将加密后的第二响应消息返回给终端。在第二响应消息中,携带有epdg标识,以及认证载荷。

进一步地,所述第二响应消息中携带所述epdg的ipsecsa隧道端点地址。

当在epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端将第一请求消息、第二请求消息发送给epdg的控制面,由epdg的控制面返回对应的第一响应消息和第二响应消息,且第二响应消息中还携带有epdg的ipsecsa隧道端点地址,即第二响应消息中携带有ipsec_sa_addresses_rnotifypayload(因特网协议安全_安全管理_地址_响应者通知载荷),以将epdg用户面地址告知终端,即将epdg侧的ipsecsa隧道端点地址告知终端,以供终端后续根据epdg侧ipsecsa隧道的端点地址与epdg进行数据交互。

进一步地,所述第二请求消息中携带所述终端的ipsecsa隧道端点地址。

当在终端侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,是由终端的控制面将第一请求消息、第二请求消息发送给epdg,由epdg返回对应的第一响应消息和第二响应消息。此时,第二请求消息携带有终端的ipsecsa隧道端点地址(ueswuipsecip),即第二请求消息中携带有ipsec_sa_addresses_inotifypayload(因特网协议安全_安全管理_地址_发起者通知载荷),在ipsec_sa_addresses_inotifypayload中,包含终端的ipsecsa隧道端点地址。若第二请求消息中不携带ipsec_sa_addresses_inotifypayload,则表示终端侧的ikesa隧道和ipsecsa隧道的端点地址相同。

进一步地,当在终端侧和epdg侧都是实现ikesa隧道,以及ipsecsa隧道的端点地址都分离时,是由终端控制面将第一请求消息和第二请求消息发送给epdg控制面,然后由epdg控制面返回对应的第一响应消息和第二响应消息给终端控制面。此时,第二请求消息携带有ipsec_sa_addresses_inotifypayload,第二响应消息携带有ipsec_sa_addresses_rnotifypayload。

进一步,在本实施例所涉及的到通知载荷cu_separate_support,ipsec_sa_addresses_r,以及ipsec_sa_addresses_i中,可定义不同的消息类型,且ipsec_sa_addresses_r和ipsec_sa_addresses_i对应到的载荷数据可为ipv4(internetprotocol,互联网协议)地址或ipv6地址。

本实施例通过当epdg接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端,所述epdg接收所述终端发送的第二请求消息,根据所述第二请求消息与所述终端建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;其中,所述第二请求消息中携带有分离标识,表示所述终端支持epdg的ikesa隧道和ipsecsa隧道的端点地址分离。在终端侧和/或epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离,以将ikesa隧道的功能体和ipsecsa隧道的功能体部署在不同的虚拟机,从而提高ipsecsa隧道用户面的数据处理效率。

进一步地,提出本发明通信隧道端点地址分离方法第二实施例。

所述通信隧道端点地址分离方法第二实施例与所述通信隧道端点地址分离方法第一实施例的区别在于,参照图6,通信隧道端点地址分离方法还包括:

步骤s30,当所述epdg接收到所述终端发送的加密后的因特网协议安全数据时,解密所述因特网协议安全数据,并将解密后的所述因特网协议安全数据发送给分组数据网网关pgw。

步骤s40,所述epdg接收所述pgw响应所述因特网协议安全数据后发送的响应数据,并将所述响应数据发送给所述终端,以实现所述终端和所述pgw之间的数据交互。

当ipsecsa隧道建立完成后,终端加密因特网协议安全数据,并将加密后的因特网协议安全数据发送给epdg。epdg接收到终端发送的加密后的因特网协议安全数据时,解密加密后的因特网协议安全数据,得到解密后的因特网协议安全数据,并将解密后的因特网协议安全数据通过s2b接口发送给pgw。当pgw接收到因特网协议安全数据,响应该因特网协议安全数据,得到响应数据,并通过s2b接口将响应数据发送给epdg。当epdg接收到pgw返回的响应数据时,加密响应数据,得到加密后的响应数据,将加密后的响应数据发送给终端,以实现终端和pgw之间的数据交互。需要说明的是,终端加密因特网协议安全数据的加密算法、epdg解密因特网协议安全数据的解密算法、以及加密响应数据的加密算法是终端和epdg之前协商好的。

当在epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端向epdg用户面发送因特网协议安全数据。具体地,终端通过ipsec_sa_addresses_rnotifypayload中携带的epdg用户面ipsecsa隧道端点地址将因特网协议安全数据发送给epdg用户面,再由epdg用户面与pgw进行数据交互。具体地,参照图7,图7为本发明实施例中在epdg侧实现ikesa隧道和ipsecsa隧道端点地址分离过程中数据交互的一种示意图。

当在终端侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端用户面向epdg发送因特网协议安全数据。具体地,终端通过ipsec_sa_addresses_inotifypayload中携带的终端用户面ipsecsa隧道端点地址将因特网协议安全数据发送给epdg,再由epdg与pgw进行数据交互。具体地,参照图8,图8为本发明实施例中在终端侧实现ikesa隧道和ipsecsa隧道端点地址分离过程中数据交互的一种示意图。

当在终端侧和epdg侧的ikesa隧道,以及ipsecsa隧道的端点地址都分离时,是由终端用户面向epdg用户面发送因特网协议安全数据,具体地,终端用户面通过ipsec_sa_addresses_inotifypayload中携带的终端用户面ipsecsa隧道端点地址将因特网协议安全数据发送给epdg用户面,终端用户面通过ipsec_sa_addresses_rnotifypayload中携带的epdg用户面ipsecsa隧道端点地址确定epdg用户面,再由epdg用户面与pgw进行数据交互。具体地,参照图9,图9为本发明实施例中在终端侧和epdg侧都实现ikesa隧道和ipsecsa隧道端点地址分离过程中数据交互的一种示意图。

需要说明的是,在本实施例中,将epdg的加密解密功能单独作为一个组件进行描述,即加解密组件,在其它实施例中,可将epdg的加密解密功能与epdg控制面功能体或epdg用户面功能体相结合。

本实施例在终端侧和/或epdg侧实现ikesa隧道和ipsecsa隧道端点地址分离后,终端通过分离后的端点地址与epdg进行数据交互,以提高终端和pgw之间的数据交互效率。

进一步地,提出本发明通信隧道端点地址分离方法第三实施例。

所述通信隧道端点地址分离方法第三实施例与所述通信隧道端点地址分离方法第一、二实施例的区别在于,通信隧道端点地址分离方法还包括:

步骤g,当所述epdg接收到所述终端发送的创建子安全联盟的请求消息,所述epdg根据所述创建子安全联盟的请求消息创建子安全联盟,并返回创建子安全联盟的响应消息给所述终端。

在建立ikesa隧道后,后续如果需要进行ike信令交互,终端直接发送创建子安全联盟(create_child_sa)的请求消息给epdg。epdg在接收到终端发送的创建子安全联盟的请求消息时,根据该请求消息创建子安全联盟,即创建child_sa,在创建child_sa后,返回创建子安全联盟的响应消息给终端。

具体地,当在终端侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端控制面将创建子安全联盟的请求消息发送给epdg;当在epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端将创建子安全联盟的请求消息发送给epdg控制面;当在终端侧和epdg侧都实现ikesa隧道,以及ipsecsa隧道的端点地址分离时,终端控制面将创建子安全联盟的请求消息发送给epdg控制面。

进一步地,在建立ikesa隧道后,在终端和epdg在密钥协商过程中,若是终端需要发送消息或者需要通知epdg某些事件时,如终端发现发送给epdg的第一请求消息有错误时,终端向epdg发送信息请求消息。epdg在接收到该信息请求消息时,响应该信息请求消息,并返回对应的信息响应消息给终端。若是epdg需要发送消息或者需要通知终端某些事件时,如epdg发现发送给终端的第一响应消息有错误时,epdg向终端发送信息请求消息。终端接收到该信息请求消息,响应该信息请求消息,并返回对应的信息响应消息给epdg。

具体地,当在终端侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端控制面将信息请求消息发送给epdg;当在epdg侧实现ikesa隧道和ipsecsa隧道的端点地址分离时,终端将信息请求消息发送给epdg控制面;当在终端侧和epdg侧都实现ikesa隧道,以及ipsecsa隧道的端点地址分离时,终端控制面将信息请求消息发送给epdg控制面。

本实施例通过将终端和/或epdg的ikesa隧道和ipsecsa隧道的端点地址分离,以实现将终端和/或epdg的用户面和控制面分离部署在不同的虚拟机中,从而提高终端和epdg数据传输效率。

此外,本发明实施例还提出一种终端,所述终端应用于通信隧道端点地址分离方法,所述通信隧道端点地址分离方法包括以下步骤:

所述终端发送第一请求消息给演进的分组数据网关epdg;

当所述终端接收到所述epdg根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道后发送的第一响应消息时,生成第二请求消息,并将所述第二请求消息发送给所述epdg;

所述终端接收所述epdg根据所述第二请求消息建立因特网协议安全ipsecsa隧道后发送的第二响应消息,完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

进一步地,进一步地,所述第二请求消息中携带所述终端的ipsecsa隧道端点地址。

进一步地,所述第二响应消息中携带所述epdg的ipsecsa隧道端点地址。

进一步地,所述终端在接收到所述epdg发送的第一响应消息后,生成第二请求消息,并采用所述密钥参数对应的加密算法加密所述第二请求消息,将加密后的所述第二请求消息发送给所述epdg。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有通信隧道端点地址分离程序,所述通信隧道端点地址分离程序被处理器执行时实现如下步骤:

当接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;

接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

进一步地,所述第二请求消息中携带所述终端的ipsecsa隧道端点地址。

进一步地,所述第二响应消息中携带所述epdg的ipsecsa隧道端点地址。

进一步地,所述当接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤包括:

当接收到终端发送的第一请求消息时,根据所述第一请求消息与所述终端协商密钥参数,并与所述终端交换随机数和迪菲-赫尔曼diffie-hellman值,以建立ikesa隧道;

根据所述密钥参数,以及交换后的随机数和diffie-hellman值生成第一响应消息,并将所述第一响应消息发送给所述终端。

进一步地,所述接收所述终端发送的第二请求消息,根据所述第二请求消息建立ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立的步骤包括:

当接收到所述终端发送的采用密钥参数对应加密算法加密后的所述第二请求消息时,采用与所述加密算法对应的解密算法解密加密后的所述第二请求消息,得到第二请求消息对应的明文信息,并将所述明文信息发送给认证授权计费服务器;

接收所述认证授权计费服务器发送的根据所述明文信息认证所述终端所得的认证结果,并根据所述认证结果生成第二响应消息,加密所述第二响应消息,将加密后的所述第二响应消息返回给所述终端。

进一步地,所述接收所述终端发送的第二请求消息,根据所述第二请求消息建立ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端的步骤之后,所述通信隧道端点地址分离程序被处理器执行时实现如下步骤:

当接收到所述终端发送的加密后的因特网协议安全数据时,解密所述因特网协议安全数据,并将解密后的所述因特网协议安全数据发送给分组数据网网关pgw;

接收所述pgw响应所述因特网协议安全数据后发送的响应数据,并将所述响应数据发送给所述终端,以实现所述终端和所述pgw之间的数据交互。

进一步地,所述当接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤包括:

当接收到所述终端使用本地网络之间互连的协议ip地址作为源地址发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息;

使用epdg侧的ikesa隧道端点地址作为源地址向所述终端的本地ip地址发送所述第一响应消息。

进一步地,所述当接收到终端发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端的步骤之后,所述通信隧道端点地址分离程序被处理器执行时实现如下步骤:

当接收到所述终端发送的创建子安全联盟的请求消息,根据所述创建子安全联盟的请求消息创建子安全联盟,并返回创建子安全联盟的响应消息给所述终端。

本发明计算机可读存储介质具体实施方式与上述通信隧道端点地址分离方法各实施例基本相同,在此不再赘述。

此外,本发明实施例还提出一种通信隧道端点地址分离装置,所述通信隧道端点地址分离装置应用于演进的分组数据网关epdg,通信隧道端点地址分离装置包括:

第一建立模块,用于当接收到终端发送的第一请求消息时,根据所述第一请求消息建立因特网密钥交换ike安全联盟sa隧道,并生成与所述第一请求消息对应的第一响应消息,返回给所述终端;

第二建立模块,用于接收所述终端发送的第二请求消息,根据所述第二请求消息建立因特网协议安全ipsecsa隧道,并生成与所述第二请求消息对应的第二响应消息,将所述第二响应消息返回给所述终端,以完成ipsecsa隧道的建立;

其中,所述第二请求消息中携带有分离标识,表示所述终端支持所述epdg的ikesa隧道和ipsecsa隧道的端点地址分离。

进一步地,所述第二请求消息中携带所述终端的ipsecsa隧道端点地址。

进一步地,所述第二响应消息中携带所述epdg的ipsecsa隧道端点地址。

进一步地,所述第一建立模块包括:

协商单元,用于当接收到终端发送的第一请求消息时,根据所述第一请求消息与所述终端协商密钥参数;

交换单元,用于与所述终端交换随机数和迪菲-赫尔曼diffie-hellman值,以建立ikesa隧道;

第一生成单元,用于根据所述密钥参数,以及交换后的随机数和diffie-hellman值生成第一响应消息,并将所述第一响应消息发送给所述终端。

进一步地,所述第二建立模块包括:

解密单元,用于当接收到所述终端发送的采用密钥参数对应加密算法加密后的所述第二请求消息时,采用与所述加密算法对应的解密算法解密加密后的所述第二请求消息,得到第二请求消息对应的明文信息;

发送单元,用于将所述明文信息发送给认证授权计费服务器;

第二生成单元,用于接收所述认证授权计费服务器发送的根据所述明文信息认证所述终端所得的认证结果,根据所述认证结果生成第二响应消息;

加密单元,用于加密所述第二响应消息,将加密后的所述第二响应消息返回给所述终端。

进一步地,所述通信隧道端点地址分离装置还包括:

解密模块,用于当接收到所述终端发送的加密后的因特网协议安全数据时,解密所述因特网协议安全数据;

发送模块,用于将解密后的所述因特网协议安全数据发送给分组数据网网关pgw;

接收模块,用于接收所述pgw响应所述因特网协议安全数据后发送的响应数据;

所述发送模块还用于将所述响应数据发送给所述终端,以实现所述终端和所述pgw之间的数据交互。

进一步地,所述第一建立模块还用于当接收到所述终端使用本地网络之间互连的协议ip地址作为源地址发送的第一请求消息时,根据所述第一请求消息建立ikesa隧道,并生成与所述第一请求消息对应的第一响应消息;使用epdg侧的ikesa隧道端点地址作为源地址向所述终端的本地ip地址发送所述第一响应消息。

进一步地,所述通信隧道端点地址分离装置还包括:

创建模块,用于当接收到所述终端发送的创建子安全联盟的请求消息,根据所述创建子安全联盟的请求消息创建子安全联盟,并返回创建子安全联盟的响应消息给所述终端。

本发明通信隧道端点地址分离装置具体实施方式与上述通信隧道端点地址分离方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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