ブログに戻る
解説·16 分で読める

WireGuard vs OpenVPN — プロトコル移行で実際に何が変わったのか

OpenVPN は 2001 年以来、オープンソース VPN プロトコルのデファクトスタンダードであり続けてきた。WireGuard は 2016 年に登場し、静かにその座を奪いつつある。Linux カーネルに取り込まれ、主要な VPN ベンダーがこぞって採用し、学術セキュリティコミュニティからも評価を得た。何が変わり、何が変わらず、そして OpenVPN がいまだ優位な場面はどこか——その技術的な実態を解説する。

執筆: Casper's Cloak Security Team

要約: OpenVPN は十分機能する。20 年以上にわたって監査され、実運用で検証されてきた。WireGuard は同じ仕事——二つのエンドポイント間の暗号化・認証済みトンネル——をより小さなコードベース、現代的な暗号プリミティブ、そしてモバイルデバイス上で格段に優れたパフォーマンスで実現する。コンシューマー用途のほぼすべて、そして多くのエンタープライズ用途において、WireGuard は 2026 年時点でより優れたエンジニアリング上の選択肢だ。OpenVPN が依然として勝る場面は限られた特定のシナリオに絞られる。UDP をブロックするネットワークで TCP モードによってトラフィックを HTTPS に見せたい場合、証明書ベースの PKI 連携が必要な場合、そして WireGuard をまだ認定していない長い準拠実績を持つ環境だ。以下では、その要約を支える技術的な詳細を説明する。

各プロトコルの実態

OpenVPN は 2001 年に James Yonan が公開した SSL/TLS ベースの VPN プロトコルだ。ほとんどのプラットフォームでユーザー空間で動作し、暗号処理に OpenSSL または mbedTLS ライブラリを使用する。データチャンネルは OpenSSL がサポートするあらゆる暗号を使用できるが、現代的なデフォルトは AES-256-GCM だ。コントロールチャンネルは TLS を使用するため、認証に X.509 証明書エコシステム全体を活用できる。UDP(デフォルト、低オーバーヘッド)と TCP(低速だが制限のあるファイアウォールを通過できる)の両方をサポートする。設定モデルは豊富で柔軟——ルーティング、DNS、動的 IP 割り当て、ポリシープッシュ、その他多数のパラメータを設定できる。

WireGuard は Jason Donenfeld が設計し 2016 年に公開した、より小規模で意見の強い設計だ。暗号プリミティブは固定されており、ネゴシエーションも暗号スイートリストもない。Linux、macOS、Windows ではカーネル空間で動作し(iOS ではユーザー空間実装)、UDP のみをサポートする——TCP へのフォールバックはない。認証は静的な公開鍵・秘密鍵ペアのみ——証明書エコシステムも、ユーザー名・パスワードも、PKI もない。設定モデルは最小限:ピアのリストと各ピアの公開鍵および許可された IP レンジだけだ。シンプルさそのものが設計の核心にある。

この簡素化は「単なる機能削除」ではない。意図的なトレードオフだ——OpenVPN の豊富な設定の自由を手放す代わりに、攻撃対象面を大幅に縮小し、コードベースを大幅に小さくし、パフォーマンスを大きく向上させる。オリジナルの WireGuard ホワイトペーパーはこれを明示している。設計思想は「一つのことを正確に行う」であり、万能ツールを目指すものではない。

コードサイズと監査対象面

最もよく引用されながら最も過小評価されている違いがこれだ。WireGuard のリファレンス実装は約 4,000 行だ。OpenVPN のコードベースは 100,000 行をはるかに超え、さらに OpenSSL 全体——こちらは約 500,000 行——が加わる。監査対象面——脆弱性が存在しないと確信するためにレビューが必要なコード量——は二桁のオーダーで異なる。

