***   欢迎转发,转发请注明出处 。 相关更新会在公众号公布更新,敬请关注。公众号: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名称作为密钥推导的输入参数。

15G SNNServing 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 鉴权流程

本部分的鉴权流程分成三个部分:

  1. 鉴权流程(请求阶段)
  2. 鉴权流程(响应阶段)
  3. 鉴权流程(鉴权确认和注册绑定部分)

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仅提供了建议操作)。

25G密钥相关推导图

15GS密钥推导图(TS 33.501

25GS密钥分布及生成模式图(TS 33.501

3UDM鉴权向量推导图(TS 33.102

4UE鉴权推导图(TS 33.102

后续流程,留待下回分解  ......

5G注册流程分级详解(鉴权)Step9相关推荐

  1. 5G注册流程分级详解Step4-8

    ***   欢迎转发,转发请注明出处    *** 4. AMF调用old AMF的Namf_Communication_UEContextTransfer服务获取UE上下文. 如果UE的Regist ...

  2. 5GC注册流程(详解)

    首先附上三篇好文,如果这三篇全部看完并记忆,那么本文可略过 5GC注册过程(这个相当于23502协议中注册流程的原文翻译) 5G中携带SUCI的初始注册流程(这个是博主自理的初始注册,流程简单明了) ...

  3. 2022还不知道登陆邮箱账号怎么填写?个人邮箱登录注册流程看详解

    今年入冬以来,我国多地散发新冠肺炎疫情.浙江三地同日报告新增.满洲里大规模核酸共检出阳性431例.上海新增本土1例."奥密克戎"以惊人的速度传播,目前已至少在38个国家和地区出现. ...

  4. 目前互联网最详细的5G注册流程

    经过一个多月的详细分析<5G技术详解系列>的第一个课题:5G注册流程终于分析完成,不知道你有没有豁然开朗的感觉.我在分析的过程中也学到了很多,之前很多没注意到的细节,这次在整理成材料时也搞 ...

  5. ebay注册流程_2017年eBay注册开店流程图文详解

    原标题:2017年eBay注册开店流程图文详解 今天跟大家分享最新的eBay注册开店流程,希望对卖家小伙伴们有所帮助.我们先简单了解一下eBay注册条件. 企业注册eBay需满足以下条件: 合法登记的 ...

  6. 科普:5G网络关键技术详解

    不久前,中国华为公司主推的Polar Code(极化码)方案,成为5G控制信道eMBB场景编码方案.消息一出,在网络上就炸开了锅,甚至有媒体用"华为碾压高通,拿下5G时代"来形容这 ...

  7. 怎么在手机上取消双重认证_用手机在淘宝上怎么开网店?流程步骤详解

       这是一篇关于"用手机在淘宝上怎么开网店?流程步骤详解"的文章: 开网店因为门槛低.收益大,成为众多年轻人创业的首选.很多新手朋友们都想开一家属于自己的网店,但是苦于没有经验, ...

  8. 5G QoS控制原理专题详解-基础概念(3)

    最近比较忙,很多文章公众号上排版完发了,没来得及发布到CSDN上,各位同学可以先关注公众号,以便可以及时收到新的详解文章. 3.1.1.10 5G QoS characteristics 5G QoS ...

  9. 数据仓库电商建模_真实电商数据仓库全流程开发详解,资源教程下载

    课程名称 Hadoop大数据视频教程-第一季:真实电商数据仓库全流程开发详解(共46讲),资源教程下载 课程目录 第一部分:数据仓库基础理论与技术圈 第一章:互联网电商大数据环境 第二章:商业智能与数 ...

最新文章

  1. 新版本,ggplot2 v3.3.0 新特性来袭
  2. spark on yarn :state: ACCEPTED一直 出现
  3. android 高德地图提示限速信息,高德导航不提示限速拍照了是怎么回事?该怎么办?...
  4. GMM-HMM语音识别模型 原理篇
  5. 如何用python打印田字格_如何用 3D 打印一双顶级跑鞋回形针
  6. 常用计算机网络安全防范技术,计算机网络安全防范技术.doc
  7. 手机modem开发(20)---公平性测试
  8. springmvc系列一 之配置介绍(包含官网doc)
  9. 2016.8.7 UnicodeEncodeError 同时遍历多个list
  10. html宠物医院制作与实现,基于JSP的宠物医院系统设计与实现-毕业设计.doc
  11. 从破解APP开始学Android——用户登录验证
  12. 【电子器件笔记1】电阻参数和选型
  13. C# 读取Word中的脚注和尾注内容
  14. 《计算机视觉黑魔法16个实战项目》之扫描全能王
  15. 学计算机u盘多少g合适,U盘设定分配单元的大小多少合适
  16. GD2016noip获奖名单
  17. 从前慢-Mysql高级及实战
  18. 游戏角色动画:从入门到商用(一)
  19. 互联网日报 | 6月20日 星期日 | 宁德时代否认强制员工购买特斯拉;小米618支付金额破190亿元;岚图FREE正式上市...
  20. 17年1月9日,小程序来了。深度解析2017微信公开课

热门文章

  1. edit.md编辑器整合步骤
  2. 首先,打破一切常规 学习笔记 之一
  3. 影视级调色lut预设包 Triune Color Cinematic LUTs V2
  4. Proteus仿真51开发板
  5. 2017年第4届中国西部门窗博览会会刊(参展商名录)
  6. Ubuntu配置开发环境
  7. UML for Mere Mortals
  8. 《游戏引擎架构》读书笔记(四)
  9. 淘宝虚拟产品自动发货软件
  10. 计算机专业群校企合作“蜜蜂理论”