VPN WireGuard foi aceito no ramo net-next e está programado para inclusão no kernel Linux 5.6

David Miller (David S. Miller), responsável pelo subsistema de rede do kernel Linux, aceitou o para a próxima filial da rede remendos com a implementação da interface VPN do projeto WireGuard. No início do próximo ano, as mudanças acumuladas no ramo net-next formarão a base para o lançamento do kernel Linux 5.6.

Tentativas de inserir o código WireGuard no kernel principal foram feitas nos últimos anos, mas não tiveram sucesso devido a estarem vinculadas a implementações proprietárias de funções criptográficas que foram usadas para melhorar o desempenho. Inicialmente, essas funções eram proposto para o kernel como uma API Zinc adicional de baixo nível, que poderia eventualmente substituir a API Crypto padrão.

Após discussões na conferência Kernel Recipes, os criadores do WireGuard em setembro tomou uma decisão de compromisso transfira seus patches para usar a API Crypto disponível no núcleo, à qual os desenvolvedores do WireGuard têm reclamações na área de desempenho e segurança geral. Foi decidido continuar desenvolvendo a API Zinc, mas como um projeto separado.

Em novembro, os desenvolvedores do kernel vamos lá em resposta a um compromisso e concordou em transferir parte do código do Zinc para o kernel principal. Essencialmente, alguns componentes do Zinc serão movidos para o núcleo, mas não como uma API separada, mas como parte do subsistema Crypto API. Por exemplo, a Crypto API já incluído implementações rápidas dos algoritmos ChaCha20 e Poly1305 preparados no WireGuard.

Em conexão com a próxima entrega do WireGuard no núcleo principal, o fundador do projeto объявил sobre a reestruturação do repositório. Para simplificar o desenvolvimento, o repositório monolítico “WireGuard.git”, que foi projetado para existir isoladamente, será substituído por três repositórios separados, mais adequados para organizar o trabalho com código no kernel principal:

  • wireguard-linux.git - uma árvore de kernel completa com alterações do projeto Wireguard, cujos patches serão revisados ​​para inclusão no kernel e transferidos regularmente para os ramos net/net-next.
  • wireguard-tools.git - um repositório para utilitários e scripts executados no espaço do usuário, como wg e wg-quick. O repositório pode ser usado para criar pacotes para distribuições.
  • wireguard-linux-compat.git - um repositório com uma variante do módulo, fornecido separadamente do kernel e incluindo a camada compat.h para garantir compatibilidade com kernels mais antigos. O desenvolvimento principal será realizado no repositório wireguard-linux.git, mas enquanto houver oportunidade e necessidade entre os usuários, uma versão separada dos patches também será suportada em formato funcional.

Lembramos que o VPN WireGuard é implementado com base em métodos modernos de criptografia, oferece desempenho muito alto, é fácil de usar, livre de complicações e provou seu valor em uma série de grandes implantações que processam grandes volumes de tráfego. O projeto vem se desenvolvendo desde 2015, foi auditado e verificação formal métodos de criptografia usados. O suporte WireGuard já está integrado ao NetworkManager e ao systemd, e os patches do kernel estão incluídos nas distribuições básicas Debian instável, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgrafo и ALT.

WireGuard usa o conceito de roteamento de chave de criptografia, que envolve anexar uma chave privada a cada interface de rede e usá-la para vincular as chaves públicas. As chaves públicas são trocadas para estabelecer uma conexão de forma semelhante ao SSH. Para negociar chaves e conectar-se sem executar um daemon separado no espaço do usuário, o mecanismo Noise_IK do Estrutura do Protocolo de Ruídosemelhante à manutenção de chaves_autorizadas em SSH. A transmissão de dados é realizada através de encapsulamento em pacotes UDP. Suporta alteração do endereço IP do servidor VPN (roaming) sem desconectar a conexão e reconfigurar automaticamente o cliente.

Para criptografia usado cifra de fluxo ChaCha20 e algoritmo de autenticação de mensagem (MAC) Poly1305, desenhado por Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) e Peter Schwabe. ChaCha20 e Poly1305 são posicionados como análogos mais rápidos e seguros de AES-256-CTR e HMAC, cuja implementação de software permite atingir um tempo de execução fixo sem o uso de suporte de hardware especial. Para gerar uma chave secreta compartilhada, o protocolo Diffie-Hellman de curva elíptica é usado na implementação Curve25519, também proposto por Daniel Bernstein. O algoritmo usado para hash é BLAKE2s (RFC7693).

em testando Desempenho O WireGuard demonstrou rendimento 3.9 vezes maior e capacidade de resposta 3.8 vezes maior em comparação ao OpenVPN (AES de 256 bits com HMAC-SHA2-256). Comparado ao IPsec (ChaCha256+Poly20 de 1305 bits e AES-256-GCM-128), o WireGuard mostra uma ligeira melhoria de desempenho (13-18%) e menor latência (21-23%). Os testes foram realizados usando implementações rápidas de algoritmos de criptografia desenvolvidos pelo projeto - a transferência para a Crypto API padrão do kernel pode levar a um pior desempenho.

VPN WireGuard foi aceito no ramo net-next e está programado para inclusão no kernel Linux 5.6

Fonte: opennet.ru

Adicionar um comentário