一文搞懂AKA鉴权过程-3GPP知识更新阅读系4-互通的安全性(Security of interworking)
1、 Authentication procedure for 5G AKA
1.1、认证的启动和认证方法的选择
身份验证过程的启动和身份验证方法的选择
根据 SEAF 的策略,SEAF 可以在与 UE 建立信令连接的任何过程中启动对 UE 的认证。UE 应在注册请求中使用 SUCI 或 5G-GUTI,SEAF 启动认证过程。
1. SEAF 发起认证请求:
-
当 SEAF 想要启动认证时,它会向 AUSF(认证服务器功能)发送 Nausf_UEAuthentication_Authenticate Request 消息,以调用 Nausf_UEAuthentication 服务。
-
该消息包含以下内容:
-
SUCI(订阅用户标识符)或 SUPI(用户永久标识符)
-
服务网络名称
-
如果 SEAF 拥有有效的 5G-GUTI 并重新认证 UE,则在该消息中包含 SUPI;否则包含 SUCI。
2. AUSF 检查服务网络名称:
-
AUSF 接收到请求消息后,会检查请求的 SEAF 是否有权使用服务网络名称,方法是将其与预期的服务网络名称进行比较。
-
AUSF 会临时存储接收到的服务网络名称。
-
如果服务网络未被授权使用该服务网络名称,AUSF 会在 Nausf_UEAuthentication_Authenticate Response 消息中以 "serving network not authorized" 进行回应。
3. AUSF 向 UDM 请求认证信息:
-
AUSF 向 UDM(统一数据管理)发送 Nudm_UEAuthentication_Get Request 消息,其中包含以下信息:
-
SUCI 或 SUPI
-
服务网络名称
4. UDM 处理请求:
-
UDM 接收到请求后,如果收到 SUCI,会调用 SIDF(订阅标识解析功能)对 SUCI 进行解密,以获得 SUPI。
-
基于 SUPI,UDM/ARPF(认证凭证检索功能)会选择认证方法。
1.2、5G AKA
5G AKA 通过为归属网络提供来自访问网络的用户设备(UE)成功认证的证明,增强了 EPS AKA。该证明由访问网络通过认证确认消息发送。
5G AKA的身份验证过程
(1)对于每个 Nudm_Authenticate_Get 请求,UDM/ARPF 应创建一个 5G HE AV(认证向量)
-
生成 AV 并设置 AMF 分离位:
-
UDM/ARPF生成一个AV(认证向量),并将其Authentication Management Field(AMF,认证管理字段)分离位置为 "1",这符合TS 33.102 中的定义。
-
推导 KAUSF:
-
UDM/ARPF 按照附录TS33.501中A.2的规定推导出 KAUSF(匿名用户安全功能密钥)。
-
计算 XRES*:
-
UDM/ARPF按照附录TS33.501 A.4 的规定计算出XRES*(预期响应*)。
-
创建 5G HE AV:
-
最后,UDM/ARPF 利用 RAND(随机挑战数)、AUTN(认证令牌)、XRES* 和 KAUSF 创建一个 5G HE AV。
(2)然后,UDM将在Nudm_UEAuthentication_Get响应中将5G HE AV连同5G HE AV用于5G-AKA的指示一起返回给AUSF。如果将SUCI包含在Nudm_UEAuthentication_Get请求中,则UDM会将SUPI包含在Nudm_UEAuthentication_Get响应中;
5G HE AV:5G Home Environment Authentication Vector,5G HE AV认证向量,是由UDM/ARPF生成并发送给AUSF的认证向量,包括RAND(随机数)、AUTN(认证令牌)、XRES*(预期响应)和KAUSF(密钥)。
说明:
-
AUSF:Authentication Server Function,认证服务器功能,是5G网络中负责处理认证请求的部分。
-
UDM/ARPF:User Data Management / Authentication Credential Repository and Processing Function,用户数据管理/认证凭据仓库和处理功能,它负责生成和存储用户的认证向量。
-
5G HE AV:5G Home Environment Authentication Vector,5G HE AV境认证向量,是由UDM/ARPF生成并发送给AUSF的认证向量,包括RAND(随机数)、AUTN(认证令牌)、XRES*(预期响应)和KAUSF(密钥)。
-
KAUSF:是5G HE AV中的一个密钥。
(3)AUSF应将XRES *与收到的SUCI或SUPI一起临时存储;
(4)AUSF 应从 UDM/ARPF 接收的 5G HE AV 计算 5G AV,通过根据附录 (33.501)A.5 从 XRES* 计算 HXRES*,根据附录(33.501) A.6 从 KAUSF 计算 KSEAF,并用 HXRES* 替换 XRES*,用 KSEAF 替换 KAUSF 中的 5G HE AV。
5G AV(5G Authentication Vector,5G认证向量)是由AUSF从5G HE AV计算得出的认证向量,在5G网络中进行身份验证和密钥协商的一个重要步骤。5G AV包含以下参数:
-
RAND:是随机数,它是由 AUSF 生成的一个随机值,用于防止重放攻击。
-
AUTN:是认证令牌,它是由 AUSF 生成的一个值,用于证明 AUSF 的身份和鲜活性。
-
HXRES*:预期响应的哈希值,由AUSF根据附录(33.501)A.5从XRES*计算出来。
-
KSEAF:会话密钥,由AUSF根据附录(33.501)A.6从KAUSF计算出来。
(5)AUSF 应该删除 KSEAF,并将 5G SE AV (RAND, AUTN, HXRES*) 返回给 SEAF,作为 Nausf_UEAuthentication_Authenticate 响应。
-
KSEAF 是 SEAF 密钥,它是由 AUSF 生成的对称密钥,用于加密和解密 5G SE AV。
-
5G SE AV 是 5G 会话和服务认证向量,它是由 AUSF 生成的一组参数,用于验证用户和网络之间的会话和服务。
-
RAND 是随机数,它是由 AUSF 生成的一个随机值,用于防止重放攻击。
-
AUTN 是认证令牌,它是由 AUSF 生成的一个值,用于证明 AUSF 的身份和鲜活性。
-
HXRES* 是预期响应,它是由 AUSF 生成的一个值,用于与用户设备计算的响应进行比较,以验证用户的身份。
-
SEAF 是会话和服务认证功能,它是 5G 网络中负责协调用户和网络之间的会话和服务认证的实体。
-
Nausf_UEAuthentication_Authenticate 响应是 AUSF 发送给 SEAF 的一个消息,用于传递 5G SE AV。
(6)SEAF 应在 NAS 消息认证请求中向 UE 发送 RAND 和 AUTN。该消息还应包括 ngKSI,AMF 和 UE 将使用 ngKSI 来标识 KAMF 以及如果认证成功则创建的部分本地安全上下文。该消息还应包括 ABBA 参数。SEAF 应根据(33.501)附录 A.7.1 设置 ABBA 参数。ME 应将在 NAS 消息认证请求中收到的 RAND 和 AUTN 转发给 USIM。
-
SEAF 向 UE 发送 NAS 消息认证请求,该消息包含 RAND、AUTN、ngKSI 和 ABBA 参数。
-
ME 将 RAND 和 AUTN 转发给 USIM。
-
USIM 使用其存储的密钥计算认证响应 RES。
-
ME 将 RES 发送给 SEAF。
-
SEAF 将 RES 与 HXRES* 进行比较,如果匹配则认证成功。
-
KAMF(接入和移动性管理功能密钥):用于保护 NAS 信令的密钥。
-
ABBA 参数:用于防止重放攻击的参数。
(7)当收到 RAND 和 AUTN 时,USIM 应该根据 TS 33.102 中的描述,通过检查 AUTN 是否可以被接受来验证 5G AV 的新鲜度。如果可以,USIM 计算出一个响应 RES。USIM 应该将 RES、CK、IK 返回给 ME。如果 USIM 使用 TS 33.102 中描述的转换函数 c3 从 CK 和 IK 计算出一个 Kc(即 GPRS Kc),并将其发送给 ME,那么 ME 应该忽略这样的 GPRS Kc,并且不在 USIM 或 ME 上存储 GPRS Kc。ME 然后应该根据附录 A.4 从 RES 计算出 RES*。ME 应该根据(33.501)第 A.2 条从 CK||IK 计算出 KAUSF。ME 应该根据(33.501)第 A.6 条从 KAUSF 计算出 KSEAF。访问 5G 的 ME 在认证过程中应该检查 AUTN 的 AMF(Authentication Management Field) 字段中的“分离位”是否设置为 1。“分离位”是 AUTN 的 AMF (Authentication Management Field)字段的第 0 位。
字段在解释(重复出现只是为了加强印象)
-
USIM:Universal Subscriber Identity Module,通用用户识别模块,是一种智能卡,用于存储移动用户的身份信息和相关密钥。
-
RAND:Random Challenge,随机挑战,是一种用于认证的随机数,由网络生成并发送给 USIM。
-
AUTN:Authentication Token,认证令牌,是一种用于认证的数据,由网络生成并发送给 USIM,包含序列号、鉴别码和消息认证码等信息。
-
5G AV:5G Authentication Vector,5G 认证向量,是一种用于 5G 认证的数据集合,由网络生成并发送给 USIM,包含 RAND、AUTN、RES、CK 和 IK 等信息。
-
RES:Response,响应,是一种用于认证的数据,由 USIM 根据 RAND 和 AUTN 计算并返回给 ME。
-
CK:Cipher Key,加密密钥,是一种用于加密通信数据的密钥,由 USIM 根据 RAND 和 AUTN 计算并返回给 ME。
-
IK:Integrity Key,完整性密钥,是一种用于保证通信数据完整性的密钥,由 USIM 根据 RAND 和 AUTN 计算并返回给 ME。
-
ME:Mobile Equipment,移动设备,是一种用于接入移动网络的设备,如手机、平板电脑等。
-
GPRS Kc:GPRS Cipher Key,GPRS 加密密钥,是一种用于 GPRS 网络加密通信数据的密钥,由 USIM 根据 CK 和 IK 计算并发送给 ME,但在 5G 网络中不使用。
-
RES*:Response Star,响应星,是一种用于 5G 认证的数据,由 ME 根据 RES 计算并发送给网络,用于与网络的 RES 进行比较。
-
KAUSF:Key for AUSF,AUSF 的密钥,是一种用于 5G 认证的密钥,由 ME 根据 CK 和 IK 计算并存储,用于与 AUSF 通信。
-
KSEAF:Key for SEAF,SEAF 的密钥,是一种用于 5G 认证的密钥,由 ME 根据 KAUSF 计算并存储,用于与 SEAF 通信。
-
AMF:Authentication Management Field,认证管理字段,是一种用于认证的数据,由网络生成并发送给 USIM,包含在 AUTN 中,用于指示认证的类型和参数。
-
AUSF:Authentication Server Function,认证服务器功能,是一种用于 5G 认证的网络实体,负责生成和验证 5G AV,与 ME 和 SEAF 通信。
-
SEAF:Security Anchor Function,安全锚功能,是一种用于 5G 认证的网络实体,负责转发和验证 RES*,与 ME 和 AUSF 通信(一般是通信网元AMF。
(8)UE应在NAS消息鉴权响应中向SEAF返回RES*。
-
UE是用户设备的缩写,是5G网络中的终端设备,如智能手机、平板电脑等。
-
SEAF是安全锚点功能的缩写,是AMF中的一个子功能,负责与UE进行NAS层的安全协商和保护。
-
NAS是非接入层的缩写,是5G网络中用于传输控制信令的层次,如注册、鉴权、会话管理等。
-
鉴权响应是UE对SEAF发起的鉴权请求的回复,包含UE计算出的鉴权结果。
(9)SEAF随后应根据(33.501)Annex A.5计算HRES*,并且SEAF应比较HRES_和HXRES*_。如果它们一致,SEAF应从服务网络的角度视身份验证为成功。如果不一致,SEAF应按照描述进行处理。如果无法联系到UE,并且SEAF从未收到RES*,SEAF应将身份验证视为失败,并向AUSF指示失败。
处理过程:
-
SEAF必须根据附件(33.501)A.5从RES *计算HRES *,并且SEAF必须比较HRES *和HXRES *。如果它们不一致,则SEAF将认为认证不成功。
-
SEAF 应继续进行上图的步骤 10,并在上图中的步骤12中收到来自 AUSF 的 Nausf_UEAuthentication_Authenticate 响应消息后,按照以下步骤进行:
如果AUSF在Nausf_UEAuthentication_Authenticate Response消息中向SEAF指示在AUSF中RES*的验证不成功,或如果在SEAF中RES*的验证不成功,
- 如果 UE 在初始 NAS 消息中使用了 SUCI,则 SEAF 应通过向 UE 发送 Authentication Reject 来拒绝认证。
- 如果 UE 在初始 NAS 消息中使用了 5G-GUTI 来检索 SUCI,则 SEAF/AMF 应启动与 UE 的 Identification 流程,并可以启动额外的认证尝试。
(10)SEAF 应在 Nausf_UEAuthentication_Authenticate 请求消息中将从 UE 收到的 RES* 发送给 AUSF。
(11)当 AUSF 收到包含 RES 的 Nausf_UEAuthentication_Authenticate Request 消息作为认证确认时,它可能会验证 AV 是否已过期。如果 AV 已过期,AUSF 可能会认为从归属网络的角度来看认证是不成功的。认证成功后,AUSF 将存储 KAUSF。AUSF 应将收到的 RES *与存储的XRES *进行比较进行比较。如果 RES* 和 XRES* 相等,AUSF 应认为从归属网络的角度来看认证是成功的。AUSF 应将认证结果通知 UDM。
(12)AUSF应在Nausf_UEAuthentication_Authenticate Response中向SEAF表明从归属网络的角度来看认证是否成功。如果验证成功,则应在Nausf_UEAuthentication_Authenticate Response中将KSEAF发送到SEAF。如果AUSF在认证请求中从SEAF收到SUCI,并且如果认证成功,则AUSF还应在Nausf_UEAuthentication_Authenticate Response消息中包括SUPI。
-
Nausf_UEAuthentication_Authenticate是AUSF提供的一种网络服务操作,它允许SEAF向AUSF发送认证请求,并从AUSF接收认证响应。
-
KSEAF是SEAF主密钥,它是由AUSF根据UE的SUPI和服务网络名称计算出来的,用于派生其他密钥。
-
SUCI是加密的SUPI,它是UE的永久标识符,用于保护UE的隐私。
-
SUPI是订阅者永久标识符,它是UE的唯一标识符,由MCC(移动国家码)、MNC(移动网络码)和MSIN(移动用户识别号)组成。
如果认证成功,在 Nausf_UEAuthentication_Authenticate 响应消息中收到的密钥 KSEAF 然后,SEAF 应根据(33.501)附录 A.7 从 KSEAF、ABBA 参数和 SUPI 派生出 KAMF。SEAF 应向 AMF 提供 ngKSI 和 KAMF。
如果此认证使用了 SUCI,则 SEAF 应仅在收到包含 SUPI 的 Nausf_UEAuthentication_Authenticate 响应消息后才向 AMF 提供 ngKSI 和 KAMF;在服务网络知道 SUPI 之前,不会向 UE 提供任何通信服务。
AUSF 在认证后采取的进一步步骤在本文件的第 1.6小节中描述(1.6待续)。
1.3、KAUSF****推导过程
在以下两种情况下,从 CK(密钥协商密钥)、IK(完整性密钥)和服务网络名称推导 KAUSF(匿名用户安全功能密钥)时,应使用以下参数构成 KDF(密钥派生函数)的输入S:
生成认证向量时:
- UDM/ARPF(统一数据管理/认证凭证检索功能)在生成认证向量时需要推导 KAUSF。
- UE 在 5G AKA过程中计算 KAUSF:
- 用户设备(UE)在进行 5G AKA 认证过程中也需要计算 KAUSF。
具体参数如下:
-
CK(密钥协商密钥)
-
IK(完整性密钥)
-
服务网络名称(serving network name)
这些参数将被组合成特定格式,作为 KDF 的输入S,用于推导 KAUSF。
KDF 是一种密码学算法,用于从一个或多个密钥派生出新的密钥。在5G认证过程中,KDF用于从CK和IK派生出 KAUSF,以确保认证的安全性和保密性。
1.5、XRES*推导过程
在从UE的RES、RAND和服务网络名称中派生RES*,以及从ARPF的XRES、RAND和服务网络名称中派生XRES*时,应使用以下参数形成输入S以供KDF使用:
- 在 UE 中推导 RES*
- 用户设备(UE)在 5G AKA 认证过程中需要计算 RES*。
- 在 ARPF 中推导 XRES*
- ARPF(认证凭证检索功能)在生成认证向量时需要推导 XRES*。
具体参数如下:
-
RES 或 XRES
-
RAND
-
服务网络名称
![]()
1.6、Linking authentication confirmation to Nudm_UECM_Registration procedure from AMF待续

浙公网安备 33010602011771号