Wireguard FPGA
(github.com/chili-chips-ba)- 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.