您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > IMS的AKA鉴权机制
摘要:IP多媒体子系统(IMS)作为3G网络的核心控制平台,其安全问题正面临着严峻的挑战。IMS的接入认证机制的实现作为整个IMS安全方案实施的第一步,是保证IMS系统安全的关键。基于认证和密钥协商(AKA)的IMS接入认证机制是由因特网工程任务组(IETF)制定,并被3GPP采用,广泛应用于3G无线网络的鉴权机制。此机制基于“提问/回答”模式实现对用户的认证和会话密钥的分发,由携带AKA参数的SIP消息在用户设备(UE)和IMS网络认证实体之间进行交互,按照AKA机制进行传输和协商,从而实现用户和网络之间的双向认证,并协商出后续通信所需的安全性密钥对。关键词:IP多媒体子系统;认证和密钥协商;会话初始协议;接入认证机制Abstract:IPMultimediaSubsystem(IMS)hasbeenacceptedasthecorecontrolplatformofthe3Gnetwork.Itssecurityproblemsarefacingseverechallengesnow.TheimplementationofIMSaccessauthenticationmechanism,whichisconsideredtobethefirststepofthewholeIMSsecurityplan,isthekeytotheIMSsystemsecurityaccess.TheAuthenticationandKeyAgreement(AKA)-basedIMSaccessauthenticationmechanismisdevelopedbytheInternetEngineeringTaskForce(IETF)organizationandadoptedbythe3GPPorganization,andiswidelyusedin3Gwirelessnetworkauthenticationmechanism.Itisbasedonthe“challenge/response”modetoachievethebidirectionalauthenticationandsessionkeydistribution.TheSessionInitiationProtocol(SIP)messages,whicharecarriedwithAKAparameters,aretransmittedthroughtheUserEquipment(UE)andIMScorefunctionalentitiesaccordingtotheAKAmechanismforconsultation,thusrealizingthetwo-wayauthenticationbetweenuserandnetwork,aswellasthesecuritykeypairforlatercommunications.Keywords:IMS;AKA;SIP;accessauthenticationmechanism移动通信的安全问题正越来越多地受到关注。2G网络主要传输语音业务,采用的是单向的用户认证方案,即网络能够验证用户身份是否合法,而用户无法确认其所连接的网络服务是否可靠。然而,3G网络将会演变成一个覆盖全球的集有线、蜂窝和卫星通信于一体的全网,不仅支持传统的语音和数据业务,还支持交互式和分布式的业务,如多媒体业务、电子商务、网上银行等。随着各种信息服务的蓬勃开展,各种机密性、敏感性、隐私性的数据的传输会大大增加,这对网络的安全性提出了更高的要求。IP多媒体子系统(IMS)是3G网络的核心控制平台,具有基于会话初始协议(SIP)的全IP架构,IP协议固有的缺陷和安全漏洞使IMS很容易遭受攻击。另外,IMS对开放性接入的支持也对其网络安全提出挑战。如何保证用户安全地接入网络,保证IMS网络的可靠部署进而走向商用,成为了重中之重的问题。因此,研究IMS网络的安全接入认证机制有着十分重要的现实意义。3GPP已经成立了专门的工作组SAWG3负责3G网络安全方面的标准化工作,已经发布的IMS安全标准主要有:3GPPTS33.102:3G网络安全架构[1]、3GPPTS33.203:IMS接入网络的安全机制[2]、3GPPTS33.210:IMS核心网络的安全机制[3]。1IMS的安全体系结构作为相对独立的安全体系,IMS要求所有的用户在使用IMS服务之前都必须进行鉴权(认证和授权),协商建立安全的接入通道。用户和网络实体之间以及网络实体之间的通信必须时刻处于安全保护之中。IMS安全体系的整体思想是使用因特网协议安全(IPSec)的安全特性为IMS系统提供安全保护。IMS安全体系架构[2]如图1所示,分为5个安全层面。IMS安全架构的5个安全层面应用于IMS安全保护中不同的需求:安全层面1提供用户和网络之间的双向身份认证。归属用户服务器(HSS)负责产生认证数据,并且委托服务呼叫会话控制功能(S-CSCF)执行用户认证的操作。认证基于由IP多媒体服务身份模块(ISIM)和HSS共享的密钥和算法。安全层面2为用户设备(UE)和代理呼叫会话控制功能(P-CSCF)之间的通信提供安全关联,包括加密和完整性保护,并通过IPSec提供接入安全保护。安全层面3提供网络域内呼叫会话控制功能(CSCF)和HSS之间的安全关联。安全层面4为不同网络间的CSCF提供安全保护,适合于P-CSCF位于访问网络的情况。安全层面5在网络内部的不同CSCF间提供安全保护,适合于P-CSCF位于归属网络的情况。图1中的安全层面1和安全层面2属于IMS接入安全机制。IMS的接入安全机制承担着两大任务:一是对接入用户的鉴权;二是在鉴权结束之后,在UE和P-CSCF之间建立IPSec安全关联(IPSecSA),为后续SIP信令的交互提供安全保护。本文主要对基于认证和密钥协商(AKA)机制的IMS安全接入认证机制进行研究。2IMS的接入安全机制2.1IMSAKA机制概述AKA机制是由因特网工程任务组(IETF)制定、并被3GPP采用,广泛应用于3G无线网络的鉴权机制。IMS的鉴权机制沿用了这种机制的原理和核心算法,故称之为IMSAKA机制[4]。IMSAKA机制是对HTTP摘要认证机制[5]的扩展,主要用于用户的认证和会话密钥的分发,它的实现基于一个长期共享密钥(Key)和一个序列号(SQN),它们仅在HSS的认证中心模块(AuC)和UE的ISIM中可见。由于HSS不与UE直接通信,而是由S-CSCF执行认证过程,因此它们不会将真实的Key暴露给外界。IMSAKA机制使用“提问/回答”的模式实现用户和网络之间的双向认证,并通过协商产生的密码对(CK,IK)作为IPSecSA所需的密钥,为后续的通信提供安全保护。IMSAKA机制是基于SIP协议来实现的。AKA与SIP的结合在IETFRFC3310中定义。在IMS的注册过程中,携带AKA参数的SIP信令在UE和IMS网络认证实体之间进行交互,按照AKA机制来传输和协商AKA参数,从而实现接入认证和密钥协商的过程。2.2IMS接入认证的实现通过IMS注册过程实现基于AKA机制的IMS接入认证的具体流程[6]如图2所示。(1)用户发起注册请求用户在使用IMS服务之前必须向IMS网络进行注册,注册的目的是将用户的私有身份(IMPI)与用户想要注册的公开身份(IMPU)绑定。每个用户只有一个IMPI,而可拥有多个IMPU,每个IMPU对应相应的服务配置。UE在初始的注册请求SIPREGISTER消息中发送它的IMPI,该IMPI保存在ISIM应用中,只用于认证和注册过程。这个初始的REGISTER消息的主要头域和参数如图3所示。由于3GPPAKA被映射到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参数核心算法由3GPPTS35.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包含在401Unauthorized应答消息的头域中向用户提问,401应答主要的头域和字段如图5所示。其中,在nonce字段填入了将RAND和AUTN参数串接后进行Base64编码后的字符串。在ik和ck字段加入完整性密钥和保密性密钥。在algorithm字段放入值“AKAv1-MD5”,表示使用的是3GPPAKA认证机制。当接收到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在正确的范围之内(即SQNSQNi,将SQNi更新为SQN,并保存,以备下次使用),UE将会计算认证应答(RES)。如果SQN不大于SQN
本文标题:IMS的AKA鉴权机制
链接地址:https://www.777doc.com/doc-4340115 .html