コンテンツにスキップ

Security — NAS/ASセキュリティ(鍵階層・SMC・NEA/NIA)

難易度: 中級〜上級 / 想定学習時間: 45分 / 対象: KSEAF確立後の鍵派生とNAS/AS保護の有効化 / 関連NF: AMF(SEAF), gNB, AUSF/UDM(鍵の源泉) / 関連Interface: N1, N2, Uu(RRC)

学習目標

このページを読み終えると、次のことができるようになります。

  • Why(認証だけでは通信の中身が守れないこと)を、盗聴・改ざんへの対策として説明できる。
  • 鍵階層のKSEAF以降(KSEAF→KAMF→{KNASenc/KNASint, KgNB}→{KRRCenc/KRRCint, KUPenc/KUPint})の派生ツリーを説明できる。各鍵が何を守るかを言える。
  • NAS Security Mode Command / Complete の手順を追い、どのメッセージから暗号化・完全性保護が有効になるかを説明できる。
  • AS Security Mode Command / Complete の手順を追い、KgNB由来のRRC/UP保護が有効になる流れを説明できる。
  • NEA/NIA(NEA0/1/2/3・NIA0/1/2/3 = NULL/SNOW 3G/AES/ZUC)の意味と選択の仕組みを説明できる。
  • セキュリティコンテキスト(Native / Mapped、ngKSI、ABBA)と、NAS SMCが先・AS SMCが後という順序を理解できる。
  • 完全性保護と暗号化の対象(NAS/RRC/UP。User Plane完全性保護のRel-16強化)を整理できる。

前提知識

先に以下を理解しておくとスムーズです。まだの人は カリキュラム から始めてください。

  • 一次認証でKSEAFが確立するまでAuthentication 章(本章はその続き。KSEAF確立の“次”を扱う)
  • Registration の全体像(セキュリティ確立は登録手順の一部として概説済み) → Initial Registration
  • NAS / N1(UE⇔AMF の制御メッセージを運ぶ層) → N1
  • セキュリティを終端するNFの役割 → AMF(SEAF同居) / AUSF / UDM

この章で学べること

