概述
The purpose of the primary authentication and key agreement procedures is to enable mutual authentication between the UE and the network and provide keying material that can be used between the UE and the serving network in subsequent security procedures.
该过程的目的是终端在注册时,进行终端和网络之间的双向鉴权认证,并生成后续需要使用的安全**。目前5G系统中有两种鉴权方法,EAP-AKA’和5G AKA,终端需要同时支持这两种方法。
初始鉴权及鉴权算法选择
- 根据SEAF的策略,SEAF可以在与UE建立信令连接的任何过程期间向UE发起认证。 UE将在注册请求中使用SUCI或5G-GUTI。
- 每当SEAF希望发起认证时,SEAF就会通过向AUSF发送Nausf_UEAuthentication_Authenticate Request消息来调用Nausf_UEAuthentication服务。
- 在收到Nausf_UEAuthentication_Authenticate Request消息后,AUSF应通过比较服务网络名称和预期的服务网络名称,检查服务网络中的请求SEAF是否有权使用Nausf_UEAuthentication_Authenticate请求中的服务网络名称。 AUSF应暂时存储收到的服务网络名称。 如果未授权服务网络使用服务网络名称,则AUSF应在Nausf_UEAuthentication_Authenticate响应中以“未授权服务网络”进行响应。
- 收到Nudm_UEAuthentication_Get请求后,如果收到SUCI,则UDM将调用SIDF。 在UDM可以处理该请求之前,SIDF应当隐藏SUCI以获得SUPI。UDM / ARPF应基于SUPI选择身份验证方法。
EAP-AKA’流程
消息交互
- 若鉴权过程成功完成,并且AMF之后需要发起SMC流程,则EAP-success message和ngKSI将会在之后的SMC消息中携带;
- 若鉴权过程成功完成,但之后AMF不会发起SMC流程,则EAP-success message和ngKSI将会通过AUTHENTICATION RESULT通知给UE;
- 若鉴权失败,网络通知UE的EAP-failure message将会通过AUTHENTICATION RESULT message或AUTHENTICATION REJECT message或Initial 5GMM procedure的响应消息携带。
鉴权成功流程
- AUSF网元发送鉴权请求给UDM/ARPF网元。UDM/ARPF网元根据用户信息和接入信息选择EAP-AKA’方法,并产生鉴权向量,设置AMF separation bit = 1,计算CK’和IK’。ARPF将鉴权向量发送给AUSF。
- AUSF发送EAP-request/AKA’-challenge消息,携带AT_RAND,AT_AUTN,AT_KDF,AT_KDF_INPUT,AT_MAC等属性。其中将AT_KDF_INPUT属性设置为SNN。AT_MAC由CK’和IK’计算所得。
- ME收到EAP-request/AKA’-challenge消息后想USIM卡发起挑战。USIM挑战成功后,返回CK,IK和RES给ME。ME通过KDF算法计算CK’和IK’。
- ME发送EAP-response/AKA’-challenge消息,携带AT_RES属性和AT_MAC属性。
- AUSF收到EAP-response/AKA’-challenge消息后,比较AT_RES和AT_MAC,如果比对成功,鉴权成功。AUSF给EAP-Request/AKA’-Notification通知成功。
- UE收到EAP-Request/AKA’-Notification后需要返回EAP-Response/AKA’-Notification。
- 最后,AUSF给UE发送EAP-Success。并生成KSEAF发送给SEAF。UE收到EAP-Success后通过CK’和IK’计算得到EMSK,从而得到KAUSF(KAUSF为EMSK的前256bits),进一步由KAUSF计算得出KSEAF,并且结合EAP-success message中的ABBA计算得到KAMF。同时,将以ngKSI为索引生成partial native 5G NAS security context(包含计算得到的KAMF),保存到ME的memory中。
5G AKA流程
- AUSF网元发送鉴权请求给UDM/ARPF网元。UDM/ARPF网元根据用户信息和接入信息选择5G-AKA方法,并产生鉴权向量,设置AMF separation bit = 1,通过KDF算法计算XRES和KAUSF。ARPF将鉴权向量(RAND,AUTN,XRES,KAUSF)发送给AUSF。
- AUSF根据XRES来计算HXRES:HXRES* = SHA-256 (XRES* || RAND)的高128bits,以及通过KDF计算KSEAF。将鉴权向量(RAND,AUTN,HXRES*,KSEAF)发送给SEAF。
- SEAF发送AUTHENTICATION REQUEST消息给UE。该消息中携带5G挑战的RAND、AUTN和ngKSI。
- ME向USIM请求5G鉴权挑战。USIM执行AUTN验证,AUTN验证成功,返回UE挑战成功,携带CK,IK和RES。
- ME计算RES*(计算方法同网络的XRES计算)。响应网络AUTHENTICATION RESPONSE(RES)。并本地保存(RAND,RES*),以免网络重传鉴权请求时重复挑战,导致同步问题。同时ME需要计算KAUSF和KSEAF。
- SEAF在收到AUTHENTICATION RESPONSE后,根据RES计算HRES(计算方法HXRES*),并且比较HRES和HXRES,如果相同,则鉴权成功。
当UE收到AUTH REQ消息时,若判断收到的消息中携带的RAND与保存的RAND相同,则不会再次用该RAND向USIM请求5G鉴权挑战,直接采用RAND对应的本地保存的RES*携带在AUTH RESPONSE消息中反馈给网络即可。