首页 >> 数据通信 >> 技术 >> 正文
基于AKA的IMS接入认证机制
2008年1月18日 11:19    通信世界网    评论()    
作 者:周星 卢美莲 陶徐

    IMS AKA机制是对HTTP摘要认证机制[5]的扩展,主要用于用户的认证和会话密钥的分发,它的实现基于一个长期共享密钥(Key)和一个序列号(SQN),它们仅在HSS的认证中心模块(AuC)和UE的ISIM中可见。由于HSS不与UE直接通信,而是由S-CSCF执行认证过程,因此它们不会将真实的Key暴露给外界。

    IMS AKA机制使用“提问/回答”的模式实现用户和网络之间的双向认证,并通过协商产生的密码对(CK, IK)作为IPSec SA所需的密钥,为后续的通信提供安全保护。IMS AKA机制是基于SIP协议来实现的。AKA与SIP的结合在IETF RFC3310中定义。在IMS的注册过程中,携带AKA参数的SIP信令在UE和IMS网络认证实体之间进行交互,按照AKA机制来传输和协商AKA参数,从而实现接入认证和密钥协商的过程。

    2.2IMS接入认证的实现

    通过IMS注册过程实现基于AKA机制的IMS接入认证的具体流程[6] 如图2所示。

    (1) 用户发起注册请求

    用户在使用IMS服务之前必须向IMS网络进行注册,注册的目的是将用户的私有身份(IMPI)与用户想要注册的公开身份(IMPU)绑定。每个用户只有一个IMPI,而可拥有多个IMPU,每个IMPU对应相应的服务配置。

    UE在初始的注册请求SIP REGISTER消息中发送它的IMPI,该IMPI保存在ISIM应用中,只用于认证和注册过程。这个初始的REGISTER消息的主要头域和参数如图3所示。

    由于3GPP AKA被映射到HTTP摘要机制,因此认证方案的值被设置为“Digest”,而“response”和“nonce”域的值在初始注册请求消息中都设置为空。P-CSCF将这个REGISTER消息转发给I-CSCF,I-CSCF联系HSS,以选择为用户提供服务的S-CSCF,然后将REGISTER请求消息转发给选定的S-CSCF。当S-CSCF收到REGISTER消息后,如果发现该用户还没有被认证,则S-CSCF向HSS发送多媒体认证请求(MAR)消息[7]以请求认证数据。

    (2) 计算认证向量

    HSS收到MAR消息之后,运行AKA算法,为该用户计算认证向量(AV),计算过程如下:HSS中的AuC运行AKA机制,首先产生最新的序列号SQN和一个不可预测的随机提问数(RAND)。然后HSS将根据它与该UE之间的共享密钥Key,以及刚刚产生的SQN和RAND来计算其他的参数,其原理如图4所示,AKA参数核心算法由3GPP TS35.206[8]提供。

    其中,各个参数的计算公式如下( ?茌表示按位异或,|| 表示串接):

    计算消息认证码(MAC):MAC=F1K(SQN|| RAND || AMF) ;

    计算期望的认证应答(XRES):XRES=F2K(RAND);

    计算保密性密钥(CK):CK=F3K(RAND);

    计算完整性密钥(IK):IK=F4K(RAND);

    匿名密钥(AK):AK=F5K(RAND);

    网络认证令牌(AUTN):AUTN=SQN?茌AK|| AMF || MAC;

    AV:AV=RAND||XRES||CK||IK||AUTN;

    AK用来隐藏SQN,因为SQN可能会暴露用户的位置信息。如果不需要隐藏SQN,那么AK被设置为0。

    (3) 网络向用户提问

    HSS通过上述的计算过程得到了一组AV,其中每个AV都是一个五元组(RAND, XRES, AUTN, CK, IK),该认证五元组并不包括Key和SQN本身。然后,HSS将这些认证数据通过多媒体认证应答(MAA)消息发送给S-CSCF。

    S-CSCF从HSS得到所需的安全相关的参数,即所谓的AV。这些参数使得S-CSCF可以在不需要知道共享密钥Key和SQN的情况下就可以执行认证过程。

    S-CSCF将剔除XRES的AV包含在401 Unauthorized应答消息的WWW-Authenticate头域中向用户提问,401应答主要的头域和字段如图5所示。

    其中,在nonce字段填入了将RAND和AUTN参数串接后进行Base64编码后的字符串。在ik和ck字段加入完整性密钥和保密性密钥。在algorithm字段放入值“AKAv1-MD5”,表示使用的是3GPP AKA认证机制。

    当接收到S-CSCF返回的401应答消息后,P-CSCF在将其发往UE之前,将其中的完整性密钥IK和保密性密钥CK保存下来,并将它们从AV中删除掉(IK,CK这两个参数不能暴露,网络认证通过后,UE的ISIM会根据收到的AV,重新计算出来)。

    (4) 用户认证网络身份

    接收到网络返回的401应答消息后,UE将接收到的AKA参数传递给ISIM应用,由ISIM模块运行AKA算法,执行以下工作:

    首先基于ISIM中存储的共享密钥Key来校验网络认证令牌AUTN,如果AUTN校验成功,网络就被认证通过(即确认认证数据是从归属网络中发来的)。ISIM计算AKA参数的过程如图6所示。UE中的认证服务模块通过随机数RAND计算出匿名密钥AK,然后使用匿名密钥AK来恢复序列号SQN,接着通过得到的序列号SQN、RAND和ISIM中保存的认证管理域AMF来计算期望的消息认证码XMAC。将计算得到的期望的消息认证码XMAC和从网络认证令牌AUTN中取得的由HSS计算的消息认证码MAC相比较。如果这两个参数一致,那么用户认证网络身份成功,接着进行下面的步骤;如果不一致,则用户认证网络身份失败,UE向网络发送不携带response字段的REGISTER消息,以此通知网络提问无效。

    如果用户认证网络身份成功,UE将接着检查序列号SQN是否在正确的范围之内(比较这次提问的序列号SQN是否比上次提问时使用的SQNi大)。如果SQN在正确的范围之内(即SQN>SQNi,将SQNi更新为SQN,并保存,以备下次使用),UE将会计算认证应答(RES)。如果SQN不大于SQNi,则认为本次提问的AV是不新鲜的,UE与网络失同步,则UE计算重同步参数AUTS,使用携带该重同步参数的REGISTER消息重新发起注册请求。

[1]  [2]  [3]  [4]  编 辑:张翀
关键字搜索:IMS  AKA  认证  
[ 本站暂时关闭评论 ]
 
  推 荐 新 闻
  技 术 动 态
  通 信 圈