TOPセキュリティ > シンプルで堅牢な高速VPN、WireGuard(中)

セキュリティ

シンプルで堅牢な高速VPN、WireGuard(中)

2020/01/22

Lucian Constantin CSO

 WireGuardは、シンプルさと使いやすさを特徴とするVPNだ。適切に検証された最新の暗号化プロトコルとアルゴリズムを使って、容易にデータを防御できる。もともとはLinuxカーネル向けに開発されたが、現在ではWindows、macOS、BSD、iOS、Androidでも利用できる。

前回から続く)

WireGuardのパフォーマンス

 Linuxでは、WireGuardは完全にカーネル空間で動作する。ユーザー空間で動作し、仮想ネットワークインタフェースドライバーを使用するOpenVPNに比べれば、パフォーマンスははるかに高い。WireGuardプロジェクト自身のWebサイトをはじめ、WireGuardに関するさまざまなベンチマークの結果を見ると、パフォーマンスや接続速度はOpenVPNに比べて最大4倍優れており、IPsecベースのVPNと比べても高速である。

 一方、同じWireGuardでも、Android、iOS、macOS、OpenBSD、Windows向けの実装は、メモリーセーフなプログラミング言語であるGo言語で開発されている。Linux版WireGuardのカーネルモジュールを統合したコミュニティベースのAndroidファームウエアプロジェクトを別にすれば、Linux以外のバージョンのWireGuardはユーザー空間で動作し、カーネル版の実装と同じようなパフォーマンスは得られない。だがそれでも、OpenVPNと同等以上のパフォーマンスとなっているケースが多い。

LinuxカーネルへのWireGuardの統合

 WireGuardのカーネルモジュールは、Linuxの主なディストリビューションすべてのパッケージリポジトリで提供されているが、Donenfeld氏は、Linuxカーネル本体にWireGuardを直接統合する取り組みを2018年から進めている。その実現には、Linuxカーネルの暗号APIとネットワーキングスタックの両方に大幅な変更が必要となることから、進展のスピードは遅いものの、Linus Torvalds氏からは好意的な評価を得ている。

 Torvalds氏は、Linuxカーネルメーリングリストへの2018年8月2日の投稿の中で、WireGuardの統合に関するDonenfeld氏からのプルリクエストに言及し、早急なマージへの期待感を表明した。コードが完璧でなかったとしても、ざっと見た限り、OpenVPNやIPSecに比べれば素晴らしい出来栄えだと評している。

 Donenfeld氏の構想には、これまでよりシンプルな新しい暗号API「Zinc」をLinuxカーネルに統合する計画も含まれていた。開発者がアプリケーションの中で暗号処理を実行する際に、既存のカーネルのcrypto APIは大半のユースケースでは必要以上に複雑であり、Zincなら処理がしやすくなるというのが同氏の主張だった。Zincに関するプレゼンテーションで同氏は、Linuxのcrypto APIについて、「常軌を逸したエンタープライズAPI」で、誤りが非常に起きやすく、とことん使いにくいと表現している。

↑ページ先頭へ