VPN WireGuard foi aceito na branch net-next e está previsto para inclusão no kernel Linux 5.6.

David Miller (David S. Miller), responsável pelo subsistema de rede do núcleo Linux, aceitou incorporou no branch net-next patches com a implementação da interface VPN do projeto WireGuard. No início do próximo ano, as mudanças acumuladas na branch net-next irão formar a base do lançamento do núcleo Linux 5.6.

Tentativas de promover o código do WireGuard no núcleo principal foram feitas nos últimos anos, mas não tiveram sucesso devido à vinculação a implementações próprias de funções criptográficas que eram utilizadas para aumentar o desempenho. Inicialmente, essas funções foram são oferecidos para o núcleo como uma API de baixo nível adicional chamada Zinc, que ao longo do tempo poderia substituir a API Crypto padrão.

Após as negociações na conferência Kernel Recipes, os criadores do WireGuard em setembro tomaram uma decisão de compromisso para adaptar seus patches ao uso da API Crypto existente no núcleo, à qual os desenvolvedores do WireGuard têm preocupações em termos de desempenho e segurança geral. A API Zinc será continuada como um projeto separado.

Em novembro, os desenvolvedores do núcleo seguiram chegaram a um compromisso de resposta e concordaram em transferir parte do código do Zinc para o núcleo principal. Essencialmente, alguns componentes do Zinc serão transferidos para o núcleo, mas não como uma API separada, e sim como parte do subsistema da API Crypto. Por exemplo, em estão incluídas API Crypto já existem implementações rápidas dos algoritmos ChaCha20 e Poly1305 preparadas no WireGuard.

Com a próxima inclusão do WireGuard no núcleo principal, o fundador do projeto anunciou anunciou uma reestruturação do repositório. Para simplificar o desenvolvimento, três repositórios separados, mais adequados para organizar o trabalho com o código do núcleo principal, substituirão o repositório monolítico 'WireGuard.git', que foi projetado para existir isoladamente:

  • wireguard-linux.git — uma árvore completa do núcleo com as mudanças do projeto WireGuard, cuja revisão será feita para inclusão no núcleo e transferida regularmente para as branches net/net-next.
  • wireguard-tools.git — um repositório para utilitários e scripts executáveis no espaço do usuário, como wg e wg-quick. O repositório pode ser utilizado para criar pacotes para distribuições.
  • wireguard-linux-compat.git – repositório com a variante do módulo, fornecido separadamente do núcleo e incluindo a camada compat.h para garantir compatibilidade com núcleos antigos. O desenvolvimento principal ocorrerá no repositório wireguard-linux.git, mas enquanto houver necessidade e demanda dos usuários, uma versão separada dos patches também será mantida em funcionamento.

Lembre-se de que a VPN WireGuard é implementada com base em métodos de criptografia modernos, oferece desempenho muito alto, é fácil de usar, livre de complicações e provou-se eficaz em várias implementações de grande escala que lidam com grandes volumes de tráfego. O projeto está em desenvolvimento desde 2015, passou por auditoria e verificação formal métodos de criptografia. O suporte ao WireGuard já está integrado ao NetworkManager e ao systemd, e os patches para o kernel fazem parte da composição básica das distribuições Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph e ALT.

O WireGuard utiliza a ideia de roteamento baseado em chaves de criptografia, que implica na vinculação de uma chave privada a cada interface de rede e na aplicação para vinculação de chaves públicas. A troca de chaves públicas para estabelecer a conexão é feita de maneira análoga ao SSH. Para a negociação de chaves e conexão sem iniciar um daemon separado no espaço do usuário, é utilizado o mecanismo Noise_IK de Noise Protocol Framework, similar à manutenção de authorized_keys no SSH. A transmissão de dados é realizada através da encapsulação em pacotes UDP. Suporte para mudança de endereço IP do servidor VPN (roaming) sem interrupção da conexão e reconfiguração automática do cliente.

Para criptografia é utilizado o cifra de fluxo ChaCha20 e algoritmo de autenticação de mensagens (MAC) Poly1305, desenvolvidos por Daniel Bernstein (Daniel J. Bernstein), Tanja Lange
(Tanja Lange) e Peter Schwabe (Peter Schwabe). ChaCha20 e Poly1305 são posicionados como alternativas mais rápidas e seguras ao AES-256-CTR e HMAC, cuja implementação de software permite alcançar tempos de execução fixos sem a necessidade de suporte de hardware especial. Para a geração da chave secreta compartilhada, utiliza-se o protocolo de Diffie-Hellman em curvas elípticas na implementação Curve25519, também proposto por Daniel Bernstein. Algoritmo usado para hashing BLAKE2s (RFC7693).

Ao testes desempenho do WireGuard demonstrou uma capacidade de throughput 3,9 vezes maior e uma responsividade 3,8 vezes maior, em comparação com o OpenVPN (AES de 256 bits com HMAC-SHA2-256). Em comparação com o IPsec (ChaCha20+Poly1305 de 256 bits e AES-256-GCM-128), o WireGuard observa uma pequena vantagem em desempenho (13-18%) e uma redução nas latências (21-23%). Os testes foram realizados usando implementações rápidas dos algoritmos de criptografia desenvolvidos pelo projeto — a tradução para a API Crypto padrão do núcleo pode levar à deterioração do desempenho.

VPN WireGuard foi aceito na branch net-next e está previsto para inclusão no kernel Linux 5.6.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster