WireGuard VPNとは何ですか?また、どのように機能するのでしょうか?
現在利用可能な最速のVPN暗号化プロトコルの仕組み



共有
仮想プライベートネットワーク(VPN) によるプライバシーとデータセキュリティの確保は、一見簡単そうに見えます。VPNを有効にし、接続を待ち、数秒以内に IP アドレスが隠され、データが暗号化されるのです。しかし、オンライン上の匿名性は、決して魔法のようなものではありません。 VPNの内部で動作している技術は、複雑で多段階のプロセスです。
VPNは、主にネットワークです。しかし、これらは通信プロトコル上で動作しており、複数の暗号化段階を処理するため、転送中のユーザーデータは安全に保たれます。 WireGuardは比較的新しいVPN暗号化プロトコルですが、現在利用可能なものの中では群を抜いて高速です。
WireGuardの高速性は、暗号化プロセスの各段階において慎重に選定された効率的なプロトコルと、極めて簡潔なコードベースに由来しています。従来のVPNの大多数では使用されていないプロトコルかもしれませんが、新しい**分散型VPN(dVPN)**においては、主要なプロトコルとして定着しています。現在、多くのVPNサービスがこれに続いています。
この記事では、WireGuardの暗号化プロセスの各段階、その長所と短所、そしてdVPNの優れたプライバシー機能をどのように独自に支えているかについて解説します。
WireGuard VPNとは何ですか?
WireGuard は、多くの最新のVPNが ユーザーのデータとプライバシーを保護する ために用いる、暗号化されたルーティング手順を提供するオープンソースの通信プロトコルです。公開鍵暗号プロセスの各段階において最先端のプロトコルを採用しており、現在利用可能なVPNプロトコルの中で群を抜いて高速です。
WireGuardは2015年に開始され、2020年にLinux向けにリリースされました。現在では、主要なオペレーティングシステムやデバイスすべてに対応しており、新しいVPNサービスでの採用もますます増えています。その高速性、オープンソースによる監査可能性、およびデータオーバーヘッドの低さから、WireGuardは、主流のVPNで使用されている、より広く採用されている通信プロトコルをまもなく凌駕するものと期待されています。
データ暗号化の仕組みについて詳しくは、Nymの総合ガイドをご覧ください。
What is a VPN?
WireGuard VPNはどのように機能するのでしょうか?
WireGuardは、ユーザーのマシンおよびVPNやプロキシサーバー上で動作するソフトウェアクライアントであり、これら間で暗号化されたトラフィックを迅速かつ安全にやり取りすることを可能にします。そこで、WireGuardプロトコルを使用してVPNサーバーに接続する際、バックグラウンドでどのような処理が行われているか、その概要をご説明します:
Handshake
鍵やデータのやり取りを行う前に、クライアントはサーバーにリクエストを送信し、いわゆる「ハンドシェイク」を開始します。サーバーは、自身の公開鍵をクライアントに送信することで応答します。 WireGuardは、NoiseのNoise_IKハンドシェイクを採用しています。これには、鍵の漏洩によるなりすましやリプレイ攻撃の回避、ハンドシェイク参加者の身元の隠蔽、完全前方秘匿性など、セキュリティとプライバシーの面で多くの利点があります。
鍵交換と導出
その後、サーバーとクライアントは、互いの身元を確認するために公開鍵を交換します。鍵交換において、WireGuardは、ディフィー・ヘルマン公開鍵暗号関数に基づく最先端の楕円曲線暗号であるCurve25519を使用しています。
サーバーとクライアントは、交換された鍵を使用して、両者だけが知る一意の鍵を作成します。これは、鍵導出関数(KDF)を通じて行われます。鍵導出の段階において、WireGuardはHKDF(またはHMACベースのKDF)を採用しています。これは、非常に安全な2段階のプロセスと鍵長に関する柔軟性により、VPNルーティングにおいて有利に働きます。導出された鍵は、クライアントとVPNサーバー間の対称暗号化に使用されます。
暗号化と認証
暗号化および認証の段階において、WireGuardは、ChaCha20ストリーム暗号とPoly1305メッセージ認証コードを組み合わせたChaCha20-Poly1305を使用しています。このアルゴリズムは高性能であり、一般的にAES-GCMよりも高速です。
ハッシュ
ハッシュとは、暗号化ルーティングにおけるプロセスのことで、任意のサイズの入力データを固定サイズの文字列に変換することを指します。変換された出力データ、すなわち「ハッシュ値」を使用することで、データパケットが転送中に改ざんまたは変更されたかどうかを判別することができます。その場合、受信者にとってのハッシュ値は、送信者にとってのハッシュ値とは異なるものとなります。 WireGuardはハッシュ関数としてBlake2を採用しています。これは従来の標準(例:SHA-1やSHA-2)よりも高速かつ最適化されており、SHA-3のような先進的な標準と同等の安全性を持つと考えられています。
Transport
トランスポート層は、トラフィックのデータを暗号化されたパケットに変換し、ウェブ上で送信する役割を担っています。 WireGuardは、ユーザーデータグラムプロトコル(UDP)を使用して暗号化されたデータをカプセル化します。この通信プロトコルにより、高速かつ安全なデータ転送が可能となります。 VPNネットワーク上ではデータオーバーヘッドが大きく、既知の問題(「TCPメルトダウン」)もあるため、効率が低下するとして、TCPは使用していません。
ルーティング
お使いのデバイス上で、WireGuardによるこの複雑ながらも非常に効率的なVPN暗号化プロセスを経て、宛先の真正性とデータパケットの安全性が確保された後、データはVPNサーバーへとルーティングされます。そこで、お客様のトラフィックのIPアドレスは、VPNサーバー自身のパブリックIPに置き換えられます。
復号
データの暗号化はVPNサーバー側で行われ、データがサーバーに到達すると、上記の鍵を使用してその暗号化層が解除(復号)されます。ただし、お使いのデバイスとウェブ上の受信先との間の元の接続がHTTPSによって保護されていると仮定すれば、1層の暗号化が残ることになり、VPNが平文データを閲覧することはできなくなります。 VPNの暗号化が解除されると、VPNはデータを送信する最終的な宛先を確認できるようになります。デフォルトでHTTPS暗号化が有効になっているため、WireGuardを搭載したVPNを使用して、トラフィックはエンドツーエンドで暗号化されます。
WireGuardとの互換性
WireGuardは、OpenVPNなどの他のプロトコルと比較して互換性が限られているという点で、時折批判を受けることがあります。しかし、これはかなり誇張された表現であり、オペレーティングシステムではなく、特定のハードウェア(ルーターなど)との互換性を指しています。
-
オペレーティングシステム:WireGuardは、Windows、Mac OS、Linux、Android、iOS、および最新のBSDなど、主要なオペレーティングシステムやデバイスのほとんどに対応しています。
-
ルーター:WireGuardに関するハードウェア上の課題の一つは、OpenVPNなどが現在そうであるように、多くのVPNルーターとの互換性がそれほど広くないという点です。 WireGuardが市場に登場してからまだ4年しか経っていないことを考えれば、これは予想外のことではありません。今後数年間で新しいルーターハードウェアがリリースされるにつれ、Nymはこの互換性のギャップが急速に解消されると予想しています。
WireGuard VPNの利点
Speed
WireGuardは、VPN通信プロトコルとしては非常に高速で、20年にわたり業界標準となってきたOpenVPNよりも50%以上高速です。最小限のコードベース
WireGuardのコードは驚くほど簡潔で、わずか4,000行に過ぎません。比較として、OpenVPNの各バージョンのコード行数は約10万行です。これにより、WireGuardのパフォーマンスは極めてスムーズかつ効率的になっています。
高セキュリティ
WireGuardは、鍵交換に最先端の暗号化アルゴリズムと公開鍵暗号を使用しています。これらの暗号化規格は、現時点では解読不可能です。さらに、この簡潔で軽量なコードベースにより、攻撃の対象となる範囲が大幅に縮小されます。一方、より複雑なOpenVPNでは、見過ごされがちな設定ミスが情報漏洩や、より深刻な攻撃の脆弱性につながる可能性があります。
迅速な再接続
WireGuardはステートレスな設計となっており、ピア間の接続状態を継続的に維持することに依存しません。この設計により、セッションや接続状態を再確立する必要がないため、障害発生時にもシームレスな処理が可能となります。パケットの送受信が再開され次第、WireGuardは中断した箇所から処理を再開できます。
オープンソース
WireGuardのコードはオープンソースであるため、どなたでも監査することができます。しかし、オープンソースコードが監査しやすいかどうかは、その規模によって異なります。この点において、WireGuardはコードベースが小さく簡潔であるという点で際立っています。これにより、プロトコルが極めて合理化されるだけでなく、公開監査も容易になります。
WireGuard VPNのデメリット
難読化の欠如
WireGuardには、組み込みの難読化機能が備わっていません。シンプルで高速、かつ安全なVPNプロトコルとして設計されており、シンプルさとパフォーマンスに重点を置いています。ただし、VPNが使用されていることを隠すためのトラフィックの難読化機能は含まれていません。これは、WireGuardのトラフィックが、ネットワーク監視ツールや、ディープパケットインスペクション(DPI)を行う組織によって特定される可能性があることを意味します。
WireGuardと組み合わせて、Obfsproxy、Shadowsocks、Stunnelなどのツールを使用することで、VPNのルーティング手順に難読化を追加することができます。
すべてのVPNに統合されているわけではありません
市場に出回っている主流のVPNの大部分は、まだWireGuardを採用しておらず、数十年にわたりOpenVPNを使用し続けています。これは単に、VPNの分野において、WireGuardは比較的実戦での実績が少ないということを意味します。しかし、ますます多くのVPNがWireGuardと統合されるにつれて、この状況は急速に変化しつつあります。
ルーターのサポート不足
WireGuardは現在、OpenVPNなどと比べて、対応しているVPNルーターの数がはるかに少ない状況です。これは主に、これらのハードウェアがWireGuardが登場する前に設計・開発されたためです。したがって、Nymは今後数年間で、WireGuardのルーター互換性に変化が生じると予想しています。
WireGuardプロトコルと他のVPNプロトコルの比較
市場に出回っているVPNで採用されている通信プロトコルはWireGuardだけではありません。プロトコルごとの違いは、VPNのパフォーマンスやユーザーのプライバシーにとって重要な意味を持つ場合があります。
WireGuard 対 OpenVPN
OpenVPNは、市場に出回っているVPNの大部分で使用されている通信プロトコルです。 2001年に導入され、VPN暗号化ルーティングにおける実績ある業界標準となっています。しかし、WireGuardとOpenVPNの間には、パフォーマンスに大きな違いがあります。 Nymによる2つのプロトコルの詳細な比較をご覧ください。
OpenVPN:ユーザーやプログラマーにとって柔軟な設定が可能であり、使用できる暗号アルゴリズムの選択肢も幅広いという利点があります。また、VPNルーターとの互換性もはるかに広く、企業環境ではより一般的です。
WireGuard:OpenVPNよりもはるかに高速で、データオーバーヘッドも大幅に少なく、同等のセキュリティを備えています。
WireGuard 対 IPSec/IKEv2
IPSec(Internet Protocol Security)およびIKEv2(Internet Key Exchange version 2)は、インターネット通信のセキュリティを確保するために使用されるプロトコルです。これらは、IPSec/IKEv2として組み合わせて使用されることがよくあります。
IPSec/IKEv2:OpenVPNと同様に、幅広い暗号プロトコルをサポートしていますが、コードベースが数十万行にも及ぶため、データオーバーヘッドが極めて大きくなります。これにより、エラーや設定ミスが発生しやすくなるだけでなく、監査もより困難になる可能性があります。
WireGuard:よりシンプルで効率的ですが、ユーザーが暗号化アルゴリズムを選択することはできません。
WireGuard 対 PPTP
ポイント・トゥ・ポイント・トンネリング・プロトコル(PPTP)は、最も古いVPN暗号化プロトコルのひとつです。これは1990年代半ばにマイクロソフトによって導入され、現在も一部のレガシープラットフォームで使用されています。
PPTP:MPPE(Microsoft Point-to-Point Encryption)とRC4暗号を使用していますが、RC4は現代の基準では脆弱であると見なされています。しかし、設定が比較的迅速かつ容易であるため、保護よりもスピードが重視される状況では有用である可能性があります。 WireGuard:非常に高速であるだけでなく、最先端の暗号化アルゴリズムを採用しているため、PPTPに見られる「速度とセキュリティのトレードオフ」は完全に不要となります。
WireGuard 対 L2TP
L2TP(Layer 2 Tunneling Protocol)は、PPTPおよびL2F(Layer 2 Forwarding Protocol)の拡張です。
L2TP:L2TP自体は暗号化機能を提供しないため、多くの場合、IPsecと組み合わせて暗号化を行い、送信されるデータのセキュリティを確保します(L2TP/IPsec)。
WireGuard:L2TPはユーザーデータを暗号化しないため、WireGuardと比較しても意味がありません。
WireGuard:分散型ネットワークの推進
オンラインのプライバシーに関して言えば、WireGuardがこれほど魅力的かつ重要な技術である理由は、プライバシーを重視した分散型VPN(dVPN)に対して、高速かつ安全なルーティングを提供できる点にあります。
一方、従来のVPNの集中型かつ単一サーバーのアーキテクチャは、ユーザーにとって十分なプライバシー保護とはなり得ませんでした。これらは、データ漏洩、大量監視の要請への協力、広告主向けのバックドア、およびブローカーへのデータ販売といったリスクにさらされています。一方、dVPNは有望ですが、速度が問題となっています。トラフィックを隠蔽するためにデータが通過しなければならないサーバーの数が増えるほど、処理速度は全体的に低下してしまいます。機密性の高い電子メールを送信する分にはさほど問題にならないかもしれませんが、包括的なネットワークルーティングにおいては問題となるでしょう。
WireGuardは、プライバシー保護において画期的なソリューションです。極めて高速で効率的、かつ合理化されたルーティングプロトコルを提供することで、ユーザーは速度を過度に犠牲にすることなく、マルチホップdVPNの高度なプライバシー保護の恩恵を受けることができます。
NymVPNは、ユーザーに選択肢を提供することを選択しました。 WireGuardを搭載した2ホップdVPNモードに簡単に切り替えることができ、日常の保護を非常に高速かつプライバシーを重視して行えます。あるいは、機密性の高いユースケース(メッセージングや暗号通貨取引など)の場合、ユーザーは、ミックスネットトラフィックの処理に特化して設計されたSphinxプロトコルによる、比類のない5ホップ・ミックスネットモードを選択することも可能です。
プライバシーのニーズに最適なVPNを選ぶ際には、WireGuardを採用した分散型ネットワークにより、プライバシーを犠牲にすることなく、インターネットを簡単かつ高速に利用できる点をご検討ください。

