2029年現在、開発がされている次世代のVPNプロトコルであるWireGuardの特徴やそのメリットとデメリットを徹底解説します。
WireGuardとは?
WireGuardとは、VPNの接続をより快適にするための新しい技術です。
今まで、VPNを利用するためにはOpenVPNやIPsecという接続方式を利用してVPNを利用するのが一般的でした。
どちらの接続方式も、良くできた方式だったのですが、さらにセキュリティ強度の高い方式としてWireGuardが開発されました。
WireGuardの仕組みは?
ちょっと技術的な話になってしまうので、仕組みは興味のある人以外はスルーして大丈夫です。
WireGuardは、UDPでの通信をVPN経由で行います。
UDPとは、データの再送やパケットロス対策を行わないプロトコルです。
公開鍵を利用して暗号化や復号を行っています。
WireGuardのメリット
通信が高速
WireGuardでVPNの通信を行うと、OpenVPNやIPsecと比較して高速な通信が行えます。
最大で2倍程度の速度でVPNが利用できるらしいです。
ただ、これは接続方式よりVPNサーバーのスペックや利用者の集中度合いにもやるため、一概に早いとは言えないかも知れません。
暗号化方式が強化された
通信の暗号化方法がより教科されました。
具体的には以下で示す技術を利用して暗号化&復号化を行っています。
- Noise protocol framework
- Curve25519
- ChaCha20
- Poly1305
- BLAKE2
- SipHash24
- HKDF
それがどれほどの強度なのかということは、まだ研究等が行われていないため、わかりませんが、OpenVPNよりかは強力らしいです。
接続が単純
従来のVPN接続方式では、VPNサーバーへの接続をする際に多くの情報をやりとりして、通信を確立する必要がありました。
そのため、VPN専用ソフトで「VPNサーバーに接続」というボタンを押すと接続されるまでに少し時間がかかります。
しかし、WireGuardではVPNとの接続時に「公開鍵だけ」を交換します。
そのため、接続が非常に単純なため、接続にかかる時間も短くなりサクサクVPNを利用できます。
コードが短い
OpenVPNは、2000年初頭から、じっくり開発されてきた接続方式です。
そのため、毎年毎年アップデートのために様々な機能が追加されてりして、合計600000行もあります。
それに対して、WireGuardは2018年頃から開発されてきた方式のため、合計3800行しかありません。
プログラムのコードが少ないということはそれだけでセキュリティの向上に繋がります。
ソフトウェアの開発を行う時に、どうしてもバグが発生してしまいます。
コードが複雑になればなるほど、複雑なバグが発生して、それが攻撃者に悪用されることで暗号化が復号化されてりしてしまいます。
WireGuardは、たった3000行程度しかないため、個人でも1日かければすべての仕組みを理解できます。
また、処理も単純なため、処理速度も高速になります。
カーネルレベルで対応
WindwosなどのOSの根幹となる部分をカーネルといいます。
WireGuardはカーネルレベルでサポートすることを目標としています。
OS標準の機能としてWireGuardが、利用できるようになります。
接続維持の最適化
OpenVPNでは、VPNサーバーとの接続を維持するためには常にデータ通信を行う必要がありました。
WireGuardでは、そういった不必要な通信を行わずにVPNサーバーとの接続を維持できます。
利便性は向上しますが、これを実現するためにはサーバー側が接続のログを保持して通信を行う必要があります。
後で述べる「WireGuardのデメリット」で紹介している「ログが保存されてしまう」という問題に直結してしまいます。
WireGuardのデメリット
開発中のプロトコルである
まだ、WireGuardは開発中のプロトコルです。
そのため、十分なテストやセキュリティレビューが行われていません。
実は重大なセキュリティの危険性が含まれていたということも、今後十分に考えられます。
Windowsに非対応
今のところ、WindowsはWireGuardの利用が非対応となっています。
専用のソフトウェアをインストールすることで、通信をWireGuard経由にすることもできますが、やはりOSレベルで対応していないことは問題があります。
すべての通信をVPN経由で行っているつもりが、一部の通信は直接行われていたということも考えられます。
VPNサービスが対応していない
まだまだ開発中のプロトコルのため、大手のVPNサービスも対応していません。
一部のVPNサービスでは「まだ開発中のプロトコルをユーザーでテストすることはあまりにも危険過ぎる」と主張しています。
後方互換性がない
WireGuardを利用するためには、それ専用のVPNサーバーが必要となっています。
現在運営されている既存のVPNサーバーをすべて活用できずに、新たに用意する必要があるため、普及には時間がかかるでしょう。
ログが保持される
これが最大のWireGuardのデメリットです。
近年、VPNにはログが一切保存されないことがもっとも重要です。
しかし、WireGuardでは現在、必ずログがVPNサーバーに保存されてしまいます。
サーバーにWireGuardを導入すると、標準ではすべての送信元のIPアドレスが表示されるようになっています。
また、WireGuardはIPアドレスをランダムに割り当てる機能はありません。
そのため、どの利用者にどうのIPアドレスを割り当てるかを制御する必要があり、そのためには、その人の最終接続日時を保存する必要があります。
WireGuardは、通信速度や接続性は良くても、匿名性の観点からは最悪のプロトコルといえるでしょう。
UDPしかサポートされていない
WireGuardは、TCPプロトコルに対応していません。
TCPとは、絶対に通信ロスが起きないようにしっかりと通信を行うプロトコルです。
そのため、通信速度は低下しますが、メッセージアプリなど必ずデータ転送が必要な通信で必要となるプロトコルです。
逆に、UDPとは、通信ロスを許しながら、その分めっちゃ高速な通信を行うプロトコルです。
YouTubeなどの動画ストリーミングサービスでは、UDPプロトコルでの通信が必須となっています。
WireGuardは、UDPしかサポートされていないため、そういった「必ず通信ロスが起きてはいけない通信」には不向きです。
以上がWireGuardの仕組みやメリット・デメリットのまとめでした。
現時点で、WireGuardはあくまでも開発中のVPN接続方式となっています。
そのため、まだまだ多くの問題を抱えていることは明らかです。
今後の開発に期待したいところです。