IPsec (Security Architecture for Internet Protocol) は、IPパケットを暗号化することでセキュリティを確保して通信を実現するためのプロトコルです。
主にインターネットVPNを実現するためのプロトコルとして用いられており、これにより信頼性と機密性を確保しながらデータの送受信が可能となります。
このページではIPsecの技術的な仕組みを1から分かりやすく初心者向けに解説します。
ネットワークエンジニアを目指す方であれば知らないと恥ずかしい基本知識の1つ。是非最後までご覧ください。
読者特典 ゼロから学ぶネットワーク入門
IPsecとは?
IPsec (Security Architecture for Internet Protocol:あいぴーせっく) とは、通信内容を暗号化することにより盗聴を防ぎ、通信内容が改ざんされていないことを担保するためのプロトコル群です。
ざっくりいうと、①通信内容の盗聴防止、②通信内容の改ざん防止、③通信相手の認証の3点がIPsecの目的です。
- 通信内容の盗聴防止
- IPsecによってデータが暗号化されるため、第三者には内容を読むことができなくなる。→盗聴された場合でも情報が漏れるリスクが低減。
- 通信内容の改ざん防止
- IPsecはデータの整合性を担保。→通信内容が途中で改ざんされた場合でもその変更を検知することが可能になる。
- 相手の認証
- IPsecは通信相手が本当に信頼できる相手かどうかを確認するための認証を提供する。→身元が不正な相手との通信を防ぐことができる。
IPsecの主要な要素
IPsecは、インターネットプロトコル上での通信のセキュリティを確保するための複数のプロトコルから成る1つのスイートです。
"Security Architecture for Internet Protocol " という名の通り、IPsecはセキュリティを強化するためのプロトコルの総称(=スイート)であり、大きく以下の3つのプロトコルから成立します。
IPsecプロトコル | 説明 |
---|---|
AH (Authentication Header) | ・パケットが "改ざん" されていないことを確認する |
ESP (Encapsulating Security Payload) | ・パケットが "改ざん" されていないことを確認する ・通信内容を暗号化する |
IKE (Internet Key Exchange) | ・IPsecで利用する秘密鍵の交換を行う (これがないと暗号化されたデータを復元できない) |
AH / ESP / IKE のプロトコルが目的の役割を果たすことによって、全体としてIPsecの目的であるセキュリティを確保した通信が可能になるという仕組みです。
IPsecと一言にいっても、上記3つのプロトコルがそれぞれに連携して成立しているという点をまずは頭に入れておきましょう!
では具体的にどのようにして盗聴・改ざんの防止を行っているのか?中核をなす3つの主要なプロトコル(ESP、AH、IKE)がどのように動作するのかを見ていきましょう。
IPsecの仕組み
IPsecは、SA (Security Association) というコネクションを確立してセキュアな通信を行います。
分かりやすく言えば、通信内容を外部から守るために作るトンネルのようなものがSAです。SAというコネクションの中で通信を行うことで外部からの盗聴を防ぐというわけです。
IPsecはSAの確立~実際のデータ通信までの流れを3ステップに分けて以下に示します。
ステップ1:IKE SAの確立(IKEフェーズ1)
IPsecの最初のステップは、通信を始める前の下準備をすること。
- 目的:
- 通信相手の正体を確認し、次のステップで使う一時的な情報を生成する。
- 詳細:
- 通信相手との間で認証を行い、お互いの正体を確認。
- Diffie-Hellmanという技術を使い、セキュアにキー交換を行う。
- このステップの終わりに、一時的なマスターキーが生成される。
このステップで用いられるのが鍵交換プロトコル:IKE (Internet Key Exchange)です。
IPsecプロトコル | 説明 |
---|---|
IKE (Internet Key Exchange) | ・IPsecで利用する秘密鍵の交換を行う (これがないと暗号化されたデータを復元できない) |
ステップ2:SAの確立(IKEフェーズ2)
次のステップで、実際のデータ通信に必要な詳細な設定やキーを確立します。
- 目的:
- 実際のデータ通信のための詳細な設定やキーを定義する。
- 詳細:
- フェーズ1で生成したマスターキーを基に、データ通信の詳細なパラメータやキーを確立。
- 通信の暗号化・認証の方法を選択。これにより、通信が外部から盗聴・改ざんされるリスクを低減。
ステップ1で通信相手の確認を確認。ステップ2ではその相手との秘密の通信回線を敷くようなイメージ。
ステップ3:IPsecデータ通信
フェーズ2で確立されたSAを使用して、実際のデータの暗号化・認証・送受信を行います。
- 目的:
- セキュアなデータ通信を実行。
- 詳細:
- フェーズ2で確立したSAの情報を使用して、データを暗号化・認証。
- 通信の途中でキーが古くなったり、セキュリティが低下するリスクがある場合、キーを更新する。
ここの暗号化で用いられるプロトコルががAH (Authentication Header) or ESP (Encapsulating Security Payload) という仕組みです。
IPsecプロトコル | 説明 |
---|---|
AH (Authentication Header) | ・パケットが "改ざん" されていないことを確認する |
ESP (Encapsulating Security Payload) | ・パケットが "改ざん" されていないことを確認する ・通信内容を暗号化する |
簡単に言えば、SAはIPsec通信の「設定や鍵の情報」を保持しているもので、IKEを通じてコネクションを確立。そして、実際のデータの暗号化や認証の際に、このSAの情報が使用されるということ。
IPsecを利用する際、正しいSAが確立されているかを確認することが、通信の安全性を保つための鍵となります。
トンネルモード / トランスポートモード
IPsecには主に2つの動作モード(トンネルモードとトランスポートモード)が存在します。
これらのモードは、データをどのように暗号化・認証するかを決定するもので、IPsecの基本的な要素の1つです。
イメージ トンネルモード vs トランスポートモード
トンネルモード: | IPヘッダ | データ | 暗号化後のトンネルモード: | 新しいIPヘッダ | 暗号化された(IPヘッダ + データ) | ------------------------------------------------------------ トランスポートモード: | IPヘッダ | データ | 暗号化後のトランスポートモード: | IPヘッダ | 暗号化されたデータ |
簡単に言うと、IPヘッダごと暗号化するか、IPヘッダはそのままにデータだけを暗号化するかどうかの違いです。
1.トンネルモード
トンネルモードは、元のIPパケット全体(ヘッダー含む)を暗号化し、その暗号化されたパケットを新しいIPヘッダーで包み込む方法を採用しています。
このモードは、2つのネットワーク間の安全な「トンネル」を作成する際に特に利用され、元の送信元や宛先の情報を隠蔽することが可能です。主にVPN接続などで使用されるのがこちらのトンネルモードです。
トンネルモード: | IPヘッダ | データ | 暗号化後のトンネルモード: | 新しいIPヘッダ | 暗号化された(IPヘッダ + データ) |
- 概要:
- トンネルモードでは、元のIPパケット全体を暗号化し、新しいIPヘッダーを追加する。
- 具体的な動作:
- 送信するデータ全体(元のIPヘッダー含む)を暗号化。
- 暗号化されたデータの外側に、新しいIPヘッダーを追加。
- この新しいパケットを送信。
- 使用場面:
- VPN(Virtual Private Network)のように、インターネット上での仮想的なプライベートネットワークを構築する場面でよく使用されます。トンネルモードを使うことで、インターネット上で安全な「トンネル」を作ることができます。
2.トランスポートモード
トランスポートモードでは、IPパケットのペイロード部分のみを暗号化し、元のIPヘッダーは変更されずにそのまま使用されます。
このモードは、エンドツーエンドの通信をセキュアに保護する際に適しています。送信元や宛先のIPアドレスはそのまま保持されるため、データの中身を保護しつつも、ネットワークの経路選択や管理が容易に行える特徴があります。
トランスポートモード: | IPヘッダ | データ | 暗号化後のトランスポートモード: | IPヘッダ | 暗号化されたデータ |
- 概要:
- トランスポートモードでは、IPヘッダーはそのままで、IPペイロードのみを暗号化。
- 具体的な動作:
- 送信するデータのペイロード部分(実際のデータ内容)を暗号化。
- 元のIPヘッダーをそのまま利用し、暗号化されたペイロードと合わせて送信。
- 使用場面: エンドツーエンドの通信で安全性を高めたい場合や、特定のアプリケーション間の通信をセキュアにする場合などに利用されます。
トランスポートモードが採用される理由は、主に次の二つ。
- 効率性:
- トランスポートモードは、エンドツーエンドの通信に最適化されています。ネットワークのルーティング情報を保持したままデータを保護できるため、ルーターやゲートウェイでの処理が簡素化され、全体的な通信効率が向上します。
- 適用範囲の柔軟性:
- トランスポートモードは、特定のアプリケーションやプロセス間の通信に対してセキュリティを適用する場合に便利です。例えば、特定のサーバ間でのみ暗号化を行いたい場合などに使用されます。
一方、トンネルモードは異なるネットワーク間の接続に適しており、VPNなどでよく用いられます。トンネルモードはパケット全体を暗号化するため、中継地点でのデータの内容や送信元、送信先を隠すことができます。
このように、トンネルモードとトランスポートモードの主な違いは、暗号化の対象となる部分と、その結果としてのパケット構造の変化にあります。
IPsecのまとめ
ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)
↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。
読者特典> 0から学ぶネットワーク入門