これが重要な理由は、VPN プロトコルにおける実世界のセキュリティ脆弱性は、プロトコル設計の欠陥よりも実装バグから生じてきた歴史があるからだ。2014 年の OpenSSL における Heartbleed バグはすべての OpenVPN 展開に影響した。Lucky Thirteen と CBC パディングオラクル攻撃は OpenVPN が依存する TLS レイヤーに影響した。これらはいずれも厳密には OpenVPN プロトコルのバグではなく、その下にあるレイヤーの脆弱性だった。4,000 行の実装を持つプロトコルは、そのようなバグが潜む場所が劇的に少ない。

これは仮定上のメリットではない。新しいコードのマージに非常に慎重で知られる Linux カーネルメンテナーたちが、2020 年に WireGuard をメインラインカーネルに取り込んだ——その理由の一つは、コードベースがエンドツーエンドでレビューできるほど小さかったからだ。Linus Torvalds は公に、WireGuard を他の VPN 実装と比較して「芸術作品」と表現した。OpenVPN はその複雑さゆえにカーネルへの取り込みが現実的でなく、メインライン化されたことはない。

暗号プリミティブ

OpenVPN は暗号アジャイル——使用する暗号化、MAC、鍵交換アルゴリズムを OpenSSL がサポートする範囲で設定できる。現代的なデフォルトはデータに AES-256-GCM、HMAC に SHA-256、証明書ベース認証に RSA または ECDSA だ。このアジリティは歴史的には資産だった——あるアルゴリズムが脆弱と判明した際、プロトコルを変更せずに別のものに交換できる。一方でリスクでもある——過去十年間の TLS 脆弱性の多くは、プリミティブ自体よりもネゴシエーションロジック(ダウングレード攻撃、暗号スイート操作、フォールバックハンドシェイク)に関連していた。

WireGuard はプリミティブを固定している。対称暗号化に ChaCha20、認証に Poly1305(ChaCha20-Poly1305 AEAD として組み合わせ)、楕円曲線 Diffie-Hellman 鍵交換に Curve25519、ハッシュに BLAKE2s、鍵導出に HKDF を使用する。これらはいずれもネゴシエーションできない。いずれかに脆弱性が発見された場合、プロトコルバージョン自体が更新される——攻撃者が悪用できるインバンドのダウングレードパスは存在しない。プリミティブの選択は現代の暗号解析に基づいている。ChaCha20 はハードウェア AES アクセラレーションのないデバイス(多くの古い ARM スマートフォン)では AES より効率的で、Curve25519 は最も監査されている楕円曲線であり、BLAKE2s は SHA-256 と同等のセキュリティを保ちながら高速だ。

トレードオフ: WireGuard が選択したプリミティブのいずれかが破られた場合、すべての展開が同期してアップグレードする必要がある。OpenVPN の暗号アジリティでは、個々のサーバーが独自のペースで移行できる。WireGuard が賭けているのは、選択されたプリミティブが十分堅牢であるため、実際には長年にわたってこれが必要にならないという点だ。これまでのところその見通しは正しかったが、今後どうなるかは誰も予測できない暗号解析の発展次第だ。

接続モデル——ステートレス vs ステートフル

OpenVPN はステートフルなセッションを維持する。接続時にハンドシェイクが行われ、接続が持続し、切断は明示的なイベントとして発生する。サーバーはネゴシエートされたセッション鍵、現在のシーケンス番号、割り当てられた仮想 IP を含むクライアントごとの状態を追跡する。サーバーが再起動するか接続が中断されると、完全なハンドシェイクでセッションを再確立する必要がある。

WireGuard はネットワーク観点から概念的にステートレスだ。各ピアはセッション ID ではなく公開鍵で識別される。従来の意味での「接続」は存在しない——ピア間のパケットは既知の公開鍵に対して認証されるか、されないかのどちらかだ。鍵のローテーションは 2 分ごと(または設定可能なバイト数を超えた場合)に行われるが、ユーザーの観点からは再ハンドシェイクを必要としない。サーバーが再起動した場合、クライアントからの次のパケットが自動的にハンドシェイクを起動する。ユーザーが経験する中断は、ハンドシェイク 1 回のラウンドトリップタイムのみだ。

