FreeBSDのコードベースに、新しいVPN実装が追加されました。 WireGuard

FreeBSDのソースツリーに、新しいVPN実装が追加されました。 WireGuardFreeBSDコア開発チームが共同で準備したカーネルモジュールコードに基づいて、 WireGuard VPNの著者、ジェイソン・A・ドネンフェルド氏をフィーチャー WireGuardまた、2000年代初頭にFreeBSDカーネルにSMPとNUMAのサポートを実装した、著名なGDBおよびFreeBSD開発者であるJohn H. Baldwin氏も参加しています。ドライバがFreeBSD(sys/dev/wg)に採用された後は、その開発とメンテナンスはFreeBSDリポジトリで行われます。

コードが承認される前に、FreeBSD Foundation のサポートを受けて変更点の完全なレビューが実施され、その際にドライバーと他のカーネル サブシステムとの相互作用が分析され、カーネルによって提供される暗号化プリミティブを使用する可能性が評価されました。

ドライバに必要な暗号化アルゴリズムを使用するために、FreeBSD カーネル暗号化サブシステム API が拡張され、libsodium ライブラリからの必要なアルゴリズムの実装を使用して、FreeBSD で標準暗号化 API を通じてサポートされていないアルゴリズムを使用できるようにするバインディングが追加されました。ドライバに組み込まれているアルゴリズムのうち、FreeBSD で提供されるこのアルゴリズムの実装は固定のハッシュ サイズに関連付けられているため、Blake2 ハッシュを計算するコードのみが残っています。

さらに、レビュープロセスにおいて、マルチコアCPUにおける負荷分散の効率を向上させるためのコード最適化が実施されました(パケットの暗号化および復号化タスクがCPUコア間で均一にバランスされるようにしました)。その結果、パケット処理のオーバーヘッドはドライバ実装のオーバーヘッドに近づきました。 Linuxこのコードは、osslドライバを使用して暗号化処理を高速化する機能も提供します。

以前の統合の試みとは異なり WireGuard FreeBSD では、新しい実装では ifconfig の修正版ではなく標準の wg ユーティリティを使用しているため、設定を統一することが可能になりました。 Linux そしてFreeBSD。wgユーティリティは、ドライバと同様にFreeBSDのソースコードに含まれています。これは、wgコードのライセンスを変更したことによって可能になりました(コードは現在、MITライセンスとGPLライセンスの下で利用可能です)。 WireGuard 2020年にFreeBSDへのマージが試みられたが、品質の低さ、バッファ処理の不備、チェックの代わりにスタブを使用していること、プロトコルの実装が不完全であること、GPLライセンス違反などを理由に、既に追加されたコードが削除され、論争に終わった。

それを思い出して VPN WireGuard 最新の暗号化方式を用いて実装されたこのシステムは、非常に高いパフォーマンスを発揮し、使いやすく、複雑な設定も不要です。また、大量のトラフィックを処理する大規模な導入事例において、その有効性が実証されています。このプロジェクトは2015年から開発が進められており、暗号化方式に関する監査と正式な検証を受けています。 WireGuard キーベースルーティングの概念が用いられており、これは各ネットワークインターフェースに秘密鍵をバインドし、公開鍵をバインドに使用するというものです。

接続を確立するための公開鍵の交換はSSHと同様です。ユーザー空間で別のデーモンを実行せずに鍵のネゴシエーションと接続を行うために、Noise Protocol FrameworkのNoise_IKメカニズムが使用されます。これはSSHにおけるauthorized_keysの維持に似ています。データ転送はUDPパケットにカプセル化されて行われます。変更もサポートされています。 IPアドレス 自動クライアント再構成により接続が中断されない VPN サーバー (ローミング)。

暗号化には、ChaCha20 ストリーム暗号と、Daniel J. Bernstein、Tanja Lange、Peter Schwabe によって開発された Poly1305 メッセージ認証 (MAC) アルゴリズムが使用されます。 ChaCha20 と Poly1305 は、AES-256-CTR と HMAC のより高速で安全な類似物として位置付けられており、そのソフトウェア実装により、特別なハードウェア サポートを必要とせずに固定実行時間を達成できます。 共有秘密鍵を生成するには、同じくダニエル・バーンスタインによって提案された、Curve25519 実装の楕円曲線 Diffie-Hellman プロトコルが使用されます。 ハッシュには BLAKE2s アルゴリズム (RFC7693) が使用されます。

出所: オープンネット.ru

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster