IPsecとは何であり、VPNにとって何を行うのか?

インターネットエンジニアリングタスクフォース(IETF)は、インターネットプロトコル(IPv4)のセキュリティ脆弱性に対応するためにIPsecを開発しました。IPv4経由でインターネット上で配信されたデータを傍受することは、誰にとっても難しい作業ではありませんでした。そのため、IPsecが登場しました。IPsecは、インターネット上の通信が安全であることを保証する一連のセキュリティプロトコルを使用して、IPv4のセキュリティ不足を対処します。

Open Systems Interconnection (OSI) モデルのネットワーク層で動作するIPsecを使用して、ネットワーク間およびホスト間で安全に通信することができます。その結果、IPsecの実装はホスト間、ネットワークからホストへ、そしてネットワーク間の通信で行われます。

IPsecは、2つのエンドポイント間のエンドツーエンドのセキュリティが必要な業界、特にVPN業界で人気があります。他のプロトコルと同様に、VPNはデータの整合性、機密性、および認証を提供するため、転送中のデータを保護するためにIPsecを使用します。この記事は、IPsecを理解し、VPNが消費者のインターネットトラフィックを保護するためになぜIPsecに依存しているかについて詳しく説明します。

## IPsecとは何か?

インターネットプロトコルセキュリティ(IPsec)は、インターネット上でコンピュータ間の安全な接続を確立するために協力して機能するプロトコル群、またはプロトコルスイートです。IPsecは暗号化された接続を提供し、第三者が関与するコンピュータ間の通信内容を見ることを防ぎます。暗号化の他に、IPsecはデータパケットが正しいソースから来ていることを確認するための認証メカニズムも提供します。以下で、IPsecが提供する標準的なセキュリティ機能を見てみましょう。

1. 認証: 両端の接続でデータを認証することにより、IPsecはデータ伝送が始まる前にエンドポイントが信頼できることを保証します。

2. 機密性: エンドツーエンドのデータ暗号化により、IPsecは悪意のあるエンティティがネットワークに侵入し、データを盗んだり、ネットワークの盗聴を行ったりすることを防ぎます。

3. 完全性: IPsecはハッシングを使用してデータの完全性をチェックし、変更されたデータを検出します。

4. アンチリプレイ: シーケンス番号を使用して、IPsecは悪意のあるアクターがデータパケットを複製してネットワークに侵入するのを防ぎます。

2つのホスト間(ホスト・ツー・ホスト)、2つのネットワーク/ゲートウェイ間(ネットワーク・ツー・ネットワーク)、またはホストとネットワーク間(ネットワーク・ツー・ホスト)でIPsecを使用できます。さらに、IPsecの実装は、仮想プライベートネットワーク(VPN)、ルーティングセキュリティ、アプリケーションレベルのセキュリティなどのセキュリティ領域で見つけることができます。IPsecだけでは高レベルのセキュリティに対して十分効果的ではない場合があるため、場合によっては他のプロトコルと一緒に実装されます。

## IPSecプロトコル

IPsecスイートの一部であるプロトコルは3つあります。これらのプロトコルは連携して、データの認証、完全性、機密性、およびリプレイ防止を提供します。以下でそれらを見てみましょう。

認証ヘッダー (AH)

認証ヘッダーの主な仕事は、IPデータパケットを認証することです。ハッシュ関数と秘密鍵を使用して、VPNトンネルの両端からのすべてのパケットを検証します。これにより、悪意のあるエンティティがデータを改ざんし、正規のものとして渡すことを防ぎます。AHは認証、完全性、およびリプレイ保護を提供します。しかし、いかなる形式の暗号化も提供しません。

### 2. エンカプセレーティング・セキュリティ・ペイロード (ESP)

カプセル化セキュリティペイロードの主な仕事は、データパケットを暗号化することです。IPsecモードに応じて、ペイロードのみ、またはペイロードとIPヘッダーを暗号化します。トランスポートモードでは、ESPはトランスポート層セグメントとペイロードのみを暗号化し、IPヘッダーは暗号化されません。一方、トンネルモードでは、ESPはIPヘッダーをトランスポート層セグメントとペイロードと共に暗号化します。ESPは認証、完全性、機密性、およびリプレイ防止保護を提供します。

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

IPSecは、セキュリティアソシエーションを使用して、エンドポイントが暗号化アルゴリズムと鍵を交渉するために使用するセキュリティプロトコルを確立します。簡単に言うと、セキュリティアソシエーションは、2つのエンドポイントがIPsecトンネルを安全に確立し維持するためのパラメータに同意する方法です。

IPsecのセキュリティアソシエーションには3つの要素が必要です:セキュリティパラメータインデックス(SPI)、宛先IPアドレス、そしてIPsecプロトコル(AHまたはESP)。SAは単方向で動作するため、各エンドポイントには2つのSA(送信用と受信用)が必要です。IPsecはインターネットセキュリティアソシエーションおよびキーマネジメントプロトコル(ISAKMP)を使用してSAを確立します。

## IPsecの仕組みは?

以下では、IPsecが2つのエンドポイント間で安全な接続を確立し、データをその起点から目的地まで保護する方法について見ていきます。

### 1. 鍵交換

インターネットキー交換プロトコル(IKE)は、両端点が使用する鍵とアルゴリズムの交渉を処理します。その結果、IPsecを使用して安全で信頼性の高い接続を確立する上で重要なプロセスです。IKEv1には2つのフェーズがあります:IKEフェーズ1とIKEフェーズ2です。

IKEフェーズ1の目的は、エンドポイント間で認証方法と接続のセキュリティをどのように確保するかについての提案を交換することです。彼らは、暗号化アルゴリズム、認証アルゴリズム、ディフィー・ヘルマン(DH)グループ、およびプリシェアードキーまたはRSA/DSA証明書などのセキュリティパラメーターについての提案を交換します。その結果、このフェーズの終わりまでに、少なくとも1つの双方向ISAKMP SAがピア間に確立されるべきです。フェーズ1は、メインモード(エンドポイント間の合計6メッセージ)またはアグレッシブモード(エンドポイント間の合計3メッセージ)のいずれかで使用できます。

IKE フェーズ 2 は、エンドポイントまたはピアが安全な接続を確立した後に始まります。このフェーズでは、エンドポイントが IPsec トンネルを通過するデータを安全に保つための SA(セキュリティアソシエーション)を交渉します。セキュリティプロトコル(ESP または AH)、暗号化アルゴリズム、認証アルゴリズムがこのフェーズで交渉されます。さらに、ディフィー・ヘルマン(DH)グループとパーフェクトフォワードセキュリティも提案の一部となることがあります。

IKEv2は、IKEv1の更新バージョンで、フェーズ1やフェーズ2はありません。しかし、エンドポイントはIPsecトンネルのセキュリティパラメータを交渉するために4つのメッセージを交換します。VPNはIKEv2を好んで使用します。なぜなら、設定が簡単で、より安全だからです。

### 2. パケットのヘッダーとトレーラー

エンドポイントがセキュリティパラメータに同意した後、互いにデータを送信できるようになります。まず、IPパケットをカプセル化する必要があります。トンネルモードまたはトランスポートモードのどちらを使用しているかに応じて、IPsecは輸送が必要な各パケットに必要なヘッダーとトレーラーを追加します。

### 3. 認証と暗号化

IPsecは、AHとESPを使用して認証と暗号化を適用します。AHは暗号化を提供しませんが、データパケットを認証します。一方、ESPは暗号化と認証の両方を提供します。

### 4. 伝送

IPパケットは、トランスポートプロトコル(できればUDP)の助けを借りて、IPsec接続を通じてエンドポイントに移動することができます。

### 5. 復号化

復号化は接続の受信側で行われます。復号化された後、データはそれを必要とするアプリケーションに移動します。

IPsec トランスポートモード 対 トンネルモード

IPsecには2つの動作モードがあります:トンネルモードとトランスポートモードです。それぞれがどのように異なるのかを以下で見ていきましょう。

### トランスポートモード

トランスポートモードで動作するIPsec回線は通常、2つのホスト間の直接接続です。トランスポートモードでは、エンドポイントはIPパケット全体を暗号化または認証しません。ペイロードのみです。IPヘッダーが変更またはカプセル化されないため、2つのエンドポイントの外側にある第三者のデバイスは、パケットの送信元と宛先を確認できます。

トンネルモード

トンネルモードで動作するIPsec回路は通常、2つのゲートウェイ(ネットワーク間通信)間、つまり2つのルーターまたはルーターとファイアウォール間で使用されます。しかし、ホスト間通信やホストからネットワークへの通信にも使用できます。このモードでは、ペイロードだけでなく、IPパケット全体が暗号化および認証されます。VPNは、IPsecトンネルモードを使用するのは、データを通過するだけでなく、エンドツーエンドの暗号化を使用してネットワーク全体を保護するためです。

## VPN内のIPsec

VPNがインターネット上で安全に通信する方法を提供するため、VPNが使用するプロトコルの1つとしてIPsecがあるのは理にかなっています。VPNがIPsecを使用する場合、通常、提供されるエンドツーエンドの暗号化のためにESPをトンネルモードで使用します。場合によっては、IKEv2/IPsecまたはIKEv2をVPNプロトコルとして使用できることがあります。どちらも同じ意味で、IKEv2はIPsecのトンネルモードを使用して安全な接続を確立します。

さらに、VPNはL2TPのようなあまり安全でないプロトコルをIPsecと組み合わせて、安全な接続を保証します。そのため、いくつかのVPNアプリケーションでL2TP/IPsecをオプションとして見ることがあります。さて、VPNアプリケーションの接続ボタンをクリックしたときにIPsecがどのように機能するか、基本的な方法を見てみましょう。

「接続」ボタンをクリックすると、IPsecがESPとトンネルモードを使用して安全な接続を確立し始めます。

トンネルの両端点は、セキュリティアソシエーション(SAs)を使用してセキュリティパラメータについて合意します。

データは現在、両端点で暗号化および復号化が行われるため、一方の端から他方の端へと安全に移動することができます。一方の端点がIPパケットを受信し、それらを暗号化して他の端点に転送します。受信側では、もう一方の端点がIPパケットを復号化し、必要なアプリケーションに送信します。

上記は詳細な説明ではありませんが、VPN内でIPsecがどのように機能するかの概要を理解するのに役立つはずです。

## 結論

IPsecは、2つのエンドポイント間でデータの機密性、完全性、および認証が必要な場合に重要です。ほとんどのVPNは、提供する安全なVPNプロトコルの一部としてIPsec(IKEv2/IPsecまたはL2TP/IPsec)を含んでいます。この記事がIPsecと、VPNがインターネット上で通信を安全にするために使用する重要なプロトコルスイートを理解するのに役立つことを願っています。