1 điểm bởi GN⁺ 2025-10-13 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Dự án mã nguồn mở này triển khai Wireguard VPN bằng phần cứng bằng cách tận dụng FPGA Artix7 giá rẻ và chuỗi công cụ mã nguồn mở
  • Điểm nổi bật là cung cấp tốc độ gần mức đường truyền thực (wire-speed) và chi phí thấp so với cách triển khai phần mềm truyền thống
  • Tất cả tệp thiết kế đều được công khai hoàn toàn, cho phép kiểm tra kỹ lưỡng backdoor hoặc lỗ hổng bảo mật
  • Các thuật toán mã hóa hiện đại của Wireguard như ChaCha20-Poly1305, Curve25519, BLAKE2 được triển khai theo mô hình kết hợp phần cứng/phần mềm
  • Dự án hiện vẫn ở giai đoạn "Proof of Concept" ban đầu và dự kiến sẽ mở rộng tính năng cũng như tối ưu hóa trong tương lai

Giới thiệu và tầm quan trọng

Dự án Wireguard FPGA mã nguồn mở này triển khai Wireguard VPN bằng phần cứng trên FPGA Artix7 chi phí thấp, giúp mọi người có thể sử dụng VPN — một thành phần cốt lõi của hạ tầng bảo mật mạng — với chi phí thấp và tốc độ tối đa. Trong khi các giải pháp phần cứng hiện có đòi hỏi FPGA thương mại đắt tiền và chuỗi công cụ đóng, dự án này khác biệt rõ rệt nhờ thiết kế dựa trên mã nguồn mở, sử dụng công cụ mở và công khai toàn bộ mã nguồn, mang lại ưu thế lớn về tính minh bạch và khả năng tiếp cận rộng rãi.

Bối cảnh và mục tiêu của dự án

  • Các giải pháp hiện có như OpenVPN, IPSec có những giới hạn về hiệu năng và khả năng quản lý, vì vậy Wireguard đang nổi lên như một lựa chọn thay thế hiện đại và an toàn
  • Các bản triển khai Wireguard bằng phần cứng hiện nay phụ thuộc vào thiết bị đắt tiền và IP đóng, còn hiệu năng của bản triển khai phần mềm không đạt tới tốc độ đường truyền mạng
  • Dự án này xây dựng Wireguard bằng SystemVerilog để bất kỳ ai cũng có thể sử dụng trong môi trường FPGA mã nguồn mở, giá rẻ ❨bao gồm mục đích kiểm chứng và giáo dục❩

So sánh với các dự án liên quan

  • Dự án Blackwire (phần cứng Wireguard cấp 100Gbps) sử dụng Alveo U50 đắt tiền và chuỗi công cụ Vivado đóng, nên khó tiếp cận
  • Nhóm thực hiện dự án này trước đây từng phát triển các mô-đun cốt lõi như thuật toán Balanced Binary Tree Search, nhưng cũng đã xác nhận những giới hạn như thất bại trong thương mại hóa và vấn đề quyền sở hữu
  • Dự án Wireguard FPGA nhấn mạnh việc hỗ trợ HDL tiêu chuẩn công nghiệp (SystemVerilog) và công cụ mã nguồn mở, phần cứng phổ thông giá rẻ, cùng chính sách mã nguồn mở minh bạch

Kiến trúc phần cứng và phần mềm

Phần cứng (HW)

  • Control plane: CPU mềm kết nối với boot ROM và bộ điều khiển DDR3 SDRAM đảm nhiệm quản lý giao thức Wireguard, định tuyến, quản lý phiên/khóa, v.v.
  • Data plane: được triển khai bằng RTL, xử lý mã hóa/giải mã gói tin, định tuyến và truyền dữ liệu thực tế của giao thức Wireguard ở mức wire-speed
  • Các thành phần chính
    • PHY Controller, 1G MAC, Rx/Tx FIFO, Header Parser, Packet {Dis/As}sembler, mô-đun mã hóa/xác thực ChaCha20-Poly1305, engine IP Lookup, v.v.
    • Mọi mô-đun mã hóa và xác thực đều được triển khai dựa trên chuẩn RFC7539

