IPsec

読み:あいぴーせっく / 英語表記:IP Security

ネットワーク層(IP)で、通信の暗号化や認証を行うためのプロトコル群。暗号化と認証を行うESP、認証だけを行うAH、鍵を交換するIKEなどからなる。拠点間を結ぶVPNでよく使われる。

イマシルちゃんの解説

TLSは、Webやメールみたいな、アプリケーションごとに暗号化する仕組みだったよね。

IPsecは、もっと下の「IPのレベル」で暗号化しちゃうんだ。
だから、上で動いているのがWebでもメールでも何でも、まとめて守れるんだよ!
本社と支社をインターネット越しに、安全なトンネルでつなぐときなんかに大活躍するんだ。

より深い解説

定義

IPsec(IP Security)は、RFC 4301などで定められた、IP層でパケットの機密性、完全性、送信元の認証、リプレイ攻撃の防止などを実現するためのプロトコル群である。IP層で動作するため、上位のアプリケーションは、IPsecを意識せずに保護を受けられる。

構成するプロトコル

プロトコル役割IPのプロトコル番号 / ポート
ESP(Encapsulating Security Payload)暗号化と認証(完全性)プロトコル番号50
AH(Authentication Header)認証(完全性)だけ。暗号化はしないプロトコル番号51
IKE(Internet Key Exchange)暗号化のアルゴリズムの合意と、鍵の交換UDPの500番(NAT越えでは4500番)

SA(セキュリティアソシエーション)

IPsecで通信する2つの機器の間で、どの暗号アルゴリズムと鍵を使うかなどの取り決めを、SA(Security Association)という。SAは片方向ごとに作られるため、双方向の通信には、少なくとも2つのSAが必要になる。SAは、SPI(Security Parameter Index)という番号で識別され、ESPやAHのヘッダーに含まれる。

SAの取り決めや鍵の交換は、IKEが自動で行う。ESPやAHのヘッダーそのものが、アルゴリズムを交渉することはない。

2つのモード

モード保護する範囲主な用途
トランスポートモード元のIPパケットのデータ部だけ(元のIPヘッダーはそのまま)ホスト同士の通信
トンネルモード元のIPパケットの全体を、新しいIPヘッダーでカプセル化するVPN装置同士(拠点間VPN)

ESPのトンネルモードでは、元のIPヘッダーも暗号化されるため、拠点の内部で使っているIPアドレスを、インターネット上から隠すことができる。

使われる主なアルゴリズム

目的主なアルゴリズム
暗号化AES(CBC、GCM)、3DES(現在は非推奨)
認証(完全性)HMAC-SHA-256、HMAC-SHA1
鍵交換Diffie-Hellman

HMAC-SHA1などのHMACは、改ざんを検出するためのメッセージ認証のアルゴリズムであり、暗号化のアルゴリズムではない。AES-GCMのように、暗号化と認証を同時に行う方式(認証付き暗号)もある。

IPsecとNAT

AHは、IPヘッダーも含めて完全性を保証するため、途中のNATでIPアドレスが書き換えられると、認証に失敗する。ESPも、ポート番号を持たないため、NAPTを通過できない。この問題を解決するため、ESPのパケットをUDPの4500番でカプセル化するNATトラバーサル(NAT-T)が使われる。

TLSとの比較

IPsecTLS
動作する層ネットワーク層トランスポート層とアプリケーション層の間
保護の対象IPパケット(すべてのアプリケーション)TLSに対応したアプリケーションの通信
主な用途拠点間VPN、リモートアクセスVPNHTTPS、SSL-VPN

実際の試験ではここに出る!

この用語が出てくる記事

↑