このステートレスモデルが、WireGuard がネットワークローミングをスムーズに処理できる理由だ。Wi-Fi からモバイルデータに切り替えるスマートフォンでは、OpenVPN は通常完全な再ハンドシェイクを必要とする(しばしば 5〜10 秒かかり、失敗することもある)。WireGuard はそのまま動き続ける——新しい IP からの新しいパケットが問題なく認証され、サーバーはその公開鍵のエンドポイントマッピングを新しい IP に更新し、トンネルが継続する。ユーザーの観点からは、ネットワーク切り替えは見えない。

パフォーマンス——本当に重要な数値

ベンチマークは一貫して、スループット、レイテンシ、CPU 使用率において WireGuard が OpenVPN を大幅に上回ることを示している。ハードウェアと設定によって数値は異なるが、全体的なパターンは一致している。ギガビットイーサネット上の典型的なモダンラップトップでは、WireGuard はほぼライン速度のスループット(900+ Mbps)を達成する。一方、AES-256-GCM と現代的な OpenSSL を使用した OpenVPN は、ユーザー空間コピーと TLS フレーミングオーバーヘッドにより通常 200〜400 Mbps にとどまる。ハードウェア AES のない ARM ベースのスマートフォンでは WireGuard の優位性はさらに大きい——ChaCha20 はソフトウェア AES より大幅に高速で、カーネル内実装はコンテキストスイッチを回避できる。

レイテンシの比較は劇的ではないが、一貫して WireGuard が優位だ。高速ネットワークでの典型的な WireGuard トンネルはラウンドトリップあたり 1〜3ms のオーバーヘッドを加える。OpenVPN は暗号とプラットフォームに応じて 5〜15ms 加える。ゲーム、ビデオ通話、ターミナルセッションなどのインタラクティブな用途では差が顕著だ。大容量転送ではスループットが主要因となる。

モバイルのバッテリー消費

スマートフォンでは、パフォーマンスの差はバッテリーの差として現れる。二つの効果が重なる。WireGuard は同じ量のネットワークトラフィックをより少ない CPU サイクルで処理する(プロトコルがシンプルで、ARM での暗号処理が高速なため)。そして WireGuard は有用なバイトあたりのネットワークオーバーヘッドが少ない(キープアライブパケットが少なく、フレーミングが小さく、定期的な再ハンドシェイクがない)。独立した測定により、iOS と Android の同等ワークロードで WireGuard のバッテリー消費が約 20〜40% 少ないことが繰り返し示されている。

再ハンドシェイクなしのローミング動作もバッテリーに寄与する。OpenVPN では、ネットワーク切り替えのたびに、クライアントが接続切断を認識して再接続を開始するまでの間、失敗したパケット再送信が続く可能性がある——この再試行動作は必要以上に長くラジオを活性状態に保つ。WireGuard はこれを完全に回避する。

ローミング動作——セッション中のネットワーク切り替え

これが WireGuard がもたらす最もユーザーに見えやすい改善だ。VPN 接続中にビデオ通話をしていて、外出する際にスマートフォンが Wi-Fi からモバイルデータに切り替わる場面を想像してほしい:

  • OpenVPN の場合——モバイルネットワークがスマートフォンに新しい IP を割り当てる。OpenVPN クライアントの送信パケットはこの新しい IP から送信されるが、サーバーのセッション状態は古い Wi-Fi IP からのパケットを期待している。パケットがドロップされる。数秒の無音の後、OpenVPN のキープアライブロジックが障害を検知し再接続を起動する——完全な TLS ハンドシェイク、鍵交換、すべてが発生する。通話が切れ、再接続が必要になる。
  • WireGuard の場合——新しい IP からの同じパケットがサーバーに届き、既知の公開鍵に対して認証され、受け入れられる。サーバーはその公開鍵のエンドポイントマッピングを新しい IP に透過的に更新する。次の応答は新しい IP に送られる。通話は切れない。ユーザーは何も気づかない。

