Trong vài tháng qua, Proton VPN đã nghiên cứu phát triển Proton protocols, một cơ sở mã giao thức VPN phía máy khách mới. Được gọi nội bộ với mật danh ProTUN, kiến trúc mã mới này được viết bằng Rust. Dù mã mật mã học được rẽ nhánh từ dự án BoringTun(cửa sổ mới) của Cloudflare, kiến trúc được thiết kế lại hoàn toàn này vẫn là của Proton.

Tại sao cần một lõi VPN mới

WireGuard® là giao thức VPN hiện đại có độ bảo mật tương đương OpenVPN nhưng nhanh và mạnh mẽ hơn. Đó là lý do việc hỗ trợ OpenVPN bắt đầu được loại bỏ khỏi các ứng dụng chính thức, để tập trung vào WireGuard.

Tuy nhiên, các ứng dụng hiện đang sử dụng bản triển khai wireguard-go chính thức của WireGuard. Đây là một bản triển khai tuyệt vời, sở hữu thiết kế tối giản thanh lịch giúp hoạt động nhanh, an toàn và dễ kiểm tra hơn các giao thức VPN truyền thống.

Tuy nhiên, wireguard-go không tích hợp tốt với các ngôn ngữ gốc được dùng để phát triển Proton VPN trên nhiều nền tảng được hỗ trợ (như Kotlin trên Android và Swift trên iOS). Điều này làm chậm quá trình phát triển, gây khó khăn cho việc gỡ lỗi và tạo ra những thách thức về độ ổn định.

Proton protocols sẽ giải quyết những vấn đề này.

Proton protocols là khung VPN phía máy khách mới dựa trên WireGuard. Vì được viết bằng Rust và được thiết kế dưới dạng lõi chung, có thể mở rộng, ProTUN có thể được triển khai nhất quán trên các nền tảng và thích ứng với các môi trường mạng khác nhau. Điều này giúp chẩn đoán sự cố nhanh hơn, cải thiện độ ổn định và xây dựng các tính năng nâng cao trực tiếp vào ngăn xếp VPN.

Quan trọng nhất, Proton protocols mang lại sự linh hoạt để phản ứng nhanh chóng với tình trạng kiểm duyệt và can thiệp mạng, đây là khía cạnh được kỳ vọng sẽ đem lại lợi ích lâu dài lớn nhất.

Bên trong hệ thống

Mã hóa lưu lượng bằng lõi WireGuard mới

Trọng tâm của dự án Proton protocols là libpvpnclient, một bản triển khai độc lập, tinh gọn của giao thức WireGuard được viết bằng Rust. Nhiệm vụ của thư viện này rất đơn giản nhưng cực kỳ quan trọng: mã hóa lưu lượng internet và giữ an toàn cho kết nối.

Điểm khác biệt so với wireguard-go là cách thức xây dựng. Trong khi wireguard-go là một máy khách WireGuard đơn giản, libpvpnclient là một khung hoàn toàn mới để phát triển các tính năng và chức năng nâng cao mới.

Và thay vì liên kết chặt chẽ với một hệ điều hành cụ thể, libpvpnclient được thiết kế như một lõi thuần túy, độc lập với nền tảng. Điều này cho phép tái sử dụng cùng một bản triển khai chất lượng cao ở mọi nơi — trên máy tính để bàn, thiết bị di động và hơn thế nữa. Sự tách biệt này tạo ra sự khác biệt lớn ở phía sau hệ thống, giúp:

  • Thử nghiệm và gỡ lỗi các trường hợp biên phức tạp trong môi trường có thể kiểm soát và lặp lại
  • Triển khai các cải tiến nhanh hơn và nhất quán hơn trên các nền tảng
  • Thử nghiệm các kỹ thuật mới để chống kiểm duyệt và chặn lưu lượng

Điều này giúp cập nhật nhanh hơn, ít gặp sự cố đặc thù của nền tảng hơn và VPN thích ứng nhanh hơn khi các điều kiện mạng và phương pháp kiểm duyệt thay đổi. Bản thân ProTUN là tên gọi của lớp vỏ bọc xung quanh libpvpnclient để điều chỉnh thư viện viết bằng Rust này cho phù hợp với từng hệ điều hành được hỗ trợ.