本章は KSEAF確立の“次”に何が起きるか に焦点を絞ります。すなわち KSEAF以降の鍵派生(KAMF→NAS/AS鍵)と、NAS/AS の保護を有効化する手順(Security Mode Command) を精密に扱います。

  • 一次認証(5G-AKA / EAP-AKA')そのもの(KSEAF確立まで)は繰り返しません。Authentication 章 を参照してください。
  • SUCI秘匿(本名SUPIの秘匿)も本章では扱わず、Authentication 章 / Registration 章 へ誘導します。
  • 鍵階層の根〜KSEAF の俯瞰図AUSF の鍵階層 に集約しています。本章は重複を避け、その先の KAMF以降の枝 を主役に図示します。

Why — なぜNAS/ASセキュリティが必要か

Why(なぜ必要か)から始めます。 一次認証(Authentication 章)が終わると「相手が正規の契約者/正規の網であること」は確認できます。しかし、それだけでは通信の中身は守られていません。認証の後に、次の 2 つの脅威が残るためです。

  • 盗聴(eavesdropping) — 電波は誰でも受信できるため、暗号化しなければ制御メッセージやユーザデータの中身を読まれてしまう。
  • 改ざん(tampering) — 途中で内容を書き換えられても、検知できなければ攻撃者の指示どおりに動いてしまう(例: なりすまし網からの偽コマンド)。

そこで、認証で合意した共有鍵をもとに、以降の通信を 暗号化(機密性)完全性保護(改ざん検知) で守ります。これを NAS層(UE⇔AMF の制御)と AS層(UE⇔gNB の無線制御・ユーザデータ)の 2 系統で行うのが本章のテーマです。

例え話: 本人確認のあとに封筒へ封をして割り印を押す

一次認証は「窓口での本人確認」です。しかし本人確認が済んでも、渡す書類を裸で運んでいたら中身を見られ(盗聴)、差し替えられ(改ざん)ます。 ・封筒に封をする = 暗号化(Confidentiality)。中身を第三者に見せない。 ・割り印(サイン)を押す = 完全性保護(Integrity)。開封・差し替えがあれば分かる。 本人確認(認証)と、封をして割り印を押すこと(暗号化+完全性保護)は別の作業であり、両方そろって初めて安全に書類(通信)を運べます。

Overview — 概要

KSEAF は認証で確立された アンカー鍵です。ここを起点に、鍵は NAS保護(AMFが終端)AS保護(gNBが終端)2 系統へ枝分かれします。

  • NAS系統 — KSEAF→KAMFKNASenc / KNASint。UE⇔AMF の NASメッセージを守る。有効化は NAS Security Mode Command / Complete(AMF主導)。
  • AS系統 — KAMF→KgNBKRRCenc / KRRCint / KUPenc / KUPint。UE⇔gNB の RRC(無線制御)と UP(ユーザデータ)を守る。有効化は AS Security Mode Command / Complete(gNB主導)。

順序が重要です。まず NAS SMC が先に走って NAS 保護を確立し、その後 gNB へ KgNB が渡ってから AS SMC で AS 保護が確立します。

flowchart LR
    KSEAF["KSEAF
(認証で確立)"] --> KAMF["KAMF
(AMFが導出)"] KAMF --> NAS["NAS保護
KNASenc / KNASint
(UE⇔AMF)"] KAMF --> KGNB["KgNB
(→gNBへ)"] KGNB --> AS["AS保護
KRRCenc/KRRCint
KUPenc/KUPint
(UE⇔gNB)"] NAS -. "NAS SMC が先" .-> AS

鍵階層の根〜KSEAF の俯瞰AUSF の鍵階層 を参照してください。本章は上図の KAMF以降の枝 を掘り下げます。

Basic Concept — 初心者向け説明

セキュリティを理解するには、4 つのキーワードを押さえます。

1. 暗号化(機密性)と完全性保護(改ざん検知)の違い

  • 暗号化(Ciphering / Confidentiality) — 中身を第三者に読めなくする。盗聴対策。5G では NEA(NR Encryption Algorithm)アルゴリズムで行う。
  • 完全性保護(Integrity protection) — メッセージに MAC-I(Message Authentication Code for Integrity)という短い検証符号を付け、改ざんを検知する。中身は隠さないが「書き換えられていないこと」を保証する。5G では NIA(NR Integrity Algorithm)で行う。

両者は独立した別の仕組み

暗号化と完全性保護は別々の鍵・別々のアルゴリズムで行います(例: NASなら KNASenc + NEAで暗号化、KNASint + NIAで完全性)。「暗号化していれば改ざんも防げる」わけではありません。暗号化だけでは、中身は読めなくてもビットを操作される可能性が残るため、完全性保護を併用します。

2. 鍵導出(KDF)の考え方

上位鍵から下位鍵を作るには KDF(Key Derivation Function) を使います。「親鍵」と「用途を表す入力パラメータ」を KDF に入れると「子鍵」が出ます。同じ親でも入力が違えば別の子鍵になるため、用途ごとに独立した鍵を安全に量産できます(KDF の基礎は TS 33.220、5Gでの適用は TS 33.501 Annex A。個別の入力パラメータの細部は要確認)。

3. なぜ層ごとに鍵を分けるのか

NAS用・RRC用・UP用で鍵を分けるのは、被害の局所化(key separation)のためです。ある層の鍵が漏れても、他の層の鍵は KDF の一方向性により逆算できず、被害を封じ込められます。また、NAS は AMF が、AS は gNB が終端するため、gNB には KgNB 以下だけを渡し、KAMF や NAS 鍵は渡さないことで、無線側ノードの侵害範囲を限定します。

4. ngKSI とセキュリティコンテキスト

  • セキュリティコンテキスト(5G NAS security context) — 確立された鍵一式(KAMF、選択アルゴリズム、カウンタ等)のまとまり。
  • ngKSI(Key Set Identifier in 5G) — そのセキュリティコンテキストを識別する短い番号。UEと網が「どの鍵セットで話しているか」を合わせるために使う。認証時に割り当てられ、以降のメッセージで参照される。

Architecture

KSEAF を起点とした鍵派生ツリーを示します。根側(K〜KSEAF)は AUSF の鍵階層 に集約し、本図は KAMF以降の枝 に集中します。

flowchart TB
    KSEAF["KSEAF
(認証で確立・アンカー鍵)"] KAMF["KAMF
(SEAF/AMF が導出)"] KNASenc["KNASenc
NAS暗号化"] KNASint["KNASint
NAS完全性"] KgNB["KgNB
(AMF→gNB へ搬送)"] KRRCenc["KRRCenc
RRC暗号化"] KRRCint["KRRCint
RRC完全性"] KUPenc["KUPenc
UP暗号化"] KUPint["KUPint
UP完全性(Rel-15導入/Rel-16で制約緩和)"] KSEAF --> KAMF KAMF --> KNASenc KAMF --> KNASint KAMF --> KgNB KgNB --> KRRCenc KgNB --> KRRCint KgNB --> KUPenc KgNB --> KUPint

各鍵が「何を・どこで守るか」:

  • KAMF — SEAF/AMF が KSEAF から導出。NAS鍵と KgNB の。AMF が保持し、gNB へは渡さない。
  • KNASenc / KNASint — UE⇔AMF の NASメッセージの暗号化/完全性保護。AMF が終端。
  • KgNB — KAMF から導出し、AMF から gNB へ N2(NGAP) で搬送N2)。AS鍵の親。
  • KRRCenc / KRRCint — UE⇔gNB の RRC(無線制御)の暗号化/完全性保護。gNB が終端。
  • KUPenc / KUPint — UE⇔gNB の UP(User Plane / ユーザデータ)の暗号化/完全性保護。UP完全性保護(KUPint)は Rel-15 で導入され、適用に制約があったが Rel-16 で制約緩和・full data rate 対応が進んだ(後述の Release差分 参照)。

導出の入力パラメータの細部は要確認

各鍵の KDF 入力(algorithm type distinguisher、algorithm identity 等)は TS 33.501 Annex A に規定されますが、本章では各パラメータの具体的なビット割当までは断定しません要確認)。ここでは「どの親からどの子が派生し、何を守るか」という構造に集中します。

Network Function(登場要素)

本手順に関わる要素と、この章での動きです。

要素 この手順での役割 保持/取得する鍵 この手順での動き 障害時の影響
UE NAS/AS 両方の対向。網と同じ鍵を導出し、SMC を検証・適用 KSEAF, KAMF, KNAS, KgNB, KRRC, KUP* NAS/AS SMC の受信・検証・Complete 応答 保護を有効化できず登録/通信不可
AMF(SEAF) NASセキュリティの終端。KAMF/NAS鍵を導出しアルゴリズム選択、NAS SMC を主導 KSEAF, KAMF, KNASenc, KNASint, KgNB(導出→gNBへ) NAS SMC送出、KgNB導出・N2で搬送 NAS保護が確立せず以降の登録が進まない
gNB ASセキュリティの終端。KgNB から RRC/UP 鍵を導出、AS SMC を主導 KgNB, KRRCenc, KRRCint, KUPenc, KUPint AS SMC送出、RRC/UP保護を有効化 AS保護が確立せず無線区間が保護されない
AUSF / UDM 鍵の源泉・参照(本手順では直接動かないが、KSEAF確立の前段) KAUSF/KSEAF(源泉), K/OPc(UDM) 本手順では原則登場しない(認証段階で完了) (認証段階の障害はここに波及)

AUSF/UDM は本手順では“前段”

AUSF/UDM は KSEAF を確立する認証段階の主役です(Authentication 章)。本章の SMC 手順では原則として直接シグナリングには現れず、KSEAF より下の鍵派生と保護有効化が中心になります。

Interface / Protocol

この手順で使う Interface と Protocol です。

Interface Protocol この手順での用途 範囲
N1 NAS(5GMM) NAS Security Mode Command / Complete(UE⇔AMF) 本章の中心
N2 NGAP KgNB の搬送、AS SMC のトリガ(Initial Context Setup 等でセキュリティ情報を gNB へ) 本章の中心
Uu / RRC RRC(PDCPで保護実施) AS Security Mode Command / Complete(gNB⇔UE、無線区間) RAN側(無線)=概略

RRC/AS SMC は RAN(無線)側

AS SMC は gNB⇔UE の RRC メッセージであり、コア網(N1/N2)には現れません(gNB内で完結)。無線側(RRC/PDCP)は本サイトの主対象であるコア網の範囲外に近いため、本章では手順の位置づけと鍵の流れを扱い、RRC の細部(TS 38.331 / TS 38.323)は概略にとどめます。Protocol の詳細は Protocol辞典 を参照してください。


Procedure — Call Flow

このページの心臓部です。 保護の有効化は (A) NAS SMC が先(B) AS SMC が後という順序で進みます。KSEAF は既に確立済み(Authentication 章)という前提です。

前提: KSEAF確立とKAMF導出

一次認証が成功すると SEAF(AMF) は KSEAF を受け取り、そこから KAMF を導出します(TS 33.501 §6.2)。本手順はその直後、KAMF から NAS 鍵を作り、NAS SMC で保護を有効化するところから始まります。

(A) NAS Security Mode Command / Complete

AMF が主導し、選択した NAS アルゴリズム(NEA/NIA)で NASの完全性保護を先に、続いて暗号化を 有効化します。根拠: TS 33.501 §6.7.2 / TS 24.501(NAS SMC メッセージ)。

sequenceDiagram
    autonumber
    participant UE
    participant AMF as AMF / SEAF

    Note over UE,AMF: 認証成功済み→AMFがKAMF導出→KNASint/KNASenc導出
    Note right of AMF: AMFがUE security capabilityから
NEA/NIA を選択(TS 33.501 §6.7.2) AMF->>UE: Security Mode Command (NAS)
(selected NEA/NIA, ngKSI, ABBA,
replayed UE security capability) Note right of AMF: このメッセージは【完全性保護のみ】
(KNASintでMAC-I付与、暗号化なし) Note right of UE: UEが同じKNASint/KNASencを導出し
MAC-I検証・UE sec capability再送の一致確認 UE->>AMF: Security Mode Complete (NAS)
(必要に応じ IMEISV 等) Note right of UE: この応答は【完全性保護+暗号化】済み Note over UE,AMF: 以降のNASは暗号化+完全性保護が有効

ステップ解説(番号は上図に対応)

  1. AMF→UE: Security Mode Command(NAS) — AMF が選択した NEA/NIAngKSI(どの鍵セットか)、ABBA、そして UE security capability の再送(replay) を含めて送る。
    • このメッセージ自体は 完全性保護のみ(KNASint で MAC-I を付与)で送られ、暗号化はされていない。だから中身(選択アルゴリズム等)を UE と観測者は平文で読める(TS 33.501 §6.7.2)。
  2. (UE内)検証 — UE は自身でも同じ KNASint/KNASenc を導出し、MAC-I を検証。さらに replayed UE security capability が自分の申告値と一致するかを確認する(下位互換攻撃=bidding down の検知)。
  3. UE→AMF: Security Mode Complete(NAS) — 検証OKなら応答を返す。この応答からは完全性保護+暗号化の両方が有効。以降の NAS メッセージ(Registration Accept 等)は暗号化されて中身が見えなくなる。

どこから暗号化が有効になるか

NAS SMC 自体は完全性保護のみ暗号化が始まるのは、UL(上り)では Security Mode Complete から、DL(下り)では Security Mode Command の次のメッセージからです(TS 33.501 §6.7.2)。この挙動は Registration の Packet Analysis の注記とも整合します。

ABBA と ngKSI の役割

  • ABBA(Anti-Bidding down Between Architectures) — 世代/アーキテクチャ間で意図的に弱い方式へ引き下げられる攻撃(bidding down)を防ぐパラメータ。KAMF 導出に紐づく(TS 33.501)。
  • ngKSI — 使用するセキュリティコンテキスト(鍵セット)の識別子。UEと網の鍵セット認識を一致させる。

(B) AS Security Mode Command / Complete

NAS 保護が確立した後、AMF は KgNB を導出して gNB へ N2 で渡します。gNB は KgNB から RRC/UP 鍵を導出し、AS SMC(RRCメッセージ) で無線区間の保護を有効化します。根拠: TS 33.501 §6.7.4 / TS 38.331(RRC)。

sequenceDiagram
    autonumber
    participant UE
    participant gNB
    participant AMF

    Note over AMF: AMFがKAMFからKgNBを導出
    AMF->>gNB: (N2/NGAP) Initial Context Setup 等で
KgNB・UE security capability を搬送 Note right of gNB: gNBがKgNBから
KRRCint/KRRCenc/KUPint/KUPenc 導出
AS用 NEA/NIA を選択 gNB->>UE: AS Security Mode Command (RRC)
(selected AS algorithms, MAC-I) Note right of gNB: 完全性保護から先に有効(RRC) Note right of UE: UEが同じKgNB由来鍵を導出し
MAC-I検証 UE->>gNB: AS Security Mode Complete (RRC) Note over UE,gNB: 以降のRRC/UPが保護有効(PDCP層で実施)

ステップ解説(番号は上図に対応)

  1. AMF→gNB(N2/NGAP) — AMF は KgNBUE security capability を Initial Context Setup 等の NGAP メッセージで gNB へ搬送する(N2)。
  2. (gNB内)鍵導出とアルゴリズム選択 — gNB は KgNB から KRRCint/KRRCenc/KUPint/KUPenc を導出し、AS 用の NEA/NIA を選択する。
  3. gNB→UE: AS Security Mode Command(RRC) — 選択した AS アルゴリズムと MAC-I を含む。完全性保護が先に有効になる(TS 33.501 §6.7.4 / TS 38.331)。
  4. UE→gNB: AS Security Mode Complete(RRC) — UE が同じ KgNB 由来鍵を導出し MAC-I を検証、応答。以降の RRC / UP が保護有効(実際の保護は PDCP層 で実施。TS 38.323)。

順序: NAS SMC が先、AS SMC が後

必ず NAS SMC(A) が先に走ります。NAS が保護される(=KAMF が確立し、そこから KgNB を安全に導出できる)状態になって初めて、gNB へ KgNB を渡して AS SMC(B) を行えます。この順序が逆転することはありません(TS 33.501 §6.7)。

Signal Flow

主要メッセージを表で整理します。IE は Message辞典 と整合させています。

Message Protocol 送信元→先 目的 主要IE 結果
Security Mode Command NAS(5GMM) AMF→UE NAS保護の指示 selected NEA/NIA, ngKSI, ABBA, replayed UE security capability, MAC-I UEが検証・NAS鍵確定
Security Mode Complete NAS(5GMM) UE→AMF NAS保護の確立完了 (IMEISV等、必要に応じ), MAC-I 以降のNASが暗号化+完全性保護
Security Mode Reject NAS(5GMM) UE→AMF NAS SMC拒否(検証失敗時) 5GMM cause 保護未確立→再認証/失敗処理へ
(N2) Initial Context Setup Request NGAP AMF→gNB KgNB・UE sec capability の搬送 Security Key(KgNB), UE Security Capabilities gNBがAS鍵導出の材料取得
AS Security Mode Command RRC gNB→UE AS(RRC/UP)保護の指示 selected AS ciphering/integrity algorithms, MAC-I UEがAS鍵確定
AS Security Mode Complete RRC UE→gNB AS保護の確立完了 MAC-I 以降のRRC/UPが保護有効

主要IE用語: selected NEA/NIA(選択された暗号/完全性アルゴリズム) / ngKSI(鍵セット識別子) / ABBA(下位互換防御) / replayed UE security capability(UEの申告能力の再送=改ざん検知用) / MAC-I(完全性検証符号)。詳細は Message辞典 を参照してください。

State Machine

UE から見たセキュリティ確立の状態遷移です(根拠: TS 33.501 §6.7、セキュリティコンテキストの分類は TS 33.501 §6.3 / TS 24.501 §4.4)。

stateDiagram-v2
    [*] --> NoSecurity: 認証前 / 保護なし
    NoSecurity --> KSEAFEstablished: 一次認証成功 (Authentication章)
    KSEAFEstablished --> NASProtected: NAS SMC Command/Complete 成功
    NASProtected --> ASProtected: AS SMC Command/Complete 成功
    NASProtected --> NoSecurity: NAS SMC Reject / MAC-I失敗
    ASProtected --> [*]: NAS+AS 保護確立(通常運用)
  • NoSecurity — 保護なし。初回の Registration Request 等はこの状態で送られる(一部は完全性保護なしで送出され得る=要確認の細部あり)。
  • KSEAFEstablished — 認証成功で KSEAF/KAMF まで確立。まだ NAS 保護は「有効化前」。
  • NASProtected — NAS SMC 完了。UE⇔AMF の NAS が暗号化+完全性保護。
  • ASProtected — AS SMC 完了。UE⇔gNB の RRC/UP も保護。通常運用状態。

セキュリティコンテキストの Native / Mapped

セキュリティコンテキストには Native(5Gの認証で新規に作られたもの)と Mapped(EPS等からのハンドオーバ時に旧コンテキストから写像=map して作られたもの)があります。また「full/partial(完全/部分的)」という区別もあります。本章の主眼は Native な 5G NAS security context の確立です(TS 33.501 §6.3 付近。細分類の詳細は要確認)。

Packet Analysis (Wireshark)

NAS SMC は NASメッセージなので nas-5gs で捕捉します。NAS が NGAP(N2) にネストされて運ばれる点は Registration の Packet Analysis と同じです。

主要 Display Filter

Filter 意味
nas-5gs 5GS NAS メッセージ全般(Security Mode Command/Complete を含む)
ngap NGAP(NAS を載せる封筒/N2)
nas-5gs.mm.message_type NAS 5GMM メッセージ種別で識別(Security Mode Command/Complete/Reject)※具体値は要確認

message type の16進値は要確認

Security Mode Command/Complete 等の nas-5gs.mm.message_type の具体値は 3GPP の割当(TS 24.501 §9.7 付近)に基づきますが、Wireshark のバージョン/ディセクタ実装で表示が異なる場合があります。数値は要確認とし、実機では GUI のプロトコル階層表示で確認するのが確実です。

Decode の見どころ

  • Security Mode Command は平文で読める — 完全性保護のみ(暗号化なし)で送られるため、selected NEA/NIA、ngKSI、ABBA、replayed UE security capability を平文で確認できる。
  • 暗号化後は NAS ペイロードが見えなくなる — Security Mode Complete 以降(DLは SMC の次から)は NAS が暗号化され、Wireshark では Security protected NAS message として表され、中身の 5GMM メッセージは復号鍵が無いと見えない。
  • MAC — 完全性保護された NAS には MAC(Message Authentication Code)フィールドが付く。

AS SMC は ngap では見えない(RANの中)

AS Security Mode Command/Complete は gNB⇔UE の RRC メッセージであり、N2(NGAP) のキャプチャには現れませんngap フィルタでは見えない)。RRC は無線区間(Uu)を流れ、gNB 内で終端するため、AS SMC を観測するには RAN 側(Uu/RRC)のキャプチャが必要です。N2 には KgNB の搬送(Initial Context Setup 内)だけが現れます。

