44-01 IPSec

IPSec(Internet Protocol Security)技術解説書

作成日: 2023年10月

1. IPSecの概要と目的

IPSec(Internet Protocol Security)は、インターネットプロトコル(IP)通信において、パケット単位で暗号化や認証を行うためのプロトコルスイートです。本来セキュリティ機能を持たないIP層(OSI参照モデルの第3層:ネットワーク層)を拡張し、通信の機密性、完全性、および真正性を確保することを目的としています。

VPN(Virtual Private Network)の構築において最も広く利用されている技術の一つであり、インターネットという安全ではない公衆網を経由して、安全なプライベートネットワーク接続を実現します。

  • 機密性 (Confidentiality): 通信内容を暗号化し、第三者による盗聴を防ぎます。
  • 完全性 (Integrity): データが通信途中で改ざんされていないことを保証します。
  • 認証 (Authentication): 通信相手が正当な送信元であることを確認します。

2. IPSecのアーキテクチャ

IPSecは単一のプロトコルではなく、複数のプロトコルが連携して動作するフレームワークです。主に、セキュリティ機能を提供するプロトコル(AH/ESP)と、鍵交換を行うプロトコル(IKE)から構成されます。

IPSec アーキテクチャ 鍵交換プロトコル IKE (v1 / v2) (Internet Key Exchange) セキュリティプロトコル AH ESP セキュリティデータベース SPD (Policy) SAD (Association)
図1: IPSecの主要構成要素とその関係

このように、IPsecには様々な種類があり、様々なプロトコルが使われます。このような処理はルーターで行われるため、IPsecを活用したVPNを構築する場合には、IPsec対応したルーターが必須です。

3. IPSecの主要コンポーネント

IPSecを構成する3つの主要なプロトコルについて詳述します。

3.1. AH (Authentication Header)

プロトコル番号: 51
データの「認証」と「完全性」のみを提供します。パケットが改ざんされていないこと、送信元が正しいことは保証しますが、暗号化機能を持たないため、盗聴を防ぐことはできません。現在ではESP単体で認証も可能なため、AH単独での利用は減少しています。

3.2. ESP (Encapsulating Security Payload)

プロトコル番号: 50
データの「暗号化」、「認証」、「完全性」の全てを提供します。ペイロード(データ部分)を暗号化するため、盗聴防止に有効です。現代のVPN構築において主役となるプロトコルです。

3.3. IKE (Internet Key Exchange)

UDPポート: 500 / 4500
暗号化通信を行うための鍵交換を自動的に行うプロトコルです。通信相手との認証を行い、使用する暗号化アルゴリズムや鍵情報を安全に共有して、セキュリティアソシエーション(SA)を確立します。

4. トランスポートモードとトンネルモード

IPsecでは、情報漏洩や改ざんを防ぐ処理として「AH」または「ESP」が使われます。そして動作方法としては「トランスポートモード」と「トンネルモード」の2種類があります。そして、最もよく使われているのが「ESP」を使った「トランスポート」です。

 トンネルモードトランスポートモード
ESP一番よく使われる利用可能なシーンが限られる
AH暗号化なしで安全性が低い暗号化なしで安全性が低い
利用可能なシーンが限られる

IPSecには、パケットのどの部分を保護するかによって2つの動作モードがあります。

元のIPパケット IPヘッダ データ (TCP/UDPなど) トランスポートモード (主にホスト間通信) IPヘッダ IPSec 暗号化データ データ部分のみ暗号化 トンネルモード (主に拠点間VPN) 新IPヘッダ IPSec 暗号化データ (元IPヘッダ含む) パケット全体をカプセル化して暗号化
図2: モードによるパケット構造の違い
モード特徴主な用途
トランスポートモード元のIPヘッダをそのまま使用し、データ部分(ペイロード)のみを保護します。オーバーヘッドが少ないです。端末間(End-to-End)の通信
L2TP/IPSecなど
トンネルモード元のパケット全体を暗号化し、新しいIPヘッダを付加してカプセル化します。拠点間(Gateway-to-Gateway)のVPN接続
異なるネットワーク間の接続

5. IPSecの動作フロー(IKEフェーズ)

IPSec通信を開始するためには、IKEによって安全な通信路を確立する手順が必要です。これは大きく2つのフェーズに分かれます。