これが、コンシューマー VPN 業界が WireGuard を採用した原動力となったユーザーエクスペリエンス上の優位性だ。「Wi-Fi からモバイルデータに切り替えると VPN が切れる」というカスタマーサポートチケットは、ベンダーが OpenVPN から WireGuard に移行すると単純に発生しなくなる。

OpenVPN がいまだ優位な場面

OpenVPN は廃れていない。2026 年においても依然として優れた選択肢となる特定のシナリオが存在する:

制限のあるネットワークでの TCP モード

WireGuard は UDP のみだ。企業のファイアウォール、ホテルの Wi-Fi、一部の国の制限的な ISP など、一部のネットワークでは標準的な DNS/QUIC ポート以外の UDP トラフィックをブロックまたは大幅にレート制限する。OpenVPN の TCP モード(通常ポート 443)は VPN トラフィックを通常の HTTPS に見せることでこれらのネットワークを突破できる。WireGuard にはネイティブの TCP モードがない。追加の難読化レイヤー(Cloak、Shadowsocks、AmneziaWG)を上に積むか、OpenVPN にフォールバックするかのいずれかが必要だ。

既存の PKI を使用した証明書ベース認証

OpenVPN は X.509 証明書インフラとクリーンに連携する。他の目的(スマートカード、S/MIME、内部 TLS)のために既に PKI を持つ組織は、新しいインフラを構築せずに VPN 認証に拡張できる。WireGuard は静的鍵を使用するため運用はよりシンプルだが、PKI ワークフローとは連携しない。PKI への強い投資がある組織には OpenVPN が自然な選択肢だ。

より長い監査歴

OpenVPN は 20 年以上にわたって本番環境で稼働してきた。複数の独立したファームによって複数回監査されている。WireGuard の歴史は短い——8 年の本番環境への展開と、より少ない数の正式な監査だ。両者ともクリーンなセキュリティ実績を持つが、OpenVPN の実績はより長い。長い展開歴を必要とするコンプライアンスフレームワーク(一部の FedRAMP、一部の FIPS コンテキスト)では、OpenVPN が唯一の選択肢となる場合もある。

動的 IP 割り当てとより豊富なポリシープッシュ

OpenVPN のサーバーはハンドシェイク中に仮想 IP を動的に割り当て、DNS 設定、ルーティング、その他の設定をクライアントにプッシュできる。WireGuard の設定はほぼ静的——各ピアの許可された IP は事前に設定される。エンドポイントの入れ替わりが頻繁な大規模エンタープライズ展開では、OpenVPN の動的モデルの方が運用上シンプルだ。

プロパティ別比較

プロパティ WireGuard OpenVPN
リリース年 2016 2001
コードベースサイズ(リファレンス実装) 約 4,000 行 約 100,000 行以上(OpenSSL 約 500,000 行含む)
暗号プリミティブ 固定: ChaCha20-Poly1305, Curve25519, BLAKE2s OpenSSL 経由でネゴシエーション可能; デフォルト AES-256-GCM + SHA-256 + RSA/ECDSA
デフォルトポート 51820 UDP(変更可能) 1194 UDP, 443 TCP(変更可能)
TCP サポート なし(UDP のみ) あり(TCP モード利用可能)
認証 静的公開鍵ペア X.509 証明書、事前共有鍵、ユーザー名・パスワード
Linux カーネル統合 カーネル 5.6(2020 年)からメインライン ユーザー空間のみ
モバイルバッテリー効率 独立テストで約 20〜40% 消費量が少ない ベースライン消費が高い; 定期的な再ハンドシェイクがコストを追加
ローミング(Wi-Fi からモバイルデータ) 透過的; 再ハンドシェイク不要 再接続を起動; セッション切断が見える
監査歴 約 8 年の本番稼働; 複数の正式監査 約 24 年の本番稼働; 豊富な監査歴
検閲回避性(生の状態で) 低い(特徴的なハンドシェイクパターン) TCP/443 モードで高い

