IPsecとは?| IPsec VPNの仕組み

IPsecは、パブリック共有ネットワーク上でVPNなどの安全な暗号化接続を確立するために使用されるネットワークプロトコルのグループです。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • IPsecプロトコルスイートについて学ぶ
  • IPsec VPNの仕組みを理解する
  • IPsecトンネルモードとIPsecトランスポートモードの比較

関連コンテンツ


詳細はこちら

サインアップして、Cloudflareからセキュリティ関連の学習用記事をお受け取りください。

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

IPsecとは?

IPsecは、機器間の暗号化接続を確立するために一緒に使用されるプロトコルのグループです。これは、公共ネットワーク上で送信されるデータを安全に保つために使用されます。IPsecは、VPN接続を確立するためにもよく使用され、パケットの送信元を認証するとともに、IPパケットを暗号化することによって機能します。

「IPsec」という用語の中の「IP」は「Internet Protocol」の略、「sec」は「secure」の略が使用されています。インターネットプロトコルは、インターネット上で使用される主要なルーティングプロトコルで、IPアドレスを使用して、データの行先を指定します。IPsecは、このプロセスに暗号化*と認証を加えるため、セキュリティ性を高めます。

*暗号化とは、データをランダムに見えるように数学的に変化させることで情報を隠蔽するプロセスです。簡単に言うと、暗号化とは、許可された当事者だけが解釈できる「秘密のコード」を使用することです。

VPNとは?IPsec VPNとは?

Virtual Private Network(VPN)とは、2台以上のコンピュータ間で行われる暗号化接続です。VPN接続は公共のネットワークを通して行われますが、VPN上でやり取りされるデータは暗号化され、秘匿化されたものです。

VPNは、公衆インターネットなどの共有ネットワークインフラストラクチャの上での機密データの安全なアクセスとやりとりを可能にします。たとえば、社員がオフィスではなく、リモートによる業務を行う場合、多くの場合企業のファイルやアプリケーションにアクセスするためにVPNを使用します。

多くのVPNでは、これらの暗号化された接続を確立して実行するためにIPsecプロトコルスイートが使用されます。しかし、すべてのVPNでIPsecが使用されるわけではありません。VPNに代わるプロトコルとしてSSL/TLSがありますが、これはOSI参照モデルの中でIPsecとは別の層で動作します。(OSI参照モデルは、インターネットを機能させるプロセスを抽象的に表現したものです)。

ユーザーがIPsec VPNに接続する方法は?

ユーザーは、VPNアプリケーション(「クライアント」)にログインすることで、IPsec VPNにアクセスすることができます。通常、これを行うために、ユーザーは自分のデバイスにアプリケーションをインストールしておく必要があります。

通常、VPNへのログインはパスワードベースです。VPN経由で送信されるデータは暗号化されていますが、ユーザーのパスワードが漏洩した場合、攻撃者はVPNにログインして、この暗号化されたデータを盗むことができます。二要素認証(2FA)を使用することで、パスワードを盗むだけでは攻撃者がアクセスすることはできなくなるため、IPsec VPNのセキュリティを強化することができます。

IPsecの仕組みは?

IPsec接続は、以下の手順があります:

鍵交換:暗号化にはが必要です。鍵はメッセージのロック(暗号化)および解除(復号化)を行うために使用されるランダムな文字列です。IPsecは、接続されたデバイス間で行う鍵交換によって鍵を設定し、各デバイスが他のデバイスのメッセージを復号化できるようにします。

パケットヘッダとトレーラ:ネットワーク上で送信されるすべてのデータは、パケットと呼ばれる小さな断片に分割されます。パケットには、ペイロード(送信される実際のデータ)と、ヘッダー(パケットを受信したコンピュータが、そのデータをどう処理すればよいかを知るための、そのデータに関する情報)が含まれています。IPsecは、認証と暗号化情報を含むいくつかのヘッダをデータパケットに付加します。IPsecは各パケットのペイロードの前ではなく、末尾にトレーラーを追加します。

認証: IPsecは、収集品に押された本物を示す印章のように、各パケットに認証を提供します。これは、パケットが攻撃者からではなく、信頼できる送信元から送信されたものであることを保証します。

暗号化:IPsecは、各パケット内のペイロードと各パケットのIPヘッダー(トンネルモードの代わりにトランスポートモードが使用されていない場合 - 下記参照)を暗号化します。これは、IPsecを通して送信されるデータの安全性と秘匿性を保持します。

伝送:暗号化されたIPsecパケットは、トランスポートプロトコルを使用して1つ以上のネットワークを経由して宛先まで移動します。この段階でIPsecトラフィックは、トランスポートプロトコルとしてTCPではなく、UDPを最も頻繁に使用するという点で通常のIPトラフィックとは異なります。TCP(伝送制御プロトコル)は、デバイス間の専用の接続を確立し、すべてのパケットが確実に到着することを保証します。UDP(ユーザーデータグラムプロトコル)は、このような専用接続の確立は行いません。IPsecは、IPsecパケットがファイアウォールを通過できるようにUDP を使用します。

復号化:通信の相手側ではパケットの復号化が行われ、アプリケーション(ブラウザなど)が配信されたデータを利用できるようにします。

