一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法

文档序号:7619327阅读:106来源:国知局
专利名称:一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法
技术领域
本发明涉及通信系统的安全领域,具体地讲,本发明涉及通信系统中一种基于IPSec穿越NAT的IMS接入安全的方法。
背景技术
第三代移动通信伙伴工程(3GPP)正在进行基于WCDMA的第三代移动通信标准的制定工作,该标准可以提供基于电路域和分组域的高速移动通信业务。为了可以确保在固定网络、移动网络中IP实时、非实时业务的互操作性,3GPP组织在分组域上定义了IP多媒体子系统(IP multimedia subsystem,IMS)。3GPP定义的IMS的接入安全主要包括两个方面,一是IMS的认证,二是SIP(Session Initiation Protocol)消息的保护。IMS的认证主要是采用IMS AKA(IMS Authentication and Key Agreement)的认证机制,SIP消息的加密和完整性保护采用逐段处理的方式。主要包括以下五段的安全联系,第一段是UE(UserEquipment)和S—CSCF(Serving-Call Session Control Function)之间的相互认证,这通过HSS(Homc Subscriber Server)来实施,UE和HSS中存储的认证参数都和用户的私有识别IMPI(IP Multimedia Private Identity)相关,同时在认证过程中协商出会话密钥;第二段是UE和P-CSCF(Proxy-CSCF)之间的安全联系,主要是利用IMS AKA协议协商出的会话密钥对SIP信令实现IPSec加密保护;第三段是Cx接口的安全联系;第四段是不同网络的SIP节点之间的安全联系;第五段是当P-CSCF位于归属网络时的SIP节点之间的安全联系。其中,第三段、第四段和第五段的安全性可以由有线网络所提供的安全机制得到保证。因此,IMS接入安全的焦点主要集中在IMS的认证机制和UE与P-CSCF之间传输的安全性。具体的IMS AKA认证流程如下1.UE向P-CSCF发送第一条SIP注册信息。该消息包含IMPI、IMPU(IP MultimediaPublic Identity)和其支持的安全参数。其中安全参数主要有UE的SPI(Security ParametersIndex)、UE保护的端口、UE支持的完整性和加密算法列表等。P-CSCF和I-CSCF(Intcrrogating-CSCF)把SIP注册消息发送给S-CSCF。
2.P-CSCF将SIP注册消息以第二条报文的形式发送给I-CSCF。I-CSCF又将收到的SIP注册消息以第三条报文的形式发送给S-CSCF。
3.S-CSCF向HSS(归属订户服务器)请求认证向量。
4.HSS发送认证向量响应给S-CSCF,每一个认证向量包括以下的元素一个随机数RAND,一个期待的响应XRES,一个加密密钥CK,一个完整性密钥IK和一个认证标志AUTN。
5.S-CSCF发送认证挑战,此认证挑战以第四条报文的形式发送给I-CSCF。包括随机数RAND,认证标志AUTN,加密密钥CK和完整性密钥IK。P-CSCF存储IK和CK,并将随机数RAND、认证标志AUTN和其支持的安全参数一起发送给UE。其中安全参数主要有P-CSCF的SPI、P-CSCF保护的端口、P-CSCF完整性和加密算法列表等。
6.I-CSCF将接收到的认证挑战以第五条报文的形式转发给P-CSCF。P-CSCF又将认证挑战以第六条报文的形式发送给UE。
7.UE接收到认证挑战后,提取AUTN,其中包括MAC和SQN,UE计算XMAC,并检查XMAC是否等于MAC及SQN是不是在正确范围内。如果这些检验是成功的,那么UE将计算RES,CK和IK。UE将RES和其他的认证信息以第七条报文的形式发送给P-CSCF。此报文还包括一些协商的安全参数,例如UE的SPI、UE保护的端口、P-CSCF的SPI、P-CSCF保护的端口以及P-CSCF完整性和加密算法列表等。UE采用CK和IK对此消息进行IPSec加密和完整性保护。P-CSCF接收到第七条认证消息后,利用之前保存的CK和IK对此消息进行解密和完整性检验,检验成功后,消息转发给S-CSCF。
8.S-CSCF得到XRES,并将它和UE所发送的RES进行比较,如果相同,那么用户认证网络成功。并将认证成功消息经I-CSCF转发给P-CSCF。P-CSCF又将接收到的认证成功消息以第十二条报文的形式发送给UE。
在网络融合的发展趋势下,3GPP、ETSI和ITU-T都在研究基于IMS的网络融合方案,目的是使IMS成为基于SIP会话的通用平台,同时支持固定和移动的多种接入方式,实现固定网和移动网的融合。由于引入固定网络接入方式,UE与P-CSCF之间将有可能存在NAT设备。目前,在3GPP接入安全规范中,IMS AKA机制不支持NAT穿越,原因是在IMS AKA认证过程中协商出来的UE与P-CSCF之间的IPSec安全通道不能穿越NAT。IMS所使用的SIP信令承载在IP网络上,当UE发送的IPSec数据包穿过NAT时,NAT将对IP包的源IP地址进行改变,并且在NAT上原始IP地址与NAT转换地址的映射关系会动态更新,当P-CSCF接收到经过NAT转换后的IPSec数据包后,首先根据SAID查找输入方向的SA(Security Association)进行IPSec解封装,解封装后需要根据数据包的源IP地址、源端口、目的IP地址、目的端口和上层协议去查找输出方向的安全策略是否有效,此时,源IP地址被改变了,所以策略校验会失败,此IPSec数据包将被丢弃,造成通讯失败。