ルーター A ルーター B IKE フェーズ 1 (管理用チャネルの確立) 1. 暗号化方式の提案・合意 2. Diffie-Hellman鍵交換 3. 相互認証 (PSKや証明書) ISAKMP SA 確立 IKE フェーズ 2 (データ用チャネルの確立) フェーズ1の安全な通信路内でIPSec SAのパラメータ交渉 IPSec SA 確立 実際のデータ通信 (ESPで暗号化)
図3: IKEフェーズ1とフェーズ2のネゴシエーションフロー
  • フェーズ1 (Main Mode / Aggressive Mode):
    IPSec通信を行うための制御用通信路(ISAKMP SA)を確立します。お互いに認証し、この後の通信を暗号化するための共通鍵を生成します。
  • IKEフェーズ1におけるネゴシエーションには、Main ModeとAggressive Modeの2種類があります。Main Modeは認証を行う際に相手の特定をIPアドレスにて行うことが前提となっています。一方、Aggressive Modeでは接続する相手の特定を、IPアドレスには依存せず、自身及び相手のIDにおいて行います。このため、企業が複数拠点を結んでVPNを構築するようなケースであれば、各拠点が固定IPアドレスを持つことができるためMain Modeが使われることが多くなります。その一方で、ポータブルなPC等を用いて公共のホットスポットやモバイルネットワークを経由して閉域ネットワークにアクセスするような場合は、IPアドレスを固定することが困難であるためAggressive Modeが利用されます。
  • フェーズ2 (Quick Mode):
    フェーズ1で作られた安全な通信路を使って、実際にユーザーデータを流すための通信路(IPSec SA)を確立します。どのパケットを暗号化するかなどの詳細を決定します。

6. 暗号化アルゴリズムと認証方式

IPSecの強度は、使用するアルゴリズムの組み合わせに依存します。

カテゴリアルゴリズム推奨度・備考
暗号化
(機密性)
AES (128/256bit)
3DES
DES
AES が現在の標準であり強く推奨されます。
DES/3DESは脆弱性のため非推奨。
ハッシュ関数
(完全性・認証)
SHA-2 (SHA-256/512)
SHA-1
MD5
SHA-2 が推奨されます。
MD5/SHA-1は衝突攻撃のリスクがあり非推奨。
鍵交換Diffie-Hellman Group 14, 19, 20 etc.ビット数が大きいグループほど安全だが、計算負荷も高い。現在はGroup 14以上が推奨。

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

SA(Security Association)は、IPSec通信を行う二者間で合意されたセキュリティパラメータのセット(契約のようなもの)です。

  • SAは単方向です。双方向通信を行う場合、行きと帰りでそれぞれ1つずつ、計2つのSAが必要です。
  • SAはSPI(Security Parameter Index)、宛先IPアドレス、プロトコル識別子の3つで一意に識別されます。

  • SAには寿命(ライフタイム)があり、一定時間または一定通信量ごとに再生成(Re-key)され、セキュリティを維持します。

8. 実装例とユースケース

8.1. 拠点間VPN (Site-to-Site VPN)

本社と支社のルーター同士をIPSecトンネルモードで接続します。ユーザーはVPNを意識することなく、透過的に相手側のLANへアクセスできます。

8.2. リモートアクセスVPN

外出先のPCやスマートフォンから、社内ネットワークへ安全に接続します。PCにインストールしたVPNクライアントソフトがIPSec(トランスポートモードをL2TPでカプセル化するなど)を開始します。

リモートアクセスVPNを実現するためには「Mode ConfigとXAUTH」の技術を実装する必要があります。
 IKE Mode Configは、IPsec機器間で設定パラメータをセキュアに送受信するためのIPsecの拡張技術です。
 例えば、VPNクライアントがVPNサーバの認証を完了した後、VPNサーバ側のLANでアクセスできるために、
 VPNクライアントにIPアドレスを割り当てる際に使用する機能です。

8.3. クラウド接続

オンプレミスのデータセンターとAWSやAzureなどのパブリッククラウド(VPC/VNet)をIPSec VPNで接続し、ハイブリッドクラウド環境を構築します。

9. メリットとデメリット

メリット

  • 高いセキュリティ: 強固な暗号化と認証により、公衆網でも専用線並みの安全性を確保。
  • アプリケーションに依存しない: ネットワーク層で動作するため、HTTP、FTP、VoIPなど上位のあらゆるアプリケーションを透過的に保護可能。
  • コスト削減: 高価な専用線の代わりに安価なインターネット回線を利用できる。

デメリット

  • 設定の複雑さ: IKEのパラメータ、フェーズ設定、ACLなど設定項目が多く、トラブルシューティングが難しい。
  • オーバーヘッド: カプセル化によるヘッダ付加でパケットサイズが増大し、フラグメンテーションやスループット低下の可能性がある。
  • NATとの相性: 従来のIPSecはNATルーターを通過できない場合がある(NATトラバーサル機能で回避可能)。