Configuration

保護を成立させる設定の構造レベルの要点です。具体値・ベンダー固有(Cisco 等)は実装依存であり、架空の値は書きません。

AMF 側(NASセキュリティ)— 例: Open5GS / free5GC

  • 対応 NEA / NIA と優先順位 — AMF がサポートする暗号アルゴリズム(NEA0/1/2/3)と完全性アルゴリズム(NIA0/1/2/3)を列挙し、優先順位を設定する。UE の security capability と突き合わせて選択される。
  • NULL アルゴリズム(NEA0 / NIA0)の可否 — NEA0(暗号なし)や NIA0(完全性なし)を許可するかどうかはポリシー。運用網では NIA0 は原則不可で、認証されていない緊急呼(unauthenticated emergency call)に限って許容されます(TS 33.501)。

gNB 側(ASセキュリティ)

  • 対応 AS アルゴリズムと優先順位 — RRC/UP 用の暗号/完全性アルゴリズムの列挙と優先順位。
  • User Plane 完全性保護(UP IP)の有効化 — UP完全性保護を要求/有効化するかの設定(Rel-15 で導入、Rel-16 で適用範囲が拡大。適用条件は要確認)。

具体値・ベンダー固有は実装依存

設定キー名・階層・必須項目や、アルゴリズム優先順位の書式は Open5GS / free5GC / 商用ベンダーで異なります。上記は構造レベルの要点であり、実際の値は各実装のドキュメントで確認してください(実装依存)。

