VPN WireGuard รวมอยู่ในเคอร์เนล Linux 5.6

วันนี้ Linus ย้ายสาขา net-next ที่มีอินเทอร์เฟซ VPN ไปไว้ที่ตัวเขาเอง WireGuard. เกี่ยวกับงานนี้ сообщили ในรายชื่อผู้รับจดหมาย WireGuard

VPN WireGuard รวมอยู่ในเคอร์เนล Linux 5.6

การรวบรวมโค้ดสำหรับเคอร์เนล Linux 5.6 ใหม่กำลังดำเนินการอยู่ WireGuard เป็น VPN ยุคใหม่ที่รวดเร็วที่ใช้การเข้ารหัสสมัยใหม่ เดิมทีได้รับการพัฒนาให้เป็นทางเลือกที่ง่ายและสะดวกกว่าสำหรับ VPN ที่มีอยู่ ผู้เขียนคือ Jason A. Donenfeld ผู้เชี่ยวชาญด้านความปลอดภัยข้อมูลชาวแคนาดา ในเดือนสิงหาคม 2018 WireGuard ได้รับคำชม โดย ลินัส ทอร์วัลด์ส ในช่วงเวลานั้น งานเริ่มรวม VPN ไว้ในเคอร์เนล Linux กระบวนการนี้ใช้เวลานานขึ้นเล็กน้อย

“ฉันเห็นว่า Jason ได้ส่งคำขอดึงเพื่อรวม WireGuard ไว้ในเคอร์เนล” Linus เขียนเมื่อวันที่ 2 สิงหาคม 2018 — ฉันสามารถประกาศความรักต่อ VPN นี้อีกครั้งและหวังว่าจะมีการควบรวมกิจการในเร็วๆ นี้ได้หรือไม่? โค้ดอาจไม่สมบูรณ์แบบ แต่ฉันลองดูแล้ว และเมื่อเทียบกับความน่าสะพรึงกลัวของ OpenVPN และ IPSec แล้ว มันเป็นงานศิลปะที่แท้จริง”

แม้ว่า Linus จะปรารถนา แต่การควบรวมกิจการก็ดำเนินไปเป็นเวลาหนึ่งปีครึ่ง ปัญหาหลักกลายเป็นว่าเชื่อมโยงกับการใช้งานฟังก์ชันการเข้ารหัสที่เป็นกรรมสิทธิ์ซึ่งใช้เพื่อปรับปรุงประสิทธิภาพ หลังจากการเจรจากันอย่างยาวนานในเดือนกันยายน 2019 ก็เป็นเช่นนั้น มีการตัดสินใจประนีประนอม แปลแพตช์เป็นฟังก์ชัน Crypto API ที่มีอยู่ในเคอร์เนล ซึ่งนักพัฒนา WireGuard มีข้อร้องเรียนในด้านประสิทธิภาพและความปลอดภัยทั่วไป แต่พวกเขาตัดสินใจแยกฟังก์ชันการเข้ารหัส WireGuard ดั้งเดิมออกเป็น Zinc API ระดับต่ำแยกต่างหาก และในที่สุดก็ย้ายไปยังเคอร์เนล ในเดือนพฤศจิกายน นักพัฒนาเคอร์เนลรักษาสัญญาและ เห็นด้วย ถ่ายโอนส่วนหนึ่งของโค้ดจาก Zinc ไปยังเคอร์เนลหลัก ตัวอย่างเช่น ใน Crypto API รวมอยู่ด้วย การใช้งานอัลกอริธึม ChaCha20 และ Poly1305 ที่รวดเร็วใน WireGuard

ในที่สุด เมื่อวันที่ 9 ธันวาคม 2019 David S. Miller รับผิดชอบระบบย่อยเครือข่ายของเคอร์เนล Linux ได้รับการยอมรับ ไปยังสาขาสุทธิถัดไป แพทช์ ด้วยการใช้งานอินเทอร์เฟซ VPN จากโครงการ WireGuard

และวันนี้วันที่ 29 มกราคม 2020 การเปลี่ยนแปลงไปที่ Linus เพื่อรวมไว้ในเคอร์เนล

VPN WireGuard รวมอยู่ในเคอร์เนล Linux 5.6