发明内容
本发明提出了一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法,在原有IMS-AKA接入安全的基础上进行改进,使得IMS接入过程能够穿越NAT,并且有良好的兼容性。
本发明方法的实现包括以下过程1、IMS AKA认证过程中UE发送给P-CSCF的初始SIP注册消息增加可选项参数VID_U和HASH_ul;如果VID_U为某一特定值时,表示其具有穿越NAT的能力;HASH_ul为UE计算本地的hash值,HASH_ul=HASH(UE_SIP_addrUE_local_IPaddr|UE_local_Port),UE_SIP_addr为UE的SIP地址,UE_local_IPaddr为UE本地的IP地址,UE_local_Port为UE本地的端口信息;2、P-CSCF对接收到的初始的SIP注册消息需要处理;处理过程如下a)根据VID_U信息判断UE是否支持NAT穿越;如果支持NAT穿越,则进行下一步操作;b)根据接收到报文,计算HASH_pp,HASH_pp为P-CSCF计算对端的hash值,HASH_pp=HASH(UE_SIP_addr|P-CSCF_Peer_IPaddr|P-CSCF_Peer_Port),P-CSCF_Peer_IPaddr为P-CSCF根据接收到UE发送来到数据包提取UE的IP地址,P-CSCF_Peer_Port为P-CSCF根据接收到UE发送来的数据包提取UE的端口值;然后与UE发送来的HASH_ul进行比较,如果相同,则表示UE前面没有NAT设备;如果不相同,则表示UE前面有NAT设备;3、认证过程中P-CSCF发送给UE的认证挑战消息增加可选项参数VID_P、HASH_pl和HASH_pp;如果VID_P为某一特定值时,则表示P-CSCF具有穿越NAT的能力;HASH_pl为P-CSCF计算的本地的hash值,HASH_pl=HASH(UE_SIP_addr|P-CSCF_Local_IPaddr|P-CSCF_Local_Port),P-CSCF_Local_IPaddr为P-CSCF本地使用的IP地址,P-CSCF_Local_Port为P-CSCF本地使用的端口值;4、UE对接收到P-CSCF发送来的认证挑战消息进行处理。处理过程如下a)根据VID_P信息判断P-CSCF是否支持NAT穿越;如果支持NAT穿越,则进行下面操作;
b)UE将本地保存的HASH_ul与接收到的HASH_pp进行相比较,如果相同,则UE知道其前面没有NAT设备;如果不相同,则UE知道其前面有NAT设备;c)UE根据接收到的报文计算HASH_up,HASH_up为UE计算对端的hash值,HASH_up=HASH(UE_SIP_addr|UE_Peer_IPaddr|UE_Peer_Port),UE_Peer_IPaddr为UE根据接收到P-CSCF发送来到数据包提取P-CSCF的IP地址,UE_Peer_Port为UE根据接收到P-CSCF发送来的数据包提取P-CSCF的端口值;然后与接收到的HASH_pl相比较,如果相同,则表示P-CSCF前面没有NAT设备;如果不相同,则表示P-CSCF前面存在NAT设备;5、认证过程中UE发送给P-CSCF的认证回复信息增加参数HASH_up、VID_U、HASH_ul、VID_P、HASH_pl和HASH_pp;HASH_up用来告知对方其前面是否存在NAT设备;如果UE前面有NAT设备,则还需要发送OA_ul和OA_up;OA_ul为UE本地使用的IP地址,OA_up为UE记录的对端IP地址;如果UE前面没有NAT设备,则不需要发送OA_ul和OA_up;6、认证过程中UE给P-CSCF的认证回复信息的发送;如果UE前面有NAT设备,为了保证IPSec通道穿越NAT,此IPSec数据包需要采用UDP封装模式发送给P-CSCF;外层封装的UDP报头的源和目的端口都必须使用4500;IPSec数据包内部SIP消息使用的UDP报头的checksum必须设置为0;如果UE前面没有NAT设备,则IPSec数据包不需要采用UDP封装模式;7、P-CSCF对接收到的认证回复信息进行处理,处理过程如下a)将此报文中接收到的VID_U、HASH_ul、VID_P、HASH_pl和HASH_pp分别与在P-CSCF上保存的对应参数一一进行比较,如果相同,表示前两条交互的报文没有发生篡改,则跳到下一步执行;否则,表示前两条交互的报文被篡改,则注册过程中断;b)如果UE前面有NAT设备,则保存OA_ul和OA_up参数,否则,不保存;c)P-CSCF根据其本地IP地址、本地使用的端口和其他参数进行hash计算,运算结果与HASH_up相比较,如果相同,则可知其前面没有NAT设备;如果不相同,则可知其前面存在NAT设备;8、认证过程中P-CSCF发送给UE的认证成功消息增加可选项参数OA_pl和OA_pp,OA_pl为P-CSCF本地使用的IP地址,OA_pp为P-CSCF记录的对端IP地址;如果P-CSCF前面有NAT设备,则在此报文中需要发送OA_pl和OA_pp;如果P-CSCF前面没有NAT设备,则OA_pl和OA_pp不需要在此报文中发送。
9、认证过程中P-CSCF给UE的认证成功消息的发送,具体发送形式有三种情况第一种,如果UE和P-CSCF前面都没有NAT设备,则此IPSec数据包安装原来的方式发送给UE,第二种,如果UE前面有NAT设备,P-CSCF前面没有NAT设备,则此IPSec数据包需要采用UDP封装模式发送给UE,外层封装的UDP报头的源端口为4500,目的端口为UE经过NAT转换后的端口,IPSec数据包内部SIP消息使用的UDP报头的checksum必须设置为0;第三种,如果P-CSCF前面有NAT设备,则此IPSec数据包需要采用UDP封装模式发送给UE,外层封装的UDP报头的源和目的端口都为4500。IPSec数据包内部SIP消息使用的UDP报头的checksum必须设置为0;10、UE对接收到的认证成功消息进行处理,如果P-CSCF前面有NAT设备,则记录OA_pl和OA_pp;11、注册成功后,如果UE和P-CSCF之间存在NAT设备,则所有的IPSec数据包都必须采用UDP封装,NAT设备之后的实体在向对方发送IPSec数据包时,采用UDP封装的源和目的端口都为4500,IPSec数据包内部SIP消息使用的UDP报头的checksum不需要设置为0;并且不时地向对方发送NAT-Keepalive报文,该报文包含单字节0xFF,并采用UDP封装,UDP报头中源和目的端口都采用4500,checksum设置为0。
优选地,当所述步骤1VID_U值和所述步骤3VID_P值均为4a131c81070358455c5728f20e95452f时表示具有穿越NAT的能力。
本发明是在原有的IMS AKA认证机制的基础上,增加一些协商NAT穿越的功能,主要是在UE与P-CSCF之间进行注册信息交互过程中增加支持NAT能力的协商、NAT设备的发现以及实施NAT穿越的功能。


