WireGuard

WireGuardは、フリーかつオープンソースのルーティング又はブリッジで安全なポイント・ツー・ポイント接続を作成するための技術であるVirtual Private Network (VPN) の実装であり、アプリケーション及び通信プロトコルである。Linuxカーネル内のモジュールとして実行され、IPsecやOpenVPNよりも優れた性能を目指している。WireGuardはJason A. Donenfeldによって書かれ、GNU GPL v2の下で配布されている。 WireGuardは単純で非常に効果的なVPNを提供することを目指している。Ars Technicaのレビューによると、OpenVPNやIPsecなどの一般的なVPN技術は、多くの場合セットアップが困難であり、簡単に切断され、再接続のネゴシエーションにかなりの時間を要し、古い暗号方式を使用しており、ソースコードが比較的大規模であることからバグの発見が困難になっていると述べている。 WireGuardの設計ではこれらの問題を軽減し、トンネルのセキュリティを強化し、デフォルトで管理しやすくしている。暗号パッケージのバージョン管理を使用することによって、その時点で最も安全と考えられる暗号方式に焦点を当てており、更に、コードベースは約4,000行となり、セキュリティ監査（英語版）が容易である。Ars Technicaはテストにおいて、代替と比較してWireGuardは安定したトンネルの作成が容易であると報告し、WireGuardの「実用的な」な即時再接続と比較して、代替の長い再接続の遅延に「戻ることは難しい」とコメントした。 WireGuardは鍵共有（英語版）にはCurve25519、暗号化にはChaCha20、データ認証（英語版）にはPoly1305、ハッシュテーブル鍵にはSipHash（英語版）、ハッシュにはBLAKE2sを利用する。ネットワーク層のIPv4及びIPv6の両方に対応し、4in6（英語版）及び6in4（英語版） (カプセル化) にも対応している。 000000002019-05-01-00002019年5月、フランス国立情報学自動制御研究所 (INRIA) の研究者は、CryptoVerif（英語版） proof assistant（英語版）を使用して作成されたプロトコルのマシンチェック済み証明を公開した。 コードベースの最初期のスナップショットは000000002016-06-30-00002016年6月30日から存在する。WireGuardの初期の採用者はVPNサービスプロバイダのMullvad（英語版）、AzireVPN、IVPN及びcryptostormであった。WireGuardはMullvad、Private Internet Access（英語版）、IVPN及びNLnet Foundation（英語版）から寄付を受け取った。 000000002018-06-01-00002018年6月の時点で、WireGuardの開発者はソースコードとプロトコルを実験的なものとして扱うことを推奨しており、発見される可能性のある脆弱性のCVEと互換性の有る安定版が未だリリースされていないことを注意した。 000000002019-12-09-00002019年12月9日、Linuxのネットワーキングスタックの主要メンテナであるDavid Millerは、今後のカーネルのリリースにWireGuardを含めるために、"net-next" メンテナツリーにWireGuardのパッチを受け入れた。000000002020-01-28-00002020年1月28日にリーナス・トーバルズはDavid Millerの"net-next" ツリーをマージし、WireGuardがメインラインLinuxカーネルツリーに統合された。 オレゴン州選出の上院議員のロン・ワイデン（英語版）は、アメリカ国立標準技術研究所 (NIST) にIPsecやOpenVPNなどの既存の技術の代替としてWireGuardを評価することを推奨している。 WireGuardプロトコルの実装: DonenfeldによるCとGoで書かれた初期実装。 CloudflareのRustで書かれたユーザ空間実装であるBoringTun。 NetBSDの wg(4) ドライバー。Ryota Ozaki によるC言語の実装。 [脚注の使い方] ^ 追加の設定が無い場合。 ^ OpenVPNやIPsecのソースコードは40万行 - 60万行である。 ^ OpenVPNやIPsecの約1%。 ^ a b “Installation”. Edge Security. 2020年2月5日閲覧。 ^ Preneel, Bart; Vercauteren, Frederik, eds (2018-04-26). Applied Cryptography and Network Security. Springer. ISBN 978-3-319-93387-0. https://books.google.com/books?id=UKJfDwAAQBAJ&pg=PA3  ^ a b Jason A. Donenfeld. “WireGuard: fast, modern, secure VPN tunnel”. 2020年2月6日閲覧。 ^ a b Jim Salter (2018年8月27日). “WireGuard VPN review: A new type of VPN offers serious advantages”. Ars Technica. 2020年2月6日閲覧。 ^ Donenfeld, Jason A. "Introduction & Motivation" (PDF). WireGuard: Next Generation Kernel Network Tunnel (PDF). ^ “A Mechanised Cryptographic Proof of the WireGuard Virtual Private Network Protocol”. Inria (2019年). 2020年2月6日閲覧。 ^ “Index of /monolithic-historical/”. 2020年2月6日閲覧。 ^ Rob Mardisalu (2019年2月13日). “Mullvad Review”. TheBestVPN.com. 2020年2月6日閲覧。 ^ Rob Mardisalu (2019年2月19日). “AzireVPN Review”. TheBestVPN.com. 2020年2月6日閲覧。 ^ Nick Pestell (2018年12月11日). “Introducing WireGuard, fully automated.”. IVPN Blog. 2020年2月6日閲覧。 ^ “WireGuard support added!”. cryptostorm blog (2019年4月5日). 2020年2月6日閲覧。 ^ Jason A. Donenfeld. “Donations”. 2020年2月6日閲覧。 ^ Jason A. Donenfeld. “About The Project”. 2020年2月6日閲覧。 ^ “net: WireGuard secure network tunnel”. kernel.org. 2020年2月6日閲覧。 ^ “Re: [PATCH net-next v2 net: WireGuard secure network tunnel]”. LKML. 2020年2月6日閲覧。 ^ “[ANNOUNCE WireGuard merged to net-next, on its way to Linux 5.6]”. lists.zx2c4.com. 2020年2月6日閲覧。 ^ “Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next”. kernel.org. 2020年2月6日閲覧。 ^ Michael Larabel (2018年6月30日). “US Senator Recommends Open-Source WireGuard To NIST For Government VPN”. Phoronix. 2020年2月6日閲覧。 ^ Jason A. Donenfeld. “Source Code”. 2020年2月6日閲覧。 ^ Vlad Krasnov (2019年3月27日). “BoringTun, a userspace WireGuard implementation in Rust”. The Cloudflare Blog. 2020年2月6日閲覧。 ^ Michael Larabel (2019年3月28日). “CloudFlare Launches "BoringTun" As Rust-Written WireGuard User-Space Implementation”. Phoronix. 2020年2月6日閲覧。 ^ “wg(4) - NetBSD Manual Pages” (2020年8月20日). 2021年10月21日閲覧。 関連ポータルのリンク ウィキポータル コンピュータ ウィキポータル FLOSS SSH 公式ウェブサイト WireGuardの技術文書