Trouble Shooting

代表的なセキュリティ確立失敗の切り分けです。Cause値の詳細は Cause辞典 を参照してください。

症状 想定原因 確認ポイント 関連ログ/Packet 対処の方向性
(a) NAS SMC 失敗(Security Mode Reject) 選択アルゴリズム不一致、UE security capability の整合不良 AMFの対応NEA/NIAとUEの申告能力、replay値の一致 Security Mode Reject(NAS)、AMFログ 双方の対応アルゴリズム/優先順位を見直し、capability整合を確認
(b) 完全性チェック失敗(MAC-I不一致) 鍵/カウンタ不一致、改ざん、実装バグ KNASint/導出鍵の一致、COUNT/ngKSI整合 メッセージ破棄(受信側でdrop)、AMF/UEログ 鍵導出パラメータ・ngKSIの整合を確認。破棄は仕様どおりの防御動作
(c) セキュリティコンテキスト不整合(ngKSI mismatch) UEと網で参照する鍵セットがずれている ngKSI の一致、Native/Mapped の別 認証の再起動(re-authentication)ログ ngKSI を揃える。解決しない場合は再認証でコンテキスト作り直し
(d) AS SMC 失敗 KgNB 導出不整合、RRC アルゴリズム不一致、N2でのKgNB搬送不備 gNBへのKgNB搬送(Initial Context Setup)、AS対応アルゴリズム AS SMC失敗(RRC)、gNB/AMFログ KgNB搬送・AS対応アルゴリズムを確認。NAS SMCが先に成立しているかも確認

