韩庆绵
西安电子科技大学通信工程学院 陕西 710071
IMS被认为是下一代网络的核心技术,也是解决移动与固网融合,引入语音、数据、视频三重播放等差异化业务的重要方式,IMS网络的承载层是IP网络,IMS网络结构本身的特点将服务运营网络易于受攻击的弱点暴露出来,这是以前在电信市场上所没有看到的。作为相对独立的安全体系,IMS要求所有的用户在使用IMS服务之前都必须进行鉴权,协商建立安全的接入通道。IMS终端需要包括IMS网络鉴权中包含的参数(如身份识别、用户授权和终端设置数据等),并存储共享密钥和相应的AKA算法。本文通过对IMS网络侧认证机制的研究与实现,为客户端更好地接入IMS网络提供了基础。
3GPP定义了IMS 接入网络的安全机制,在IMS 的安全体系中,从终端到网络的各个实体都涉及到了接入网和核心网部分的安全概念。其安全结构如图1所示。
图1 IMS安全体系架构
图1中的安全联盟①和安全联盟②属于IMS网络接入安全机制,该安全机制承担着两大任务:
(1)对接入用户进行认证和授权;该认证采用的是AKA机制。
(2)对用户进行认证和授权之后,在UE和P-CSCF之间建立IPSec安全联盟,即IPSec SA,从而为后续通信提供安全保护。
IMS的鉴权机制采用3GPP AKA机制的原理和核心算法,因此被称为IMS AKA,该机制是基于SIP协议来实现的。通过IMS AKA方式的注册过程,可以实现用户和网络间的双向认证。AKA参数核心算法由3GPP TS35.206提供。
在用户的归属网络中,HSS上存储了每个用户的客户描述信息,该信息包含了描述该客户的所有相关签约信息,并且这些信息对外保密。在注册过程中,I-CSCF将给用户分配一个S-CSCF,此时客户签约信息将从HSS下载到S-CSCF上。当一个客户请求接入IMS网络时,S-CSCF将对客户签约信息和客户接入请求进行匹配性检查,以确定是否允许客户继续请求接入。
IMS AKA在用户终端与归属网络之间进行认证,认证时使用用户的私有身份IMPI。HSS和用户终端的ISIM共享一个与IMPI相关的长期密钥。归属网络通过使用IMS AKA系统来认证一个IMS用户,一个IMS用户通过UMTS (Universal Mobile Telecommunication System)接入,其中安全参数由SIP协议传输。
在IMS认证过程中,AuC生成RAND和AUTN,UE对AUTN进行验证,从而对网络进行验证。UE也为每一轮认证过程维护一个序列号。如果UE检测到超出了序列号码范围之外的认证请求,那么它就放弃认证并向网络返回一个同步失败消息,其中包含了正确的序列号码。为了响应网络的认证请求,UE将产生一个RES。网络对RES进行验证以认证用户。这样,UE和网络可以完成相互认证。
用户终端的认证过程如图2所示。
图2 IMS AKA用户的注册流程
在 IMS网络侧实现认证主要是验证和鉴别 Register请求,并产生合适的响应码。获取并绑定AOR,提供配置控制,并向应用提供定制化的服务。由于 3GPP AKA被映射到HTTP摘要机制,因此认证方案的值被设置为“Digest”,而“response”和“nonce”域的值在初始注册请求消息中都设置为空。下面以S-CSCF和HSS为例说明IMS网络AKA认证流程的实现过程。当S-CSCF服务器通过SIP协议栈收到带有要求认证信息的消息头,把带有认证信息的SIP消息传送到应用层,应用层首先提取SIP消息头中Authorization头字段的认证信息。初始的Register消息的主要头域和参数如图3所示。
图3 REGISTER消息
然后S-CSCF与HSS联系,有两个目的:一方面,S-CSCF需要下载认证数据来完成对特定用户的认证;另一方面,S-CSCF需要在HSS中保存S-CSCF URI,所以同一用户对HSS的任何进一步查询将返回指向该S-CSCF的路由信息。为达到该目的,S-CSCF建立一个Diameter多媒体注册请求消息,HSS在用户数据中存储S-CSCF URI并用一个Diameter多媒体应答消息来回答。S-CSCF用HSS提供的数据来认证用户。这些认证数据就是所熟知的认证向量。HSS在Diameter MAA消息中包括一个或更多的认证向量,以便S-CSCF能够正确地认证用户。S-CSCF通过 401(未授权)响应返回WWW-Authenticate消息头,头字段中包括一个要求IMS终端回复的质询。401应答的主要头域和字段如图4所示。
图4 401 响应消息
nonce中包含了BAND(一个随机挑战)和AUTN(网络认证令牌),nonce的值是将128位的RAND,128位的AUTN和可选的服务器数据串连,进行Base64编码后得到的值。在收到401响应后,P-CSCF必须从WWW-Authenticate消息头中去除完整性密钥(CK)和加密性密钥(IK),然后再将响应发往UE。 CK和IK用于其后的保密通信,因为CK和IK并没有在空中接口中传输,确保了密钥的安全性。
当IMS终端收到SIP 401(未经授权)响应时,它就知道其中包括一个质询并对该质询做出一个适当的响应。UE在第二个REGISTER请求中加上Authorization消息头。该消息头包括用户名字段,该字段中包括用户的私有标识和一个与WWW-Authenticate消息头中同名字段的nonce值,根据这个值解析出RAND和AUTN,根据AKA的方式验证网络是否安全可靠,并计算RES,在这次发送的注册消息中,对RES做适当运算后作为 Authorization头字段中的 response value值进行认证。
图5 重新发送的REGISTER消息
S-CSCF依靠在Diameter MAA消息中提供的认证向量验证这些资格证明,如果认证成功,接下来通知HSS用户现在已注册并下载用户档案,S-CSCF向HSS发送一个Diameter SAR消息。用户档案是信息中包含的重要部分,还包括初始过滤准则,由触发器收集来决定何时向将要提供业务的应用服务器传递SIP请求。S-CSCF向终端发送200 OK消息,并把注册结果保存起来。
Aricent B2BUA服务器架构是Aricent公司开发的基于标准的SIP协议栈,符合OSA(开放业务架构)标准的并向应用提供标准OSA接口的软件。Aricent公司定义了扩展的SIP消息访问API接口,使用这些API,应用能够访问和操作输入和输出的SIP消息。B2BUA的UA特性使其能够像一个SIP UA,并能够提供UA的所有能力,如媒体建立,发送请求和响应并处理媒体的改变。也能够在 UA模式和 B2BUA模式间转换。B2BUA提供对非会话类消息的处理,使应用层能够处理这些消息并能通过Aricent公司特有的API发送非会话类消息和其响应消息。
图6 基于B2BUA软件开发的S-CSCF认证流程
在笔者参与开发的IMS业务控制系统中,对AKA认证的实现首先将B2BUA模块、Cx接口软件、Diameter协议栈集成,并通过B2BUA模块向上层应用提供的回调函数来处理从用户来的注册消息,通过解析对 SIP消息头中携带Authorization 参数的头域,实现其认证信息的获取。并通过调用与Cx的接口来实现与HSS的通信,实现认证向量与用户档案的获取。在B2BUA基础上开发的S-CSCF认证的过程如图6所示。
开发完IMS相关的网络设备后,按照图7所示进行了试验验证,将X-Lite软终端、CSCF服务器、业务网关、HSS、SIP服务器和CORBA模拟器连接到交换机。当IMS终端用户注册到开发的IMS网络时,用网络抓包软件EtherPeek抓取数据,表明一次成功的用户注册与前面设计的流程相一致。
图7 联试试验简图
基于IMS的网络融合方案是未来电信网络的发展方向,基于IMS网络融合固网、移动网和互联网后,不仅原有各网络的安全问题会继续存在,而且还会带来许多新的安全问题,如何保证固网、移动网和互联网用户接入IMS网络的安全性是未来IMS网络安全研究的重点工作。本文实现的IMS网络侧的安全认证过程,可以使得用户接入网络的安全性越来越高。通过系统的联试试验,具有很高的实用性。
[1]3GPP TS22.228.Service requirements for the Internet Protocol(IP)multimedia core network subsystem(IMS)[S].2008.
[2]糜正琨.基于 IMS的固定和移动网络融合[J].中兴通信技术.2008.
[3]3GPP TS33.203.3G security;access security for IP-based services[S].2009.
[4]RFC3310.Hypertext transfer protocol(HTTP)digest authentication using authentication and key agreement(AKA)[S].2002.