WireGuard VPN สำหรับ Windows และ WireGuardNT เวอร์ชัน 1.0 เปิดตัวแล้ว

Jason A. Donenfeld ผู้เขียนโปรแกรม WireGuard VPN ได้ปล่อยเวอร์ชันหลักแรกของซอฟต์แวร์ไคลเอ็นต์ WireGuard สำหรับ Windows 1.0 รวมถึงไดรเวอร์ WireGuardNT 1.0 ที่ได้รับการดัดแปลงแล้ว VPN WireGuard สำหรับเคอร์เนลของ Windows 10 และ 11 รองรับสถาปัตยกรรม AMD64, x86 และ ARM64 โค้ดส่วนประกอบเคอร์เนลของ Windows ได้รับอนุญาตภายใต้ GPLv2 และซอฟต์แวร์ไคลเอ็นต์ได้รับอนุญาตภายใต้ใบอนุญาต MIT

เวอร์ชันนี้พัฒนามาจากโค้ดเบสของ WireGuard เวอร์ชันหลักสำหรับเคอร์เนล Linux ซึ่งได้รับการแปลงให้ใช้เอนทิตีเคอร์เนลของ Windows และสแต็กเครือข่าย NDIS เมื่อเทียบกับ wireguard-go ซึ่งทำงานในพื้นที่ผู้ใช้และใช้ส่วนต่อประสานเครือข่าย Wintun แล้ว WireGuardNT ให้ประสิทธิภาพที่ดีขึ้นอย่างมากโดยการกำจัดปัญหาการสลับบริบทและการคัดลอกเนื้อหาแพ็กเก็ตจากเคอร์เนลไปยังพื้นที่ผู้ใช้ เช่นเดียวกับเวอร์ชันสำหรับ Linux, OpenBSD และ FreeBSD ตรรกะการประมวลผลโปรโตคอลทั้งหมดใน WireGuardNT ทำงานโดยตรงที่ระดับสแต็กเครือข่าย

เวอร์ชัน 1.0 ถือเป็นจุดสำคัญที่บ่งบอกถึงการแก้ไขปัญหาหลายประการและการบรรลุเป้าหมายที่ตั้งไว้ เช่น การใช้ฟังก์ชัน NdisWdfGetAdapterContextFromAdapterHandle() แทนการจัดเก็บสถานะไดรเวอร์ในฟิลด์ Reserved ซึ่งมีความปลอดภัยน้อยกว่า และการใช้ค่าออฟเซ็ตที่ไม่ได้รับการบันทึกไว้ การติดตามขนาด MTU (Maximum Transmission Unit) อย่างถูกต้องและรวดเร็วผ่านการดักจับการเรียกใช้ระบบ และการใช้มาตรฐาน C23 ในโค้ด

ขอย้ำอีกครั้งว่า WireGuard VPN ใช้เทคนิคการเข้ารหัสที่ทันสมัย ​​ให้ประสิทธิภาพที่ยอดเยี่ยม ใช้งานง่าย ปราศจากความยุ่งยาก และได้รับการพิสูจน์แล้วในการใช้งานขนาดใหญ่ที่รองรับปริมาณการรับส่งข้อมูลจำนวนมาก โครงการนี้ได้รับการพัฒนามาตั้งแต่ปี 2015 และผ่านการตรวจสอบและรับรองวิธีการเข้ารหัสอย่างเป็นทางการแล้ว WireGuard ใช้แนวคิดการกำหนดเส้นทางการเข้ารหัสแบบใช้คีย์ ซึ่งเกี่ยวข้องกับการผูกคีย์ส่วนตัวเข้ากับอินเทอร์เฟซเครือข่ายแต่ละตัว และใช้คีย์สาธารณะสำหรับการผูกคีย์

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

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

ที่มา: opennet.ru