VPN WireGuard adotado pelo OpenBSD

Jason A. Donenfeld, autor de VPN WireGuard, объявил о aceitação incluído no driver principal do kernel OpenBSD "wg" para o protocolo WireGuard, implementação interface de rede específica e alterar kit de ferramentas trabalhando no espaço do usuário. OpenBSD se tornou o segundo sistema operacional depois Linux com suporte WireGuard completo e integrado. Espera-se que o WireGuard seja incluído na versão 6.8 do OpenBSD.

Os patches incluem um driver para o kernel OpenBSD, alterações nos utilitários ifconfig e tcpdump para suportar a funcionalidade do WireGuard, documentação e pequenas alterações para integrar o WireGuard com o resto do sistema. O driver usa sua própria implementação de algoritmos Blake2s, hchacha20 и curva25519, bem como a implementação SipHash já presente no kernel OpenBSD.

A implementação é compatível com todos os clientes oficiais do WireGuard para Linux, Windows, macOS, *BSD, iOS e Android. Os testes de desempenho no laptop de um desenvolvedor (Lenovo x230) mostraram uma taxa de transferência de 750mbit/s. Para efeito de comparação, o isakmpd com configurações básicas do ike psk fornece uma taxa de transferência de 380mbit/s.

Ao desenvolver o driver para o kernel OpenBSD, foram escolhidas algumas soluções arquitetônicas semelhantes ao driver para Linux, mas o driver foi desenvolvido principalmente para OpenBSD, tendo em mente as especificidades deste sistema e levando em consideração a experiência adquirida na criação do driver para Linux. Com o consentimento do autor original do WireGuard, todo o código do novo driver é distribuído sob a licença ISC gratuita.

O driver se integra perfeitamente à pilha de rede do OpenBSD e usa subsistemas existentes, o que torna o código muito compacto (cerca de 3000 linhas de código). Entre as diferenças, a separação dos componentes do driver também é diferente daquela do Linux: as interfaces específicas do OpenBSD são colocadas nos arquivos “if_wg.*”, o código de proteção DoS está em “wg_cookie.*”, e a negociação e criptografia da conexão a lógica está em “wg_noise.*” "

Fonte: opennet.ru

Adicionar um comentário