EAP-AKA 与 EAP-AKA' 移动网络认证协议详解:从 3GPP AKA 到 5G 安全增强
概述
EAP-AKA(Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement)是 IETF 定义的 EAP 认证方法之一,最初规范于 RFC 4187。该协议由 3GPP 开发,将 UMTS 的 AKA(Authentication and Key Agreement)机制封装到 EAP 框架中,使移动终端能够通过 WiFi、以太网等非 3G 网络进行认证。
随着 4G/5G 网络的部署,EAP-AKA 暴露出一些安全性问题。2021 年发布的 RFC 9048 定义了 EAP-AKA'(EAP-AKA Prime),作为 EAP-AKA 的改进版本,支持 4G 和 5G 部署,并提供更强的安全保证。
EAP-AKA 系列的核心设计目标:
- 复用现有移动网络基础设施:直接利用 USIM(UMTS Subscriber Identity Module)中的密钥和算法
- 支持身份隐私:通过 pseudonym 临时标识符隐藏 IMSI
- 快速重认证:减少反复与 HSS/AuC 通信的开销
- 网络名称绑定(EAP-AKA' 新增):防止密钥泄露后被其他网络滥用
AKA 认证向量
AKA 机制的核心是认证向量(Authentication Vector),由归属网络的 AuC(Authentication Center)生成并分发给 EAP-AKA 服务器:
认证向量 = (RAND, AUTN, XRES, CK, IK)| 字段 | 长度 | 用途 |
|---|---|---|
| RAND | 128 位 | 随机挑战数 |
| AUTN | 128 位 | 网络认证令牌 |
| XRES | 64-128 位 | 期望的响应值 |
| CK | 128 位 | 加密密钥 |
| IK | 128 位 | 完整性密钥 |
完整认证流程
EAP-AKA 的完整认证步骤
第 1 步:身份获取
EAP 请求方(Peer)向服务器发送身份标识。支持三种身份类型:
| 身份类型 | 说明 |
|---|---|
| IMSI | 永久用户标识(明文暴露风险) |
| Pseudonym | 临时标识符,由服务器分发生成 |
| Fast Re-authentication Identity | 快速重认证专用标识 |
服务器发送 EAP-Request/AKA-Challenge 消息:
AT_RAND: 随机挑战数(128 位)
AT_AUTN: 网络认证令牌(128 位)
AT_MAC: 消息认证码(覆盖上述属性)终端(USIM)验证 AUTN:
- 检查序列号 SQN 是否在合法窗口内
- 计算 MAC-S 并与 AT_MAC 比对
- 验证通过则返回 RES 和派生密钥
从 CK、IK 派生出 EAP 密钥材料:
Master Session Key (MSK) = KDF(IK || CK, "EAP-AKA", ...)
Extended MSK (EMSK) = 扩展密钥材料这些密钥可用于后续的上层安全协商(如 TLS 会话密钥)。
EAP-AKA' 的改进
EAP-AKA'(RFC 9048)在 EAP-AKA 基础上做了以下关键改进:
1. 网络名称绑定(Network Name Binding)
EAP-AKA' 引入 AT_KDF 和 AT_KDF_INPUT 属性,将派生密钥与访问网络的名称绑定:
CK' = KDF(CK, network_name, ...)
IK' = KDF(IK, network_name, ...)这防止了密钥泄露后被其他网络(恶意的或竞争对手的)滥用的风险。
2. 哈希算法升级
| 属性 | EAP-AKA | EAP-AKA' |
|---|---|---|
| 哈希函数 | SHA-1 / HMAC-SHA-1 | SHA-256 / HMAC-SHA-256 |
| MAC 长度 | 64 位(HMAC-SHA-1 截断) | 256 位(HMAC-SHA-256) |
EAP-AKA' 支持 5G 引入的新标识符格式,包括:
5G:格式的 NAI@ - SUPI(Subscription Permanent Identifier)的多种格式处理
- 基于 3GPP TS 33.501 和 TS 23.003 的标识管理
身份隐私保护
EAP-AKA 提供可选的身份隐私机制,避免每次认证都暴露 IMSI:
- Pseudonym 机制:服务器定期向终端发送加密的伪名
- Fast Re-authentication:使用派生身份进行快速重认证,无需再次联系 AuC
EAP-AKA' 的隐私增强:
- 改进了伪名和快速重认证标识的生成要求
- 在 5G 场景下,确保隐私友好的标识不会泄露可追踪的永久标识
快速重认证
当终端在短时间内重新接入时,EAP-AKA 支持快速重认证(Fast Re-authentication):
| 特性 | 完整认证 | 快速重认证 |
|---|---|---|
| 与 AuC 交互 | 是 | 否 |
| 认证向量来源 | HSS/AuC | 本地缓存 |
| 时间开销 | 高(网络往返) | 低(本地计算) |
| 安全性 | 高 | 中等(依赖之前的安全上下文) |
EAP-AKA' 的改进:明确定义了快速重认证场景下的会话标识符和导出参数,确保与完整认证的一致性。
安全性分析
EAP-AKA 已知风险
- 同步问题:序列号不同步会导致认证失败,需通过 AUTS 机制恢复
- 重放攻击:AUTN 中的 MAC 值防止重放,但需确保序列号更新机制正确
- 中间人攻击:如果攻击者能够拦截并重放认证向量,可能绕过认证
- 密钥泄露扩散:CK/IK 可能被分发给拜访网络的节点,存在泄露风险
EAP-AKA' 的安全增强
根据 RFC 9048,EAP-AKA' 提供了以下安全改进:
| 安全属性 | EAP-AKA | EAP-AKA' |
|---|---|---|
| 抵抗降级攻击 | 弱 | 通过 AT_BIDDING 属性防御 |
| 密钥绑定 | 无 | 绑定到网络名称 |
| 哈希强度 | SHA-1(已知弱点) | SHA-256 |
| MAC 长度 | 64 位 | 128 位或更长 |
| 5G 兼容 | 不支持 | 原生支持 |
AT_BIDDING 属性防止中间人将 EAP-AKA' 降级为 EAP-AKA。双方会在握手过程中交换能力列表,如果发现对方都支持更强算法但被降级,应中止认证。5G 部署适配
EAP-AKA' 是 5G 非公开网络(NPN)和公共网络漫游的主要认证机制之一:
5G EAP-AKA' 认证流程要点:
1. UE 发送包含 5G-NAI 的 EAP-Response/Identity
2. AMF(访问和管理功能)转发给 5GC(5G 核心网)
3. AUSF(认证服务器功能)查询 UDM(统一数据管理)获取认证向量
4. EAP-AKA' 完成双向认证和密钥协商
5. 派生的 5G 密钥用于 NAS 和 RRC 层加密关键 3GPP 标准引用:
- TS 33.501:5G 安全架构
- TS 33.402:3GPP 安全架构中的 EAP 应用
- TS 23.003:编号、寻址和维护
国密场景下的适配
EAP-AKA 和 EAP-AKA' 都基于 3GPP 国际标准,使用国际算法(Milenage、TUAK)。在国密场景中,可考虑以下替代或补充方案:
- SM2 身份认证:使用 SM2 数字签名替代 AKA 挑战-响应
- GM/T 0127-2023:移动终端密码模块接口规范
- 国密 TLS 扩展:结合 GM/T 0024 的客户端认证机制
相关实践
- PEAP/TTLS 隧道认证 - 隧道型 EAP 对比
- EAP-TLS 企业无线认证 - 证书-based 认证
参考
- RFC 4187 - EAP-AKA 原始规范
- RFC 9048 - EAP-AKA' 改进规范(更新 RFC 4187 和 RFC 5448)
- 3GPP TS 33.102 - UMTS 安全架构
- 3GPP TS 33.501 - 5G 安全架构
- RFC 3748 - EAP 基础框架
- GM/T 0127-2023 - 国密移动密码模块规范
- GM/T 0024-2023 - 国密 TLS 协议