この記事は、WireGuard®およびStealth VPNプロトコルを含むように更新されました。

VPNプロトコルとは何か、何をするものかを説明します。また、OpenVPN、WireGuard®、IKEv2、PPTP、L2TPなど、最も一般的なプロトコルの長所と短所を比較します。

インターネットアクティビティを保護するためにVPNを信頼する前に、必要な安全策が講じられていることを確認する必要があります。VPNのより技術的な側面を評価するのは難しい場合があります。それは多くの場合、さまざまな頭字語の羅列を理解しようと悪戦苦闘することを意味します。

人々がより多くの情報に基づいた決定を下せるように、当社のセキュリティ対策の一部を説明する一連の投稿を開始しました。最初の投稿では、HMAC SHA-384の意味について説明しました。この記事では、VPNプロトコルについて、それらが何をし、どのように機能するのか、そして例えばVPNサービスがOpenVPN over L2TPを使用している場合、それが何を意味するのかを調査します。

この記事では、VPNの内部構造の一部を掘り下げます。用語を明確に説明するよう努めていますが、基本的な技術知識があれば、この記事はより役立ちます。VPNがどのように機能するかわからない場合は、読み進める前に、以下のリンク先の記事を読むと役立つかもしれません。

VPNの仕組みについてより詳しく

VPNプロトコル

VPNは、「トンネリング」と呼ばれるものに依存して、インターネット上の2台のコンピューター間にプライベートネットワークを作成します。「トンネリングプロトコル」としても知られるVPNプロトコルは、コンピューターと別のコンピューターの間にネットワークを形成する、安全な暗号化された接続を交渉するためにデバイスが使用する命令です。

VPNプロトコルは通常、データチャンネルと制御チャンネルの2つのチャンネルで構成されています。制御チャンネルは、鍵交換、認証、およびパラメータ交換(IPやルート、DNSサーバーの提供など)を担当します。データチャンネルは、ご想像のとおり、インターネットトラフィックデータの転送を担当します。これら2つのチャンネルが合わさって、安全なVPNトンネルを確立し、維持します。ただし、データがこの安全なトンネルを通過するには、カプセル化される必要があります。

カプセル化とは、VPNプロトコルがインターネットトラフィックからデータパケットと呼ばれるデータのビットを取り出し、それを別のパケットの中に配置することです。VPNがデータチャンネル内で使用するプロトコル構成は、通常のインターネットが使用するものと必ずしも同じではないため、この余分なレイヤーが必要になります。この追加レイヤーにより、情報はVPNトンネルを通って移動し、正しい宛先に到着することができます。

これはすべて少し技術的なので、大まかな概要を説明します。VPNサーバーに接続すると、VPNはその制御チャンネルを使用して共有鍵を確立し、デバイスとサーバー間を接続します。この接続が確立されると、データチャンネルがインターネットトラフィックの送信を開始します。VPNがパフォーマンスの長所と短所について議論したり、「安全なVPNトンネル」について話したりする場合、それはデータチャンネルについて話しています。VPNトンネルが確立されると、制御チャンネルは接続の安定性を維持する役割を担います。

PPTP

Point-to-Point Tunneling Protocol (PPTP)は、古い**VPN**プロトコルの1つです。当初はMicrosoftの**サポート**を受けて開発されたため、すべてのバージョンの**Windows**と他のほとんどの**オペレーティングシステム**がPPTPをネイティブ**サポート**しています。

PPTPは、それ自体がプロト**VPN**のようなPoint-to-Point Protocol (PPP)を使用します。PPPはかなり古いものの、**ユーザー**を認証し(通常はMS-CHAP v2を使用)、データ自体をカプセル化できるため、制御**チャンネル**とデータ**チャンネル**の両方の役割を処理できます。しかし、PPPはルーティング可能ではありません。つまり、単独ではインターネット経由で**送信**できません。そのため、PPTPは総称ルーティングカプセル化(GRE)を使用してPPPカプセル化データを再度カプセル化し、そのデータ**チャンネル**を確立します。

残念ながら、PPTPには独自の**暗号化**や**認証****機能**がありません。これらの機能の実装はPPPに依存していますが、PPPの**認証**システムとMicrosoftが追加した**暗号化**であるMPPEはどちらも脆弱であるため、これは問題です。

**暗号化**: **RSA** RC4アルゴリズムを使用するMicrosoftのPoint-to-Point Encryptionプロトコル(MPPE(新しいウィンドウ))。MPPEの最大強度は128ビットキーです。

速度: その**暗号化**プロトコルは多くの計算能力を必要としないため(RC4および128ビットキーのみ)、PPTPは高速な**接続**速度を維持します。

