网络鉴权认证的前4步骤
- 1.UE=>SEAF#N1,N1信令消息
- 在UE向网络建立N1 NAS信令连接过程中,SEAF可根据UE在网络中的状态和协议判断是否需要启动安全认证。
- 2.SEAF=>AUSF#Nausf,Nausf_UEAuthentication_Authenticate Request
- 当SEAF希望启动网络安全认证时,SEAF将通过向AUSF发送Nausf_UEAuthentication_Authenticate请求消息来调用Nausf_UEAuthentication服务。该消息应包含SUCI或SUPI。如果SEAF具有有效的5G-GUTI并且重新认证UE,则SEAF应在Nausf_UEAuthentication_Authenticate Request消息中包括SUPI;否则,SEAF应将SUCI包含在服务请求中。Nausf_UEAuthentication_Authenticate请求应包含服务网络名称,AUSF
- 应临时存储接收的服务网络名称。服务网络名称是服务代码和服务网络标识的串联,在UE侧及SEAF侧构造服务网络名称的方式如下。
- (1)UE应按如下步骤构建服务网络名称:
- ① 将服务代码设置为“5G”;
- ② 将网络标识符设置为它正在进行身份验证的网络的服务网络标识;
- ③ 将服务代码和服务网络标识用分隔符“:”连接起来。
- (2)SEAF应按如下步骤构建服务网络名称:
- ① 将服务代码设置为“5G”;
- ② 将网络标识符设置为AUSF向其发送认证数据的服务网络的服务网络标识;
- ③ 将服务代码和服务网络标识用分隔符“:”连接起来。
- 在接收到Nausf_UEAuthentication_Authenticate Request消息时,AUSF通过将服务网络名称与预期服务网络名称进行比较来检查服务网络中的请求SEAF是否有权使用Nausf_UEAuthentication_Authenticate请求中的服务网络名称。如果服务网络未被授权使用服务网络名称,则AUSF将在Nausf_UEAuthentication_Authenticate Response中响应“未授权的服务网络”。
- 3.AUSF=>UDM/ARPF/SIDF#Nudm,Nudm_UEAuthentication_Get Request
- 根据鉴权需要,AUSF可向UDM/ARPF/SIDF网络功能获取用户鉴权数据。从AUSF发送到UDM的Nudm_UEAuthentication_Get请求包括以下信息:
- ①SUCI或SUPI;
- ② 服务网络名称。
- 根据鉴权需要,AUSF可向UDM/ARPF/SIDF网络功能获取用户鉴权数据。从AUSF发送到UDM的Nudm_UEAuthentication_Get请求包括以下信息:
- 4.UDM/ARPF/SIDF
- 在接收到Nudm_UEAuthentication_Get请求后,如果接收到SUCI,则UDM将调用SIDF。在UDM处理请求之前,SIDF应解除SUCI以获得SUPI。UDM/ARPF应基于SUPI和根据订阅数据选择鉴权认证方法。
EAP-AKA'认证流程
- 5.UDM/ARPF,产生认证向量(AV)
- UDM/ARPF应首先生成认证向量,将其认证管理字段的分离比特位设置为1,然后UDM/ARPF将根据TS 33.501附录A计算CK'和IK',并用CK'和IK'替换CK和IK,构造鉴权认证向量AV'(RAND,AUTN,XRES,CK',IK')。
- 6.UDM/ARPF=>AUSF#Interface,Nudm_UEAuthentication_Get Response
- 如果SUCI包含在Nudm_UEAuthentication_Get请求中,则UDM将在响应中包含AV'和SUPI。然后,AUSF和UE将按照RFC 5448执行鉴权直到AUSF准备好发送EAP-Success。
- 7.AUSF=>SEAF#Nausf,Nausf_UEAuthentication_Authenticate Response(EAP-Request/AKA'-Challenge)
- AUSF应在Nausf_UEAuthentication_Authenticate Response消息中向SEAF发送EAP-Request/AKA'-Challenge消息。SEAF应按照TS 33.501附件A.7.1的规定设置ABBA参数。
- 8.SEAF=>UE#N1,EAP-Request/AKA'-Challenge(RAND,AUTH)
- SEAF应在NAS消息认证请求消息中透明地将EAP-Request/AKA’-Challenge消息转发给UE。该消息应包括ngKSI和ABBA参数。SEAF应在所有EAP-Authentication请求消息中包含ngKSI和ABBA参数。ABBA(Anti-Bidding down Between Architectures)提供针对在低版本系统中应用高版本安全特性的保护,并指示当前网络中启用了该安全特性。UE和AMF将使用ngKSI来标识在身份验证成功时创建的部分本地安全上下文。
- 9.UE/ME/USIM,USIM计算响应RES、CK'、IK'
- UE中的移动设备(ME,Mobile Equipment)功能模块应将EAPRequest/AKA'-Challenge消息中收到的RAND和AUTN转发给通用用户标识模块(USIM,Universal Subscriber Identity Module)。收到RAND和AUTN后,USIM应通过检查是否可以按照TS 33.102中的描述使用AUTN来验证AV'的更新程度。
- ① 如果AV'的更新程度通过验证,USIM计算响应RES。USIM应将RES、CK、IK返回给ME。ME应根据TS 33.501附件A.3得出CK'和IK'。
- ② 如果AUTN的验证在USIM上失败则应按照TS 33.501中6.1.3节的规定执行。
- UE中的移动设备(ME,Mobile Equipment)功能模块应将EAPRequest/AKA'-Challenge消息中收到的RAND和AUTN转发给通用用户标识模块(USIM,Universal Subscriber Identity Module)。收到RAND和AUTN后,USIM应通过检查是否可以按照TS 33.102中的描述使用AUTN来验证AV'的更新程度。
- 10.UE=>SEAF#N1,EAP-Response/AKA'-Challenge。
- UE应在NAS消息Auth-Resp中向EAF发送EAP-Response/AKA'-Challenge消息。
- 11.SEAF=>AUSF#Nausf,Nausf_UEAuthentication_Authenticate Request(EAP-Response/AKA'-Challenge)
- SEAF应在Nausf_UEAuthentication_Authenticate Request消息中透明地将EAP-Response/AKA'-Challenge消息转发给AUSF。AUSF应验证该消息,如果成功验证该消息,则应继续如下步骤,否则应返回错误。
- 12.AUSF=>UE#N1,经SEAF透传交换EAP-Request/AKA'-Notification和EAP-Response/AKA'-Notification。
- AUSF、UE可以通过SEAF交换EAP-Request/AKA'-Notification和EAP-Response/AKA'-Notification消息。SEAF应透明地转发这些信息。
- 13.AUSF=>SEAF#Nausf,Nausf_UEAuthentication_Authenticate Response(EAP Success)
- 如RFC 5448和TS 33.501附件F中所述,AUSF从CK'和IK'导出扩展主会话密钥(EMSK,Extended Master Session Key)。AUSF使用EMSK的前256位作为KAUSF,然后通过KAUSF计算KSEAF。AUSF应在Nausf_UEA uthentication_Authenticate Response内向SEAF发送EAP Success消息,该消息应将其透明地转发给UE。Nausf_UEAuthentication_Authenticate响应消息包含KSEAF。如果AUSF在启动认证时从SEAF收到SUCI,则AUSF还应在响应消息中包含SUPI。
- 在Nausf_UEAuthentication_Authenticate Response消息中接收的密钥将成为密钥层次意义上的锚密钥KSEAF。然后,SEAF应根据TS 33.501附件A.7从KSEAF、ABBA参数和SUPI中推导出KAMF,并将其发送给AMF。在接收到EAP-Success消息时,UE从RFC 5448和TS 33.501附件F中描述的CK'和IK'导出EMSK。ME使用EMSK的前256位作为KAUSF,然后计算KSEAF。UE应根据TS 33.501附件A.7中的KSEAF、ABBA参数和SUPI导出KAMF。
- 如果未成功验证EAP-Response/AKA'-Challenge消息,则根据归属网络的策略确定后续AUSF行为。
- 14.SEAF=>UE#N1,EAP Success(ngKSI,ABBA),SEAF向AMF提供ngKSI和KAMF
- SEAF应在N1消息中向UE发送EAP Success消息。该消息还应包括ngKSI和ABBA参数。SEAF应按照TS 33.501附件A.7.1的规定设置ABBA参数。如果AUSF和SEAF确定认证成功,则SEAF向AMF提供ngKSI和KAMF。
5G AKA认证流程
- 5.UDM/ARPF,5G归属环境鉴权向量(5G HE AV)
- 对于Nudm_Authenticate_Get请求,UDM/ARPF应创建5G HE AV。
- UDM/ARPF通过在TS 33.102中定义的认证管理字段分离位设置为“1”,然后,根据TS 33.501附录A.2推导出KAUSF,并根据TS 33.501附录A.4计算XRES*,最后,UDM/ARPF通过RAND、AUTN、XRES*和KAUSF创建一个5G HE AV。
- 6.UDM/ARPF=>AUSF#Nudm,Nudm_UEAuthentication_Get Response
- UDM应将5G HE AV通过Nudm_UEAuthentication_Get Response返回给AUSF,同时指示5G HE AV将用于Nudm_UEAuthentication_Get响应中的5G-AKA。如果在Nudm_UEAuthentication_Get请求中包含SUCI,则UDM将在Nudm_UEAuthentication_Get响应中包含SUPI。
- AUSF应存储XRES*、SUCI或SUPI及KAUSF。然后,AUSF将基于从UDM/ARPF收到的5G HE AV产生5G AV,根据规范TS 33.501附录A.5计算HXRES*,根据TS 33.501附录A.6计算KAUSF的KSEAF,接着在5G HE AV中,用HXRES*替换XRES*、用KSEAF替换KAUSF。
- 7.AUSF=>SEAF#Nausf,Nausf_UEAuthentication_Authenticate Response [ 5G SE AV (RAND, AUTN, HXRES*) ]
- AUSF在Nausf_UEAuthentication_Authenticate响应消息中将5G SE AV(RAND,AUTN,HXRES*)返回给SEAF。
- 8.SEAF=>UE#N1,Authentication Request(RAND,AUTH)
- SEAF应在NAS消息Authentication-Request中向UE发送RAND和AUTN参数。此消息应包括由UE和AMF用于标识KAMF的ngKSI,以及在身份验证成功时创建的部分本地安全上下文。该消息还应包括ABBA参数,由SEAF按照TS 33.501附录A.7.1的规定设置。ME应将NAS消息认证请求中收到的RAND和AUTN转发给USIM。
- 9.UE/ME/USIM,USIM计算响应RES*、CK‘、IK'
- 在收到RAND和AUTN后,USIM检查是否可以按照TS 33.102中的描述接受AUTN来验证5G AV的更新程度。如果可以,USIM计算响应RES,并将RES、CK、IK返回给ME。然后ME应根据TS 33.501附录A.4通过RES计算RES*。ME应根据TS 33.501附录A.2通过CK、IK计算KAUSF。ME应根据TS 33.501附录A.6条款通过KAUSF计算KSEAF。ME参加5G应在认证期间检查AUTN的鉴权管理字段中的“分离位”是否设置为“1”。
- 10.UE=>SEAF#N1,Authentication Response(RES*)
- UE应在NAS消息认证响应中将RES*返回到SEAF。
- 11.SEAF=>AUSF#Nausf,SEAF通过RES*计算HRES*,SEAF应比较HRES*和HXRES*,Nausf_UEAuthentication_Authenticate Request(EAP-Response/AKA'-Challenge)
- SEAF应根据TS 33.501附录A.5通过RES*计算HRES*,SEAF应比较HRES*和HXRES*。如果它们一致,则SEAF应从服务网络的角度考虑验证成功;如果不一致,SEAF按照TS 33.501. 6.1.3.2.1的规定执行。如果UE不可达并且SEAF从未接收到RES*,则SEAF应认为认证失败,并向AUSF指示失败。SEAF应从Nausf_UEAuthentication_Authenticate Request消息向AUSF发送RES*以及从UE那里接收相应SUCI或SUPI。
- 当AUSF接收到包括RES*的Nausf_UEAuthentication_AuthenticateRequest消息时,它可以验证AV是否已经过期。如果AV已经过期,则AUSF可以认为从归属网络的角度来看认证是不成功的。AUSF应将收到的RES*与存储的XRES*进行比较。如果RES*和XRES*相等,则AUSF应从归属网络的角度考虑认证成功。
- 12.AUSF=>SEAF#Nausf,Nausf_UEAuthentication_Authenticate Response(Success),SEAF向AMF提供ngKSI和KAMF
- AUSF应在Nausf_UEAuthentication_Authenticate Response中向SEAF表明从归属网络的角度来看认证是否成功。如果验证成功,则应在Nausf_UEAuthentication_Authenticate Response中将KSAEF发送到SEAF。如果AUSF在启动认证时从SEAF收到SUCI并且如果认证成功,则AUSF还应在Nausf_UEAuthentication_ Authenticate Response中包含SUPI。
- 如果认证成功,则在Nausf_UEAuthentication_Authenticate Response消息中接收的密钥KSEAF将成为密钥层级意义上的锚定密钥。然后,SEAF应根据TS 33.501附录A.7通过KSEAF、ABBA参数和SUPI推导出KAMF,并应向AMF提供ngKSI和KAMF。
- 如果SUCI用于此认证,则SEAF仅在收到包含SUPI的Nausf_UEAut hentication_Authenticate Response消息后才向AMF提供ngKSI和KAMF。在SUPI为服务网络所知之前,不会向UE提供通信服务。