ในช่วงไม่กี่เดือนที่ผ่านมา Proton VPN ได้พัฒนาโปรโตคอล Proton ซึ่งเป็น โค้ดเบสโปรโตคอล VPN ฝั่งไคลเอนต์ใหม่ สถาปัตยกรรมโค้ดใหม่นี้เขียนขึ้นด้วยภาษา Rust และมีชื่อรหัสเรียกภายในว่า ProTUN แม้ว่าจะฟอร์กโค้ดวิทยาการเข้ารหัสลับมาจากโปรเจกต์ BoringTun(หน้าต่างใหม่) ของ Cloudflare แต่สถาปัตยกรรมที่ออกแบบใหม่ทั้งหมดนี้เป็นของ Proton เอง

ทำไมจึงต้องมีแกนหลัก VPN ใหม่

WireGuard® คือโปรโตคอล VPN ที่ล้ำสมัยและปลอดภัยเทียบเท่า OpenVPN แต่รวดเร็วและมีประสิทธิภาพมากกว่า นี่คือเหตุผลที่เริ่มลบการรองรับ OpenVPN ออกจากแอปอย่างเป็นทางการ เพื่อมุ่งเน้นไปที่ WireGuard แทน

อย่างไรก็ตาม ปัจจุบันแอปยังคงใช้ wireguard-go เวอร์ชันทางการของ WireGuard ซึ่งเป็นเวอร์ชันที่ยอดเยี่ยม มีการออกแบบที่เรียบง่ายและลงตัว ทำให้รวดเร็ว ปลอดภัย และตรวจสอบได้ง่ายกว่าโปรโตคอล VPN ทั่วไป

อย่างไรก็ตาม wireguard-go ทำงานร่วมกับภาษาที่ใช้ในการพัฒนา Proton VPN แบบเนทีฟบนแพลตฟอร์มต่างๆ ที่รองรับได้ไม่ดีนัก (เช่น Kotlin บน Android และ Swift บน iOS) ซึ่งทำให้การพัฒนาล่าช้า การดีบั๊กมีความซับซ้อนขึ้น และส่งผลต่อเสถียรภาพในการทำงาน

โปรโตคอล Proton ช่วยแก้ปัญหาเหล่านี้

โปรโตคอล Proton คือเฟรมเวิร์ก VPN ฝั่งไคลเอนต์ใหม่ที่ใช้ WireGuard เนื่องจากเขียนด้วยภาษา Rust และออกแบบมาให้เป็นแกนหลักที่ใช้ร่วมกันและขยายขีดความสามารถได้ ProTUN จึงสามารถนำไปปรับใช้บนแพลตฟอร์มต่างๆ ได้อย่างสม่ำเสมอ และปรับให้เข้ากับสภาพแวดล้อมเครือข่ายที่แตกต่างกันได้ ซึ่งจะช่วยให้วินิจฉัยปัญหาได้เร็วขึ้น ปรับปรุงเสถียรภาพ และสร้างฟังก์ชันการทำงานขั้นสูงเข้ากับสแต็ก VPN ได้โดยตรง

ที่สำคัญที่สุด โปรโตคอล Proton ช่วยมอบความยืดหยุ่นในการตอบสนองต่อการเซ็นเซอร์และการรบกวนเครือข่ายได้อย่างรวดเร็ว ซึ่งเป็นส่วนที่คาดว่าจะได้รับประโยชน์สูงสุดในระยะยาว

เบื้องหลังการทำงาน

การเข้ารหัสทราฟฟิกด้วยแกนหลัก WireGuard ใหม่

หัวใจสำคัญของโปรเจกต์โปรโตคอล Proton คือ libpvpnclient ซึ่งเป็นซอร์สโค้ดแบบสแตนด์อโลนที่สะอาดตาของโปรโตคอล WireGuard ที่เขียนด้วยภาษา Rust มีหน้าที่ที่เรียบง่ายแต่สำคัญยิ่ง นั่นคือการเข้ารหัสทราฟฟิกอินเทอร์เน็ตและรักษาความปลอดภัยให้กับเชื่อมต่อ

