WireGuard が Linux カーネルに「登場」します - なぜでしょうか?

XNUMX 月末、WireGuard VPN トンネルの開発者は次のことを提案しました。 パッチセット、これにより、VPN トンネリング ソフトウェアが Linux カーネルの一部になります。 しかし、「アイデア」が具体的に実行された日付は不明のままです。 このカットの下で、このツールについて詳しく説明します。

WireGuard が Linux カーネルに「登場」します - なぜでしょうか?
/ 写真 タンバコ・ザ・ジャガー CC

プロジェクトについて簡単に説明すると

WireGuard は、Edge Security の CEO、Jason A. Donenfeld によって作成された次世代 VPN トンネルです。 プロジェクトは次のように開発されました 簡略化された OpenVPN や IPsec に代わる高速な代替手段です。 製品の最初のバージョンには、わずか 4 行のコードが含まれていました。 比較のために、OpenVPN には約 120 万回線、IPSec には 420 万回線があります。

上の によると 開発者にとって、WireGuard は設定が簡単で、プロトコルのセキュリティが実現されます。 実証済みの暗号アルゴリズムによる. ネットワークを変更する場合: Wi-Fi、LTE、またはイーサネットでは毎回 VPN サーバーに再接続する必要があります。 WireGuard サーバーは、ユーザーが新しい IP アドレスを受け取った場合でも、接続を終了しません。

WireGuard は元々 Linux カーネル用に設計されたにもかかわらず、開発者は 世話をした Android デバイス用ツールのポータブル バージョンについても説明します。 アプリケーションはまだ完全に開発されていませんが、今すぐ試すことができます。 このために必要なのは テスターの一人になる.

一般に、WireGuard は非常に人気があり、 実装された Mullvad や AzireVPN などのいくつかの VPN プロバイダー。 オンラインで公開 多数 セットアップガイド この決断。 例えば、 ガイドがいます、ユーザーによって作成され、ガイドがあります。 プロジェクトの作成者によって作成された.

技術的詳細

В 公式ドキュメント (p. 18) WireGuard のスループットは OpenVPN のスループットよりも 1011 倍高いことが注目されています (それぞれ 258 Mbit/s と 881 Mbit/s)。 WireGuard は、Linux IPsec の標準ソリューションよりも優れており、XNUMX Mbit/s です。 セットアップの容易さでもそれを上回っています。

キーが交換され (VPN 接続は SSH と同様に初期化されます)、接続が確立された後、WireGuard は他のすべてのタスクを独自に処理します。ルーティングや状態制御などについて心配する必要はありません。追加の構成作業は、対称暗号化を使用する場合は必須です。

WireGuard が Linux カーネルに「登場」します - なぜでしょうか?
/ 写真 アンデルス・ホイビャルク CC

インストールするには、4.1 より古い Linux カーネルを搭載したディストリビューションが必要です。 これは、主要な Linux ディストリビューションのリポジトリにあります。

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

xakep.ru の編集者が指摘しているように、ソース テキストからの自己アセンブリも簡単です。 インターフェースを開いて公開鍵と秘密鍵を生成するだけで十分です。

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

ワイヤガード 使用しません 暗号プロバイダーと連携するためのインターフェース クリプトアピ。 代わりにストリーム暗号が使用されます ChaCha20、暗号化 模造インサート Poly1305 および独自の暗号化ハッシュ関数。

秘密キーは次を使用して生成されます。 ディフィー・ヘルマン・プロトコル 楕円曲線に基づく カーブ25519。 ハッシュ化するときに使用するのは、 ハッシュ関数 ブレイク2 и SipHash。 タイムスタンプ形式のため タイ64N プロトコルは、タイムスタンプ値が小さいパケットを破棄します。 DoSの防止- и リプレイ攻撃.

この場合、WireGuard は ioctl 関数を使用して I/O を制御します (以前は使用されていました) ネットリンク)、コードがよりクリーンかつシンプルになります。 これは次のように確認できます。 設定コード.

開発者向けプラン

現時点では、WireGuard はツリー外のカーネル モジュールです。 しかし、プロジェクトの作者はジェイソン・ドネンフェルドです 彼は話します、Linuxカーネルに完全に実装される時期が来たということです。 他のソリューションよりもシンプルで信頼性が高いためです。 この点に関してジェイソン サポートする リーナス・トーバルズ自身でさえ、WireGuard コードを「芸術作品」と呼んでいました。

しかし、WireGuard がカーネルに導入される正確な日付については誰も話していません。 そして ほとんどない これは、4.18 月の Linux カーネル 4.19 のリリースで発生します。 ただし、これは非常に近い将来、バージョン 5.0 または XNUMX で発生する可能性があります。

WireGuard がカーネルに追加されると、開発者は 欲しい Android デバイス用のアプリケーションを完成させ、iOS 用のアプリケーションの作成を開始します。 Go と Rust で実装を完了し、macOS、Windows、BSD に移植する計画もあります。 より「エキゾチックなシステム」向けに WireGuard を実装することも計画されています。 DPDK, FPGA、他にも興味深いものがたくさんあります。 それらはすべて以下にリストされています やることリスト プロジェクトの作者。

PS 当社の企業ブログからさらにいくつかの記事をご紹介します。

私たちの活動の主な方向性は、クラウド サービスの提供です。

仮想インフラストラクチャ (IaaS) | PCI DSS ホスティング | クラウド FZ-152 | SAP ホスティング | 仮想ストレージ | クラウド上のデータの暗号化 | クラウドストレージ

出所: habr.com

コメントを追加します