MAC-I 不一致は“破棄”が正しい動作

完全性チェックに失敗したメッセージは受信側で破棄(discard)されます。これは異常ではなく、改ざん検知の防御が正しく働いた結果です。頻発する場合は鍵導出パラメータ・COUNT・ngKSI の不整合、または実装バグを疑います。

EPCとの比較

4G(EPC) のセキュリティと 5G を対比します。

観点 4G / EPC 5G / 5GC
アンカー鍵 KASME KSEAF(→KAMF→…)
NAS鍵 KNASenc / KNASint(KASME由来) KNASenc / KNASint(KAMF由来)
無線側の親鍵 KeNB KgNB(KAMF由来)
RRC鍵 KRRCenc / KRRCint KRRCenc / KRRCint
UP鍵 KUPenc(暗号のみが基本) KUPenc + KUPint(UP完全性保護をRel-15で導入・Rel-16で適用範囲拡大)
暗号アルゴリズム EEA(EEA0/1/2/3) NEA(NEA0/1/2/3)
完全性アルゴリズム EIA(EIA0/1/2/3) NIA(NIA0/1/2/3)
下位互換防御 ABBA パラメータを導入

アルゴリズムの中身は概ね共通、名前が変わった

EEA/EIA と NEA/NIA は番号の対応と土台のアルゴリズム(NULL/SNOW 3G/AES/ZUC)が概ね共通です(例: xEA1=SNOW 3G, xEA2=AES, xEA3=ZUC、xEA0=NULL)。5G では鍵の親が KASME から KSEAF/KAMF に置き換わり、UP完全性保護(KUPint)の位置づけが強化された点が主な進化です。番号とアルゴリズムの正確な対応は TS 33.501 §5.11 を参照。