สิ่งที่แตกต่างจาก wireguard-go คือวิธีการสร้าง ในขณะที่ wireguard-go เป็นเพียงไคลเอนต์ WireGuard ทั่วไป แต่ libpvpnclient เป็นเฟรมเวิร์กใหม่ทั้งหมดที่สามารถนำไปใช้พัฒนาคุณสมบัติและฟังก์ชันการทำงานขั้นสูงใหม่ๆ ได้

และแทนที่จะผูกติดกับระบบปฏิบัติการใดระบบปฏิบัติการหนึ่งอย่างเหนียวแน่น libpvpnclient ได้รับการออกแบบให้เป็นแกนหลักที่เป็นอิสระจากแพลตฟอร์มโดยสมบูรณ์ วิธีนี้ช่วยให้นำสถาปัตยกรรมคุณภาพสูงเดียวกันนี้กลับมาใช้ใหม่ได้ทุกที่ ไม่ว่าจะเป็นบนเดสก์ท็อป มือถือ และอุปกรณ์อื่นๆ ซึ่งการแยกส่วนนี้สร้างความแตกต่างอย่างมากเบื้องหลังการทำงาน โดยช่วยให้สามารถ:

  • ทดสอบและดีบั๊กเคสการใช้งานที่ซับซ้อนในสภาพแวดล้อมที่ควบคุมและทำซ้ำได้
  • เปิดตัวการปรับปรุงได้เร็วขึ้นและสม่ำเสมอยิ่งขึ้นในทุกแพลตฟอร์ม
  • ทดลองใช้เทคนิคใหม่ๆ เพื่อต่อต้านการเซ็นเซอร์และการบล็อกทราฟฟิก

สิ่งนี้จะช่วยให้เชื่อมต่อและอัปเดตได้เร็วขึ้น ประสบปัญหาเฉพาะแพลตฟอร์มน้อยลง และได้ใช้ VPN ที่ปรับตัวได้รวดเร็วยิ่งขึ้นเมื่อสภาพเครือข่ายและวิธีการเซ็นเซอร์เปลี่ยนไป ส่วน ProTUN คือชื่อที่ใช้เรียก Wrapper รอบ libpvpnclient ที่ปรับแต่งไลบรารีที่ใช้ Rust ให้เข้ากับแต่ละระบบปฏิบัติการที่รองรับ

การทำงานจะสอดประสานกันกับ LocalAgent ซึ่งเป็นช่องทางควบคุมภายในที่ช่วยให้ดำเนินการยืนยันตัวตนโดยใช้ใบรับรองได้ และเพิ่งได้รับการปรับปรุงให้เรียบง่ายขึ้นรวมถึงเขียนใหม่ด้วยภาษา Rust

แกนหลัก VPN ใหม่นี้พร้อมให้ทดลองใช้งานแล้ววันนี้ในฐานะคุณสมบัติเบต้า (การเข้าถึงก่อนใคร)บนแพลตฟอร์มต่อไปนี้:

ช่วยให้เข้าถึงเซิร์ฟเวอร์ Proton VPN ได้ง่ายขึ้น

นอกจากนี้ยังอยู่ระหว่างการพัฒนาโปรโตคอล Proton ในระยะที่สอง ซึ่งมีชื่อรหัสว่า muon โดยเป็นเลเยอร์เครือข่ายที่ยืดหยุ่นซึ่งช่วยเชื่อมต่อแอปเข้ากับ VPN API ของ Proton ได้อย่างปลอดภัย แม้ในสถานการณ์ที่ Proton API ถูกเซ็นเซอร์ก็ตาม

ก่อนที่ VPN จะสามารถปกป้องทราฟฟิกได้ อันดับแรกจะต้องเชื่อมต่อกับ Proton API ได้อย่างปลอดภัยเสียก่อน ซึ่งเริ่มมีความยากลำบากมากขึ้นเรื่อยๆ ในบางประเทศและเครือข่าย การเชื่อมต่อ API จะถูกบล็อกหรือเฝ้าติดตามที่ระดับ DNS หรือตรวจพบจากการตรวจสอบชื่อเซิร์ฟเวอร์ (เทคนิคที่เรียกว่า SNI snooping)