图1为现有IMS AKA协商流程图;图2为本发明基于IPSec穿越NAT的IMS AKA协商的改进流程图;图3为本发明UDP封装IPSec数据包的格式示意图;图4为本发明NAT-Keepalive报文格式示意图。
具体实施例方式
下面结合图2和3对技术方案在3GPP中的实施做进一步的详细描述图2是3GPP中IMS AKA协商的改进流程。本发明主要是实现UE与P-CSCF之间的IPSec安全通道穿越NAT。原有的IMS AKA机制中,UE与S-CSCF之间实现双向认证的同时,协商出UE与P-CSCF之间的IPSec安全通道。此IPSec安全通道不能穿越NAT,因此本文在原有认证机制的基础上提出了改进方法。主要改动的地方集中在UE与P-CSCF之间的报文交互过程,即第一条、第六条、第七条和第十二条报文的交互过程。P-CSCF与I-CSCF以及S-CSCF之间的报文交互过程保持不变。具体实施流程如下1、UE向发送P-CSCF第一条注册信息。在UE发送的第一条注册信息的安全参数中添加VID_U和HASH_ul。VID_U表示UE是否支持NAT穿越,HASH_ul为UE使用本地IP地址、端口和UE的SIP地址进行hash运算的值。
2、P-CSCF对接收到的第一条消息进行处理。P-CSCF根据VID_U可知UE是否支持NAT穿越。如果UE支持NAT穿越,则P-CSCF根据UE的SIP地址、接收报文提取的UE的IP地址和端口进行hash运算,运算结果HASH_pp与接收到的HASH_ul进行比较。如果相同,P-CSCF可知UE前面没有NAT设备;如果不同,则可知UE前面存在NAT设备。
3、P-CSCF向UE发送第六条认证请求消息。在第六条认证请求消息的安全参数中添加VID_P,HASH_pl和HASH_pp。VID_P用来表示P-CSCF是否支持NAT穿越。HASH_pl为P-CSCF使用本地IP地址、端口和UE的SIP地址进行hash运算的值。
4、UE对接收到的第六条报文进行处理。UE根据VID_P可知P-CSCF是否支持NAT穿越。如果P-CSCF支持NAT穿越,则UE根据本地保存的HASH_ul与接收到的HASH_pp进行比较,如果相同,则UE可知其前面没有NAT设备;如果不同,则UE可知其前面存在NAT设备。UE根据接收到的报文提取的UE的SIP地址、UE的IP地址和端口进行hash运算,运算结果HASH_up与HASH_pl进行比较,如果相同,则UE可知P-CSCF前面没有NAT设备;如果不同,则UE可知P-CSCF前面存在NAT设备。同时,UE与P-CSCF建立IPSec安全通道。
5、UE向P-CSCF发送第七条注册信息。在第七条注册消息的安全参数中必须添加HASH_up。同时,为了验证前两条交互的报文没有发生篡改,还需要添加第一条报文中发送的VID_U和HASH_ul以及第六条报文中接收的VID_P、HASH_pl和HASH_pp。HASH_up用来告知P-CSCF其前面是否存在NAT设备。如果UE判断其前面存在NAT设备,则在第七条注册信息的安全参数中还需要添加OA_ul和OA_up。OA_ul和OA_up为UE使用的IP地址和UE记录的对方的IP地址。另外,此IPSec数据包需要采用如图3所示的UDP封装模式,UDP报头的源和目的端口都采用4500,并且IPSec数据包内部SIP协议使用的UDP报头中的checksum设置为0。
6、P-CSCF对接收到的第七条报文进行处理。如果UE前面存在NAT设备,则P-CSCF需要记录OA_ul和OA_up参数。P-CSCF将本地保存的HASH_pl与接收到的HASH_up进行比较,如果相同,则P-CSCF可知其前面没有NAT设备;如果不同,则P-CSCF可知其前面存在NAT设备。
7、P-CSCF向UE发送第十二条注册成功消息。此IPSec数据包也需要采用如图3所示的UDP封装模式,并且IPSec数据包内部SIP协议使用的UDP报头中的checksum设置为0。如果P-CSCF前面存在NAT设备,则此消息中需要添加OA_pl和OA_pp参数,并且UDP报头采用的源和目的端口都为4500。
8、UE注册成功后,如果UE与P-CSCF之间存在NAT设备,则所有的Ipsec数据包都必须采用UDP封装模式。NA(P)T设备之后的实体在向对方发送数据包时,采用UDP封装的源和目的端口都为4500。并且不时地向对方发送如图4所示的NAT-Keepalive报文,包含单字节(0xFF),采用UDP封装,UDP报头中源和目的端口也都采用4500,checksum设置为0。
权利要求
1.一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法,其特征在于,所述方法是在现有IMS AKA认证流程上对于相关报文和处理进行修改,具体如下(1)IMS AKA认证过程中UE发送给P-CSCF的初始SIP注册消息增加可选项参数VID_U和HASH_ul;如果VID_U为某一特定值时,表示其具有穿越NAT的能力;HASH_ul为UE计算本地的hash值,HASH_ul=HASH(UE_SIP_addr|UE_local_IPaddr|UE_local_Port),UE_SIP_addr为UE的SIP地址,UE_local_IPaddr为UE本地的IP地址,UE_local_Port为UE本地的端口信息;(2)P-CSCF对接收到的初始的SIP注册消息需要处理;处理过程如下a.根据VID_U信息判断UE是否支持NAT穿越;如果支持NAT穿越,则进行下一步操作;b.根据接收到报文,计算HASH_pp,HASH_pp为P-CSCF计算对端的hash值,HASH_pp=HASH(UE_SIP_addr|P-CSCF_Peer_IPaddr|P-CSCF_Peer_Port),P-CSCF_Peer_IPaddr为P-CSCF根据接收到UE发送来到数据包提取UE的IP地址,P-CSCF_Peer_Port为P-CSCF根据接收到UE发送来的数据包提取UE的端口值;然后与UE发送来的HASH_ul进行比较,如果相同,则表示UE前面没有NAT设备;如果不相同,则表示UE前面有NAT设备;(3)认证过程中P-CSCF发送给UE的认证挑战消息增加可选项参数VID_P、HASH_pl和HASH_pp;如果VID_P为某一特定值时,则表示P-CSCF具有穿越NAT的能力;HASH_pl为P-CSCF计算的本地的hash值,HASH_pl=HASH(UE_SIP_addr|P-CSCF_Local_IPaddr|P-CSCF_Local_Port),P-CSCF_Local_IPaddr为P-CSCF本地使用的IP地址,P-CSCF_Local_Port为P-CSCF本地使用的端口值;(4)UE对接收到P-CSCF发送来的认证挑战消息进行处理。处理过程如下a.根据VID_P信息判断P-CSCF是否支持NAT穿越;如果支持NAT穿越,则进行下面操作;b.UE将本地保存的HASH_ul与接收到的HASH_pp进行相比较,如果相同,则UE知道其前面没有NAT设备;如果不相同,则UE知道其前面有NAT设备;c.UE根据接收到的报文计算HASH_up,HASH_up为UE计算对端的hash值,HASH_up=HASH(UE_SIP_addr|UE_Peer_IPaddr|UE_Peer_Port),UE_Peer_IPaddr为UE根据接收到P-CSCF发送来到数据包提取P-CSCF的IP地址,UE_Peer_Port为UE根据接收到P-CSCF发送来的数据包提取P-CSCF的端口值;然后与接收到的HASH_pl相比较,如果相同,则表示P-CSCF前面没有NAT设备;如果不相同,则表示P-CSCF前面存在NAT设备;(5)认证过程中UE发送给P-CSCF的认证回复信息增加参数HASH_up、VID_U、HASH_ul、VID_P、HASH_pl和HASH_pp;HASH_up用来告知对方其前面是否存在NAT设备;如果UE前面有NAT设备,则还需要发送OA_ul和OA_up;OA_ul为UE本地使用的IP地址,OA_up为UE记录的对端IP地址;如果UE前面没有NAT设备,则不需要发送OA_ul和OA_up;(6)认证过程中UE给P-CSCF的认证回复信息的发送;如果UE前面有NAT设备,为了保证IPSec通道穿越NAT,此IPSec数据包需要采用UDP封装模式发送给P-CSCF;外层封装的UDP报头的源和目的端口都必须使用4500;IPSec数据包内部SIP消息使用的UDP报头的checksum必须设置为0;如果UE前面没有NAT设备,则IPSec数据包不需要采用UDP封装模式;(7)P-CSCF对接收到的认证回复信息进行处理,处理过程如下a.将此报文中接收到的VID_U、HASH_ul、VID_P、HASH_pl和HASH_pp分别与在P-CSCF上保存的对应参数一一进行比较,如果相同,表示前两条交互的报文没有发生篡改,则跳到下一步执行;否则,表示前两条交互的报文被篡改,则注册过程中断;b.如果UE前面有NAT设备,则保存OA_ul和OA_up参数,否则,不保存;c.P-CSCF根据其本地IP地址、本地使用的端口和其他参数进行hash计算,运算结果与HASH_up相比较,如果相同,则可知其前面没有NAT设备;如果不相同,则可知其前面存在NAT设备;(8)认证过程中P-CSCF发送给UE的认证成功消息增加可选项参数OA_pl和OA_pp,OA_pl为P-CSCF本地使用的IP地址,OA_pp为P-CSCF记录的对端IP地址;如果P-CSCF前面有NAT设备,则在此报文中需要发送OA_pl和OA_pp;如果P-CSCF前面没有NAT设备,则OA_pl和OA_pp不需要在此报文中发送。(9)认证过程中P-CSCF给UE的认证成功消息的发送,具体发送形式有三种情况第一种,如果UE和P-CSCF前面都没有NAT设备,则此IPSec数据包安装原来的方式发送给UE,第二种,如果UE前面有NAT设备,P-CSCF前面没有NAT设备,则此IPSec数据包需要采用UDP封装模式发送给UE,外层封装的UDP报头的源端口为4500,目的端口为UE经过NAT转换后的端口,IPSec数据包内部SIP消息使用的UDP报头的checksum必须设置为0;第三种,如果P-CSCF前面有NAT设备,则此IPSec数据包需要采用UDP封装模式发送给UE,外层封装的UDP报头的源和目的端口都为4500。IPSec数据包内部SIP消息使用的UDP报头的checksum必须设置为0;(10)UE对接收到的认证成功消息进行处理,如果P-CSCF前面有NAT设备,则记录OA_pl和OA_pp;(11)注册成功后,如果UE和P-CSCF之间存在NAT设备,则所有的IPSec数据包都必须采用UDP封装,NAT设备之后的实体在向对方发送IPSec数据包时,采用UDP封装的源和目的端口都为4500,IPSec数据包内部SIP消息使用的UDP报头的checksum不需要设置为0;并且不时地向对方发送NAT-Keepalive报文,该报文包含单字节0xFF,并采用UDP封装,UDP报头中源和目的端口都采用4500,checksum设置为0。
2.根据权利要求1所述的方法,其特征在于,所述步骤(1)VID_U值和所述步骤(3)VID_P值为4a131c81070358455c5728f20e95452f时表示具有穿越NAT的能力。
全文摘要
本发明公开了一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法,在原有的IMS AKA认证机制的基础上,在UE与P-CSCF之间进行注册信息交互过程中增加支持NAT能力的协商、NAT设备的发现以及实施NAT穿越的功能使得IMS接入过程能够穿越NAT,并且有良好的兼容性。
文档编号H04L29/06GK1697452SQ20051007682
公开日2005年11月16日 申请日期2005年6月17日 优先权日2005年6月17日
发明者李睿, 田峰, 陈剑勇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1