深入核心 Linux 5.6 啟用 VPN WireGuard

今天 Linus 將帶有 VPN 介面的 net-next 分支移給了自己 WireGuard。 關於本次活動 сообщили 在郵寄名單上 WireGuard.

深入核心 Linux 5.6 啟用 VPN WireGuard

新核心的程式碼收集工作目前正在進行中。 Linux 5.6 WireGuard — 一款採用現代加密技術的快速新一代 VPN。它最初是作為現有 VPN 的更簡單、更方便的替代方案而開發的。它是由加拿大資訊安全專家 Jason A. Donenfeld 開發。 2018 年 8 月, WireGuard 受到好評 來自 Linus Torvalds。大約在那時,將 VPN 整合到核心中的工作開始了。 Linux這個過程花的時間稍微長了一些。

我看到 Jason 提交了一個 pull request 來包含 WireGuard Linus 於 2018 年 8 月 2 日寫道:“把它合併到內核中吧。我能否再次表達我對這款 VPN 的喜愛,並希望它能盡快合併?代碼可能並不完美,但我已經看過它,並與那些糟糕的代碼進行了比較。” OpenVPN 而IPSec,它真是一件藝術品。

儘管萊納斯有意願,合併還是拖延了一年半。 事實證明,主要問題與加密函數的專有實作有關,這些函數用於提高效能。 經過 2019 年 XNUMX 月的漫長談判, 做出了妥協的決定 將補丁轉換為核心中可用的加密 API 函數,開發者可以存取這些函數。 WireGuard 曾有人抱怨性能和整體安全性方面的問題。但原生加密功能解決了這些問題。 WireGuard 他們將底層 Zinc API 分離出來,並逐步移植到核心。 11 月,核心開發者們信守了承諾, 同意 將部分程式碼從 Zinc 傳輸到主核心。 例如,在加密 API 中 包括 準備 WireGuard ChaCha20 和 Poly1305 演算法的快速實作。

最後,在2019年12月9日,負責核心網路子系統的David S. Miller Linux, 普里尼亞爾 到網路下一個分支 補丁 實施專案中的 VPN 接口 WireGuard.

今天,即 29 年 2020 月 XNUMX 日,這些變更已提交給 Linus 並包含在內核中。

深入核心 Linux 5.6 啟用 VPN WireGuard

聲稱的福利 WireGuard 優於其他 VPN 解決方案:

  • Простой в использовании。
  • 採用現代密碼學:Noise協議框架、Curve25519、ChaCha20、Poly1305、BLAKE2、SipHash24、HKDF等。
  • 緊湊可讀的代碼,更容易調查漏洞。
  • 高性能。
  • 清晰且詳盡 規格.

所有基本邏輯 WireGuard 程式碼行數不到4000行,而 OpenVPN IPSec 涉及數十萬條線路。

“五 WireGuard 本文採用了加密金鑰路由的概念,即將每個網路介面綁定一個私鑰,並將其用於公鑰綁定。公鑰的交換方式與 SSH 類似,用於建立連線。為了在用戶空間不運行單獨的守護程序的情況下協商金鑰並建立連接,本文使用了 Noise_IK 機制。 噪音協定框架類似於在 SSH 中維護authorized_keys。 資料傳輸是透過封裝在UDP資料包中進行的。 它支援在不斷開連接的情況下更改 VPN 伺服器的 IP 位址(漫遊),並自動重新配置客戶端,- пишет 開放網。

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

Результаты 性能測試 來自官方網站:

頻寬(兆位元/秒)
深入核心 Linux 5.6 啟用 VPN WireGuard

平(毫秒)
深入核心 Linux 5.6 啟用 VPN WireGuard

測試配置:

  • 英特爾酷睿 i7-3820QM 與英特爾酷睿 i7-5200U
  • 千兆位元卡 Intel 82579LM 和 Intel I218LM
  • Linux 4.6.1
  • 組態 WireGuard:適用於 MAC 的 256 位元 ChaCha20,採用 Poly1305 編碼
  • 第一個 IPsec 設定:256 位元 ChaCha20 和用於 MAC 的 Poly1305
  • 第二個 IPsec 設定:AES-256-GCM-128(使用 AES-NI)
  • 組態 OpenVPN等效於 256 位元 AES 加密套件(含 HMAC-SHA2-256,UDP 模式)
  • 性能測量使用 iperf3,顯示 30 分鐘內的平均結果。

理論上,在整合到網路協定棧之後 WireGuard 理論上速度應該更快。但實際上,由於遷移到 Crypto API 的內建加密函數,情況未必如此。可能並非所有函數都已優化到原生版本的效能等級。 WireGuard.

「從我的角度來看, WireGuard 對用戶而言,這絕對是理想之選。所有底層決策都在規格中考慮在內,因此建立典型的 VPN 基礎架構只需幾分鐘。配置出錯幾乎是不可能的。 писали 2018 年關於哈布雷。 — 安裝過程 詳細描述 在官方網站上,我想單獨指出優秀的 OpenWRT 支持。 程式碼庫的易用性和緊湊性是透過消除金鑰分發來實現的。 沒有複雜的證書系統和所有這些企業恐怖;短加密金鑰的分發方式很像 SSH 金鑰。”

項目 WireGuard 自2015年以來一直在開發,已經過審計,並且 形式驗證. 帕德德卡卡 WireGuard 已整合到 NetworkManager 和 systemd 中,核心補丁也包含在基礎發行版中。 Debian Unstable、Mageia、Alpine、Arch、Gentoo、OpenWrt、NixOS、Subgraph 和 ALT。

來源: www.habr.com

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster