5G核心网之UE初始注册关键流程分析
1. UE初始注册的关键流程为:
(1)UE向AMF发送注册请求
(2)AMF查询NRF得到AUSF,获取归属地的AUSF可以发起鉴权请求
(3)获取到AUSF地址后,AMF请求AUSF对UE进行鉴权,AUSF通过UDM获取鉴权向量返回给AMF
(4)AMF对UE合法性进行鉴权,UE通过鉴权向量计算得到鉴权结果RES转发到AMF
(5)AMF首先站在拜访地对UE进行鉴权,鉴权通过后转发UE计算的鉴权结果到AUSF进行再次鉴权
(6)鉴权通过后,AMF对UE发起安全流程,用于NAS消息的加密和完整性保护(防止被篡改)
(7)AMF到UDM中做注册登记,完成UE和AMF的绑定,同时获取UE的签约数据
(8)AMF根据GPSI(手机号)向NRF查询,获取PCF地址
(9)得到PCF地址后,向PCF发送请求获取接入管理策略am-policy
(10)AMF向UE回复注册接受请求
1.1 UE发给AMF的注册请求(UE-ID为SUCI)
注册请求中的主要参数:
(1)Messagetype:Registrationrequest。这个是5GNAS消息类型。这里是注册请求。
(2)5GS registration type:initialregistration。表示因为开机发起的初始注册。和周期性注册、移动性注册更新、紧急注册这几种注册类型区分出来。
(3)Security header type取值为0,表示未加密的明文NAS消息。即5G-EA0算法。
(4)NAS keyset identifier:用于安全上下文的标识。本例取值为7。另外子参数TSC表示NAS安全上下文的类型。Native表示是5GAMF原生的安全上下文(而不是4-->5映射过来的)
(5)5GS mobile identity:5G用户标识。可以是5G-GUTI或者SUCI。这里是SUCI。SUCI包括了RoutingIndicator(本例为0,用于回归属地AUSF/UDM的寻址)、HomeNetworkpublickeyid(本例为3,表示UE加密SUCI用到的公钥标识)、Schemeoutput(是SUPI加密以后的密文输出)、ProtectionschemeId(取值为1表示采用ECIESprofileA加密算法,中文叫椭圆曲线加密算法)。
(6)UE security capability:UE所支持的加密和完整性保护算法。用于和AMF的算法协商,取交集。
1.2 AMF查NRF得到AUSF
AMF根据UE注册请求中提供的Routing Indicator查NRF,得到归属地AUSF。这样可以发起鉴权请求。AMF调用NRF的Discovery服务,发起AUSF的查询。用的是HTTP Get方法。但Get方法是不允许通过JSON来封装参数的。只能把参数部分放在request uri里,多个参数用&分隔。在Get请求中携带了多个参数。包括:
(1)service-names=nausf-auth。我要选择的网元是AUSF,并支持AUTH这个服务。
(2)requester-nf-type=AMF。请求者也就是我是谁?我是AMF。
(3)routing-indicator=0。这就是查询条件。拿RI来换AUSF的nfprofile(网元档案)。
NRF返回200 OK,包括了AUSF的nf profile(寻址信息和能力信息),主要参数有:
(1)validity Period:结果的有效期,这里是180秒。
(2)nf Instances:网元实例名。每个实例就代表一个活的网元,通常是uuid格式。
(3)nf Type:网元类型,这里返回AUSF。
(4)nf Status: REGISTERED。表示在NRF中的注册状态。这里是已注册。
(5)plmnList:目标网元支持的PLMN列表。-capacity:AUSF的静态容量。
(6)sNssais:AUSF所支持的切片。
(7)FQDN:AUSF的域名
(8)priority:AUSF优先级。
(7)nf Services:AUSF所支持的服务。-ipEndPoints:AUSF的IP和端口号。
(8)ausfinfo:ausf网元的特有参数。包括AUSF所支持的supi range:也就是用户IMSI号段。AUSF对应的group、以及关联的Routing indicator。
1.3 AMF请求AUSF进行鉴权并获取鉴权参数
AMF调用AUSF的authentication服务,请求AUSF对UE进行鉴权,该服务是HTTP Post方法。AUSF通常和UDM是合设的,因此AUSF会把SUPI或SUCI发给UDM,UDM据此选择UE的鉴权方法,并返回相关的鉴权向量组(如果收到的是SUCI,UDM需要先根据本地的私钥解密成SUPI。)。AUSF发201 Created响应,并把鉴权向量组返回给AMF。AMF给AUSF的请求消息:
(1)Request-uri是:/nausf-auth/v1/ue-authentications,是AUSF的鉴权服务入口。
参数包括SUCI和AMF的拜访地serving network name。AUSF回的201 created。主要参数有:
选择的鉴权算法authType:5G_AKA 表示UDM为UE选择的鉴权算法是5G AKA。
5g AuthData是鉴权参数组中的rand(随机数,要发给UE,用于UE计算鉴权结果)、autn(发给UE,用于UE对网络侧的鉴权)、hxresStar(发给AMF,用于AMF站在拜访地角度,比对鉴权结果。)
1.4 AMF向AUSF转发UE计算结果,AUSF进行鉴权比对
AMF站在拜访地角度对UE进行鉴权后(比对HRES*和HXRES*),再次调用AUSF的auth服务(PUT方法)将UE的计算结果RES*发给AUSF进行比对。AUSF比对成功后返回200 OK。AMF-->AUSF的PUT请求,主要参数有:
(1)request-uri:/nausf-auth/v1/ue-authentications/112233/5g-aka-confirmation。其中112233是authctxid
(2)res*:UE计算出的鉴权结果。
AUSF给AMF的响应参数包括
(1)authresult:鉴权结果。本例取值为success表示鉴权成功。
(2)Kseaf:用于密钥派生的Kseaf。
(3)supi:UDM解密后的SUPI,由AUSF发给AMF。
1.5 AMF对UE发起安全流程(加密和完整性保护)
AMF接下来可以对UE发起安全流程,用于NAS消息的加密和完整性保护(防止被篡改),对应的NAS消息是Security mode Command和Security mode Complete。
AMF-->UE的Security mode Command主要参数有:
(1)NAS security algorithms:网络侧选择的加密和完整性保护算法。本例取值是5G-EA0和128-5G-IA1
(2)UE security capability:UE的安全能力。其实也是之前从UE收到的。
(3)IMEISV request:AMF可以借此向UE要求提供IMEISV。
(4)ngKSI:NAS安全上下文标识。
UE-->AMF UE的Security mode Complete主要参数有:
(1)Security header type取值为4,表示带有新5G安全上下文和完保、加密的消息。
(2)Message authentication code:消息摘要码。用于完整性保护。
(3)5GS mobile identity:UE返回的IMEISV。
1.6 AMF根据SUPI查NRF得到UDM
AMF接下来要去到UDM中做注册登记(UECM服务)和获取签约数据(SDM服务)。因此,AMF调用NRF的Discovery服务,发起UDM的查询。用的是HTTP Get方法。NRF返回200 OK,包含了UDM的nfprofile。
Get请求中的主要参数包括:
(1)service-names=nudm-sdm,我要选择的网元是UDM,并支持SDM这个服务。
(2)requester-nf-type=AMF,请求者也就是我是谁?我是AMF。
(3)SUPI=imsi。这就是查询条件,拿SUPI来换UDM的nfprofile(网元档案)。
UDM返回的信息包括:
(1)所有网元的公共参数:validity Period(结果有效期)、nfInstances(网元实例名)、nfType(网元类型,本例为UDM)、nfStatus(注册状态)、priority(网元的优先级)、capacity(网元的静态容量值)、nfServices(UDM所支持的服务)
(2)UDM特有的参数udminfo:包括supirange(UDM支持的UE号段)、routing-indicator(UDM支持的Routing Indicator的范围)
1.7 AMF在UDM中做注册登记
AMF接下来要去到UDM中做注册登记(UECM服务)。在请求消息中,AMF需要提供自己的GUAMI和SUPI信息给UDM,从而完成AMF和UE的绑定(这种绑定关系登记在UDM里)。UDM检查如果AMF之前注册过,返回204 no content。如果没有,则返回201 created。AMF到UDM的PUT请求消息的主要参数:
(1) AMF的GUAMI、SUPI、amfInstanceId(AMF实例标识)、ims Over PS(AMF是否支持IMS的指示)、deregCallbackUri(AMF提供的用于接收后续通知的回调地址)、pei(可选登记UE的imei)等。
1.8 AMF从UDM获取am-data签约数据
AMF接下来要去到UDM中获取接入管理相关的签约数据即am-data(SDM服务)。
HTTP Get请求(AMF到UDM):Request-URI:/nudm-sdm/v1/imsi-4600x1112223333/am-data,HTTP响应200 OK(UDM到AMF)返回am-data,用于接入限制和移动性管理,包含以下主要参数。
(1)gpsis:用户的手机号
(2)nssai:UE签约的切片。可以有多个,并且包含一个缺省的nssai。
(3)subscribedUeAmbr:签约的UE-AMBR。分上下行。本例为下行1.2Gbps,上行125Mbps
(4)subsRegTimer:签约的周期性注册计时器,本例为3600秒。
(5)ueUsageType:用于DCN(dedicated core network)的选择(即eDECOR),本例取值为1。
(6)ratRestriction:RAT的限制,本例取值为EUTRA,表示禁止4G接入。
(7)areaRestrictions:区域限制,即不允许UE访问的TA。本例取值为SAR_NOT_ALLOWED_AREA,以及TAC1和TAC2不允许访问。
除此以外,AMF还要到UDM获取smf-select-data(用于接下来的PDU会话建立流程中SMF的选择,包括了SMF支持的切片和DNN等信息。am-data和smf-select-data都是UDM中的签约数据,消费者也都是AMF。AMF可以单独发两个Get请求去获取,也可以合并成一次Get请求获取。)
1.9 AMF根据GPSI查NRF得到PCF
AMF接下来可根据签约数据中的用户的手机号GPSI作为查询条件,查询NRF得到PCF的地址。 同样也是一对Get/200 OK消息。Get请求中的主要参数都在request-uri部分,多个参数用&分隔。消息中用gpsi的信息。具体消息举例:Get /nnrf-disc/v1/nf-instances?service-names=npcf-am-policy-control&target-nf-type=PCF&requester-nf-type=AMF&snssais=XXX&gpsi=msisdn-8613X55667788,NRF返回的200 OK消息主要参数包括:
(1)plmnList:PCF支持的PLMN列表。-sNssais:PCF所支持的切片。
(2)ipEndPoints:PCF的IP和端口号。
(3)pcfInfo:PCF网元所特有的参数。包括支持的DNN、支持的GPSI号段,还可以携带PCF的Rx接口的diameter主机名和realm(因为PCF和4G的PCRF是合设的。)
1.10 AMF从PCF获取am-policy(接入管理策略)
AMF接下来到PCF中获取am-policy也就是接入管理策略。PCF提供的接入管理策略,要比UDM中签约数据am-data中指定的接入管理策略优先级更高。也就是PCF提供的策略可以覆盖掉UDM的签约数据。因为签约数据是静态数据,PCF提供的策略则是根据时间(忙/闲时)、地点(忙/闲小区)、人物(VIP或普通)动态制定的。优先级理应更高。AMF通过调用PCF的npcf-am-policy-control服务获取am-policy,对应到一对消息:Post和201 Created。201响应中包含了JSON封装的接入管理策略。AMF发给PCF的Post请求主要参数:
(1)用户的SUPI和GSPI;-userLoc:用户的位置信息,包括TAC和NCGI;
(2)servingPlmn:AMF的服务PLMN;-ratType:当前的接入类型,这里取值NR。
(3)AMF的GUAMI。-servingNfId:服务网元的ID,这里是AMF的ID。
PCF给AMF回的201 Created消息中的主要参数有:
(1)servAreaRes:UE的服务区域限制,有没有不允许访问的区域。本例中为空值。即不受限。
(2)triggers:PCF向AMF订阅的触发条件。当条件发送,AMF需要向PCF报告并更新策略。这里的LOC_CH是指UE的位置发生变化,AMF需立即向PCF报告。
1.11 AMF给UE回注册接受
AMF最后给UE回注册接受消息,主要参数有分配的周期性更新计时器T3512、5G-GUTI、UE的注册区(TA列表)、允许的切片ID、网络侧的特性参数(如是否支持N26口、是否支持IMS等)等参数。