VPN暗号化とは?仕組み、種類、最も安全なプロトコル

主なポイント
- VPN暗号化が実際に何をするのか、そして安全なVPN接続の一要素にすぎない理由を理解する。
- 共通鍵暗号(AES、ChaCha20)と、ハンドシェイクで使われる公開鍵暗号(RSA)の違いを学ぶ。
- VPN接続向けの暗号化プロトコルであるOpenVPN、WireGuard、IKEv2、旧式の選択肢を、強度と速度の面から比較する。
- あるVPN暗号化の構成が別の構成より安全になる要因を知る。
- 日常利用に最適なVPN暗号化プロトコルについて、明確な答えを得る。
VPNを勧められると、安全である理由として暗号化がよく挙げられます。しかし、その説明は「データを暗号化する」というところで終わることが少なくありません。VPN暗号化とは実際には何なのかを理解するには、通信に何が起きているのかを見る必要があります。どのアルゴリズムが暗号化を行うのか、デバイスとVPNサーバーは最初にどのように秘密の鍵を取り決めるのか、そして一部のプロトコルが他より強固とされるのはなぜなのか、といった点です。
VPN暗号化の基本は、読み取れるデータを暗号文へ変換することです。暗号文は、インターネットプロバイダー、同じ公衆Wi-Fiネットワークを使う人、パケットスニファーを実行する攻撃者など、通信を傍受する人にはランダムなノイズのように見えます。そのノイズを読み取れるデータに戻すための鍵を持つのは、あなたのデバイスとVPNサーバーだけです。
たとえば、 Guru VPNのような最新のアプリは、こうした処理をすべてバックグラウンドで自動的に行います。基本を知っておけば、VPNのセキュリティに関する主張が実際に裏付けられているか、より判断しやすくなります。
要点
- VPN暗号化が実際に何をするのか、そして安全なVPN接続の一要素にすぎない理由を理解する。
- 共通鍵暗号(AES、ChaCha20)と、ハンドシェイクで使われる公開鍵暗号(RSA)の違いを学ぶ。
- VPN接続向けの暗号化プロトコルであるOpenVPN、WireGuard、IKEv2、旧式の選択肢を、強度と速度の面から比較する。
- あるVPN暗号化の構成が別の構成より安全になる要因を知る。
- 日常利用に最適なVPN暗号化プロトコルについて、明確な答えを得る。
VPN暗号化の仕組み
VPNトンネルの暗号化では、それぞれ異なる問題を解決する二種類の暗号方式を組み合わせます。
共通鍵暗号は、単一の共有鍵でデータの暗号化と復号を行います。高速で効率的なため、接続が確立した後の通信の大部分を処理します。AES(Advanced Encryption Standard)とChaCha20は、よく使われる二つのアルゴリズムで、どちらも現在利用できるVPN通信向けの最も強力な暗号化方式に数えられています。
公開鍵暗号は、公開鍵と秘密鍵のペアを使います。処理速度が遅いため、VPNでは実際のブラウジング通信の暗号化には使いません。代わりにハンドシェイク、つまりデバイスとVPNサーバーが、攻撃者に傍受される形で鍵を送信することなく、安全に共通鍵暗号の鍵を共有するための最初の処理を担います。ここで最も一般的に使われるアルゴリズムはRSAですが、最近のプロトコルでは、同じ処理をより高い性能で行えるCurve25519が選ばれることも増えています。
一般的な接続の流れは次のとおりです。まず、デバイスがVPNサーバーに接続し、双方が互いを認証します。次に公開鍵暗号を使って鍵交換を行い、セッション鍵を共有します。その後、データの各パケットは高速な共通鍵暗号でその鍵を使って暗号化され、トンネルに入ります。VPNサーバーに届くと復号され、宛先へ転送されます。戻ってくるデータには、この流れが逆向きに適用されます。
第三の方式であるDiffie-Hellman鍵交換は、異なる方法で同じ結果を実現します。鍵を暗号化して送る代わりに、双方がそれぞれ秘密の数値を生成し、数学的に導出した公開値を交換して、同一の共有秘密を各自で計算します。この秘密は暗号化された形であれ、ほかの形であれ、実際に送信されることはありません。こうした理由もあり、IKEv2/IPsecの実装では、ハンドシェイクの信頼性をさらに高めるためにDiffie-HellmanをRSAと組み合わせることがよくあります。

