Authentication — 認証(5G-AKA / EAP-AKA')¶
学習目標¶
このページを読み終えると、次のことができるようになります。
- Why(なぜ認証が必要か)を、なりすまし防止・課金の正当性・通信保護の土台として説明できる。
- 相互認証(ネットワークもUEを、UEもネットワークを確認する)という 5G-AKA / EAP-AKA' の本質を説明できる。
- 5G-AKA と EAP-AKA' の 2 方式の 違い(メッセージ構造・往復・EAP框組みの有無)を説明できる。
- 2 方式それぞれの Call Flow を、UE(USIM) / SEAF(AMF) / AUSF / UDM(ARPF) の登場順に追える。
- SUCI→SUPI の復号(de-concealment) が どこで・誰によって(UDM/SIDF) 行われるかを説明できる。
- 認証ベクトル(AV)生成 → RES*/XRES*・HRES*/HXRES*照合 → KAUSF/KSEAF導出 の各ステップを追える。
- MAC failure / Synch failure(SQN同期外れ) / RES*不一致 の 3 大失敗を切り分け、AUTS 再同期を説明できる。
前提知識¶
先に以下を理解しておくとスムーズです。まだの人は カリキュラム から始めてください。
- Registration の全体像(認証は登録手順の一部として概説済み) → Initial Registration
- SUCI / SUPI(本名SUPIと、それを秘匿したSUCI) → Registration の Basic Concept
- NAS / N1(UE⇔AMF の制御メッセージを運ぶ層) → N1
- 認証に関わるNFの役割 → AMF / AUSF / UDM
この章で学べること¶
本章は 一次認証(Primary Authentication)そのもの に焦点を絞ります。すなわち 5G-AKA と EAP-AKA' の 2 方式について、メッセージ往復の詳細・鍵導出の各ステップ・失敗と再同期を精密に扱います。
- 認証の概要・登録全体の中での位置づけは Registration 章 を、
- 鍵階層(Key Hierarchy)の全体図は AUSF の鍵階層 を参照してください(本章では重複を避け、手順の中の鍵導出に集中します)。
なお、二次認証(Secondary Authentication、外部DNとのPDUセッション単位の認証)は本章の範囲外です(Next Step 参照)。
Why — なぜ認証が必要なのか¶
Why(なぜ必要か)から始めます。 ネットワークが端末を無条件に受け入れると、次の問題が起きます。
- なりすまし — 他人の契約になりすまして通信・課金を横取りされる。
- 課金の不正 — 誰が使ったか確定できず、正しく課金できない。
- 通信保護の土台が無い — 暗号化・完全性保護に使う共有鍵が確立できない。
認証(Authentication)は「この端末は本当に契約者本人か」を暗号技術で確かめ、同時に以降の通信を守る鍵を合意する手続きです。5G の認証は一方通行ではなく 相互認証(mutual authentication) である点が重要です。
- ネットワーク → UE: UEが正規の契約者か確認する(レスポンス RES* の照合)。
- UE → ネットワーク: 接続先が偽基地局(なりすまし網)でないか確認する(AUTN の検証)。
例え話: 銀行のキャッシュカード
5G の認証は銀行のATM取引に似ています。 ・キャッシュカード = USIM(正規の持ち主であることの証) ・暗証番号 = 共有秘密鍵 K(本人しか知らない秘密) ・ATMの正当性確認 = UEがネットワークを確認する部分(AUTN検証)。偽ATM(偽基地局)に暗証番号を入力しないよう、UE側も相手を確かめます。 どちらか一方だけの確認では不十分で、双方が相手を確かめる(相互認証)からこそ安全に取引(通信)できます。
Overview — 概要¶
一次認証は、次の三者の関係で成り立ちます。
- AMF(SEAF) — 認証の 起点。UEに一番近く、認証をトリガし、UEとチャレンジ/レスポンスをやり取りする。SEAF(Security Anchor Function)はAMFに同居。
- AUSF — 認証の サーバ。UDMとAMFの間に立ち、レスポンスを検証し、アンカー鍵 KSEAF を導出する。
- UDM(ARPF/SIDF) — 認証情報の 源泉。永続鍵Kを持つ ARPF が認証ベクトル(AV)を生成し、SIDF が SUCI→SUPI を復号する。
flowchart LR
UE([UE / USIM]) -->|"1.認証トリガ(SUCI)"| AMF["AMF / SEAF"]
AMF -->|"2.認証要求 (N12)"| AUSF[AUSF]
AUSF -->|"3.AV要求 (N13)"| UDM["UDM (ARPF / SIDF)"]
UDM -->|"4.SUCI復号 + AV生成"| AUSF
AUSF -->|"5.RAND/AUTN"| AMF
AMF -->|"6.チャレンジ/レスポンス"| UE
Basic Concept — 初心者向け説明¶
一次認証の核は AKA = Authentication and Key Agreement(認証と鍵合意)です。名前の通り「認証(本人確認)」と「鍵合意(共有鍵の確立)」を同時に行います。
1. 共有秘密鍵 K とチャレンジ・レスポンス¶
- 共有秘密鍵 K — USIM(UE側)とネットワーク側の ARPF(UDMに論理的に属する)だけが持つ長期鍵。電波には絶対に流れません。
- チャレンジ・レスポンス — ネットワークが乱数 RAND(お題)を送り、UEが K を使って計算した答え RES* を返す方式。K を知らなければ正しい答えは作れないため、本人確認になります。
2. 相互認証(双方向の確認)¶
- ネットワークは UE を確認する(RES* を XRES* と照合)。
- UE はネットワークを確認する(AUTN = Authentication Token を USIM が検証)。AUTN には MAC(改ざん検知)と SQN(シーケンス番号)が含まれ、正規網でなければ作れません。
3. 鍵合意(KAUSF → KSEAF)¶
認証が成功すると、同じ AKA 演算から両側で同じ鍵が導出されます。この鍵が上位鍵 KAUSF → KSEAF → KAMF → … と派生し、NAS/AS の暗号化・完全性保護に使われます(階層の全体像は AUSF の鍵階層)。
4. SUCI / SUPI / SIDF(誰が本名を復号するか)¶
- SUPI — 加入者の本名(IMSI相当)。電波に平文で載せてはいけない。
- SUCI — SUPI をホームネットワーク公開鍵で暗号化して隠したもの。電波に載せてよい。
- SIDF (Subscription Identifier De-concealing Function) — SUCI を ホームネットワーク秘密鍵で復号し SUPI に戻す機能。UDM に属し、秘密鍵を扱えるのは SIDF だけです(TS 33.501 §6.12.2)。
なぜ復号がホーム(UDM/SIDF)側なのか
SUCI の復号にはホームネットワークの秘密鍵が要ります。この秘密鍵を訪問先(AMF)やAUSFに配ると漏洩リスクが上がります。そこで復号はホームのUDM内SIDFだけが行い、AMF/AUSFは本名SUPIを「必要になった時にUDMから受け取る」形にして、秘密鍵を外に出しません。
Architecture¶
一次認証に関わる機能要素と、それらを結ぶInterfaceです。SIDF が SUCI復号を担う点、AVをARPFが生成する点がこの章の主役です。
flowchart LR
subgraph UEside["UE"]
USIM["USIM
(K を保持)"]
end
subgraph Serving["Serving / 訪問先網"]
SEAF["AMF / SEAF"]
end
subgraph Home["Home / ホーム網"]
AUSF["AUSF
(KAUSF/KSEAF 導出)"]
UDM["UDM"]
ARPF["ARPF
(K保持・AV生成)"]
SIDF["SIDF
(SUCI→SUPI 復号)"]
end
USIM -- "N1 (NAS)" --> SEAF
SEAF -- "N12 (Nausf)" --> AUSF
AUSF -- "N13 (Nudm)" --> UDM
UDM --- ARPF
UDM --- SIDF
- USIM — 共有鍵 K を保持。AUTN検証・RES算出を行う耐タンパなカード。
- AMF / SEAF — 認証の起点。UEとチャレンジ/レスポンスをNASで往復し、HRES*照合とKSEAF受領を行う。
- AUSF — レスポンス検証とKAUSF/KSEAF導出。UDMとAMFの中継。
- UDM / ARPF / SIDF — ARPFがAV生成、SIDFがSUCI復号。認証情報の源泉。
詳細な鍵階層図は重複を避け AUSF の鍵階層 に集約しています。本章は「手順の中で、どのステップでどの鍵が生まれるか」に集中します。
Network Function(登場NF)¶
| NF | この手順での役割 | 保持/取得する情報 | この手順で使う主なAPI | 障害時の影響 |
|---|---|---|---|---|
| UE / USIM | AUTN検証(網の正当性確認)、K を使い RES/RES* を算出 | K, OPc, SQN(UE側カウンタ) | (NAS: Authentication Request/Response) | 認証応答できず登録不可 |
| AMF / SEAF | 認証の起点・NAS往復・HRES*照合・KSEAF受領・ABBA付与 | ngKSI, ABBA, RAND/AUTN(中継), KSEAF | Nausf_UEAuthentication_Authenticate(消費) | 認証を開始/完了できず登録が進まない |
| AUSF | RES*とXRES*照合・KAUSF/KSEAF導出・方式(5G-AKA/EAP)の実行 | KAUSF, KSEAF, XRES*(一時) | Nausf_UEAuthentication(提供)/Nudm_UEAuthentication_Get(消費) | 認証が成立せず登録不可 |
| UDM(ARPF/SIDF) | SIDFがSUCI復号・ARPFがAV生成・認証方式の選択 | K, OPc, SQN(網側), HN秘密鍵, SUPI | Nudm_UEAuthentication_Get(提供) | AV生成/SUCI復号不可で認証全滅 |
Interface / Protocol¶
この手順で使うInterfaceとProtocolです。
| Interface | Protocol | Transport | この手順での用途 |
|---|---|---|---|
| N1 | NAS(5GMM) | (NGAP/N2上でトンネル) | UE⇔AMF の Authentication Request/Response/Failure/Result |
| N12 | SBI(HTTP/2, TLS, JSON) | TCP/TLS | AMF(SEAF)⇔AUSF(Nausf_UEAuthentication) |
| N13 | SBI(HTTP/2, TLS, JSON) | TCP/TLS | AUSF⇔UDM(Nudm_UEAuthentication_Get, SUCI復号・AV取得) |
Protocolの詳細は Protocol辞典、Interface一覧は Interface辞典 を参照してください。個別ページは N12(AMF⇔AUSF)/ N13(AUSF⇔UDM)をどうぞ。
Procedure — Call Flow¶
このページの心臓部です。 一次認証には 2 方式があり、どちらを使うかは UDM が選択します(SUCI/SUPI と加入者データに基づく。TS 33.501 §6.1.2)。AMF(SEAF) は Nausf に対して方式を指定せず、UDM の決定に従います。
方式選択は UDM が行う
AMF は「認証してほしい」と要求するだけで、5G-AKA と EAP-AKA' のどちらを使うかを決めるのは UDM(ARPF) です。UDM は Nudm_UEAuthentication_Get の応答で、生成した AV とともに選択した方式を AUSF へ返します(TS 33.501 §6.1.2 / §6.1.3)。
(A) 5G-AKA の Call Flow¶
sequenceDiagram
autonumber
participant UE as UE / USIM
participant SEAF as AMF / SEAF
participant AUSF
participant UDM as UDM (ARPF / SIDF)
Note over UE,SEAF: 認証トリガ(SUCI or SUPI が確定済み)
SEAF->>AUSF: Nausf_UEAuthentication_Authenticate
(SUCI or SUPI, SN-name)
Note right of SEAF: TS 33.501 §6.1.2
AUSF->>UDM: Nudm_UEAuthentication_Get
(SUCI or SUPI, SN-name)
Note right of UDM: SUCI なら SIDF が SUPI へ復号
TS 33.501 §6.12.2
Note right of UDM: ARPF が方式=5G-AKA を選択し
HE AV(RAND,AUTN,XRES*,KAUSF) 生成
TS 33.501 §6.1.3.2
UDM-->>AUSF: 5G HE AV (RAND, AUTN, XRES*, KAUSF) + SUPI
Note right of AUSF: AUSF が XRES* から HXRES*、
KAUSF から KSEAF を導出→SE AV へ
AUSF-->>SEAF: 5G SE AV (RAND, AUTN, HXRES*)
SEAF->>UE: Authentication Request (NAS: RAND, AUTN, ngKSI, ABBA)
Note right of UE: USIM が AUTN(MAC/SQN)検証→
RES 算出→ME(UE) が RES* を生成
UE->>SEAF: Authentication Response (NAS: RES*)
Note right of SEAF: SEAF が RES* から HRES* を計算し
HXRES* と照合(一次チェック)
SEAF->>AUSF: Nausf_UEAuthentication_Authenticate (RES*)
Note right of AUSF: AUSF が RES* と XRES* を照合(最終判定)
TS 33.501 §6.1.3.2
AUSF-->>SEAF: 認証結果 (成功) + KSEAF
Note over UE,AUSF: 成功→KSEAF確立→KAMF導出へ
ステップ解説(番号は上図に対応)¶
- SEAF→AUSF: Nausf_UEAuthentication_Authenticate で認証開始。SUCI(初回) または SUPI(GUTI既知時) と SN-name(Serving Network名)を渡す。
- AUSF→UDM: Nudm_UEAuthentication_Get を発行。
- (UDM内)SUCI復号: SUCIで来た場合、SIDF がホーム秘密鍵で SUPI へ復号(TS 33.501 §6.12.2)。
- (UDM内)AV生成: ARPF が方式(5G-AKA)を選び、5G HE AV = RAND, AUTN, XRES*, KAUSF を生成(TS 33.501 §6.1.3.2)。
- UDM→AUSF: HE AV と SUPI を返す。
- (AUSF内)導出: AUSF が XRES*→HXRES* と KAUSF→KSEAF を計算し、5G SE AV = RAND, AUTN, HXRES* を作る(KSEAFはこの時点では保持し、成功後に渡す)。
- AUSF→SEAF: SE AV(RAND, AUTN, HXRES*) を渡す。
- SEAF→UE: Authentication Request(NAS)。RAND, AUTN に加え ngKSI(鍵セット識別子)と ABBA(下位互換防御パラメータ)を含む。
- (USIM内)検証と算出: USIM が AUTN の MAC と SQN を検証(網の正当性確認)。OKなら RES を算出し、RES* を生成。
- UE→SEAF: Authentication Response(NAS: RES*)。
- (SEAF内)一次照合: SEAF が RES*→HRES* を計算し HXRES* と照合。ここで違えば SEAF が拒否できる(往復削減のための前段チェック)。
- SEAF→AUSF: RES* を送り最終検証を依頼。
- (AUSF内)最終照合: AUSF が RES* と XRES* を照合(TS 33.501 §6.1.3.2)。
- AUSF→SEAF: 成功なら KSEAF を返す。SEAF はここから KAMF を導出し、以降の NAS セキュリティ確立へ進む。
RES* と HXRES* の二段照合はなぜ?
SEAF の HRES*/HXRES* 照合は「訪問先で素早く弾く」ための一次チェック、AUSF の RES*/XRES* 照合が「ホームによる最終判定」です。二段構えにすることで、明らかに不正なレスポンスは訪問先で早期棄却しつつ、成否の最終権限はホーム(AUSF)に残します(TS 33.501 §6.1.3.2)。
(B) EAP-AKA' の Call Flow¶
EAP-AKA' は EAP(Extensible Authentication Protocol) 框組みの上で AKA' を実行します。AUSF が EAP サーバ、UE が EAP ピアとして振る舞い、AMF(SEAF) は EAP メッセージを NAS で中継するだけ(passthrough)です(TS 33.501 §6.1.3.1 / RFC 5448)。
sequenceDiagram
autonumber
participant UE as UE / USIM (EAP peer)
participant SEAF as AMF / SEAF (passthrough)
participant AUSF as AUSF (EAP server)
participant UDM as UDM (ARPF / SIDF)
SEAF->>AUSF: Nausf_UEAuthentication_Authenticate (SUCI/SUPI, SN-name)
AUSF->>UDM: Nudm_UEAuthentication_Get (SUCI/SUPI, SN-name)
Note right of UDM: SIDF が SUCI 復号 / ARPF が方式=EAP-AKA' を選択
AV(RAND,AUTN,XRES,CK',IK') 生成
TS 33.501 §6.1.3.1
UDM-->>AUSF: EAP-AKA' AV + SUPI
AUSF-->>SEAF: EAP-Request/AKA'-Challenge (RAND, AUTN, MAC)
SEAF->>UE: Authentication Request (NAS に EAP をカプセル化)
Note right of UE: USIM が AUTN 検証→RES 算出→MAC 計算
UE->>SEAF: Authentication Response (NAS に EAP)
SEAF->>AUSF: EAP-Response/AKA'-Challenge (RES, MAC)
Note right of AUSF: AUSF が RES と XRES、MAC を照合
成功なら KAUSF→KSEAF 導出
AUSF-->>SEAF: EAP-Success + KSEAF
SEAF->>UE: Authentication Result (NAS: EAP-Success)
Note over UE,AUSF: 成功→KSEAF確立
ステップ解説(番号は上図に対応)¶
1-2. SEAF→AUSF→UDM は 5G-AKA と同じ入口(Nausf → Nudm_UEAuthentication_Get)。 3. (UDM内) SIDFがSUCI復号、ARPFが方式=EAP-AKA'を選択し、EAP-AKA'用AV(RAND, AUTN, XRES, CK', IK')を生成(TS 33.501 §6.1.3.1)。 4. UDM→AUSF: AV と SUPI を返す。 5. AUSF→SEAF→UE: EAP-Request/AKA'-Challenge(RAND, AUTN, MAC)を、SEAF が NAS(Authentication Request)にカプセル化して UE へ。 6. (USIM内) AUTN検証→RES算出→応答MAC計算。 7. UE→SEAF→AUSF: EAP-Response/AKA'-Challenge(RES, MAC)を NAS で運び AUSF へ。 8. (AUSF内) RES と XRES、MAC を照合。成功なら KAUSF→KSEAF を導出。 9. AUSF→SEAF→UE: EAP-Success を通知(NAS では Authentication Result として運ぶ)。KSEAF は Nausf 応答で SEAF へ渡る。
5G-AKA と EAP-AKA' の一番の違い
- 5G-AKA: 3GPP独自のメッセージで RES*/XRES* を扱う。HRES*/HXRES* の一次照合が SEAF にある。
- EAP-AKA': IETF の EAP 框組みを使い、EAP-Request/Response/Success の往復。SEAF は EAP を素通し(照合は AUSF に集約)。RFC 5448 準拠。 どちらも土台の AKA(K・RAND・AUTN・SQN)は同じで、方式の選択者は UDMです。
Signal Flow¶
主要メッセージ/サービスオペレーションを表で整理します。
| Message / Operation | Protocol | 送信元→先 | 目的 | 主要IE | 結果 |
|---|---|---|---|---|---|
| Nausf_UEAuthentication_Authenticate (要求) | SBI(HTTP/2) | AMF(SEAF)→AUSF | 認証開始 | SUCI/SUPI, SN-name | AUSFが認証処理開始 |
| Nudm_UEAuthentication_Get | SBI(HTTP/2) | AUSF→UDM | AV取得・SUCI復号 | SUCI/SUPI, SN-name | UDMがSUPI復号(SIDF)・AV生成(ARPF) |
| (応答) 5G HE AV / EAP-AKA' AV | SBI(HTTP/2) | UDM→AUSF | 認証ベクトル提供 | RAND, AUTN, XRES*/XRES, KAUSF/CK'IK', SUPI | AUSFが照合・導出の材料を取得 |
| Authentication Request | NAS(5GMM) | AMF→UE | 認証チャレンジ | RAND, AUTN, ngKSI, ABBA(EAP時はEAPメッセージ) | UEがAUTN検証・RES算出 |
| Authentication Response | NAS(5GMM) | UE→AMF | 認証応答 | RES*(EAP時はEAP-Response) | SEAF/AUSFがレスポンス照合 |
| Nausf_UEAuthentication_Authenticate (RES*) | SBI(HTTP/2) | AMF(SEAF)→AUSF | 最終検証依頼 | RES* | AUSFがXRES*と最終照合 |
| (応答) 認証結果 + KSEAF | SBI(HTTP/2) | AUSF→AMF(SEAF) | 結果通知・鍵引渡 | 認証結果, KSEAF | SEAFがKSEAF取得→KAMF導出 |
| Authentication Result | NAS(5GMM) | AMF→UE | EAP-Success通知等 | EAP-Success | UEが認証成功を認識 |
| Authentication Reject | NAS(5GMM) | AMF→UE | 認証拒否 | (なし) | UEが認証失敗として扱う |
| Authentication Failure | NAS(5GMM) | UE→AMF | UE側検証失敗の通知 | 5GMM cause, Auth failure param(AUTS) | 再同期/拒否へ分岐 |
主要IE用語: RAND(乱数チャレンジ) / AUTN(網→UEの認証トークン) / RES*(UE→網の応答) / XRES*(網が期待する正解) / HXRES*(XRES*のハッシュ、SEAF照合用) / KSEAF(アンカー鍵) / KAUSF(AUSF保持鍵) / ABBA(下位互換防御) / SUCI(秘匿ID) / SUPI(本名) / AUTS(SQN再同期トークン)。詳細は Message辞典 を参照。
State Machine¶
USIM/UE から見た一次認証の状態遷移です(根拠: TS 33.501 §6.1 / TS 24.501 §5.4.1)。
stateDiagram-v2
[*] --> Idle: 認証前
Idle --> AwaitChallenge: SEAFが認証開始 (Nausf/Nudm でAV取得)
AwaitChallenge --> VerifyingAUTN: Authentication Request 受信 (RAND,AUTN)
VerifyingAUTN --> ComputingRES: AUTN検証OK
VerifyingAUTN --> MACFailure: MAC不一致
VerifyingAUTN --> SynchFailure: SQN範囲外
ComputingRES --> Success: RES*/XRES* 照合一致
ComputingRES --> ResMismatch: RES*/XRES* 不一致
MACFailure --> [*]: Authentication Failure(cause=MAC failure)→Reject
SynchFailure --> Resync: Authentication Failure(cause=Synch failure, AUTS)
Resync --> AwaitChallenge: 網がAUTSでSQN再同期→新AV
ResMismatch --> [*]: Authentication Reject
Success --> [*]: KSEAF確立→NASセキュリティへ
- VerifyingAUTN — USIM が AUTN の MAC と SQN を検証する過渡状態。ここで 2 種の失敗に分岐する。
- MAC failure — AUTN の MAC が合わない=鍵不一致/偽網の疑い。UE は認証失敗として拒否方向。
- Synch failure — MAC は合うが SQN が範囲外(網側とUE側のカウンタずれ)。UE は AUTS を返して再同期を要求する。
- ResMismatch — 網側で RES*/XRES* が一致せず、Authentication Reject。
Packet Analysis (Wireshark)¶
一次認証は NASメッセージなので、nas-5gs で捕捉します。NASはNGAP(N2)にネストされて運ばれる点は Registration の Packet Analysis と同じです。
主要 Display Filter¶
| Filter | 意味 |
|---|---|
nas-5gs |
5GS NAS メッセージ全般 |
ngap |
NGAP(NASを載せる封筒) |
nas-5gs.mm.message_type |
NAS 5GMM メッセージ種別で識別(Authentication Request/Response/Result/Reject/Failure)※具体値は要確認 |
message type の16進値は要確認
Authentication Request/Response 等の nas-5gs.mm.message_type の具体値は 3GPP の割当(TS 24.501 §9.7 付近)に基づきますが、Wireshark のバージョン/ディセクタ実装で表示が異なる場合があります。数値は要確認とし、実機では GUI のプロトコル階層表示で確認するのが確実です。
Decode の見どころ(主要IE)¶
- RAND / AUTN(Authentication Request 内)— チャレンジ乱数と網の認証トークン。
- RES*(Authentication Response 内)— UE のレスポンス。
- ngKSI / ABBA(Authentication Request 内)— 鍵セット識別子と下位互換防御パラメータ。
- Authentication failure parameter (AUTS)(Authentication Failure 内)— Synch failure 時の再同期トークン。
- EAP-AKA' の場合は NAS に EAPメッセージがカプセル化されて見える。
N12/N13 の SBI は別区間で見る
Nausf(N12)/Nudm(N13) は HTTP/2 over TLS のため、NAS区間とは別に SBI 区間でキャプチャします。TLS のため通常は復号鍵が無いと中身は見えません(実装依存)。実pcapは無線・コアの実装/設定に依存します。
Configuration¶
一次認証を成立させるための設定の構造レベルの要点です。具体値・ベンダー固有(Cisco 等)は実装依存であり、ここでは架空の値を書きません。
UE/USIM 側¶
- K(加入者の永続鍵)と OPc(オペレータ鍵から導出される値)の書き込み。これが網側と一致しないと MAC failure になります。
- SUPI/IMSI と ホームネットワーク公開鍵(SUCI 生成用)、Protection Scheme の設定。
UDM/UDR 側(例: Open5GS / free5GC)¶
- 加入者(SUPI/IMSI)の登録と、認証情報(K, OPc) のプロビジョニング(USIM側と一致必須)。
- SQN(シーケンス番号)カウンタの管理。ずれると Synch failure の原因。
- ホームネットワーク秘密鍵(SIDF が SUCI 復号に使用)と Protection Scheme の設定。
- ARPF が選択する認証方式(5G-AKA / EAP-AKA')の設定。
具体値・ベンダー固有は実装依存
設定キー名・階層・必須項目は Open5GS / free5GC / 商用ベンダーで異なります。上記は構造レベルの要点であり、実際の値は各実装のドキュメントで確認してください(実装依存)。
Trouble Shooting¶
代表的な認証失敗の切り分けです。Cause値の詳細は Cause辞典 を参照してください。
| 症状 | 想定原因 | 確認ポイント | 関連ログ/Packet | 対処の方向性 |
|---|---|---|---|---|
| (a) MAC failure | UE側の 鍵不一致(K/OPc相違)、偽網の疑い | USIMとUDMの K/OPc 一致、Protection設定 | Authentication Failure(cause=MAC failure)(NAS)、UDM/AUSFログ | K/OPc の再プロビジョニング、両側の値一致を確認 |
| (b) Synch failure | SQN 同期外れ(網側とUE側カウンタずれ) | UDM側SQN、UEの返す AUTS | Authentication Failure(cause=Synch failure, AUTS)(NAS) | 網が AUTS で SQN再同期→新AVで再チャレンジ(TS 33.102/TS 33.501) |
| (c) RES* 不一致 | UEの応答が期待値XRES*と不一致 | AUSFの XRES* 照合結果、SEAFのHRES*照合 | Authentication Reject(NAS)、AUSFログ | 鍵/演算方式の整合確認、加入者データ確認 |
| (d) SUCI 復号失敗 | ホーム秘密鍵/SIDF 設定不整合、Protection Scheme相違 | UDMのHN秘密鍵、UEのHN公開鍵、Scheme一致 | Nudm_UEAuthentication_Get の応答エラー、UDMログ | HN鍵ペア/Scheme の整合、SUCI生成/復号設定確認 |
Synch failure と MAC failure の見分け方
どちらも UE→網の Authentication Failure で通知されますが、cause値が異なります。MAC failure は鍵そのものの不一致(再同期しても直らない)、Synch failure は鍵は合っているが SQN がずれただけ(AUTS で再同期すれば復旧)。cause と AUTS の有無で切り分けます。
EPCとの比較¶
4G(EPC) の EPS-AKA と 5G の認証を対比します。
| 観点 | 4G / EPC (EPS-AKA) | 5G / 5GC (5G-AKA / EAP-AKA') |
|---|---|---|
| 恒久IDの扱い | IMSI が平文で載り得た | SUCI で秘匿(SIDFがホームで復号) |
| 認証NF構成 | MME + HSS(AuC) | SEAF(AMF) + AUSF + UDM(ARPF/SIDF) に分離 |
| 認証方式 | EPS-AKA(単一) | 5G-AKA と EAP-AKA' の2方式(UDMが選択) |
| 最終照合の主体 | MME(訪問先寄り) | AUSF(ホーム) が最終判定(+SEAFの一次照合) |
| アンカー鍵 | KASME | KSEAF(→KAMF→…) |
| 相互認証 | あり(AUTN検証) | あり(AUTN検証。両世代共通) |
| 下位互換防御 | — | ABBA パラメータを導入 |
共通点も押さえる
土台の AKA(共有鍵K・RANDチャレンジ・AUTNによる網認証・SQN)は 4G/5G で共通です。5G は「本名の秘匿(SUCI/SIDF)」「認証NFの分離」「ホームでの最終判定」「EAP-AKA'の追加」「ABBA」を上乗せした進化版と捉えると理解しやすいです。
Release差分¶
不確かなものは要確認とし、断定しません。
- Rel-15 — 5G-AKA / EAP-AKA' の一次認証、SUCI/SUPI・SIDF、KAUSF/KSEAF、ABBA が確立(TS 33.501 の基礎)。
- Rel-16 — セキュリティ機能の拡張が進んだ世代(認証手順本体への織り込み範囲は要確認)。
- Rel-17 / Rel-18(5G-Advanced) — 機能拡張が継続(一次認証手順への具体差分は要確認)。
Release差分は要確認
各Releaseで一次認証手順そのものにどの変更が入ったかは、TS 33.501 の版差分を個別確認する必要があります。上記は概観であり、具体項目は要確認です。
3GPP Specification¶
| Spec | 章 | 内容 |
|---|---|---|
| TS 33.501 | §6.1 | 一次認証全般(認証の起動・方式選択) |
| TS 33.501 | §6.1.3.1 | EAP-AKA' 手順 |
| TS 33.501 | §6.1.3.2 | 5G-AKA 手順(RES*/XRES*/HXRES*, KSEAF導出) |
| TS 33.501 | §6.12.2 | SUCI の復号(SIDF) |
| TS 24.501 | §5.4.1 | NAS 側 Authentication 手順(Authentication Request/Response/Failure/Result/Reject) |
| TS 29.509 | — | Nausf(AUSFのサービスAPI, UEAuthentication) |
| TS 29.503 | — | Nudm(UDMのサービスAPI, UEAuthentication_Get) |
| TS 33.102 | — | AKA の基礎・SQN再同期(AUTS) の原型 |
| RFC 5448 | — | EAP-AKA'(IETF、EAP-AKA' の定義) |
章番号の扱い
TS 33.501 §6.1 / §6.1.3.1 / §6.1.3.2 は本章の骨格として参照しています。SUCI復号の §6.12.2、TS 24.501 §5.4.1、および各 SBI 仕様(29.509/29.503)の個別章番号は版により異なる場合があり、一部は要確認としています。
FAQ¶
Q1. 5G-AKA と EAP-AKA' はどちらが使われる?
UDM が加入者データと SUCI/SUPI に基づいて選択します(TS 33.501 §6.1.2)。AMF は方式を指定しません。多くの3GPPアクセスでは 5G-AKA が使われますが、事業者ポリシーや加入者設定で EAP-AKA' が選ばれることもあります(具体的な選択条件は実装/構成依存)。
Q2. Synch failure とは?
UEと網の SQN(シーケンス番号)カウンタがずれた状態です。鍵は合っている(MACはOK)がSQNが範囲外のとき、UEは AUTS を含む Authentication Failure(cause=Synch failure) を返します。網は AUTS で SQN を再同期し、新しいAVで再チャレンジします(TS 33.102 / TS 33.501)。
Q3. SUCI は誰が復号する?
UDM 内の SIDF(Subscription Identifier De-concealing Function) です。ホームネットワークの秘密鍵を扱えるのは SIDF だけで、AMF/AUSF は復号しません。復号後の SUPI が AUSF/AMF へ返されます(TS 33.501 §6.12.2)。
Q4. 認証は毎回の Registration で必ず走る?
必ずしも走りません。有効な 5G-GUTI とセキュリティコンテキストが再利用できる場合、一次認証を省略できることがあります(条件・事業者ポリシー依存=状況/実装依存)。詳細は Registration の Q3 参照。
Q5. KSEAF はどこで使われる?
KSEAF は アンカー鍵で、SEAF(AMF) が受け取って KAMF を導出し、そこから NAS 保護鍵(KNASenc/KNASint) や AS 側の鍵(KgNB…) が派生します。鍵階層の全体は AUSF の鍵階層 を参照してください。
Summary¶
- 一次認証は 相互認証(網→UE と UE→網の双方向確認)で、認証と鍵合意を同時に行う(AKA)。
- 三者関係は AMF(SEAF)=起点 / AUSF=サーバ・最終照合・KSEAF導出 / UDM(ARPF=AV生成, SIDF=SUCI復号)=源泉。
- 方式は 5G-AKA と EAP-AKA' の2つで、選択者は UDM。
- 5G-AKA は RES*/XRES* + SEAFのHRES*/HXRES*一次照合、EAP-AKA' は EAP框組みで SEAF素通し。
- SUCI→SUPI 復号はホームの UDM/SIDF が行い、秘密鍵を外に出さない。
- 失敗3大パターン: MAC failure(鍵不一致) / Synch failure(SQN→AUTS再同期) / RES*不一致(Reject)。
- 根拠は TS 33.501 §6.1(§6.1.3.1 EAP-AKA' / §6.1.3.2 5G-AKA)/ TS 24.501 §5.4.1。
Practice — 理解度チェック・演習¶
理解度チェック¶
Q1. SUCI を SUPI に復号するのはどの機能か?(解答)
UDM 内の SIDF。ホームネットワークの秘密鍵を扱えるのは SIDF だけで、AMF/AUSF は復号しない。
Q2. 認証ベクトル(AV)を生成するのはどこか?(解答)
UDM に属する ARPF(永続鍵K を保持)。RAND, AUTN, XRES*, KAUSF(5G-AKAの場合) を生成する。
Q3. 5G-AKA で最終的に RES*/XRES* を照合し成否を決めるのは?(解答)
AUSF(ホーム)。SEAF は HRES*/HXRES* の一次照合を行うが、最終判定は AUSF(TS 33.501 §6.1.3.2)。
Q4. Synch failure のとき UE が返すトークンは?(解答)
AUTS。網はこれで SQN を再同期し、新しい AV で再チャレンジする。
Q5. EAP-AKA' で SEAF(AMF) の役割は?(解答)
EAP メッセージの passthrough(素通し中継)。照合は AUSF(EAPサーバ)に集約される。
演習¶
問: 次の 5G-AKA 主要ステップを正しい順に並べ替えてください。
A. AUSF が RES* と XRES* を照合(最終判定)
B. SEAF → AUSF: Nausf_UEAuthentication_Authenticate(認証開始)
C. USIM が AUTN を検証し RES/RES* を算出
D. AUSF → UDM: Nudm_UEAuthentication_Get
E. SEAF が HRES* と HXRES* を照合(一次チェック)
F. UDM(SIDFがSUCI復号, ARPFがAV生成) → AUSF: HE AV(RAND,AUTN,XRES*,KAUSF)
G. SEAF → UE: Authentication Request(RAND,AUTN,ngKSI,ABBA)
H. AUSF が XRES*→HXRES*, KAUSF→KSEAF を導出し SE AV を SEAF へ
解答
B → D → F → H → G → C → E → A
- B: 認証開始(SEAF→AUSF)
- D: AV要求(AUSF→UDM)
- F: SUCI復号+AV生成(UDM→AUSF)
- H: AUSFがHXRES*/KSEAF導出→SE AVをSEAFへ
- G: Authentication Request(SEAF→UE)
- C: USIMがAUTN検証・RES*算出
- E: SEAFの一次照合(HRES*/HXRES*)
- A: AUSFの最終照合(RES*/XRES*)→成功でKSEAF引渡
Next Step¶
理解を深めるための次の一歩です。
- Security 章(NASセキュリティ・鍵階層 KSEAF/KAMF の詳細)
- PDU Session 章(二次認証 Secondary Authentication を含む)
- 関連NF: AUSF(鍵階層図あり) / UDM(ARPF/SIDF) / AMF(SEAF同居)
- 手順の全体像: Initial Registration(認証の位置づけ)
- 辞典: Message辞典 / Cause辞典 / Protocol辞典 / NF辞典 / Interface辞典