专注SIP通讯产品与方案

IMS中的安全服务

        IMS在安全功能和机制上继承自UMTS系统,提出了完整的安全体系以保证业务的端到端安全。从网络结构看,IMS的安全分为接入安全和网络安全。
一、 IMS安全体系
针对安全需求,IMS构建了完整的安全体系,如图12.11所示,其保证业务端到端的安全策略可以分解为5个方面:
1、HSS和ISIM通过AKA(AuthenticationandKeyAgreement,认证和密钥协商)机制提供双向鉴权;
2、UE和P-CSCF之间的Gm接口安全,包括信令完整性、加密;
3、为网络域的Cx接口提供安全;
4、不同网络间SIP节点之间的安全;
5、同一网络中SIP节点之间的安全。
IMS安全体系结构
        上述5个方面的安全从网络结构上可以归纳两个部分:1、2属于IMS接入网的安全,定义了终端安全接入到IMS网络的安全特性和机制;3、4、5则涉及IMS核心网络域的安全,定义了IMS核心网络基于IP协议的控制面的安全体系。
二、接入网络域安全
接入网络安全定义了终端接入到IMS的安全特性和机制。接入IMS的用户首先需要被认证和授权以确认用户有使用某一种业务的权限。一旦用户被授权,就会在UE和IMS网络之间建立IPSec安全联盟(SecurityAssociation)来保护其接入安全。
1.用户和网络的认证
IMS认证和授权依靠终端中的安全功能实现。事实上,终端并不直接实施安全功能,而是在插入终端的智能卡中实现。智能卡的功能依靠实际的网络来实现。在3GPP网络中,智能卡通常被称为UICC(UniversalIntegratedCircuitCard,通用集成电路卡)。UICC包含一个或者两个应用程序(模块)。每一个应用程序(模块)储存一些对应于特殊用途的配置和参数。其中一个应用程序是ISIM(IP-MultimediaServ:icesIdentityMod­ule,IP多媒体服务识别模块),其他可能的应用模块是SIM(SubscriberIdentityModule,签约用户识别模块)和USIM(UMTSSubscriberIdentityModule,UMTS签约用户识别模块),如图所示。
多功能UICC的例子
ISIM是专为IMS定义的,它是IMS安全中最重要的组成模块。ISIM存储着IMS相关的安全数据和算法。IMS规范中定义ISIM里面主要包含以下参数。
IMPI:用户的私有身份标识;
IMPU:用户的一个或多个公共身份标识;
用户归属网络的域名;
IMS域内的SQN序列号;
认证密钥(IMS安全的基础)。
        IMS接入认证、加密和完整性保护等都基于这些参数。在IMS网络中只有ISIM和HSS共享这些秘密参数和算法,其他的任何网络实体都不知道密钥和用户私有身份。用户终端与网络的认证就是基于ISIM和HSS间的共享密钥进行的。为了获得相互认证,ISIM和HSS必须向对方证明自已知道那个共享密钥。
        认证是在用户注册或重新注册的时候进行的。IMS对用户的认证采用IMSAKA机制,可提供用户和网络之间的双向认证,其流程完全类似于UMTSAKA。AKA是一个为UMTS开发的安全协议,采用质询-应答(Challenge-response)模式提供UMTS中的相互认证机制,相同的概念/原理应用于IMS就称为IMSAKA。IMS使用AKA协议完成HSS与ISIM的相互认证,同时完成UE和P-CSCF之间加密和完整性密钥的协商。
        在IMS网络中,AKA协议以SIP协议作为其传输媒介,在SIP协议内部以隧道的方式传送。但是,包含ISIM的终端使用SIP协议,而HSS并不使用SIP协议。为了解决这个问题,在用户注册时被指定为该用户服务的S-CSCF就担当了认证者的角色。S-CSCF使用Diameter协议从HSS处获得认证向量(这个认证向量包含了一个质询以及该质询期望从用户代理获得的应答),并质询用户终端。如果用户应答不同,那么S-CSCF就认为认证失败。下面描述IMS终端和网络间的认证和授权的过程,如图12.13所示。