現代的なサービスの多くが WireGuard を採用する理由

主要なコンシューマー VPN——Mullvad、ProtonVPN、NordVPN、IVPN、Surfshark、ExpressVPN、Casper's Cloak——はすべて WireGuard を提供しており、多くがデフォルトにしている。理由はベンダー間で一致している。高速で、バッテリー消費が少なく、ネットワークローミングをスムーズに処理し、監査が容易だ。接続が切れにくくなるためカスタマーサポートコストが下がる。各サーバーが同時接続数を多く処理できる(接続あたりの CPU が低い)ためサーバーコストも下がる。特にモバイルでのユーザーエクスペリエンスが測定可能なほど改善する。

この移行は真剣な機関的採用者によっても検証されている。Mullvad は WireGuard への完全移行とその背景にあるエンジニアリング上の理由を公に説明した。Tailscale と Cloudflare WARP のサービスは WireGuard 派生プロトコルの上に構築されている。Linux はメインライン化した。macOS と iOS はネイティブサポートを提供している。新しい VPN 展開の正しいベースラインとして WireGuard を推奨する業界コンセンサスは強固で、OpenVPN は特定の互換性シナリオのために残されている。これらのプロトコルを正しく使用する有料 VPN がそもそも重要な理由という広い文脈については、無料 vs 有料 VPN ガイドが信頼と資金調達の観点をカバーしており、ProtonVPN との比較では特定ベンダーの実装の違いを見ることができる。

Casper が使用するものとその理由

Casper's Cloak は iOS、Android、Mac でデフォルトとして WireGuard を採用している。理由は上記の比較に直接対応している。バッテリー消費の低さはユーザーが実際に持ち歩くデバイスで重要で、切断なしのローミングはほとんどのユーザーが毎日ネットワーク間を移動するために重要で、小さなコード表面は私たちの脅威モデルと一致している(ネットワーク層の防御は追加のコード実行表面をもたらすべきでない)。そして暗号プリミティブは現代の最先端だ。

私たちは WireGuard に独自のフィルタリング・検知レイヤーを組み合わせている——DNS リゾルバーでの 脅威シールド、新しいドメインに対する ML ベースの脅威スコアリング、応答パスでのトラッカーフィルタリングだ。トンネルはトランスポートであり、IP を変えるだけでなく有用な仕事をするのはアクティブなフィルタリングだ。WireGuard 自体の規範的な技術リファレンスとしては、オリジナルの論文と wireguard.com/papers のドキュメントが最良の一次資料だ。

結論

WireGuard は 2026 年時点でコンシューマー VPN、モダンなエンタープライズ展開、そしてほとんどのクラウド間トンネリングにおいて正しいデフォルトだ。高速で、バッテリー効率が良く、監査が容易で、モバイルネットワークローミングの処理が大幅に優れている。OpenVPN は廃れておらず、TCP モードが必要な制限ネットワーク、確立された PKI ワークフローを持つ組織、そして長い監査歴を必要とするコンプライアンス環境においては依然として正しい答えだ。

コンシューマー VPN を選ぶ一般的なユーザーにとって:WireGuard を提供するベンダーを選び、デフォルトとして使用し、WireGuard の UDP トラフィックを通さない稀なネットワークのフォールバックとして OpenVPN を持っておくことだ。パフォーマンスとバッテリーの改善は現実であり、セキュリティモデルは少なくとも同等に強固で、ユーザーエクスペリエンス——特にモバイルでは——意味のある向上がある。業界がすでに行った移行は正しいものであり、その傾向が逆転する兆しはない。

監修: Casper's Cloak Security Team · 最終更新

WireGuard トンネル、アクティブフィルタリング、DNS リーク防止

Casper's Cloak は iOS、Android、Mac でデフォルトとして WireGuard を採用——脅威シールドフィルタリング、暗号化 DNS、OS 強制による常時接続保護を備えている。現代的なプロトコル、現代的な強化。