Thành phần này hoạt động song song với LocalAgent. Đây là kênh điều khiển nội bộ cho phép triển khai xác thực dựa trên chứng chỉ, đồng thời cũng vừa được tinh giản và viết lại bằng Rust.

Lõi VPN mới này hiện đã có sẵn để chạy thử nghiệm dưới dạng tính năng beta (truy cập sớm) trên các nền tảng sau:

Giúp kết nối với máy chủ Proton VPN dễ dàng hơn

Giai đoạn hai của Proton protocols cũng đang được phát triển. Với mật danh là muon, đây là một lớp mạng linh hoạt giúp kết nối an toàn các ứng dụng với API VPN của Proton, ngay cả trong những trường hợp chính API của Proton bị kiểm duyệt.

Trước khi VPN có thể bảo vệ lưu lượng, trước tiên hệ thống phải kết nối an toàn với API của Proton. Và điều đó đang trở nên ngày càng khó khăn. Ở một số quốc gia và mạng, các kết nối API bị chặn hoặc giám sát ở cấp độ DNS hoặc bị phát hiện bằng cách kiểm tra tên máy chủ (kỹ thuật này gọi là SNI snooping).

Để giải quyết vấn đề này, muon đang được xây dựng như một cổng kết nối mới giữa các ứng dụng và API của Proton. Được viết bằng Rust để đảm bảo an toàn và hiệu suất, muon xử lý các yêu cầu mạng đầu tiên của ứng dụng, sau đó có thể định tuyến chúng một cách an toàn đến giao thức WireGuard của Proton VPN (về lâu dài, tính năng này sẽ thay thế giải pháp chống kiểm duyệt định tuyến thay thế(cửa sổ mới) hiện tại).

Về mặt thực tế, điều này có nghĩa là ngay từ thời điểm mở ứng dụng Proton VPN ở một quốc gia bị kiểm duyệt quyền truy cập, hoạt động giao tiếp với API của Proton đã được bảo vệ (ngay cả trước khi kết nối VPN cấp hệ thống được thiết lập hoàn chỉnh). Và ở các quốc gia có tính thắt chặt, ISP thậm chí sẽ không biết về việc kết nối với các API của Proton.

Sự bảo vệ này sẽ diễn ra tự động và vô hình, đồng thời giúp kết nối dễ hoạt động hơn ở các quốc gia bị kiểm duyệt. Trên thực tế, muon rất hữu ích trong việc vượt qua kiểm duyệt, đến mức tính năng này sẽ được áp dụng trên tất cả các ứng dụng Proton (không chỉ VPN), mang lại khả năng chống kiểm duyệt tích hợp sẵn trong toàn bộ hệ sinh thái ngay từ đầu. Tính năng này sẽ sớm được triển khai.

Nền tảng vững chắc cho những bước tiếp theo

libpvpnclient (với lớp vỏ bọc Proton protocols) và muon cùng nhau tạo thành một nền tảng mới mang lại sự linh hoạt hơn nhiều cho các kỹ sư. Điều này cho phép thử nghiệm an toàn các cải tiến về độ ổn định kết nối, mức sử dụng pin và khả năng phục hồi, đồng thời chuẩn bị nền tảng cho các công nghệ trong tương lai, như các kỹ thuật chống kiểm duyệt mạnh mẽ hơn và mật mã học hậu lượng tử.

Đây được xem là một bước tiến lớn trong việc giúp internet trở nên dễ truy cập, đáng tin cậy và riêng tư hơn cho tất cả mọi người. Và đây chỉ là sự khởi đầu. Thật thú vị khi chờ xem nền tảng mới này sẽ đưa Proton VPN đi xa đến đâu trong năm 2026 và tương lai.

“WireGuard” là nhãn hiệu đã đăng ký(cửa sổ mới) của Jason A. Donenfeld.