用户终端和网络的认证过程
        SM1~SM3,用户终端在登录IMS网络时要做的第一件事就是给归属网络发送一个Regiser请求。1-CSCF使用从HSS中获得的准则对Regiser消息进行处理,为用户分配一个用于认证和授权的S-CSCF。CMl~CM2:为了完成认证功能,S-CSCF需要从HSS下载多个认证向量。每一个认证向量包含一个随机质询(RAND)、一个网络认证签名(AUTN)、一个期望从IMS终端获得的应答<XRES)、一个为了完整性检查的会话密钥(IK)和一个加密密钥(CK)。HSS使用与ISIM共享的密钥以及在ISIM与HSS同步中保存的序列号生成AUTH。每一个认证向蜇只能用来认证一次ISIM。S-CSCF下载多个向量是为了避免每次用户需要认证时都与HSS相连接。
        SM4~SM6:S-CSCF使用第一个认证向量去建立一个ISIM摘要质询,然后向用户终端发送401(未授权)响应,其中包含WWW-Authenticate报头字段。Nonce的数值包含基于64位编码的RAID和AUTN。Algorithm参数设置为AKAvl-MD5。
SM7~SM9:终端在收到401响应后,由Nonce值推出RAND、AUTN和CK、IK。ISIM使用SQN和它的密钥计算出AUTN,如果它和接收到的AUTN值一样,就认为这个网络通过认证。在这种情况下,ISIM使用自己的密钥和接收到的RAND来产生一个响应值(RES),这个值通过新的Register请求的Authorization报头字段返回给S-CSCF。
        SM10~SM12:S-CSCF接收到Register后,把接收到的RES值与预期的认证向量中的XRES值相比较,如果匹配,S-CSCF就认为该用户通过认证并返回一个200OK响应。
2. SIP信令的安全保证机制
        SIP信令是IMS的核心所在,因此,为IMS接入所提供的安全保护中,最关键的事情就是要保护IMS网络中的SIP信令。在IMS核心网络中,SIP信令的安全保证是通过NDS/IP来完成的。但是在第一跳,也就是UE和P-CSCF之间的Gm接口,需要附加安全保护(主要是机密性保护和完整性保护)机制,因为它位于NDS/IP范围之外。
机密性可以应用于保护UE和P-CSCF间的SIP信令消息,确保只有特定的接收者才能看到消息的内容。在SIP层应提供以下机制:
UE应为P-CSCF提供本次会话的加密算法;
P-CSCF应决定是否使用IMS特定的加密算法,如果使用,UE和P-CSCF应就安全算法达成一致,包括机密性保护使用的加密密钥。
完整性确保消息在传送途中不被篡改。IMS对SIP信令强制使用完整性保护。完整性保护应用于UE和P-CSCF之间,通过IPSecESP传输模式保护IP层的所有SIP信令,并提供以下机制:
UE和P-CSCF将协商会话中使用的完整性保护算法;
UE和P-CSCF将就安全联盟达成一致,该安全联盟包含完整性保护算法所使用的完整性密钥;
UE和P-CSCF都会验证所收到的数据,验证数据是否被篡改过;
减轻重放攻击和反射攻击。
UE和P-CSCF之间加密和完整化保护的会话密钥是在认证过程中通过AKA过程产生的密钥。
3. 网络拓扑的隐蕨
        接入网络的多样性将IMS系统的安全要求提升到一个高度,因此对核心网络拓扑结构的隐藏也提出了相应要求。
        运营商网络的运作细节是敏感的商业信息。虽然在某些情况下(如合作伙伴之间或在其他商业关系中),这些信息是可以共享的,但运营商很难与他们的竞争对手共享这些信息。因此,运营商可决定是否需要隐藏其网络内部拓扑,包括隐藏S-CSCF的数量、s­