Release差分

不確かなものは要確認とし、断定しません。

  • Rel-15 — 5G セキュリティの基礎。KSEAF/KAMF、NAS/AS 鍵階層、NAS/AS SMC、NEA/NIA(0/1/2/3)、ngKSI、ABBA が確立(TS 33.501 の基礎)。
  • Rel-16User Plane 完全性保護(UP IP)の拡張が主要トピック。Rel-15 では UP 完全性保護の適用に制約があったが、Rel-16 で適用範囲/性能面が強化された(具体的な必須条件・適用範囲は要確認)。
  • Rel-17 / Rel-18(5G-Advanced) — セキュリティ機能の拡張が継続(本章手順への具体差分は要確認)。

UP完全性保護の必須条件は要確認

UP完全性保護(KUPint)が「いつ必須か」は、UE/gNB の能力・データレート・事業者ポリシー・Release に依存します。「常時必須」ではなく条件付きであり、正確な適用条件(特に高データレート時の扱い)は TS 33.501 の該当版で要確認です。本章では断定を避けます。

3GPP Specification

Spec 内容
TS 33.501 §5.11 セキュリティアルゴリズム(NEA / NIA、NULL/SNOW 3G/AES/ZUC)
TS 33.501 §6.2 鍵階層(Key hierarchy) と KDF
TS 33.501 §6.3 セキュリティコンテキスト(Native / Mapped 等。章番号は要確認)
TS 33.501 §6.7.2 NAS Security Mode Command 手順
TS 33.501 §6.7.4 AS Security Mode Command 手順
TS 33.501 Annex A 鍵導出関数(KDF)の入力パラメータ(細部は要確認)
TS 24.501 §5.4.2 NAS 側 Security Mode Control 手順(SMC messages。章番号は要確認)
TS 38.331 (RRC各章) RRC(AS Security Mode Command 等)
TS 38.323 PDCP(暗号化・完全性保護の実施層)
TS 33.220 GBA/KDF の基礎(鍵導出関数の原型)

