IPsec — IPパケットそのものを暗号化して守る

上級の解説は準備中のため、上級の内容を表示しています。

概要 — まず全体をつかむ

中級ではESP・AH・モード・SA・IKEを見ました。上級では、鍵をどう安全に決めるか(IKEv2)・SAをどう識別するか(SPI)・攻撃をどう防ぐか・NATをどう越えるかという「動く仕組み」を掘り下げます。

詳細 — 1段階ずつ追う

これは何をする係?

IPsecの難所は「データを暗号化する前に、その鍵を安全に共有する」ことです。鍵を平文で送れば意味がありません。ここを担うのが IKEv2(Internet Key Exchange v2)で、2つのフェーズで慎重に進めます。

  • フェーズ1 — IKE_SA_INIT公開鍵暗号 と同じ発想のDH鍵交換で、盗聴されても復元できない鍵素材とランダム値(nonce)を交換する。これで「IKE自身を守る安全な通り道」ができる
  • フェーズ2 — IKE_AUTH — 先の安全な通り道の中で、証明書や事前共有鍵を使って相互認証し、実データ用の SA(Child SA)を確立する
  • 以降は ESP で実データを暗号化して流す。使うのは 共通鍵暗号(速いから)で、その鍵をIKEが安全に配った、という分業
アニメーション『IKEv2の鍵交換(2フェーズ)』を開く
クライアント対向ゲートウェイ
  • クライアントトンネルを張りに行く側。自宅PCや拠点ルータなど
  • 対向ゲートウェイ社内網の入口。トンネルの相手方
「▶ 再生」で通しで見るか、「次へ」で1手ずつ進めてください。
0 / 6

なぜ2段階に分けるのか。いきなり本人確認から始めると、そのやり取り自体が盗聴されます。まず暗号の通り道を作り(1)、その中で本人確認する(2)——この順序が、認証情報すら守るための必然です。

SPIとSAデータベース

トンネルは同時に何本も張られます。届いたパケットが「どのSAのものか」を一瞬で見分ける必要があります。

  • SPI(Security Parameter Index)— ESPヘッダに載る32ビットの識別子。受信側はこれをキーに、正しいSAを引く
  • SAD(SAデータベース)— SPIごとに「暗号方式・鍵・シーケンス番号の状態」を保持する台帳
  • 受信の流れは「SPIでSADを引く → その鍵で復号 → 完全性とシーケンス番号を確認」

リプレイ攻撃の防止

暗号化されていても、盗んだ正規パケットをそのまま再送されると困ります(リプレイ攻撃)。IPsecはこう防ぎます。

  • ESPはシーケンス番号を1ずつ増やして付ける
  • 受信側は受信済みの番号と、古すぎる番号(スライディングウィンドウの外)を拒否する
  • だから同じパケットの使い回しは弾かれる

NATトラバーサル

家庭や社内の多くはNAT(アドレス変換)の内側にいます。ところがIPsecはNATと衝突しがちです。

  • なぜ難しいか — AHは元のIPヘッダまで保護するため、NATがアドレスを書き換えると完全性チェックに失敗する。ESPも、ポート番号を持たないためNAT機器が経路を管理しづらい
  • どう越えるかNAT-T(NATトラバーサル)で、ESPパケットを UDP(ポート4500)でさらにカプセル化する。UDPヘッダのおかげでNATが扱えるようになり、NAT越しでもトンネルが張れる

なぜVPNはトンネルモードか(再訪)

  • 拠点間では宛先が「ゲートウェイ」であり、本当の宛先(社内ホスト)は隠したい。元パケットごと包むトンネルモードが必然
  • 端末どうしが直接IPsecで話す限られた場面だけがトランスポートモード
  • 落とし穴 — Perfect Forward Secrecy(毎回新しい鍵素材を使う設定)を切ると、将来の鍵漏洩で過去の通信までまとめて復号される危険がある
  • 落とし穴 — 弱い暗号方式や短い鍵寿命の放置は、いくらトンネルを張っても土台を崩す

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. IKEv2の2つのフェーズの役割として正しいのは?

2. 受信した古いパケットを再送してなりすます「リプレイ攻撃」をIPsecが防ぐ仕組みは?

3. 届いたESPパケットが「どのSAのものか」を見分けるために使う、ESPヘッダ上の32ビットの識別子はどれ?

4. SPIごとに「暗号方式・鍵・シーケンス番号の状態」を保持する台帳を何と呼ぶ?

5. IKEv2が鍵交換(IKE_SA_INIT)を先に、相互認証(IKE_AUTH)を後に行うのはなぜ?

6. NAT-T(NATトラバーサル)がNATの内側からでもIPsecを通すために行うのはどれ?

7. 毎回新しい鍵素材を使い、将来鍵が漏れても過去の通信は復号されないようにする性質を、英字3文字の略語で答えてください。

8. IPsecで実データの暗号化を担い、SPIやシーケンス番号を載せるプロトコルを英字3文字で答えてください。