5G注册流程详解(7)

644 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

相关文章会在公众号同步更新。公众号:5G通信大家学

持续更新的相关5G内容都是直接根据3GPP整理,保证更新内容的准确性,避免通过二手,甚至多手的资料,以讹传讹误导网友。

///////////

1.1.2.9.1.2 鉴权流程(响应阶段)

图片.png

1) UDM生成鉴权向量****

UDM/ARPF在生成鉴权向量时,需要将Authentication Management Field (AMF)的separation bit设置为"1"。separation bit为AUTN中AMF字段的第0比特,该值为1表示生成的鉴权向量用于EPS/5G AKA鉴权;如果设置为0,标识该鉴权向量用于GSM、UMTS等非EPS/5G AKA鉴权(具体原理详见TS33.102,6.4.3章节及附录F)。对于鉴权向量来讲,如果设置为1,AKA鉴权过程中产生的CK和IK鉴权密钥不会离开HSS。

UDM/ARPF推导出 KAUSF并计算XRES*(在推导Kausf和XRES时都会将serving network name作为输入参数使用)。最后UDM/ARPF生成的5G HE AV包含RAND、AUTN、XRES、KAUSF四个参数。(其中鉴权令牌AUTN = SQN Å AK || AMF || MAC)。

(2 )Nudm_UEAuthentication_Get Response****

消息方向:UDM -> AUSF

·           成功响应

返回200 OK响应。UDM计算出5G HE AV(RAND、AUTN、XRES*、KAUSF),并在响应消息中返回给AUSF。携带AuthenticationInfoResult内容。

该响应消息包含AuthenticationInfoResult,具体内容如下:

图片.png

  • supi

如果请求消息中是SUCI,UDM会使用SIDF解密出SUPI并在该字段中返回给AUSF。

  • authType

AUSF根据该字段为UE开启"5G_AKA"鉴权流程或者"EAP_AKA_PRIME"鉴权流程。

选择的鉴权类型共有三个取值:"EAP_AKA_PRIME"、"5G_AKA"和"EAP_TLS",其中,"EAP_TLS" 3GPP标准并不强制要求支持。

  • AuthenticationVector

鉴权向量包含的内容如下: 图片.png

其中:

  • avType

取值两种:"5G_HE_AKA"和"EAP_AKA_PRIME"。

  • rand

共128比特,16字节。

  • autn

共128比特,16字节。AUTN的构成(SQN xor AK)||AMF||MAC,共48+16+64 bits。

·           失败响应

  • 403 Forbidden

可能的原因值为:AUTHENTICATION_REJECTED、INVALID_HN_PUBLIC_KEY_IDENTIFIER、INVALID_SCHEME_OUTPUT

  • 404 Not Found

如果用户没有开户,则携带原因值:USER_NOT_FOUND

  • 501 Not Implemented

原因值:UNSUPPORTED_PROTECTION_SCHEME。

(3 )AUSF 保存XRES*

AUSF临时保存响应消息中的XRES*和SUPI,用于归属地的鉴权比较。

注:

在TS33.501中,该步骤的解释为:“The AUSF shall store the XRES temporarily together with the received SUCI or SUPI.”。也就是说本步骤,AUSF也可能保存SUCI。不知道在什么场景下会出现AUSF临时保存SUCI?从上述Nudm_UEAuthentication_Get Response成功的200 OK响应AuthenticationInfoResult内容来看,并没有定义SUCI字段。在失败响应中,只有403 Forbidden,原因值:INVALID_SCHEME_OUTPUT,表示无法解密SUCI,也没有带回SUCI。怀疑3GPP该步骤的解释应该为编写错误。*

(4 )AUSF 计算XRES*****

AUSF根据接收到的5G HE AV(RAND、AUTN、XRES*、KAUSF)来计算5G AV(RAND、AUTN、HXRES*、KSEAF);根据XRES计算出HXRES;根据KAUSF计算出KSEAF(计算KSEAF仍然需要serving network name作为输入参数)。锚点密钥Kseaf此时诞生。

(5 )Nausf_UEAuthentication_Authenticate Response****

消息方向:AUSF -> AMF/SEAF

AUSF 删除KSEAF,并在Nausf_UEAuthentication_Authenticate Response消息中向AMF返回5G SE AV (RAND, AUTN, HXRES*) 。

从上述可见,AUSF产生的5G AV并没有直接发送给AMF,而是分两步发送:第一步,发送5G SE AV用于拜访地鉴权;第二步,如果拜访地鉴权成功,返回RES*,归属地鉴权成功后,将锚点密钥Kseaf发送给AMF,此时才将完整的5G AV发送给了AMF。

该Response的内容如下:

图片.png

消息IE介绍:

  • authType

指示UE本次鉴权网络选择的鉴权方法,共有三个取值:"EAP_AKA_PRIME"、"5G_AKA"和"EAP_TLS"。

  • _links

该字段包含本次鉴权UE返回RES后,AMF向归属地返回RES时需要调用的AUSF的资源URI。如果是5G AKA,该字段的值为“5g-aka”和执行鉴权确认的超链接URI,如http://172.16.141.122:8080/nausf-auth/v1/ue-authentications/06120902071/5g-aka-confirmation。如果是EAP鉴权,该字段的值为:"eap-session"及执行EAP Session的URI。

  • 5gAuthData

包含上一步骤的5G SE AV (RAND, AUTN, HXRES*)。