章番号の扱い

TS 33.501 §5.11 / §6.2 / §6.7.2 / §6.7.4 は本章の骨格として参照しています。§6.3(セキュリティコンテキスト)、TS 24.501 §5.4.2、Annex A の KDF 入力パラメータ、および TS 38.331/38.323 の個別章番号は版により異なる場合があり、一部は要確認としています。

FAQ

Q1. 暗号化と完全性保護の違いは?

暗号化(機密性)は中身を第三者に読めなくすること(盗聴対策、NEAで実施)。完全性保護MAC-I を付けて改ざんを検知すること(改ざん対策、NIAで実施)。中身を隠す暗号化と、書き換えを見抜く完全性保護は別の仕組みで、両方を併用します。暗号化だけでは改ざん検知はできません。

Q2. NAS SMC と AS SMC の順序と違いは?

NAS SMC が先、AS SMC が後です。NAS SMC は AMF主導で UE⇔AMF の NAS を保護(KNASenc/KNASint)。AS SMC は gNB主導で UE⇔gNB の RRC/UP を保護(KRRC/KUP)。NAS が確立して KAMF から KgNB を安全に導出できてから、gNB へ KgNB を渡して AS SMC を行います(TS 33.501 §6.7)。

Q3. NEA0 / NIA0 とは何ですか?使ってよい?

NEA0 = NULL 暗号(暗号化しない)NIA0 = NULL 完全性(完全性保護しない)です。運用網では保護を無効化する NULL は原則使いません。特に NIA0(完全性なし)は改ざん検知ができなくなるため、認証されていない緊急呼(unauthenticated emergency call)に限って許容されます(TS 33.501)。

