Security応用 — 5GCセキュリティの多層防御を俯瞰する¶
学習目標¶
この章を読み終えると、次のことができるようになります。
- 5GCのセキュリティが アクセス層・NAS層・SBA層・ローミング境界 という 多層 で構成されることを地図として説明できる
- SUCI/SUPI秘匿 がなぜ重要か(IMSIキャッチャ対策・プライバシー保護)を説明できる
- 鍵階層(K → CK/IK → K_AUSF → K_SEAF → K_AMF → NAS鍵/AS鍵)の全体像を俯瞰できる
- SBA間のセキュリティ(NF間TLS、NRFによるOAuth 2.0トークン認可、Service Meshの相互TLS)の目的を説明できる
- NIA0/NEA0(Null完全性/Null暗号)が緊急通報など特殊ケース限定であることを説明できる
前提知識¶
- 認証(5G-AKA / EAP-AKA') — 本章はこの基本認証を「済んだもの」として扱う
- NAS/AS Security・SUCI生成 — 鍵導出とSUCI生成の詳細はこちらへ委譲
- 補助: AUSF(認証NF) / NRF(NF登録・トークン発行) / SEPP(ローミング境界NF) / 用語引き: Security辞典
この章の焦点
基本認証(5G-AKA/EAP-AKA')、鍵導出の計算式、SUCI生成の手順は 認証 と NAS/AS Security で扱います。この章はそれらを前提に、「5GCのセキュリティが全体としてどう多層で守られているか」 という俯瞰図を与えることに徹します。
Why — なぜ多層で守るのか¶
5GCのセキュリティは、単一の仕組みでは守れません。守るべき対象と脅威が場所ごとに違うからです。
- 無線区間 では、傍受・改ざん・なりすまし(偽基地局=IMSIキャッチャ)が脅威。→ 暗号化・完全性保護・恒久識別子の秘匿で守る。
- 端末とコア(AMF)間の制御信号(NAS) では、位置登録やセッション制御メッセージの保護が必要。→ NAS Securityで守る。
- コア内部のNF間通信(SBA) では、正規でないNFのなりすまし・盗聴が脅威。→ TLSとOAuth認可で守る。
- 事業者網の境界(ローミング) では、他事業者網を経由する信号の保護が必要。→ SEPP/N32で守る。
例え話: 5GCのセキュリティは「城の多重防御」です。外堀(無線区間)、城門の通行証(NAS)、城内の各部屋の入室許可(SBA認可)、隣国との国境検問(ローミング境界)と、層ごとに違う守り方をします。どれか1つが破られても、次の層で止められることが狙いです。
What — 4つの層と特殊ケース¶
5GCのセキュリティは、大きく4つの層で捉えられます(TS 33.501)。
graph TD
subgraph Access["アクセス層 — 無線区間"]
A1["AS Security
UE ⇔ gNB
RRC/User Plane 暗号・完全性"]
end
subgraph NAS["NAS層 — 端末⇔コア制御信号"]
N1["NAS Security
UE ⇔ AMF
NAS暗号・完全性 + SUCI秘匿"]
end
subgraph SBA["SBA層 — コア内NF間"]
S1["NF間TLS + OAuth 2.0
NRFがトークン発行
相互TLS (Service Mesh)"]
end
subgraph Roam["ローミング境界 — 事業者網間"]
R1["SEPP / N32
PRINS or TLS"]
end
Access --> NAS --> SBA
NAS -. ローミング時 .-> Roam
SBA -. ローミング時 .-> Roam
各層の役割を対比します。
| 層 | 守る区間 | 主な仕組み | 主なNF | 委譲先 |
|---|---|---|---|---|
| アクセス層 | UE ⇔ gNB(無線) | AS Security(RRC/UP の暗号・完全性) | gNB | NAS/AS Security |
| NAS層 | UE ⇔ AMF(制御信号) | NAS Security、SUCI秘匿 | AMF, AUSF | 認証 |
| SBA層 | NF ⇔ NF(コア内) | TLS、OAuth 2.0トークン認可 | NRF | 本章 How |
| ローミング境界 | vPLMN ⇔ hPLMN | SEPP / N32(PRINS or TLS) | SEPP | roaming.md |
この章で「深追いしない」もの
各層の詳細は委譲先に譲ります。この章の役割は、それらが 1枚の地図 としてどう繋がるかを示すことです。
How — 各トピックを俯瞰する¶
SUCI/SUPIの秘匿 — プライバシー保護¶
SUPI(Subscription Permanent Identifier) は加入者の恒久識別子(IMSI相当)です。これを無線区間で 平文のまま送ると、偽基地局(IMSIキャッチャ)が捕捉し、個人の追跡が可能 になってしまいます。
5Gでは、SUPIを ホーム網(hPLMN)の公開鍵で暗号化した SUCI(Subscription Concealed Identifier) として送ります。復号できるのはホーム網(UDM/SIDF)だけなので、途中の誰にもSUPIは見えません。暗号方式には ECIES(Elliptic Curve Integrated Encryption Scheme) が使われます(TS 33.501)。
なぜ重要か
SUCI秘匿は「誰がそこにいるか」を隠すプライバシー保護の要です。4G以前にIMSIキャッチャが問題視されたことへの、5Gの構造的な対策です。SUCIの生成手順・鍵の詳細は NAS/AS Security を参照してください。
鍵階層の概観¶
認証(5G-AKA/EAP-AKA')が成功すると、1つの根鍵から用途別の鍵が 階層的に 導出されます。層が下るほど利用範囲が狭まり、上位鍵が漏れても直ちに全鍵が破られない構造です(TS 33.501)。
| 段 | 鍵 | どこで使う(概観) |
|---|---|---|
| 根 | K | USIM / ホーム網に格納された永続鍵 |
| ↓ | CK / IK | 認証で導出される暗号鍵・完全性鍵 |
| ↓ | K_AUSF | AUSFに保持される中間鍵 |
| ↓ | K_SEAF | サービング網(SEAF=AMF内機能)用のアンカ鍵 |
| ↓ | K_AMF | AMF用鍵。以降のNAS/AS鍵の親 |
| ↓ | NAS鍵 / AS鍵 | NAS Security(UE⇔AMF)、AS Security(UE⇔gNB)で実際に使う鍵 |
詳細は委譲
各鍵の具体的な導出関数(KDF)・入力パラメータ・更新条件は 認証 と NAS/AS Security で扱います。ここでは「階層があり、下位ほど範囲が狭い」という全体像だけ押さえます。
SBA間のセキュリティ — NF同士のなりすまし防止¶
コア内部でも、NF(AMF, SMF, UDM…)同士のSBI通信を守る必要があります。SBAでは3つの仕組みが重なります(TS 33.501)。
- TLS — NF間のSBI(HTTP/2)通信を暗号化・完全性保護する。盗聴・改ざんを防ぐ。
- OAuth 2.0トークン認可 — NFがサービスを呼ぶとき、NRF が発行する アクセストークン を提示する。呼ばれる側はトークンを検証し、正規に認可されたNFだけを受け付ける。これで「正規でないNFのなりすまし」を防ぐ。
- 相互TLS(mTLS) / Service Mesh — 実装によってはService Meshで相互TLSを張り、双方向でNFを認証する。
| 仕組み | 目的 | 発行/管理 |
|---|---|---|
| TLS | SBI通信の暗号化・完全性 | NF間で確立 |
| OAuth 2.0トークン | NFサービス呼び出しの認可(なりすまし防止) | NRF が発行 |
| 相互TLS / Service Mesh | 双方向のNF認証 | 実装依存 |
認証と認可は別物
「そのNFが本物か(認証=TLS/mTLS)」と「そのNFがこのサービスを呼んでよいか(認可=OAuthトークン)」は別の話です。SBAはこの両方を重ねて守ります。
ローミング境界のセキュリティ¶
ローミング時、サービング網(vPLMN)とホーム網(hPLMN)の間の信号は、直接ではなく SEPP(Security Edge Protection Proxy) を経由し、N32 インタフェースで保護されます。保護方式には PRINS(アプリ層メッセージ保護、IPX中継対応)と TLS(直接接続)があります。
詳細は roaming.md へ
SEPP/N32・PRINS/TLSの詳細は同階層の ローミング で扱います。ここでは「事業者網の境界にも独立した守りがある」という位置づけだけ確認します。SEPP自体の詳細は SEPP を参照。
NIA0 / NEA0 — 「保護なし」が許される特殊ケース¶
- NEA0(Null Encryption Algorithm) — 暗号化を行わないアルゴリズム。
- NIA0(Null Integrity Algorithm) — 完全性保護を行わないアルゴリズム。
これらは通常は使いません。緊急通報(未認証端末での緊急呼など) のような、認証できないが通信させるべき特殊ケースでのみ許容されます(TS 33.501)。
通常運用では使わない
NIA0/NEA0は「守らない」選択肢です。緊急通報など限定用途に閉じ込め、通常のトラフィックには適用しません。緊急通報でのこれらの扱いの詳細は 緊急通報 を参照してください。
3GPP Specification¶
| 仕様 | 内容 |
|---|---|
| TS 33.501 | Security architecture and procedures for the 5G System(5Gセキュリティアーキテクチャ全体。SUCI/SUPI・鍵階層・SBAセキュリティ/OAuth・NIA0/NEA0を包含) |
節番号の粒度
TS 33.501 が5Gセキュリティの主要仕様であることは確実です。ただし各トピック(SUCI/ECIES、鍵階層、OAuthトークン等)の具体的な節番号は版により異なるため、精密な引用時は 要確認。事業者ごとの適用範囲・運用(どのアルゴリズムを有効化するか等)は 実装依存 です。
FAQ¶
Q. なぜSUPIを直接送らずSUCIにするのですか?
SUPIを平文で送ると偽基地局(IMSIキャッチャ)が捕捉し、個人の追跡が可能になるためです。ホーム網の公開鍵でECIES暗号化したSUCIとして送れば、途中の誰にもSUPIは見えず、復号できるのはホーム網だけになります。
Q. SBAでTLSがあるのに、なぜOAuthトークンも要るのですか?
役割が違うためです。TLSは「相手NFが本物か・通信が盗聴されていないか(認証・暗号化)」を守り、OAuthトークンは「そのNFがこのサービスを呼んでよいか(認可)」を守ります。認証と認可を重ねることで、正規でないNFのなりすましやサービス濫用を防ぎます。
Summary¶
- 5GCのセキュリティは アクセス層・NAS層・SBA層・ローミング境界 の 多層防御(TS 33.501)
- SUCI/SUPI秘匿 はプライバシー保護の要。ホーム網公開鍵によるECIES暗号でIMSIキャッチャを無力化
- 鍵階層(K → CK/IK → K_AUSF → K_SEAF → K_AMF → NAS/AS鍵)は下位ほど範囲が狭い
- SBA層 は TLS(暗号)+ OAuth 2.0トークン(NRF発行の認可)+ 相互TLSでNFなりすましを防ぐ
- ローミング境界 は SEPP/N32(PRINS or TLS)で守る(詳細は roaming.md)
- NIA0/NEA0 は緊急通報など特殊ケース限定の「保護なし」。通常は使わない
理解度チェック¶
Q1. 5GCのセキュリティを構成する4つの層を挙げ、それぞれが守る区間を説明してください。
アクセス層(UE⇔gNB、無線区間をAS Securityで)、NAS層(UE⇔AMF、制御信号をNAS Securityで、加えてSUCI秘匿)、SBA層(コア内NF⇔NF間をTLS+OAuth認可で)、ローミング境界(vPLMN⇔hPLMN間をSEPP/N32で)。守る対象と脅威が場所ごとに違うため、層ごとに異なる守り方をする。
Q2. SBA層でTLSとOAuth 2.0トークンがそれぞれ担う役割を区別して説明してください。
TLS はNF間SBI通信の暗号化・完全性保護(=相手が本物か・盗聴されないか=認証と機密性)。OAuth 2.0トークン はNRFが発行し、NFがサービスを呼ぶ際の認可(=そのNFがこのサービスを呼んでよいか)。認証と認可は別物で、両方を重ねてなりすましを防ぐ。
Q3. NIA0/NEA0とは何か、どのような場合に許容されるか説明してください。
NEA0はNull暗号(暗号化なし)、NIA0はNull完全性(完全性保護なし)のアルゴリズム。通常運用では使わず、緊急通報(未認証端末での緊急呼など) のように認証できないが通信させるべき特殊ケース限定で許容される(詳細は緊急通報の章)。
Next Step¶
- 前提の詳細へ戻る: NAS/AS Security・SUCI で鍵導出とSUCI生成を確認
- ローミング境界の守りを深掘り: 同階層の ローミング で SEPP/N32・PRINS/TLS へ
- 緊急通報での NIA0/NEA0 の扱いは 緊急通報 へ
- 用語引きは Security辞典 へ