既知の脆弱性: PPTPには、1998年以来、多数のセキュリティ脆弱性が知られています。最も深刻な脆弱性の1つは、カプセル化されていないMS-CHAP v2**認証**を悪用して中間者(MITM)攻撃を実行するものです。

**ファイアウォール****ポート**: **TCP****ポート** 1723。PPTPはGREを使用するため、**ネットワーク****アドレス**変換**ファイアウォール**を通過できず、最もブロックしやすい**VPN**プロトコルの1つです。(NAT**ファイアウォール**を使用すると、数人が同時に1つのパブリックIP**アドレス**を**共有**できます。ほとんどの個人**ユーザー**は独自のIP**アドレス**を持っていないため、これは重要です。)

安定性: PPTPは信頼性が高くなく、不安定な**ネットワーク****接続**上で**OpenVPN**ほど迅速に**回復**しません。

結論: データの保護を懸念される**お客様**には、PPTPを使用する理由はありません。Microsoftでさえ(新しいウィンドウ)、データを保護するために他の**VPN**プロトコルに**アップグレード**するよう**ユーザー**に助言しています。

L2TP/IPSec

Layer 2 Tunneling Protocol (L2TP)は、PPTPを置き換えることを目的としていました。L2TPは**認証**を独自に処理でき、UDPカプセル化を実行するため、ある意味では制御**チャンネル**とデータ**チャンネル**の両方を形成できます。ただし、PPTPと同様に、それ自体には**暗号化**が追加されません。L2TPはPPPを**送信**できますが、PPP固有の弱点を回避するために、通常はInternet Protocol Security (IPSec)スイートと組み合わせて**暗号化**と**認証**を処理します。

IPSecは、**VPN**だけでなく、**ルーティング**やアプリケーションレベルのセキュリティにも**適用**できる柔軟なフレームワークです。L2TP/IPSecを使用して**VPN****サーバー**に**接続**すると、IPSecは**共有**キーをネゴシエートし、**デバイス**と**サーバー**間の安全な制御**チャンネル**の**接続**を**認証**します。

その後、IPSecはデータをカプセル化します。IPSecはこのカプセル化を実行する際に、**認証****ヘッダー**を**適用**し、Encapsulation Security Payload (ESP)を使用します。これらの特別な**ヘッダー**は各パケットに**デジタル署名**を追加するため、攻撃者は**VPN****サーバー**に警告することなくデータを**改ざん**することはできません。

ESPはカプセル化されたデータパケットを**暗号化**し、攻撃者が読み取れないようにします(また、**VPN**の**設定**によってはデータパケットの**認証**も行います)。IPSecがデータをカプセル化すると、L2TPはデータ**チャンネル**を通過できるように**UDP**を使用してそのデータを再度カプセル化します。

**IKEv2**を含むいくつかの**VPN**プロトコルは、IPSec**暗号化**を使用します。IPSecは一般的に安全ですが、非常に複雑であるため、実装が不十分になる可能性があります。L2TP/IPSecは、主要な**オペレーティングシステム**のほとんどで**サポート**されています。

**暗号化**: L2TP/IPSecは3DESまたは**AES****暗号化**を使用できますが、3DESは現在弱い暗号と見なされているため、使用されることはほとんどありません。

速度: 同じ**暗号化**強度を使用する場合、L2TP/IPSecは一般的に**OpenVPN**よりも低速です。これは主に、**OpenVPN**で使用される**AES****暗号化**が最も一般的なプロセッサでハードウェアアクセラレーションされるためです。

既知の脆弱性: L2TP/IPSecは高度な**VPN**プロトコルですが、流出したNSAのプレゼンテーション(新しいウィンドウ)は、諜報機関がすでに**改ざん**する方法を見つけていることを示唆しています。さらに、IPSecは複雑であるため、多くのVPNプロバイダーは事前共有キーを使用して(新しいウィンドウ)L2TP/IPSecを**セットアップ**していました。

**ファイアウォール****ポート**: **UDP****ポート** 500は初期のキー交換に、**UDP****ポート** 5500はNATトラバーサルに、**UDP****ポート** 1701はL2TP**トラフィック**を許可するために使用されます。L2TP/IPSecはこれらの固定**ポート**を使用するため、他のいくつかのプロトコルよりもブロックしやすいです。

安定性: L2TP/IPSecは、より高度な**VPN**プロトコルほど安定していません。その複雑さは、頻繁な**ネットワーク**切断につながる可能性があります。

