VPN WireGuard 已由 net-next 分支接受,並計劃包含在 Linux 5.6 核心中

大衛·米勒(大衛·米勒),負責Linux核心的網路子系統, 普里尼亞爾 到網路下一個分支 補丁 實施專案中的 VPN 接口 WireGuard。 明年初,net-next 分支中累積的變更將構成 Linux 核心 5.6 發布的基礎。

過去幾年,人們曾嘗試將 WireGuard 程式碼推入主內核,但由於與用於提高效能的加密函數的專有實作相關聯,因此仍未成功。 最初,這些功能是 建議的 作為核心的附加低階 Zinc API,它最終可能取代標準的 Crypto API。

經過 Kernel Recipes 會議的討論,WireGuard 的創建者於 XNUMX 月 做出了妥協的決定 轉移您的修補程式以使用核心中可用的加密 API,WireGuard 開發人員在效能和一般安全性方面對此有抱怨。 決定繼續開發 Zinc API,但作為一個單獨的專案。

XNUMX 月,核心開發人員 作為妥協的回應,並同意將部分程式碼從 Zinc 轉移到主核心。 本質上,一些 Zinc 元件將被移入核心,但不是作為單獨的 API,而是作為 Crypto API 子系統的一部分。 例如,Crypto API 已經 包括 快速實現 WireGuard 中準備的 ChaCha20 和 Poly1305 演算法。

關於即將在主核心中交付 WireGuard,該專案的創始人 объявил 關於重組儲存庫。 為了簡化開發,設計為獨立存在的整體「WireGuard.git」儲存庫將被三個獨立的儲存庫取代,更適合在主核心中組織程式碼工作:

  • 線衛-linux.git - 完整的內核樹,包含 Wireguard 專案的更改,其中的補丁將被審查以包含在核心中,並定期轉移到 net/net-next 分支。
  • Wireguard-tools.git - 在使用者空間中執行的實用程式和腳本的儲存庫,例如 wg 和 wg-quick。 此儲存庫可用於建立分發包。
  • wireguard-linux-compat.git - 包含模組變體的儲存庫,與核心分開提供,並包括 compat.h 層以確保與舊核心的兼容性。 主要開發將在wireguard-linux.git儲存庫中進行,但只要使用者有機會和需要,也將以工作形式支援單獨版本的修補程式。

讓我們提醒您,VPN WireGuard 是在現代加密方法的基礎上實現的,提供非常高的性能,易於使用,沒有複雜性,並且已經在處理大量流量的大量大型部署中證明了自己。 該專案自2015年開始開發,已通過審核並通過 形式驗證 使用的加密方法。 WireGuard 支援已整合到 NetworkManager 和 systemd 中,並且核心補丁包含在基本發行版中 Debian不穩定、Mageia、Alpine、Arch、Gentoo、OpenWrt、NixOS、 子圖 и ALT.

WireGuard 使用加密金鑰路由的概念,其中涉及將私鑰附加到每個網路介面並使用它來綁定公鑰。 以與 SSH 類似的方式交換公鑰以建立連線。 為了協商金鑰並連接而無需在用戶空間中運行單獨的守護進程,來自的 Noise_IK 機制 噪音協定框架類似於在 SSH 中維護authorized_keys。 資料傳輸是透過封裝在UDP資料包中進行的。 支援在不斷開連線的情況下變更VPN伺服器的IP位址(漫遊)並自動重新設定客戶端。

用於加密 使用 流密碼 茶茶20 和訊息認證演算法(MAC) Poly1305,由丹尼爾·伯恩斯坦設計(丹尼爾·伯恩斯坦),坦妮亞·蘭格
(塔妮亞·蘭格)和彼得·施瓦貝。 ChaCha20 和 Poly1305 被定位為 AES-256-CTR 和 HMAC 的更快、更安全的類似物,其軟體實現允許在不使用特殊硬體支援的情況下實現固定的執行時間。 為了產生共享金鑰,實作中使用了橢圓曲線 Diffie-Hellman 協定 曲線25519,也是由丹尼爾·伯恩斯坦提出的。 用於散列的演算法是 BLAKE2 (RFC7693).

測試 效能 與 OpenVPN(具有 HMAC-SHA3.9-3.8 的 256 位元 AES)相比,WireGuard 的吞吐量提高了 2 倍,回應速度提高了 256 倍。 與 IPsec(256 位元 ChaCha20+Poly1305 和 AES-256-GCM-128)相比,WireGuard 顯示出輕微的效能改進 (13-18%) 和更低的延遲 (21-23%)。 測試是使用該專案開發的加密演算法的快速實現來執行的 - 轉移到核心的標準加密 API 可能會導致效能更差。

VPN WireGuard 已由 net-next 分支接受,並計劃包含在 Linux 5.6 核心中

來源: opennet.ru

添加評論