0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Network Systems Foundations】ネットワークセキュリティの学習整理

Last updated at Posted at 2025-11-21

はじめに

本記事は、Coursera の Network Systems Foundations モジュール「Network Security」で学んだ内容を整理する目的でまとめたものです。

🔷 1. ネットワークセキュリティとは?

通信は Wi-Fi / ISP / Router など
制御不能な媒介 を通るため攻撃者が介入できる」
→ 盗聴 / 改ざん / 成りすまし の危険あり

🧩 CIA Triad(3 つの柱)

要素 意味
Confidentiality(機密性) 権限のある者のみが閲覧可能
Integrity(完全性) 改ざんされていない
Availability(可用性) 必要な時に利用可能

🚨 2. 各レイヤーの脅威と解決策

レイヤー 問題 解決策
Network Data Plane 盗聴 / 設定ミス ✨ IPsec
Network Control Plane BGP hijacking ✨ RPKI
Transport / Application HTTP は平文通信 ✨ TLS / HTTPS

🔐 3. 暗号化の基礎

🔑 共通鍵暗号(対称暗号)

  • 1 つの鍵を共有 → 暗号化 & 復号
  • 高速・実用的
  • 鍵の共有方法が課題

例:XOR 暗号(非常に単純)

plaintext: 0100 0101
key: 1101 0111

ciphertext: 1001 0010

AES(256bit) = 強力な共通鍵暗号の代表例

🔑 公開鍵暗号(非対称暗号)

  • 公開鍵 → 暗号化
  • 秘密鍵 → 復号
  • 鍵共有の課題を解決(ただし遅い)
RSA 例:
c = m^e mod n   # 暗号化
m = c^d mod n   # 復号

TLS の鍵共有で使われるが、
現在は ECDHE / Diffie-Hellman が主流

🔁 4. Diffie–Hellman 鍵交換の仕組み

お互いに 秘密値 x, y をランダムに選ぶ
→ 互いに知らずに 同じ共有鍵 K が生成される!

hA = g^x mod p
hB = g^y mod p

# 双方の計算結果は一致:
K = (hB)^x mod p = g^(xy) mod p
  = (hA)^y mod p = g^(xy) mod p

x と y を共有しなくても、K が一致するのがポイント!

📌 5. HMAC(暗号化ではなく「改ざん検知」)

Message Authentication Code(MAC)
= 改ざんされていないか確認する仕組み

HMAC = H( key || H(key || message) )
  • 共通鍵を用いる(送信者と受信者で共有)
  • 送信側:MAC を作って message と一緒に送る
  • 受信側:MAC を再計算して比較
    内容が改ざんされたら検知可能

🌐 6. IPsec(ネットワーク層の暗号トンネル)

VPN 内部で使われることが多い
拠点間通信を暗号化する技術

IPsec の主要ステップ(IKE)

ステップ 内容
SA-1 暗号方式・認証方式・ハッシュ方式の交換
Diffie–Hellman 共通鍵(Session Key)作成
認証 事前共有鍵 or 証明書
SA-2 Traffic Selectors → 通す通信を指定
Traffic AH or ESP モードで通信開始

🛰️ 7. RPKI(BGP Hijacking 対策)

❌ 攻撃例

Prefix 1.1.1.0/24 を AS3 が保有
AS4 が「自分が AS3 です」と嘘のBGP発表
→ AS1 は短い経路を選び AS4 に送信 → ハイジャック成功

💡 理想解

Prefix Owner が
「1.1.1.0/24 は AS3 が所有」と証明する仕組みが欲しい

それが RPKI(Resource Public Key Infrastructure)

💡 RPKI の流れ

1. RIR(APNIC・ARIN…)が CA(証明書局)になる
2. Prefix Owner が 公開鍵を提出(証明書要求)
3. RIR が ROA を署名・DB登録
4. Validator が ROA を検証
5. Routerが BGP経路を Valid / Invalid / Unknown に判定
状態 意味
VALID 正常
INVALID なりすまし可能性
UNKNOWN 後方互換モード

🔒 8. TLS / HTTPS(アプリ層の守護神)

HTTP の問題点

  • 平文通信(盗聴可能)
  • 改ざん検知なし
  • サーバーの真正性保証なし

TLS を挟むと HTTPS になる!

TCP ─ TLS ─ HTTP ← 3 層構造

⚡ TLS 1.2 ハンドシェイク(流れ)

① Client Hello ← 対応可能な暗号方式・バージョンを送信
② Server Hello ← サーバーが選択
③ Server Certificate(CA 署名付き証明書)
④ Server Hello Done
⑤ Client Key Exchange → 公開鍵で Session Key を暗号化送信
⑥ Finished(メッセージ改ざんチェック)

🔐 セキュア通信開始!

🧾 Let's Encrypt(証明書自動発行)

/well-known/acme-challenge/xxxx
に指定された値を置く

→ Let's Encrypt が HTTP リクエストして確認
→ 所有者であると判定されれば証明書発行

🔁 Mutual TLS(mTLS)

通常:クライアントがサーバーの証明書を確認
mTLS:サーバーがクライアントの証明書も確認

➡ API / B2B / 内部通信で使用される

🧠 個人的な理解ポイント(メモ)

  • TLS は HTTP 専用ではなく TCP と HTTP の間のレイヤ
  • Diffie-Hellman の式が数学的に理解できた
  • RIR = CA → RPKI の核心
  • AES は共通鍵暗号の中でも強力な例
  • HMAC は暗号化ではなく改ざん検出
  • IPsec の SA-1 / SA-2 / DH / Traffic の流れが明確になった
  • mTLS は API のセキュリティに使える

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?