WireGuard VPN: FAQs
WireGuardはデフォルトで固定のUDPポートを使用しており、ルーティングは簡素化されますが、トラフィックの特定が容易になる可能性があります。ただし、難読化プラグインや(NymVPNのような)統合ルーティングを利用すれば、ポートの挙動を隠蔽することが可能です。
NymVPNは、WireGuardベースの2ホップdVPNセッションをミックスネットのエンベロープ内に封入し、メタデータを隠すための層を追加しつつ、日常のブラウジングにおいてWireGuardの高速性を維持しています。
WireGuardは、短い時間または一定量のデータ転送ごとに(ChaCha20-Poly1305を用いて)セッションキーを定期的に更新します。これにより、キーの漏洩による影響を最小限に抑え、過去のセッションの安全性を確保しています。
WireGuardの最小限のコードベースは、Linux、macOS、Android、iOS、および組み込みデバイス上で効率的に動作しますが、低消費電力のハードウェアでは、鍵交換のオーバーヘッドにより、わずかなCPU負荷が生じる可能性があります。
WireGuardは非常に効率的であり、TLSを伴うOpenVPNのような負荷の高いプロトコルよりもバッテリー消費が少ない傾向にあります。ハンドシェイクの処理が高速であるため、無線がアクティブな状態が続く時間が短縮されるからです。
About the authors

Casey Ford, PhD
Communications Lead
Ania M. Piotrowska, PhD
Technical reviewer
