UE和网络之间双向的身份认证流程如下:
(1)UE向S-CSCF发送SIPREGISTER消息(SM1)来发起认证。
(2)S-CSCF将使用一个认证向量AV来认证用户以及与用户协商一个密钥。如果S-CSCF没有有效的AV,S-CSCF将会向HSS发送一个AV请求,这个请求与AV的数量n(至少是1)都包含在CM1中。CM1的结构为:Cx-AV-Req(IMPI,n)。
(3)HSS收到S-CSCF的请求后,利用CM2向S-CSCF发送一个有n个认证向量的有序阵列。每一个认证向量包含几个部分,即一个随机数RAND、一个期望的响应XRES、一个加密密钥CK、一个完整性密钥IK和一个认证标识AUTH。每一个认证向量对应一次S-CSCF与IMS用户的认证和密钥协商。CM2的结构:Cx-AV-Req-Resp(IMPI,RAND1‖AUTN1‖XRES1‖CK1‖IK1,…RANDn‖AUTNn‖XRESn‖CKn‖IKn)。
(4)S-CSCF在收到的n个AV中通过先进先出的方法选择第一个AV,在SM4中通过I-CSCF,P-CSCF发送给UE。SM4的结构为:4xxAuth_Challenge(IMPI,RAND,AUTN,IK,CK)。
(5)P-CSCF收到SM5后,保留密钥IK,CK和XRES,把剩余的消息内容发送给UE。发送给UE的SM6的结构为:4xxAuth_Challenge(IMPI,RAND,AUTN)。
(6)UE收到SM6后,取出包含MAC和SQN的AUTH。UE计算XMAC并检查XMAC是否与MAC相同,而且SQN是否在正确的范围内。如果这些检查都通过了,则网络通过了UE的认证。然后,UE计算出鉴权响应值RES,并将它放在认证头中,在SM7中送回给注册方。同时,UE在这个阶段也计算会话密钥CK和IK。SM7的结构为:REGISTER(IMPI,AuthenticationResponse)。
(7)S-CSCF收到SM9后,提取该用户的响应,得到XRES,并且使用它检查UE发送的响应。如果检查成功,则用户通过认证,且IMPU被注册到S-CSCF中。
至此,UE和IMS网络之间的双向身份认证成功完成。
归属网可以通过注册或重注册过程在任何时候对客户进行认证。
5.2机密性保护
在3GPPTS33.203R5的规范中,不要求UE和P-CSCF间的SIP信令消息的机密性保护。建议在链路层对SIP信令进行加密,即在UE与RNC间对SIP信令进行加密。
而在3GPPR6规范中,要求应该提供可能的机密性保护机制来保护UE和P-CSCF间的SIP信令。
5.3完整性保护
UE和P-CSCF之间的SIP信令应当进行完整性保护。保护机制如下:
(1)UE和P-CSCF首先基于IMSAKA协商本会话中使用的完整性保护算法。
(2)UE和P-CSCF就SA达成一致,该SA包含完整性保护算法所使用的完整性密钥。该机制基于IMSAKA。
(3)UE和P-CSCF通过各自拥有的完整性保护密钥IK来计算检验由某个结点所发来的数据的散列值,从而确定这些结点是否拥有协商过的完整性密钥。也可以检查从这些结点发送的数据是否被篡改过。
(4)完整性保护机制可以采取措施来减弱重放攻击和反射攻击。
5.6网络拓扑隐藏
运营商网络的运营细节是敏感的商业信息。运营商一般不愿与竞争对手共享这些信息。然而。某些情况下(合作伙伴或其他商业关系)可能会存在这类信息的共享需求。因此,运营商应当能够决定是否对网络内部信息进行隐藏。IMS安全机制中支持隐藏运营商网络拓扑的能力,包括隐藏S-CSCF的数量、S-CSCF的能力以及网络能力。