1 pontos por GN⁺ 2025-10-13 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Este projeto open source implementa o Wireguard VPN em hardware usando um FPGA Artix7 de baixo custo e uma toolchain open source
  • Em comparação com a abordagem tradicional em software, ele se destaca por oferecer velocidade próxima à da linha (wire-speed) e baixo custo
  • Todos os arquivos de projeto são totalmente abertos, permitindo inspeção minuciosa de backdoors ou falhas de segurança
  • Os algoritmos criptográficos modernos do Wireguard, como ChaCha20-Poly1305, Curve25519, BLAKE2, são implementados em uma combinação de hardware e software
  • O projeto ainda está em estágio inicial de "Proof of Concept" e há planos para expansão de funcionalidades e otimização no futuro

Introdução e importância

Este projeto open source de Wireguard FPGA implementa o Wireguard VPN em hardware sobre um FPGA Artix7 acessível, permitindo que qualquer pessoa use um dos componentes centrais da infraestrutura de segurança de rede, a VPN, com baixo custo e na maior velocidade possível. Enquanto soluções de hardware tradicionais exigiam FPGAs comerciais caros e toolchains fechadas, este projeto se diferencia por usar design e ferramentas open source, além de disponibilizar todo o código-fonte, trazendo grandes vantagens em transparência e democratização do acesso.

Contexto e objetivos do projeto

  • Soluções existentes como OpenVPN e IPSec têm limitações em desempenho e gerenciamento, e por isso o Wireguard vem ganhando espaço como alternativa moderna e segura
  • Implementações atuais de Wireguard em hardware dependem de equipamentos caros e IP fechado, enquanto o desempenho das implementações em software não alcança a velocidade da linha de rede
  • Este projeto foi criado para que qualquer pessoa possa usar um Wireguard desenvolvido em SystemVerilog em um ambiente open source com FPGA de baixo custo, inclusive para fins de validação e educação

Comparação com projetos relacionados

  • O projeto Blackwire (hardware Wireguard na faixa de 100Gbps) usa o caro Alveo U50 e a toolchain fechada Vivado, o que reduz sua acessibilidade
  • A equipe deste projeto já desenvolveu no passado módulos centrais, como o algoritmo Balanced Binary Tree Search, mas limitações como fracasso na comercialização e questões de propriedade ficaram evidentes
  • O projeto Wireguard FPGA enfatiza o uso de HDL padrão da indústria (SystemVerilog), suporte a ferramentas open source, hardware popular e barato, e uma política open source transparente

Arquitetura de hardware e software

Hardware (HW)

  • Plano de controle: uma CPU em software conectada a boot ROM e a um controlador DDR3 SDRAM cuida do gerenciamento do protocolo Wireguard, roteamento e gestão de sessões/chaves
  • Plano de dados: implementado em RTL, processa em wire-speed a criptografia/descriptografia de pacotes, o roteamento e a transmissão efetiva de dados do protocolo Wireguard
  • Componentes principais
    • PHY Controller, 1G MAC, Rx/Tx FIFO, Header Parser, Packet {Dis/As}sembler, módulos de criptografia/autenticação ChaCha20-Poly1305, motor de IP Lookup etc.
    • Todos os módulos de criptografia e autenticação são implementados com base no padrão RFC7539

Software (SW)

  • Wireguard Agent: responsável pelo handshake do protocolo, manutenção de sessão e gerenciamento de tabelas de chaves/roteamento
  • Módulos relacionados à criptografia
    • Curve25519: troca de chaves ECDH
    • ChaCha20-Poly1305, XChaCha20-Poly1305: criptografia/autenticação simétrica no modelo AEAD e proteção de nonce
    • BLAKE2s: autenticação MAC e hash
    • Além disso, inclui HKDF, Timer, SipHash, CLI, drivers HAL/CSR etc.

Plano de desenvolvimento e execução

Etapas do projeto

  • Etapa 1: colocar a placa em funcionamento e definir o blueprint do projeto, familiarizar-se com a plataforma HW/SW, analisar implementações existentes, dividir e documentar o design
  • Etapa 2: implementar e integrar o caminho básico de dados em hardware para canais Wireguard estáticos, além de levar algoritmos criptográficos (especialmente ChaCha20-Poly1305) para HW
  • Etapa 3: desenvolver o software de gerenciamento dentro de um processador RISC-V em software e integrá-lo ao HW/SW, deixando tarefas como gestão de sessão/chaves a cargo de software de baixo overhead
  • Etapa 4: implementar o fluxo completo do túnel VPN, da inicialização à manutenção e ao encerramento seguro
  • Etapa 5: testes de desempenho, otimização, ampliação do suporte a outras toolchains open source (OpenXC7) e manutenção contínua de documentação comunitária/CI
  • Etapa 6 (opcional): desenvolver o software de controle do fluxo de dados do túnel VPN para viabilizar transmissão e gerenciamento estáveis

Arquitetura conjunta HW/SW (colaboração)

  • Como um nó WireGuard exerce papel semelhante ao de um roteador IP, a divisão em estrutura de 2 camadas (planos de controle/dados) é eficaz
  • Há separação entre tráfego de controle (mensagens de protocolo) e tráfego de dados (pacotes criptografados/pacotes normais de usuário), com caminhos e estruturas de processamento adequados para cada um

Simulação e sistema de validação

  • É possível escolher CPUs baseadas em software virtual (VProc) e softcore RTL (como RISC-V), com análise de pacotes passo a passo baseada em cenários reais de tráfego Wireguard
  • Co-simulation HAL: com peakrdl, gera automaticamente registradores de controle/estado entre HW/SW e fornece APIs, permitindo testar rapidamente a integração SW/HW em operação real

Open source e transparência

  • Circuitos (gateware), software embarcado, build, bitstream e toda a área de implementação são totalmente abertos sob licença BSD-3-Clause
  • A estrutura aberta enfatiza que a própria comunidade pode inspecionar diretamente problemas como backdoors, vulnerabilidades e propriedade legal

Outras informações

  • O fluxo de desenvolvimento, explicações detalhadas por parte, principais fontes de referência e módulos terceirizados podem ser consultados no arquivo README e nos subdiretórios (1.hw, 2.sw, 3.build etc.)
  • O projeto é financiado pela NLnet Foundation

Conclusão

  • Este projeto busca se tornar o padrão open source para implementações em hardware de Wireguard VPN de alto desempenho, diferenciando-se por baixo custo, transparência e rápida adoção
  • Embora ainda esteja em estágio inicial de desenvolvimento, espera-se que venha a cumprir um papel importante na futura infraestrutura aberta de redes, tanto em segurança quanto em acessibilidade

Ainda não há comentários.

Ainda não há comentários.