CSCF的能力以及网络的能力。
        隐藏机制是可选的。归属网络中的所有I-CSCF将共享一个加密和解密密钥。如果使用这个机制,则运营商操作策略声明的拓扑将被隐藏,当I-CSCF向隐藏网络域的外部转发SIP请求或响应时,它将加密这些隐藏的信息单元。这些隐藏的信息单元是SIP消息头的实体,如途径(Via汃记录路由(Record-Route八路由(Route)和路径(Path),它们包含了隐藏网络域SIP代理的地址。当I-CSCF从隐藏网络域外收到一个SIP请求或响应时,I-CSCF将解密这些被本隐藏网络域的1-CSCF加密的信息单元。P-CSCF可能收到一些被加密的路由信息,但P-CSCF没有密钥解密它们。
三、 核心网络域安全
        2G系统的主要安全缺点之一是缺乏核心网的标准化安全解决方案。尽管从移动终端到基站的无线接入通常由加密来保护,但是系统其余各部分的节点却以明文来传递业务流。3G系统开始着手对核心网中的所有IP业务流进行保护。IMS核心网络安全处理网络节点之间的业务保护,这些节点可能属于同一个运营商也可能属于不同的运营商。IMS系统通过NDS(NetworkDomainSecurity,网络域安全)达到对核心网中的所有IP业务流进行保护的目的。
1、安全域(SecurityDomain)
安全域是NDS的一个核心概念。一般而言,安全域是由单个管理者运营的网络,该管理者维护着这个安全域中的统一安全策略。作为结果,同一个安全域内的安全等级和安全服务通常是相同的。在很多情况下,一个安全域直接对应一个运营商的核心网(因此一个IMS网络通常与单个安全域相对应)。不过一个运营商也可以运营多个安全域,每个安全域都是该运营商整个核心网络的一个子集。
2、安全网关(SEG,SEcurityGateway)
不同安全域之间的划分以安全网关为界,业务在进出安全域时须通过SEG。SEG负责实施安全域的安全策略。每个安全域可能有一个或者多个安全网关。安全网关之间采用基于隧道模式的IPSec机制,安全网关之间的网络连接通过IKE(InternetKeyEx­change,互联网密钥交换)来建立和维护。SEG将业务流通过安全隧道传送到已定义好的一组其他安全网络。这称为轮轴-辐条(Hub-and-spoke)模式,它为不同安全域之间提供逐跳的安全保护。在同一个安全域内,网络实体使用IPSec保护与该域SEG之间的业务流,域内的网络实体也通过IPSec传递业务流。
3、网络域安全体系
        NDS/IP体系结构最基本的思想就是采用逐跳(Hop-by-hop)的安全模式。对于网络实体之间的每个通信进行单独的保护,保护措施采用IPSecESP(EncapsulatedSecurityPayload)机制。网络实体首先使用IKE协议来协商、建立和维护在它们之间的用来保护ESP隧道的安全参数,然后依据此参数使用IPSecESP隧道模式来进行通信保护。基于IP协议的网络域安全体系如图12.14所示。
基于IP协议的网络域安全体系结构
        在NDS中,不同安全域之间的接口表示为ZaC即安全网关-安全网关之间的接口),同一个安全域内不同元素之间的接口表示为Zb(即网络实体-安全网关或者网络实体-网络实体之间的接口)。Zb接口是用来保护IMS信令平面的,由于该接口只承载运营商内部的业务,因此它的使用通常是可选的,这取决于安全域的管理者。而Za接口覆盖了安全域间的所有NDS/IP业务,在不同安全域之间总是被强制使用,这就给予域内IMS以最大的保护度。数据认证和完整性保护在这两种接口上都是强制使用的 ,而加密对于Zb接口是可选的,对于Za接口则是推荐使用。