IPsecで使用されるプロトコルは?

ネットワーク処理におけるプロトコルとは、ネットワークに接続されたどのコンピューターでもデータを解釈できるようにデータを形成する指定された方法です。IPsecは単一のプロトコルではなく、プロトコルスイートです。IPsecスイートは、以下のプロトコルで構成されています:

認証ヘッダ(AH):AHプロトコルは、データパケットが信頼できる送信元からのものであり、一般商品の改ざん防止シールのように、データが改ざんされていないことを保証します。このヘッダーは暗号化を提供するものではなく、攻撃者からデータを隠蔽するものではありません。

Encapsulating Security Protocol(ESP):ESPは各パケットのIPヘッダーとペイロードを暗号化するものです(トランスポートモードが使用されていない場合。トランスポートモードではペイロードのみを暗号化します)。ESPは各データパケットに独自のヘッダーとトレーラを付加します。

Security Association(SA):SAは、暗号化キーとアルゴリズムのネゴシエーションに使用されるいくつかのプロトコルを指します。最も一般的なSAプロトコルの1つに、インターネット鍵交換(IKE)があります。

最後に、 インターネットプロトコル(IP)はIPsecスイートの一部ではありませんが、IPsecはIPの上で直接実行されます。

IPsecトンネルモードとIPsecトランスポートモードの違いは?

IPsecトンネルモードは、公共ネットワークを通る仮想「トンネル」の一方の終端として機能する2つの専用ルーター間で使用されます。IPsecトンネルモードでは、パケットのペイロードに加えて、パケットの最終的な宛先が記載された元のIPヘッダも暗号化されます。IPsecはパケットを転送する場所を中間ルーターに伝えるための新しいIPヘッダーを追加します。トンネルの各終端ではIPヘッダーがルーターによって復号化されてパケットがその宛先に配送されます。

トランスポートモードでは、各パケットのペイロードは暗号化されますが、元のIPヘッダは暗号化されません。このため、中間ルーターは各パケットの最終的な宛先を見ることができます。ただし、別のトンネルプロトコル(GREなど)が使用されている場合はこの限りではありません。

IPsecが使用するポートは?

ネットワークポートとは、コンピュータの中でデータが行き交う仮想的な場所を表すものです。ポートはコンピュータがさまざまなプロセスや接続を捉えるためのものです。データが特定のポートに送られると、コンピュータのオペレーティングシステムは、そのデータがどのプロセスに属するものであるかを知ることができます。IPsecは通常、500番ポートを使用します。

IPsecがMSSとMTUに与える影響は?

MSSおよびMTUは、2つのパケットサイズの計測方法です。パケットが一定のサイズ(バイト単位)に達すると、コンピュータ、ルータ、およびスイッチはパケットを処理することができなくなります。MSSは各パケットのペイロードのサイズを計測し、MTUはヘッダーを含むパケット全体のサイズを計測します。ネットワークに設定されたMTUを超えるパケットは、断片化される可能性があります。つまり、より小さなパケットに分割されてから、再び組み立てられます。MSSを超えるパケットは、単純に破棄されてしまいます。

IPsecプロトコルは、パケットにいくつかのヘッダーとトレーラを追加し、そのすべてが数バイトを占めます。IPsecを使用するネットワークでは、MSSとMTUを適宜調整する必要があり、調整を行わない場合、パケットが断片化されて若干の遅延が発生することになります。通常、ネットワークのMTUは1,500バイトです。通常、IPヘッダーは20バイト、TCPヘッダーも20バイトであるため、各パケットには1,460バイトのペイロードを含めることができます。ただし、IPsecは認証ヘッダー、ESP ヘッダー、および関連するトレーラーを付加します。これによってパケットは50~60バイト、またはそれ以上の長さが付加されることになります。

MTUとMSSの詳細については 「MTUとは?」をご覧ください

CloudflareはIPsecをサポートしているか?

Cloudflareは、当社のSecure Access Service Edge(SASE) ソリューションであるCloudflare Oneの導入口としてIPsecをサポートしています。

トラフィックのセキュリティを高めるために、IPsecでは2点間でSAを設定し、トラフィックが通過するためのトンネルを作成する必要があります。実装モデルによっては、これはいくつかの課題が生じる可能性があります。たとえば、メッシュモデルでは、すべてのノード(または場所)が専用のトンネルで互いに接続されます。しかし、この場合、複数のIPsecトンネルを作成・管理する必要があり、拡張が困難なものになります。

CloudflareはAnycast IPsecモデルを採用しています(Anycastネットワーク は、入ってくるリクエストを様々なノードにルーティングするものです)。Anycast IPsecを使用すると、ユーザーはCloudflareへのIPsecトンネルを1つ設定するだけで、当社のグローバルネットワークにある250以上の拠点に接続することができます。

Anycast IPsecを可能にするために、CloudflareはCloudflareエッジネットワーク内のサーバー間でSAを複製して分散しています。これは、Cloudflareネットワーク全体が、お客様のネットワークへの単一のIPsecトンネルとして機能することを意味します。

Anycast IPsecとCloudflare Oneの詳細についてご覧ください。

ネットワーク層について