VPNの暗号化方式とプロトコル
VPNプロトコルによってVPN通信の暗号化方法は異なり、VPN暗号化プロトコルごとに速度とセキュリティのバランスも大きく違います。現在、VPN接続でよく使われる暗号化プロトコルは次のとおりです。
OpenVPN — 歴史的にゴールドスタンダードと呼ばれることの多いOpenVPNは、通常、データチャネルにAES-256-GCMを使い、別途、強固なハンドシェイク(一般にRSA-4096)を組み合わせます。オープンソースで、徹底した監査を受けており、非常に安全とされていますが、利用可能な選択肢の中で最速ではありません。
WireGuard — より新しく、軽量な代替プロトコルです。暗号化にChaCha20、鍵交換にCurve25519を使います。この組み合わせは、暗号強度を損なわずにモバイルデバイスで高速に動作するよう選ばれています。このため、Guru VPNを含む多くの最新VPNアプリはWireGuardをデフォルトに採用しています。
IKEv2/IPSec — Wi-Fiからモバイル通信への切り替えなど、ネットワークが変わった後にすばやく再接続するため、モバイル利用に適しています。通常、暗号化にはAESを使います。
L2TP/IPSec — パケットデータとヘッダーの両方を暗号化する旧式の組み合わせです。一般に安全とされていますが、二重カプセル化のため速度が低下します。
SSTP — Microsoft独自のAESベースのプロトコルです。主にWindowsでの利用や、通信を通常のHTTPSに見せかけてネットワーク制限を回避する用途に役立ちます。
PPTP — この一覧で最も古いプロトコルで、暗号化は弱く、時代遅れです。速度は速いものの、実質的なセキュリティが必要な用途では使うべきではありません。
| プロトコル | 暗号化 | 鍵交換 | 主な用途 |
|---|---|---|---|
WireGuard | ChaCha20 | Curve25519 | 速度と強固なセキュリティ、日常利用 |
OpenVPN | AES-256-GCM | RSA-4096 | 監査に裏付けられた最高レベルのセキュリティ |
IKEv2/IPSec | AES | Diffie-Hellman | モバイルデバイス、ネットワーク切り替え |
L2TP/IPSec | AES(二重カプセル化) | 事前共有鍵 | 旧式システムとの互換性 |
SSTP | AES | RSA | Windows、制限の回避 |
PPTP | 弱く、時代遅れ | 該当なし | 機密情報を扱う用途では避ける |
AESとChaCha20:どちらの暗号化が強い?
VPN暗号化を本格的に比較する際によく挙げられるのが、この二つの暗号方式です。率直に言えば、どちらも最大強度で使えば非常に安全とされており、現在、どちらに対しても実用的な攻撃は知られていません。
AES-256は米国政府の暗号化標準で、256ビットの鍵を使用します。最新プロセッサの多くに組み込まれているハードウェアアクセラレーション(AES-NI)を利用できるため、デスクトップやノートPCで非常に高速に動作します。 ChaCha20は専用ハードウェアがなくても高い性能を発揮するよう設計されており、WireGuardがスマートフォンのような処理能力の限られたデバイスと組み合わせているのはそのためです。そうしたデバイスでは、AESより高速に動作することもよくあります。
実際には、どちらを選ぶかは保護性能の実質的な差というより、使うプロトコルやデバイスによって決まります。256ビットの鍵空間には、およそ2^256通りの組み合わせがあります。これは、現在利用できる、または近い将来に見込まれる計算能力を使っても、総当たり攻撃が現実的な脅威にならないほど大きな数です。
256ビットが標準になった背景として、AESには128ビット鍵のバリエーションもあり、現在も安全とされ、多くの旧式システムでデフォルトとして使われてきました。128ビットの鍵空間はおよそ2^128通りで、それだけでも天文学的な大きさですが、256ビット鍵がもたらす2^256通りと比べると非常に小さくなります。この差があるため、どちらも現在まで総当たり攻撃で破られていないにもかかわらず、セキュリティを重視するVPNではAES-128ではなくAES-256がデフォルトに採用されます。ハードウェアアクセラレーションのおかげで、実際の追加コストはほとんどないため、より大きな余裕を確保しない理由はほとんどありません。
この点も明確にしておきましょう。AES-256もChaCha20も、実用上破られたことはありません。現実の暗号化の失敗として挙げられる事例は、ほとんどの場合、PPTPのような古く弱いプロトコルや、暗号方式そのものではなく、実装の不備や鍵管理を狙った攻撃に関係しています。VPNサービスが侵害される場合、その原因は通常、設定ミス、鍵の漏えい、周辺ソフトウェアの脆弱性などであり、AESやChaCha20のアルゴリズム自体が直接攻撃に耐えられなかったためではありません。
VPN暗号化を最も安全にする要因
具体的なアルゴリズム名より、次の要素のほうが重要です。
鍵の長さ— 鍵が長いほど、可能な組み合わせの数は指数関数的に増えます。そのため、どちらも実用上破られていないとはいえ、機密情報を扱う用途では一般にAES-128よりAES-256が推奨されます。
前方秘匿性— 接続ごとに新しい一時的なセッション鍵を生成する仕組みです。万一、鍵が侵害されても、過去や将来のセッションが漏れることはありません。 具体例として、一年後に攻撃者が何らかの方法でVPNサーバーの長期秘密鍵を入手したと想像してください。前方秘匿性がなければ、その鍵を使って、その間に記録・保存したあなたの通信を理論上は復号できる可能性があります。前方秘匿性があれば、保存された通信は読み取れないままです。暗号化に使われた実際のセッション鍵はその接続だけに固有で、そもそもどこにも保存されていなかったためです。 評判の良い最新VPNの多くは、これをデフォルトで実装しています。
旧式プロトコルを避ける— 鍵の長さにかかわらず、既知の実用的な脆弱性があるPPTPのようなプロトコルに組み込まれていれば、暗号化の強度は役に立ちません。
独立監査— オープンソースのコードや第三者によるセキュリティ監査は、暗号化が宣伝文句としてうたわれているだけでなく、正しく実装されていることを裏付けます。強力なアルゴリズムでも、実装が不適切なら、現実のVPNに弱点が生じる一般的な原因になります。
量子コンピューターはVPN暗号化を破るのか?
量子コンピューティングは、現代の暗号化に関する議論でほぼ必ず話題になるため、もっともな疑問です。現時点での率直な答えは、まだ破られておらず、今日存在する技術では実現できないということです。十分に強力な量子コンピューターでGroverのアルゴリズムを実行すれば、理論上、AES-256の実効的な安全性を現在のAES-128に近い水準まで下げられる可能性があります。それでも探索空間は膨大で、近い将来に見込まれるハードウェアで実用的に達成できる範囲をはるかに超えています。量子コンピューターに関するより大きな懸念は、実際にはRSAのような公開鍵暗号に向けられています。十分に成熟した量子コンピューターなら、Shorのアルゴリズムを使って、理論上はるかに直接的に破れる可能性があります。そのため、業界では耐量子鍵交換方式の研究と導入がすでに進んでいます。ただし現時点では、これは将来を見据えた技術課題であり、適切に構築されたVPNが今日使っている暗号化を疑う理由ではありません。
VPN暗号化が弱い、または存在しない場合のリスク
強固な暗号化がなければ、インターネットプロバイダーはあなたが訪問するすべてのサイトを確認できます。同じ公衆Wi-Fiネットワークを使う人が暗号化されていない通信を傍受する可能性もあり、PPTPのような旧式プロトコルは、現在広く入手できるツールで破られるおそれがあります。また、「無料VPN」サービスが手を抜きがちな部分でもあります。アルゴリズムやプロトコルを明示せず、独立検証の有無も説明しないまま、暗号化をうたうことがあるためです。VPNが暗号化標準とプロトコルを明確に示していない場合、それは単なる見落としではなく、警戒すべき兆候と考えるのが妥当です。暗号化に優れたVPNプロバイダーを選ぶ際は、アルゴリズムだけでなく、プロトコルの透明性も重要です。

