VPNプロトコル徹底比較:WireGuard、OpenVPN、IKEv2、L2TPの速度と安全性を検証
2020年3月、Linuxカーネル5.6にWireGuardが正式統合された瞬間、それまで暗黙の標準だったOpenVPNやIKEv2の勢力図が大きく塗り替えられました。
コードベースとアーキテクチャの比較:4,000行 vs 60万行
VPNプロトコルのパフォーマンスとセキュリティホールを左右する最も根幹的な要素は、プログラムのコード規模(行数)です。コードが複雑化するほど潜在的なバグが増加し、第三者によるセキュリティ監査の難易度も上がります。
WireGuardの設計思想は徹底的なシンプルさです。コアコードはわずか約4,000行のC言語で書かれており、一人のセキュリティ研究者が数日で全体を監査できるほど軽量です。Linuxのカーネル空間で直接動作するため、ユーザー空間とカーネル空間の境界を往復する文脈切替(コンテキストスイッチ)のオーバーヘッドが発生しません。
OpenVPNは2001年にJames Yonan氏によって開発された老舗プロトコルですが、依存するOpenSSLライブラリを含めると、コード規模は7万行から60万行以上に達します。基本的にはユーザー空間で動作するため、高速回線においてはパケット処理の CPU 負荷がネックとなります。
IKEv2(RFC 7296で定義)はMicrosoftとCiscoが共同開発したプロトコルで、主にIPsecと組み合わせ(IKEv2/IPsec)て運用されます。OSの標準ネットワークスタックに深く組み込まれており、高い処理効率を誇ります。
L2TP(RFC 3193で定義)は自身に暗号化機能を持ちません。そのためIPsecでデータを二重にカプセル化(Double Encapsulation)して送信します。この構造はパケットのヘッダーサイズを増大させ、通信効率を著しく低下させます。
コードの軽量さは直接的な速度差となって現れます。実際の通信ベンチマークを見ていきましょう。
通信速度とレイテンシのベンチマーク
1Gbpsの光回線環境で実施された転送速度のテストでは、各プロトコルの間で明確な性能差が確認できます。
- WireGuard:スループットは 800〜950 Mbps に達し、増加するレイテンシは 3ms 未満に収まります。CPU使用率が極めて低いため、4K動画のストリーミングやオンラインゲームに最適です。
- IKEv2/IPsec:600〜800 Mbps の高速通信を実現します。特筆すべきは MOBIKE(RFC 4555)機能で、スマートフォンで Wi-Fi から 5G 回線に切り替わった際も、1秒未満で通信を維持したまま再接続します。
- OpenVPN (UDP):一般的な機器での速度は 200〜400 Mbps 程度にとどまります。通常のWebブラウジングには十分ですが、大容量通信ではCPUリソースを大きく消費します。
- L2TP/IPsec:二重カプセル化処理の影響で、150 Mbps を超えることが困難なケースが多く見られます。
プロトコルの動作構造を理解するには、VPNの仕組みの基本を押さえておくと、CPU負荷の原因がより明確になります。
速度の優劣だけでなく、通信内容を守る暗号化アルゴリズムの強度と設計思想も極めて重要です。
暗号化アルゴリズムと安全性の違い
従来のプロトコルが「暗号のアジリティ(柔軟性)」を重視し、多様な暗号スイートの選択を許容してきたのに対し、WireGuardは「暗号のバージョニング(固定化)」を採用しています。