Phần mềm (SW)

  • Wireguard Agent: đảm nhiệm bắt tay giao thức, duy trì phiên, quản lý bảng khóa/định tuyến
  • Các mô-đun liên quan đến mật mã
    • Curve25519: trao đổi khóa ECDH
    • ChaCha20-Poly1305, XChaCha20-Poly1305: mã hóa/xác thực khóa đối xứng theo kiểu AEAD và bảo vệ nonce
    • BLAKE2s: xác thực MAC và hàm băm
    • Ngoài ra còn có HKDF, Timer, SipHash, CLI, driver HAL/CSR, v.v.

Kế hoạch phát triển và triển khai

Các giai đoạn của dự án

  • Giai đoạn 1: khởi chạy bo mạch và xây dựng bản thiết kế tổng thể, làm quen với nền tảng HW/SW, phân tích các bản triển khai hiện có, phân tách thiết kế/tài liệu hóa
  • Giai đoạn 2: triển khai cơ bản và tích hợp đường dữ liệu phần cứng cho kênh Wireguard tĩnh, phần cứng hóa các thuật toán mã hóa (đặc biệt là ChaCha20-Poly1305)
  • Giai đoạn 3: phát triển phần mềm quản lý trong bộ xử lý RISC-V mềm và tích hợp HW/SW, đảm nhiệm các tác vụ có overhead thấp như quản lý phiên/khóa bằng phần mềm
  • Giai đoạn 4: triển khai toàn bộ workflow từ khởi tạo, duy trì đến kết thúc an toàn của VPN tunnel
  • Giai đoạn 5: kiểm thử hiệu năng, tối ưu hóa, mở rộng hỗ trợ cho các chuỗi công cụ mã nguồn mở khác (OpenXC7), duy trì liên tục tài liệu cộng đồng/CI
  • Giai đoạn 6 (tùy chọn) : phát triển phần mềm điều khiển luồng dữ liệu của VPN tunnel, triển khai truyền và quản lý dữ liệu ổn định

Kiến trúc HW/SW phối hợp

  • Vì nút WireGuard đóng vai trò tương tự bộ định tuyến IP, nên việc phân tách hiệu quả theo cấu trúc 2 lớp (control/data plane) là phù hợp
  • Phân biệt lưu lượng điều khiển (thông điệp giao thức) và lưu lượng dữ liệu (gói tin mã hóa/gói người dùng thông thường), từ đó thiết kế đường đi và cấu trúc xử lý phù hợp cho từng loại

Hệ thống mô phỏng và kiểm chứng

  • Có thể chọn CPU dựa trên lõi mềm ảo (VProc) hoặc RTL (như RISC-V), phân tích gói tin theo từng bước dựa trên các kịch bản lưu lượng Wireguard thực tế
  • Co-simulation HAL: dùng peakrdl để tự động tạo thanh ghi điều khiển/trạng thái giữa HW/SW và cung cấp API, cho phép kiểm thử tích hợp SW/HW nhanh chóng trong vận hành thực tế

Mã nguồn mở và tính minh bạch

  • Toàn bộ các phần triển khai như mạch số (gateware), phần mềm nhúng, build, bitstream, v.v. đều được công khai hoàn toàn theo giấy phép BSD-3-Clause
  • Nhấn mạnh cấu trúc mở để cộng đồng có thể trực tiếp kiểm tra các vấn đề như backdoor, lỗ hổng và quyền sở hữu pháp lý

Thông tin khác

  • Có thể xem luồng phát triển, mô tả chi tiết theo từng phần, các nguồn tham khảo chính và mô-đun thuê ngoài trong file README và các thư mục con (1.hw, 2.sw, 3.build, v.v.)
  • Dự án được tài trợ bởi NLnet Foundation

Kết luận

  • Dự án này hướng tới tiêu chuẩn mã nguồn mở cho việc triển khai phần cứng Wireguard VPN hiệu năng cao, với khác biệt là chi phí thấp, tính minh bạch và khả năng triển khai nhanh
  • Dù vẫn đang ở giai đoạn phát triển ban đầu, dự án được kỳ vọng sẽ đóng vai trò quan trọng trong hạ tầng mạng mở tương lai ở cả khía cạnh bảo mật lẫn khả năng tiếp cận

Chưa có bình luận nào.

Chưa có bình luận nào.