デフォルトで強力な暗号化を利用できる Guru VPNを選ぶ理由
暗号化の仕組みを知ることは役立ちますが、多くの人は細かく考えずに正しく処理されることを望んでいます。Guru VPNはデフォルトで、ChaCha20暗号化とCurve25519鍵交換を備えたWireGuard®を採用しています。プロトコルや暗号方式を手動で選ぶ必要なく、独立した第三者から信頼される現代的な暗号技術を利用できます。
| 機能 | メリット |
|---|---|
ChaCha20を使用したWireGuard® | 既知の実用的な攻撃がない、高速で現代的な暗号化 |
強固な鍵交換 | セッション鍵を漏らさずに安全なハンドシェイクを実現 |
厳格なノーログポリシー | 暗号化は通信を保護し、ノーログポリシーは利用履歴を保護します |
高速なグローバルサーバー | 目立った速度低下のない強力な暗号化 |
複数プラットフォーム対応アプリ | デスクトップとモバイルで一貫した保護 |

よくある質問
インターネット通信を読み取れない暗号文に変換し、あなたのデバイスとVPNサーバーだけが読めるようにする処理です。インターネットプロバイダー、公衆ネットワーク上の攻撃者、その他の第三者からデータを保護します。
まず、デバイスとVPNサーバーが公開鍵暗号を使ってハンドシェイクを行い、共通鍵を共有します。次に、その鍵と高速な共通鍵暗号(通常はAESまたはChaCha20)を使い、セッション中の実際の通信を暗号化・復号します。
大半のユーザーにとって、WireGuardは強力な暗号化と速度の総合的なバランスが最も優れています。最大限のカスタマイズ性が速度より重要な場合は、徹底した監査を受けているOpenVPNも優れた選択肢です。
AES-256とChaCha20はどちらも、実用上最も安全なVPN暗号化方式とされています。最大の鍵強度で使った場合、どちらに対しても実現可能な攻撃は知られていません。実際のセキュリティは、この二つのどちらを選ぶかよりも、プロトコルの選択と実装に大きく左右されます。
大きく分けると、通信の大部分に使われる共通鍵暗号(AES、ChaCha20)と、鍵を安全に交換するためハンドシェイク中に使われる公開鍵暗号(RSA、Curve25519)があります。
いいえ。VPN通信の暗号化はデータ自体を保護しますが、セキュリティ全体はノーログポリシー、漏えい防止、キルスイッチにも左右されます。利用する暗号化VPNプロバイダーを選ぶ際には、これらもあわせて確認する価値があります。
いいえ。保護する通信経路が異なります。VPN暗号化はデバイスとVPNサーバーの間の通信を保護しますが、データがサーバーを離れて最終的な宛先へ向かうと、その宛先の接続自体が備える保護に依存します。たとえば、ウェブサイト自体がHTTPSを使っているかどうかが関係します。メッセージアプリなどで使われるエンドツーエンド暗号化は、途中でどのネットワークを通るかにかかわらず、送信者から受信者までデータを保護します。VPNはエンドツーエンド暗号化の代わりにはならず、エンドツーエンド暗号化もVPNの代わりにはなりません。それぞれ異なる問題を解決するため、併用すると役立つ場合がよくあります。