ข้อได้เปรียบที่อ้างสิทธิ์ของ WireGuard เหนือโซลูชัน VPN อื่น ๆ:

  • ง่ายต่อการใช้.
  • ใช้การเข้ารหัสที่ทันสมัย: กรอบโปรโตคอลเสียงรบกวน, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ฯลฯ
  • โค้ดขนาดกะทัดรัด อ่านง่าย ตรวจสอบช่องโหว่ได้ง่ายขึ้น
  • ประสิทธิภาพสูง
  • ชัดเจนและซับซ้อน สเปค.

ตรรกะหลักทั้งหมดของ WireGuard ใช้โค้ดน้อยกว่า 4000 บรรทัด ในขณะที่ OpenVPN และ IPSec ต้องใช้โค้ดหลายแสนบรรทัด

“WireGuard ใช้แนวคิดของการกำหนดเส้นทางคีย์เข้ารหัส ซึ่งเกี่ยวข้องกับการแนบคีย์ส่วนตัวกับแต่ละอินเทอร์เฟซเครือข่าย และใช้คีย์สาธารณะเพื่อผูกมัน มีการแลกเปลี่ยนกุญแจสาธารณะเพื่อสร้างการเชื่อมต่อในลักษณะเดียวกันกับ SSH หากต้องการเจรจาคีย์และเชื่อมต่อโดยไม่ต้องรัน daemon แยกต่างหากในพื้นที่ผู้ใช้ กลไก Noise_IK จาก กรอบโปรโตคอลเสียงรบกวนคล้ายกับการรักษา allowance_keys ใน SSH การส่งข้อมูลจะดำเนินการผ่านการห่อหุ้มในแพ็กเก็ต UDP รองรับการเปลี่ยนที่อยู่ IP ของเซิร์ฟเวอร์ VPN (โรมมิ่ง) โดยไม่ต้องตัดการเชื่อมต่อด้วยการกำหนดค่าไคลเอนต์ใหม่อัตโนมัติ - เขียน โอเพนเน็ต

สำหรับการเข้ารหัส เคย รหัสสตรีม ชะชะช่า 20 และอัลกอริทึมการตรวจสอบข้อความ (MAC) Poly1305ออกแบบโดยแดเนียล เบิร์นสไตน์ (แดเนียล เจ. เบิร์นสไตน์), ทันยา ลังเงอ และปีเตอร์ ชวาเบ ChaCha20 และ Poly1305 อยู่ในตำแหน่งอะนาล็อกที่เร็วและปลอดภัยยิ่งขึ้นของ AES-256-CTR และ HMAC การใช้งานซอฟต์แวร์ซึ่งช่วยให้ได้รับเวลาดำเนินการคงที่โดยไม่ต้องใช้การสนับสนุนฮาร์ดแวร์พิเศษ ในการสร้างคีย์ลับที่ใช้ร่วมกัน จะใช้โปรโตคอล Diffie-Hellman เส้นโค้งวงรีในการใช้งาน Curve25519เสนอโดย Daniel Bernstein เช่นกัน อัลกอริธึมที่ใช้สำหรับการแฮชคือ เบลค2s (RFC7693)'

ผลการวิจัย การทดสอบประสิทธิภาพ จากเว็บไซต์อย่างเป็นทางการ:

แบนด์วิธ (เมกะบิต/วินาที)
VPN WireGuard รวมอยู่ในเคอร์เนล Linux 5.6

ปิง (มิลลิวินาที)
VPN WireGuard รวมอยู่ในเคอร์เนล Linux 5.6

การกำหนดค่าการทดสอบ:

  • Intel Core i7-3820QM และ Intel Core i7-5200U
  • การ์ด Gigabit Intel 82579LM และ Intel I218LM
  • Linux 4.6.1
  • การกำหนดค่า WireGuard: ChaCha256 20 บิตพร้อม Poly1305 สำหรับ MAC
  • การกำหนดค่า IPsec แรก: ChaCha256 20 บิตพร้อม Poly1305 สำหรับ MAC
  • การกำหนดค่า IPsec ที่สอง: AES-256-GCM-128 (พร้อม AES-NI)
  • การกำหนดค่า OpenVPN: ชุดการเข้ารหัสเทียบเท่า AES 256 บิตพร้อม 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

ที่มา: will.com

เพิ่มความคิดเห็น