เพื่อแก้ไขปัญหานี้ จึงได้สร้าง muon ขึ้นมา ซึ่งเป็นเกตเวย์ใหม่ระหว่างแอปและ Proton API และเขียนด้วยภาษา Rust อีกเช่นกันเพื่อความปลอดภัยและประสิทธิภาพ โดย muon จะจัดการคำขอเครือข่ายแรกสุดที่แอปส่งออกไป จากนั้นจึงกำหนดเส้นทางคำขอเหล่านั้นอย่างปลอดภัยไปยังโปรโตคอล WireGuard ของ Proton VPN (ในระยะยาว ฟังก์ชันนี้จะมาแทนที่โซลูชันต่อต้านการเซ็นเซอร์ด้วยเราติ้งสำรอง(หน้าต่างใหม่)ที่มีอยู่)

ในทางปฏิบัติ หมายความว่าทันทีที่เปิดแอป Proton VPN ในประเทศที่มีการเซ็นเซอร์การเข้าถึง การสื่อสารไปยัง Proton API จะได้รับการปกป้องในทันที (แม้กระทั่งก่อนที่การเชื่อมต่อ VPN ในระดับระบบจะเสร็จสมบูรณ์) และในประเทศที่มีข้อจำกัดเข้มงวด ISP จะไม่ทราบเลยว่ามีการเชื่อมต่อกับ Proton API

การปกป้องนี้จะเป็นไปโดยอัตโนมัติและไม่แสดงให้เห็น ซึ่งหมายความว่ามีโอกาสสูงขึ้นที่จะเชื่อมต่อใช้งานได้ในประเทศที่มีการเซ็นเซอร์ แท้จริงแล้ว muon มีประโยชน์ในการเอาชนะการเซ็นเซอร์อย่างมาก จนมีการเตรียมนำไปใช้กับแอป Proton ทั้งหมด (ไม่ใช่แค่ VPN) เพื่อให้การปกป้องจากการเซ็นเซอร์แบบในตัวทั่วทั้งระบบนิเวศตั้งแต่เริ่มต้น โดยจะเริ่มเปิดตัวในเร็วๆ นี้ โปรดติดตามชมต่อไป

รากฐานที่แข็งแกร่งสำหรับก้าวต่อไป

libpvpnclient (ที่มี Wrapper โปรโตคอล Proton) และ muon ร่วมกันสร้างแพลตฟอร์มใหม่ที่ช่วยให้นักพัฒนาซอฟต์แวร์มีความยืดหยุ่นมากขึ้นอย่างมาก ซึ่งช่วยให้สามารถทดลองปรับปรุงเสถียรภาพของการเชื่อมต่อ การใช้งานแบตเตอรี่ และความยืดหยุ่นในการกู้คืนระบบได้อย่างปลอดภัย ตลอดจนเป็นการเตรียมปูทางสำหรับเทคโนโลยีในอนาคต เช่น เทคนิคต่อต้านการเซ็นเซอร์ที่แข็งแกร่งยิ่งขึ้น และวิทยาการเข้ารหัสลับหลังยุคควอนตัม (post-quantum cryptography)

สิ่งนี้ถือเป็นก้าวสำคัญในการทำให้อินเทอร์เน็ตเข้าถึงได้ง่ายขึ้น น่าเชื่อถือ และเป็นส่วนตัวมากขึ้นสำหรับทุกคน และนี่เป็นเพียงจุดเริ่มต้นเท่านั้น โดยรู้สึกตื่นเต้นที่จะได้เห็นว่ารากฐานใหม่นี้จะนำพา Proton VPN ไปในทิศทางใดในปี 2026 และหลังจากนั้น

“WireGuard” เป็น เครื่องหมายการค้า(หน้าต่างใหม่) จดทะเบียนของ Jason A. Donenfeld.