5G注册流程分级详解(鉴权)Step9
*** 欢迎转发,转发请注明出处 。 相关更新会在公众号公布更新,敬请关注。公众号:5G通信大家学 ***
目录
9. Authentication/Security流程。
0)准备知识
1) 鉴权流程
A. 鉴权流程(请求阶段):
B. 鉴权流程(响应阶段):
C. 鉴权流程(鉴权确认和注册绑定部分)
2)5G密钥相关推导图
9. Authentication/Security流程。
0)准备知识
该步骤为UE的5G的鉴权流程,本文以目前使用的5G AKA鉴权方式为例介绍。5G AKA相比4G增加了归属网络的鉴权功能。4G的鉴权由MME完成,而5G的鉴权由AMF和AUSF共同完成,且5G的鉴权向量不支持预取,也不支持一次获取多组鉴权向量。
归属网络的AUSF提供鉴权过程的锚点密钥(anchor key)KSEAF,它是由加密保存在AUSF中的中间密钥Kausf计算得到的。5G中,锚点密钥和和服务网络(Serving Network)进行绑定,向UE提供隐式的服务网络认证。绑定的方式是将5G SN名称作为密钥推导的输入参数。
(1)5G SNN(Serving Network Name)
5G SNN的作用:
- 用于推导锚点密钥,作为AUSF推导Kseaf的输入参数,及作为UE推导RES*和XRES*的输入参数;
- 将锚点密钥和服务网络绑定;
- 通过将服务码(Service code)设置为“5G”来保证锚点密钥用于5G核心网和UE之间的鉴权认证。
5G SNN的构成:
SNN最长1020个字节,由两部分构成:SNN-service-code和SNN-network-identifier,中间用冒号“:”进行连接。
由于在认证和鉴权过程中,安全密钥需要在UE和SEAF(位于AMF中)中分别推导,因此,SNN作为密钥推导的输入参数,需要在UE和SEAF分别进行构造。
- SNN-service-code:固定为“5G”。在通过non-3GPP接入时,也用于区分接入网络,作为Access Network Identity使用;
- SNN-network-identifier:用于识别当前的移动网络。根据TS 24.501章节9.12.1规定,对于PLMN网络,该值为:mncXXX.mccXXX.3gppnetwork.org(都为小写字母)。对应中国移动的5G网络SNN-network-identifier为:mnc000.mcc460.3gppnetwork.org。
UE侧根据RAT和小区广播的PLMN信息可以很容易推导出SNN,进而用于安全密钥的推导;而AMF侧根据配置信息也可以构造出SNN,用于鉴权和认证。
(2)鉴权流程的触发条件
通常,与UE建立信令连接的流程都可以触发鉴权流程。我们常见到的能够触发鉴权流程的场景为:
- UE使用SUCI发起注册流程;
- AMF没有UE的有效上下文;
- Registration Request消息没有被完整性保护;
- UE携带5G-GUTI注册,但是old AMF对注册请求消息执行完整性检查失败;
1) 鉴权流程
本部分的鉴权流程分成三个部分:
- 鉴权流程(请求阶段)
- 鉴权流程(响应阶段)
- 鉴权流程(鉴权确认和注册绑定部分)
A. 鉴权流程(请求阶段):
(1)消息方向:AMF/SEAF -> AUSF
HTTP方法:POST
消息名称:Nausf_UEAuthentication_Authenticate Request
在整体注册流程的第8步中,AMF根据从UE得到的SUCI或者从old AMF得到的SUPI,选择对该UE进行鉴权的AUSF,构造Nausf_UEAuthentication_Authenticate Request消息并发送给该AUSF。
该请求的资源URI为:
{apiRoot}/nausf-auth/v1/ue-authentications
携带的参数类型为:AuthenticationInfo,具体的字段信息如下图,我们常见到的IE为SUPI或者SUCI,及SNN:
只要AMF得到了UE的SUPI,在Nausf_UEAuthentication_Authenticate Request消息中包括的都是SUPI,除非AMF不知道UE的SUPI,才会在该消息中包含SUCI。
AUSF收到请求消息后,会检查消息中的Serving Network Name是否得到了授权。如果检查失败,则返回:403 Forbidden,携带的原因值为:SERVING_NETWORK_NOT_AUTHORIZED。
(2)消息方向:AUSF -> UDM
HTTP方法:POST
消息名称:Nudm_UEAuthentication_Get Request
该请求的资源URI为:
{apiRoot}/nudm-ueau/v1/{supiOrSuci}/security-information/ generate-auth-data
该消息用于AUSF请求UDM为UE选择一种鉴权方法,并计算新的鉴权向量(如果该鉴权需要鉴权向量的话)。如果请求中包含的是SUCI,UDM收到该请求后,首先,SIDF将SUCI解密为SUPI,之后根据SUPI为UE选择鉴权方式。目前,5G使用的鉴权方式有两种:EAP-AKA’ 和5G AKA。
请求消息AuthenticationInfoRequest的内容如下图:
- ResynchronizationInfo
该字段包含两项内容:rand和auts。在鉴权重同步过程中,AUTS由UE计算得到。
B. 鉴权流程(响应阶段):
(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,AKS鉴权过程中产生的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)消息方向:UDM -> AUSF
消息名称:Nudm_UEAuthentication_Get Response
- 成功响应
返回200 OK响应。UDM计算出5G HE AV(RAND、AUTN、XRES*、KAUSF),并在响应消息中返回给AUSF。携带AuthenticationInfoResult内容。
该响应消息包含AuthenticationInfoResult,具体内容如下:
- supi
如果请求消息中是SUCI,UDM会使用SIDF解密出SUPI并在该字段中返回给AUSF。
- authType
AUSF根据该字段为UE开启"5G_AKA"鉴权流程或者"EAP_AKA_PRIME"鉴权流程。
选择的鉴权类型共有三个取值:"EAP_AKA_PRIME"、"5G_AKA"和"EAP_TLS",其中,"EAP_TLS"标准并不强制要求支持。
- AuthenticationVector
鉴权向量包含的内容如下:
其中:
- 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)消息方向:AUSF -> AMF/SEAF
消息名称:Nausf_UEAuthentication_Authenticate Response
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的内容如下:
消息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*)。
(6)消息方向:AMF/SEAF -> UE
消息名称:Authentication Request(NAS消息)
AMF/SEAF保存接收到的HXRES*,并向UE发送Authentication Request消息,启动T3560计时器,消息中包含RAND、AUTN、ngKSI、ABBA等参数。ME转发接收到的Authentication Request消息中的RAND和AUTN 给USIM。
5G AKA流程都是由网络发起的,UE可以拒绝网络发起的鉴权请求。
Authentication Request消息包含在N2接口的Downlink NAS Transport和Uu接口的RRC层DLInformationTransfer消息中发送给UE。
Authentication Request消息定义:
消息IE介绍:
- ngKSI
ngKSI是由SEAF生成的,取值范围0-6(3bit)(7保留)。如果UE发送给网络的ngKSI=7,表示没有密钥可用。ngKSI用于在UE和AMF中识别Kamf。在后续鉴权成功后,用于识别5G安全上下文。如果在初始NAS消息(Registration Request消息)中包含了ngKSI,AMF需要在Authentication Request中分配一个不同的ngKSI。
- ABBA
ABBA参数为保持前向兼容,其长度可变,在R16版本中,长度为2个字节,值规定为:0x0000,用于推导Kamf作为输入参数。该参数用于防止降维攻击。
- Authentication parameter RAND/ Authentication parameter AUTN
均为从AUSF收到的数据。
- EAP message
对于5G AKA鉴权,不包含该IE。
(7)UE计算RES*
USIM收到RAND和AUTN,需要先检查AUTN中的MAC区域,验证接收的AUTN新鲜度。验证通过后,USIM计算RES,并和CK、IK一起返回给ME。如果USIM 根据CK和IK计算出了Kc (如GPRS Kc) 也发给了ME,则ME忽略该值,在USIM和ME上都不保存该值。之后,ME根据收到的RES计算RES*(serving network name、RAND等作为输入参数)。ME根据CK||IK 、serving network name 及AUTN中的SQN Å AK 计算出KAUSF,进而计算出 KSEAF (serving network name作为输入参数)。最后,ME检查AUTN的AMF域的"separation bit"是否为1。
(8)消息方向: UE -> AMF/SEAF
消息名称:Authentication Response(NAS消息)
UE构造Authentication Response消息发送给AMF/SEAF。AMF/SEAF收到Authentication Response消息后停止T3560计时器。
Authentication Response消息包含在Uu接口RRC层的ULInformationTransfer消息和N2接口的Uplink NAS Transport消息中发送给AMF/SEAF。
Authentication Response消息定义:
消息IE介绍:
- Authentication response parameter
该参数为UE计算的RES*。(在5G AKA中,RES*由ME计算得到,16字节长度,在4G中,RES由USIM计算得到,最短4字节,最长16字节。)
(9)AMF/SEAF计算HRES*
AMF/SEAF根据UE发送的RES*计算出HRES* (输入参数有RES*、RAND等),SEAF比较HRES*和HXRES*,如果二者一致,则认为UE在当前的拜访网络鉴权成功。之后,执行第10步,通过Nausf_UEAuthentication_Authenticate Request消息将RES*发送给AUSF进行归属地鉴权。
如果HRES*和HXRES*不一致,则认为UE在拜访网络鉴权失败,仍然会继续执行第10步,只是此时不携带RES*,而是携带空值,以通知AUSF在拜访地鉴权失败。
如果此时UE不可达,SEAF不会收到RES* ,则SEAF认为本次鉴权失败,并通知AUSF。
注:
网络上及个别厂家文档写到:如果拜访网络鉴权失败,流程结束。该说法并不准确,即使拜访网络鉴权失败,仍然会通知归属地AUSF。
如果在后面第12步中AUSF返回给SEAF鉴权结果Nausf_UEAuthentication_Authenticate Response消息中,指示RES*在归属地鉴权失败,或者RES*在拜访网络的SEAF中鉴权失败,则认为UE本次鉴权失败。如果UE使用SUCI发起的注册请求,则SEAF向UE发送UE Authentication Reject消息;如果UE使用的5G-GUTI发起的注册请求,AMF会尝试向UE请求SUCI再次进行鉴权尝试。如果最终UE鉴权失败,会收到Authentication Reject消息。
在UE侧,如果UE对Authentication Reject消息完整性检查通过,UE会设置update status为5U3 ROAMING NOT ALLOWED,并删除保存的5G-GUTI、TAI list、last visited registered TAI和ngKSI。在UE关机或者USIM卡更换之前不会再进行重新注册。如果Authentication Reject完整性检查失败,在30分钟到60分钟之间,会再次发起注册。
(10)消息方向: AMF/SEAF -> AUSF
HTTP方法:PUT(注意:EAP鉴权方式时本步骤为POST方法)
消息名称:Nausf_UEAuthentication_Authenticate Request
该请求消息调用AUSF的资源URI:
{apiRoot}/nausf-auth/v1/ue-authentications/{authCtxId}/5g-aka-confirmation
该URI在第5步的响应消息中_links字段携带,也可以由AMF自行构造。如果构造的不准确,则在返回响应消息:404 Not Found,携带原因值:CONTEXT_NOT_FOUND,表示AUSF没有找到对应的资源URI。
该消息携带的确认数据只有ConfirmationData,包含:RES*。但是该值也有为空的情况,表示通知AUSF拜访地鉴权失败。具体场景如下:
- UE不可达的情况,AMF不会收到RES*;
- 拜访地鉴权失败AMF比较HRES*和HXRES*不一致;
- AMF收到UE的authentication failure消息,如:synchronization failure或者MAC failure。
(11)AUSF验证RES*
AUSF收到RES*后,首先验证5G AV是否过期。如果5G AV过期了,则认为归属网络鉴权失败。如果5G AV验证不超期,AUSF加密保存Kausf。之后,AUSF比较接收到的 RES*和保存的XRES*是否一致,如果一致,AUSF认为归属网络鉴权成功,并通知UDM鉴权结果,之后开启鉴权确认和注册绑定流程。
(12)消息方向: AUSF -> AMF/SEAF
消息名称:Nausf_UEAuthentication_Authenticate Response
如果AUSF鉴权成功,则向AMF/SEAF返回200 OK响应,携带ConfirmationDataResponse信息,具体内容如下:
消息IE介绍:
- authResult
该IE共有三个可选值:
- AUTHENTICATION_SUCCESS:归属地鉴权成功
- AUTHENTICATION_FAILURE:归属地鉴权失败
- AUTHENTICATION_ONGOING:表示EAP Session鉴权正在进行,目前不涉及。
- supi/kseaf
从整个流程中可以看到,只有当归属地鉴权成功后,AMF才能得到解密后的SUPI和锚点Kseaf。拜访网络在得到SUPI之前,不能使用任何网络服务。之后SEAF根据Kseaf、ABBA参数和SUPI推导出Kamf,并和ngKSI一起发送给AMF。
C. 鉴权流程(鉴权确认和注册绑定部分)
该步骤主要用于防止AMF的虚假注册,如UE所处拜访网络没有的AMF,确发起了Nudm_UECM_Registration_Request,导致UE注册在了一个不存在的AMF上。
(1)消息方向:AUSF -> UDM
HTTP方法:POST
消息名称:Nudm_UEAuthentication_ResultConfirmation Request
该请求消息的资源URI如下:
{apiRoot}/nudm-ueau/v1/{supi}/auth-events
资源URI中包含SUPI,消息体仅包含AuthEvent参数,内容如下:
消息IE介绍:
- nfInstanceId
执行鉴权的NF instance (如AUSF)。
- success
该值为布尔类型,true表示AUSF鉴权成功,false 表示鉴权不成功。false值也用于AUSF请求UDM删除鉴权结果。
- authRemovalInd
可选项,用于指示UDM中的鉴权结果是否删除,true表示删除。默认值为false。
(2)UDM保存AuthEvent相关信息
UDM保存UE的鉴权状态,如SUPI、鉴权结果、时间戳、serving network name等。
(3)消息方向:UDM -> AUSF
消息名称:Nudm_UEAuthentication_ResultConfirmation Response
- 成功响应
返回201 Created,消息体可以为空。如果不为空,则返回AuthEvent内容。HTTP消息头的Location字段包含创建的资源,URI如下:
{apiRoot}/nudm-ueau/v1/{supi}/auth-events/{authEventId}
- 失败响应
404 Not Found,原因值:USER_NOT_FOUND。
(3)UDM对后续流程的鉴权
如果UDM收到了UE的后续流程,如:AMF发送的Nudm_UECM_Registration_Request消息,UDM会根据运营商策略执行相关检测和保护操作(详见TS 33.501,3GPP仅提供了建议操作)。
2)5G密钥相关推导图
(1)5GS密钥推导图(TS 33.501)
(2)5GS密钥分布及生成模式图(TS 33.501)
(3)UDM鉴权向量推导图(TS 33.102)
(4)UE鉴权推导图(TS 33.102)
后续流程,留待下回分解 ......
5G注册流程分级详解(鉴权)Step9相关推荐
- 5G注册流程分级详解Step4-8
*** 欢迎转发,转发请注明出处 *** 4. AMF调用old AMF的Namf_Communication_UEContextTransfer服务获取UE上下文. 如果UE的Regist ...
- 5GC注册流程(详解)
首先附上三篇好文,如果这三篇全部看完并记忆,那么本文可略过 5GC注册过程(这个相当于23502协议中注册流程的原文翻译) 5G中携带SUCI的初始注册流程(这个是博主自理的初始注册,流程简单明了) ...
- 2022还不知道登陆邮箱账号怎么填写?个人邮箱登录注册流程看详解
今年入冬以来,我国多地散发新冠肺炎疫情.浙江三地同日报告新增.满洲里大规模核酸共检出阳性431例.上海新增本土1例."奥密克戎"以惊人的速度传播,目前已至少在38个国家和地区出现. ...
- 目前互联网最详细的5G注册流程
经过一个多月的详细分析<5G技术详解系列>的第一个课题:5G注册流程终于分析完成,不知道你有没有豁然开朗的感觉.我在分析的过程中也学到了很多,之前很多没注意到的细节,这次在整理成材料时也搞 ...
- ebay注册流程_2017年eBay注册开店流程图文详解
原标题:2017年eBay注册开店流程图文详解 今天跟大家分享最新的eBay注册开店流程,希望对卖家小伙伴们有所帮助.我们先简单了解一下eBay注册条件. 企业注册eBay需满足以下条件: 合法登记的 ...
- 科普:5G网络关键技术详解
不久前,中国华为公司主推的Polar Code(极化码)方案,成为5G控制信道eMBB场景编码方案.消息一出,在网络上就炸开了锅,甚至有媒体用"华为碾压高通,拿下5G时代"来形容这 ...
- 怎么在手机上取消双重认证_用手机在淘宝上怎么开网店?流程步骤详解
这是一篇关于"用手机在淘宝上怎么开网店?流程步骤详解"的文章: 开网店因为门槛低.收益大,成为众多年轻人创业的首选.很多新手朋友们都想开一家属于自己的网店,但是苦于没有经验, ...
- 5G QoS控制原理专题详解-基础概念(3)
最近比较忙,很多文章公众号上排版完发了,没来得及发布到CSDN上,各位同学可以先关注公众号,以便可以及时收到新的详解文章. 3.1.1.10 5G QoS characteristics 5G QoS ...
- 数据仓库电商建模_真实电商数据仓库全流程开发详解,资源教程下载
课程名称 Hadoop大数据视频教程-第一季:真实电商数据仓库全流程开发详解(共46讲),资源教程下载 课程目录 第一部分:数据仓库基础理论与技术圈 第一章:互联网电商大数据环境 第二章:商业智能与数 ...
最新文章
- 新版本,ggplot2 v3.3.0 新特性来袭
- spark on yarn :state: ACCEPTED一直 出现
- android 高德地图提示限速信息,高德导航不提示限速拍照了是怎么回事?该怎么办?...
- GMM-HMM语音识别模型 原理篇
- 如何用python打印田字格_如何用 3D 打印一双顶级跑鞋回形针
- 常用计算机网络安全防范技术,计算机网络安全防范技术.doc
- 手机modem开发(20)---公平性测试
- springmvc系列一 之配置介绍(包含官网doc)
- 2016.8.7 UnicodeEncodeError 同时遍历多个list
- html宠物医院制作与实现,基于JSP的宠物医院系统设计与实现-毕业设计.doc
- 从破解APP开始学Android——用户登录验证
- 【电子器件笔记1】电阻参数和选型
- C# 读取Word中的脚注和尾注内容
- 《计算机视觉黑魔法16个实战项目》之扫描全能王
- 学计算机u盘多少g合适,U盘设定分配单元的大小多少合适
- GD2016noip获奖名单
- 从前慢-Mysql高级及实战
- 游戏角色动画:从入门到商用(一)
- 互联网日报 | 6月20日 星期日 | 宁德时代否认强制员工购买特斯拉;小米618支付金额破190亿元;岚图FREE正式上市...
- 17年1月9日,小程序来了。深度解析2017微信公开课