結論: L2TP/IPSecのセキュリティは間違いなくPPTPよりも向上していますが、高度な攻撃者からデータを保護できない可能性があります。速度が遅く不安定でもあるため、**ユーザー**は他に選択肢がない場合にのみL2TP/IPSecの使用を検討すべきです。

IKEv2/IPSec

Internet Key Exchange version 2 (**IKEv2**)は、実際にはIPSecスイート自体の一部である比較的新しいトンネリングプロトコルです。MicrosoftとCiscoは、オリジナルの**IKEv2**/IPSecプロトコルの開発で協力しましたが、現在は多くのオープンソースの反復が存在します。

**IKEv2**は、Diffie-Hellman鍵交換(新しいウィンドウ)アルゴリズムを使用して、**デバイス**と**VPN****サーバー**間の安全な通信**チャンネル**を**認証**することにより、制御**チャンネル**を**セットアップ**します。その後、**IKEv2**はその安全な通信**チャンネル**を使用してセキュリティアソシエーションと呼ばれるものを確立します。これは単に、**デバイス**と**VPN****サーバー**が同じ**暗号鍵**とアルゴリズムを使用して通信することを意味します。

セキュリティアソシエーションが確立されると、IPSecはトンネルを作成し、データパケットに**認証**済み**ヘッダー**を**適用**し、ESPでカプセル化します。(繰り返しますが、使用される暗号に応じて、ESPが**メッセージ****認証**を処理する場合があります。)カプセル化されたデータパケットは、トンネルを通過できるように**UDP**で再度カプセル化されます。

**IKEv2**/IPSecは、**Windows** 7以降のバージョン、**macOS** 10.11以降のバージョン、およびほとんどのモバイル**オペレーティングシステム**で**サポート**されています。

**暗号化**: **IKEv2**/IPSecは、**AES**、Blowfish、Camelliaなど、さまざまな暗号化アルゴリズムを使用できます。256ビット**暗号化**を**サポート**しています。

速度: **IKEv2**/IPSecは高速な**VPN**プロトコルですが、通常はハードウェアアクセラレーションされた**OpenVPN**や**WireGuard**ほど高速ではありません。

既知の脆弱性: **IKEv2**/IPSecには既知の弱点はなく、ほぼすべてのITセキュリティ専門家は、**Perfect Forward Secrecy**を使用して適切に実装されていれば安全であると考えています。

**ファイアウォール****ポート**: **UDP****ポート** 500は初期のキー交換に、**UDP****ポート** 4500はNATトラバーサルに使用されます。常にこれらの**ポート**を使用するため、**IKEv2**/IPSecは他のいくつかのプロトコルよりもブロックしやすいです。

安定性: **IKEv2**/IPSecはMobility and Multihomingプロトコルを**サポート**しているため、特に異なる**Wi-Fi****ネットワーク**間を頻繁に切り替える**ユーザー**にとって、他のほとんどの**VPN**プロトコルよりも信頼性が高くなります。

結論: 強力なセキュリティ、高速性、向上した安定性を備えた**IKEv2**/IPSecは、優れた**VPN**プロトコルです。しかし、最近**WireGuard**が導入されたため、新しい**VPN**プロトコルよりもこれを選択する理由はほとんどありません。

**OpenVPN**

**OpenVPN**はオープンソースのトンネリングプロトコルです。IPSecスイートに依存する**VPN**プロトコルとは対照的に、**OpenVPN**はSSL/**TLS**を使用して鍵交換を処理し、制御**チャンネル**を**セットアップ**します。また、独自の**OpenVPN**プロトコルを使用してカプセル化とデータ**チャンネル**を処理します。

これは、データ**チャンネル**と制御**チャンネル**の両方が**暗号化**されていることを意味し、他の**VPN**プロトコルと比較してややユニークです。**サードパーティ**製**ソフトウェア**を介して、すべての主要な**オペレーティングシステム**で**サポート**されています。

**暗号化**: **OpenVPN**は、OpenSSL(新しいウィンドウ)ライブラリに含まれる**AES**、RC5、Blowfishなどのさまざまな暗号化アルゴリズムを使用してデータを**暗号化**できます。

AES**暗号化**について**より詳しく**

速度: **UDP**を使用する場合、**OpenVPN**は高速な**接続**を維持しますが、**IKEv2**/IPSecや**WireGuard**の方が速いと一般的に認められています。

既知の脆弱性: **OpenVPN**は、十分に強力な**暗号化**アルゴリズムと**Perfect Forward Secrecy**を使用して実装されている限り、既知の脆弱性はありません。これは、データセキュリティを懸念する**VPN**の業界標準です。