Q4. User Plane 完全性保護はいつ必須?

一律に「常時必須」ではありません。UP完全性保護(KUPint)は Rel-15 で導入され Rel-16 で適用範囲が拡大しましたが、その適用は UE/gNB の能力・データレート・事業者ポリシー・Release に依存します。正確な必須条件(特に高データレート時の扱い)は TS 33.501 の該当版で要確認です。

Q5. ngKSI とは何ですか?

ngKSI(Key Set Identifier in 5G)は、使用中のセキュリティコンテキスト(鍵セット)を識別する短い番号です。UEと網が「どの鍵で話しているか」を一致させるために使います。認証時に割り当てられ、SMC 等で参照されます。ngKSI がずれると鍵セット不整合となり、再認証でコンテキストを作り直すことがあります(Trouble Shooting (c))。

Summary

  • 認証(本人確認)だけでは通信の中身は守れない。暗号化(機密性)+完全性保護(改ざん検知)で NAS/AS を守るのが本章のテーマ。
  • KSEAF を起点に KAMF→{KNASenc/KNASint, KgNB}→{KRRCenc/KRRCint, KUPenc/KUPint} と派生。層ごとに鍵を分けて被害を局所化する。
  • NAS SMC(AMF主導・先)→ AS SMC(gNB主導・後)の順で保護を有効化。NAS SMC は完全性保護のみで送られ、暗号化は Complete 以降(DLは次のメッセージ)から。
  • アルゴリズムは NEA(暗号)/ NIA(完全性)の 0/1/2/3(NULL/SNOW 3G/AES/ZUC)。選択は UE security capability と網の優先順位で決まる。
  • ngKSI でセキュリティコンテキストを識別。コンテキストには Native / Mapped がある。ABBA は下位互換攻撃を防ぐ。
  • 鍵階層の根〜KSEAFAUSF の鍵階層一次認証Authentication 章 を参照。
  • 根拠は TS 33.501 §5.11(NEA/NIA)/ §6.2(鍵階層)/ §6.7.2(NAS SMC)・§6.7.4(AS SMC)/ TS 24.501 / TS 38.331 / TS 38.323

Practice — 理解度チェック・演習

理解度チェック

Q1. 暗号化と完全性保護のうち、改ざん検知を担うのはどちらか?(解答)

完全性保護(Integrity protection)。MAC-I を付けて改ざんを検知する。暗号化は中身を読めなくするだけで、改ざん検知はしない。

Q2. NAS SMC と AS SMC はどちらが先か?主導するのは誰か?(解答)

NAS SMC が先(AMF主導)AS SMC が後(gNB主導)。NAS 保護確立後に KgNB を gNB へ渡し、AS 保護を有効化する。

Q3. KgNB はどの鍵から導出され、どこへ渡されるか?(解答)

KAMF から導出され、AMF から gNB へ N2(NGAP) で搬送される。gNB はここから KRRC/KUP を導出する。

Q4. Security Mode Command 自体は暗号化されているか?(解答)

いいえ。完全性保護のみ(暗号化なし)で送られる。だから選択アルゴリズム等を平文で確認できる。暗号化は Complete 以降(DLは SMC の次のメッセージ)から有効。

Q5. NEA2 / NIA2 の土台となる暗号アルゴリズムは?(解答)

AES(xEA2=AES, xEA1=SNOW 3G, xEA3=ZUC, xEA0=NULL)。正確な対応は TS 33.501 §5.11 を参照。

演習

: 次の鍵派生ツリーの空欄 [1]〜[4] を埋め、続いて保護有効化の順序 A〜D を正しく並べ替えてください。

[鍵派生ツリー]
KSEAF → [1] → { [2] / KNASint, [3] }
[3] → { KRRCenc / KRRCint, KUPenc / [4] }

[順序]
A. UE→gNB: AS Security Mode Complete
B. AMF→UE: NAS Security Mode Command
C. gNB→UE: AS Security Mode Command
D. UE→AMF: NAS Security Mode Complete
解答

鍵派生ツリー - [1] = KAMF - [2] = KNASenc - [3] = KgNB - [4] = KUPint

順序: B → D → C → A - B: NAS SMC(AMF→UE、完全性保護のみ) - D: NAS SMC Complete(UE→AMF、以降のNAS暗号化+完全性) - C: AS SMC(gNB→UE、KgNB由来のRRC/UP鍵) - A: AS SMC Complete(UE→gNB、以降のRRC/UP保護有効)

※ NAS(B,D) が先、AS(C,A) が後という大枠が最重要。

Next Step

理解を深めるための次の一歩です。