**ファイアウォール****ポート**: **OpenVPN**は、任意の**UDP**または**TCP****ポート**で実行するように構成できます。これには、すべての**HTTPS****トラフィック**を処理する**ポート** **TCP****ポート** 443が含まれ、ブロックを非常に困難にします。

安定性: **OpenVPN**は一般的に非常に安定しており、検閲を打破するための**TCP****モード**を備えています。

結論: **OpenVPN**は安全で信頼性が高く、**オープンソース**です。これは現在使用されている最高の**VPN**プロトコルの1つであり、特にデータセキュリティを主に懸念する**ユーザー**に適しています。**TCP**経由で**接続**をルーティングする機能(下記参照)も、検閲を回避するための良い選択肢となります。ただし、**WireGuard**は**OpenVPN**の検閲対策の利点はありませんが、安全であり、**OpenVPN**よりも高速です。

**WireGuard**®

**WireGuard**(新しいウィンドウ)は、安全で高速、かつ効率的なオープンソースの**VPN**プロトコルです。

**暗号化**: **WireGuard**は、対称**暗号化**にChaCha20(RFC7539(新しいウィンドウ))、匿名鍵交換にCurve25519、データ**認証**にPoly1305、**ハッシュ**にBLAKE2s(RFC7693(新しいウィンドウ))を使用します。**Perfect Forward Secrecy**を自動的に**サポート**します。

速度: **WireGuard**は、新しい高速暗号化アルゴリズムを使用しています。たとえば、ChaCha20は、同等の強度の**AES**暗号よりもはるかに単純であり、ほとんどの**デバイス**のハードウェアに**AES**の手順が組み込まれているにもかかわらず、ほぼ同じ速さです。その結果、**WireGuard**は高速な**接続**速度を提供し、CPU要件が低くなっています。

既知の脆弱性: **WireGuard**はさまざまな形式的検証を受けており、**Linux**カーネルに組み込むために、**WireGuard** **Linux**コードベースは第三者によって独自に監査されました(新しいウィンドウ)

**ファイアウォール****ポート**: **WireGuard**は任意の**ポート**を使用するように構成でき、通常は**UDP**上で実行されます。ただし、**Proton VPN**は、ほとんどの**アプリ**で**WireGuard** **TCP**も提供しています。

安定性: **WireGuard**は非常に安定した**VPN**プロトコルであり、**VPN****サーバー**を変更したり、**Wi-Fi****ネットワーク**を変更したりしている間も**VPN****接続**を維持するなど、他のトンネリングプロトコルにはない新しい**機能**を導入しています。

結論: 最先端の**VPN**プロトコルである**WireGuard**は、高速、効率的、かつ安全です。**OpenVPN**ほど「実戦テスト」されておらず、**OpenVPN**の**TCP**ベースの検閲対策機能(下記参照)は提供していませんが、ほとんどの人にとって、ほとんどの場合、使用をお勧めする**VPN**プロトコルです。

**WireGuard**について**より詳しく**

OpenVPN vs. WireGuard

Stealth

**Stealth**は、**Proton**が開発した新しい**VPN**プロトコルです。これを使用すると、通常の**VPN**プロトコルが政府や**組織**によってブロックされている場合でも、検閲されたサイトに**アクセス**し、ソーシャルメディアで人々と通信できます。

**Stealth**は、**TLS**上でトンネリングされた**WireGuard**に基づいています。したがって、**WireGuard**と同じ**暗号化**を使用し、さらに**TLS****暗号化**の層が追加されています。それ以外は、**WireGuard**(上記の説明)と同じです。

Stealthについてより詳しく

その他の重要な用語

さまざまな**VPN**プロトコルの比較を見ていく中で、なじみのない頭字語や専門用語に出くわしたかもしれません。ここでは、最も重要なもののいくつかを説明します。

TCP vs. UDP

Transmission Control Protocol (**TCP**)とUser Datagram Protocol (**UDP**)は、**デバイス**がインターネット経由で相互に通信できる2つの異なる方法です。どちらもインターネットプロトコル上で実行され、IP**アドレス**との間でのデータパケットの**送信**を担当します。

トンネリングプロトコルが**TCP****ポート**または**UDP****ポート**を使用している場合、それは**コンピューター**と**VPN****サーバー**の間でこれら2つのプロトコルのいずれかを使用して**接続**を**セットアップ**することを意味します。

**VPN**プロトコルが**TCP**、**UDP**、またはその両方を使用するかどうかは、そのパフォーマンスに大きく影響する可能性があります。**TCP**は主に、データが適切な順序であることを確認するための追加のチェックを実行し、そうでない場合は修正することによって、データを正確に配信することに重点を置いています。

これは良い**機能**のように聞こえますが、チェックの実行には時間がかかり、パフォーマンスが低下します。**TCP**経由で**VPN**を実行する(TCP over TCP)と、**TCP**メルトダウンと呼ばれる状態で**接続**が遅くなる可能性があります。

たとえば、**OpenVPN** **TCP**トンネルを通過する**TCP****トラフィック**があり、トンネル内の**TCP**データが**エラー**を検出した場合、それを補正しようとしますが、これにより**TCP**トンネルが過剰に補正する可能性があります。このプロセスは、データの配信に深刻な遅延を引き起こす可能性があります。

ただし、これは検閲を打破するのにも適しています。これは、**HTTPS**(新しいウィンドウ)**トラフィック**が**TCP****ポート** 443を使用するため、**VPN****接続**を同じ**ポート**経由でルーティングすると、通常の安全な**VPN****トラフィック**のように見えるためです。

**ポート** 443経由で**VPN****トラフィック**を実行できることは、**OpenVPN**(および、**Proton VPN**の**カスタム****TCP**実装を使用している場合は**WireGuard**)を使用する最大の利点の1つです。

TCPとUDPについて**より詳しく**

Perfect Forward Secrecy

**Perfect Forward Secrecy**は、**暗号化済み**通信の重要なセキュリティコンポーネントです。これは、**暗号鍵**の生成方法を管理する操作を指します。**VPN**が**Perfect Forward Secrecy**を**サポート**している場合、**セッション**ごとに(つまり、新しい**VPN****接続**を確立するたびに)独自のキーセットを作成します。

これは、攻撃者が何らかの方法でキーの1つを入手したとしても、その特定の**VPN****セッション**からのデータに**アクセス**するためにしか使用できないことを意味します。他の**セッション**のデータは、異なる独自のキーで保護されているため、安全なままです。また、**VPN**の**秘密鍵**が公開されても、**セッション**キーは安全なままであることも意味します。

**Proton VPN****アプリ**で使用されるプロトコル

**Proton**は、活動家、反体制派、ジャーナリストが安全で**プライベート**なインターネット**アクセス**を持てるようにするために**Proton VPN**を開始しました。**Proton**コミュニティを安全に保つために、**信頼できる**検証済みの**VPN**プロトコルのみを使用しています。次のリストは、さまざまな**アプリ**で**サポート**されている**VPN**プロトコルを示しています。

  • **Windows**: **OpenVPN**、**WireGuard**、**Stealth**
  • **macOS**: **OpenVPN**、**IKEv2**、**WireGuard**、**Stealth**
  • **Android**: **OpenVPN**、**WireGuard**、**Stealth**
  • **iOS**/iPadOS: **OpenVPN**、**IKEv2**、**WireGuard**、**Stealth**
  • **Linux**: **OpenVPN**、**WireGuard**

**OpenVPN**と**WireGuard**は、**UDP**または**TCP****モード**で使用できます。

VPNプロトコルの変更方法について

当社のWindows、macOS、Android、およびiOS/iPadOSアプリは、Smart Protocolをサポートしています。これは、ネットワークをインテリジェントにプローブし、最適なパフォーマンスに必要な最高のVPNプロトコル構成を発見したり、検閲を回避したりする反検閲機能です。

たとえば、必要に応じて異なる**ポート**を使用して、**IKEv2**から**OpenVPN**へ、または**OpenVPN** **UDP**から**OpenVPN** **TCP**へ自動的に切り替えることができます。

**Smart Protocol**について**より詳しく**

すべての**アプリ**は、**VPN**プロトコルで**サポート**されている最も強力な**セキュリティ設定**を使用します。**OpenVPN**、**WireGuard**、および**IKEv2**/IPSecは、大多数のITセキュリティ専門家が安全であると同意している唯一のプロトコルです。

PPTPまたはL2TP/IPSecを使用した**VPN****接続**は(実行コストが安く、構成が簡単であるにもかかわらず)、セキュリティが当社の基準を満たしていないため、提供を拒否しています。

**Proton VPN**に**サインイン**すると、**VPN****接続**が最新かつ最強のトンネリングプロトコルを使用していることを確信できます。

よろしくお願いします。
**Proton VPN**チーム

**Proton VPN**を入手

ソーシャルメディアで私たちをフォローして、最新のProton VPNリリース情報を入手できます:

Twitter (新しいウィンドウ)| **Facebook**(新しいウィンドウ) | **Reddit**(新しいウィンドウ)

無料の**Proton Mail****暗号化済みメール****アカウント**を取得するには、こちらをご覧ください: proton.me/mail(新しいウィンドウ)