Hoje Linus mudou o branch net-next com interfaces VPN para si mesmo . Sobre este evento na lista de discussão WireGuard.

A coleta de código para o novo kernel está em andamento. Linux 5.6. WireGuard — uma VPN rápida de última geração que implementa criptografia moderna. Ela foi originalmente desenvolvida como uma alternativa mais simples e conveniente às VPNs existentes. Foi desenvolvida pelo especialista canadense em segurança da informação Jason A. Donenfeld. Em agosto de 2018, WireGuard De Linus Torvalds. Nessa época, começou o trabalho de incorporação da VPN no kernel. LinuxO processo demorou um pouco mais.
"Vejo que Jason fez uma solicitação de pull request para incluir..." WireGuard "No kernel", escreveu Linus em 2 de agosto de 2018. "Posso apenas reiterar meu amor por esta VPN e esperar por uma integração rápida? O código pode não ser perfeito, mas eu o examinei e o comparei com os horrores..." OpenVPN E o IPSec, é uma verdadeira obra de arte."
Apesar da vontade de Linus, a fusão arrastou-se por um ano e meio. O principal problema acabou por estar ligado às implementações proprietárias de funções criptográficas, que foram utilizadas para melhorar o desempenho. Após longas negociações em setembro de 2019, foi Traduzir patches para as funções da API de Criptografia disponíveis no kernel, às quais os desenvolvedores têm acesso. WireGuard Houve algumas reclamações sobre o desempenho e a segurança geral. Mas as funções criptográficas nativas resolveram o problema. WireGuard APIs Zinc de baixo nível separadas e portá-las para o kernel ao longo do tempo. Em novembro, os desenvolvedores do kernel cumpriram sua promessa e transferir parte do código do Zinc para o kernel principal. Por exemplo, na API Crypto preparado em WireGuard Implementações rápidas dos algoritmos ChaCha20 e Poly1305.
Finalmente, em 9 de dezembro de 2019, David S. Miller, responsável pelo subsistema de rede do kernel, Linux, para a próxima filial da rede com a implementação da interface VPN do projeto WireGuard.
E hoje, 29 de janeiro de 2020, as mudanças foram para o Linus para inclusão no kernel.

Benefícios reivindicados WireGuard em comparação com outras soluções VPN:
- Fácil de usar.
- Usa criptografia moderna: estrutura de protocolo de ruído, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etc.
- Código compacto e legível, mais fácil de investigar vulnerabilidades.
- Alto desempenho.
- Claro e elaborado .
Toda a lógica básica WireGuard requer menos de 4000 linhas de código, enquanto OpenVPN E o IPSec envolve centenas de milhares de linhas.
"In WireGuard O conceito de roteamento de chaves de criptografia é utilizado, o qual envolve a vinculação de uma chave privada a cada interface de rede e seu uso para a vinculação de chaves públicas. As chaves públicas são trocadas para estabelecer uma conexão de maneira semelhante ao SSH. Para negociar chaves e estabelecer uma conexão sem executar um daemon separado no espaço do usuário, utiliza-se o mecanismo Noise_IK. semelhante à 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 com reconfiguração automática do cliente, - Rede aberta.
Para criptografia cifra de fluxo e algoritmo de autenticação de mensagem (MAC) , desenhado por Daniel Bernstein (), 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 , também proposto por Daniel Bernstein. O algoritmo usado para hash é ".
Descobertas do site oficial:
Largura de banda (megabit/s)

Ping (ms)

Configuração de teste:
- Intel Core i7-3820QM e Intel Core i7-5200U
- Placas Gigabit Intel 82579LM e Intel I218LM
- Linux 4.6.1
- Configuração WireGuard: ChaCha20 de 256 bits com Poly1305 para MAC
- Primeira configuração IPsec: ChaCha256 de 20 bits com Poly1305 para MAC
- Segunda configuração IPsec: AES-256-GCM-128 (com AES-NI)
- Configuração OpenVPNConjunto de cifras equivalente ao AES de 256 bits com HMAC-SHA2-256, modo UDP
- O desempenho foi medido usando
iperf3, mostra o resultado médio em 30 minutos.
Teoricamente, após a integração na pilha de rede. WireGuard Deveria funcionar ainda mais rápido. Mas, na realidade, isso não será necessariamente o caso devido à transição para as funções criptográficas integradas da API Crypto. É possível que nem todas elas estejam ainda otimizadas para o nível de desempenho da versão nativa. WireGuard.
"Do meu ponto de vista, WireGuard É absolutamente ideal para o usuário. Todas as decisões de baixo nível são levadas em consideração na especificação, portanto, configurar uma infraestrutura VPN típica leva apenas alguns minutos. É praticamente impossível errar na configuração. em Habré em 2018. — Processo de instalação no site oficial, gostaria de destacar separadamente o excelente . Essa facilidade de uso e compactação da base de código foram alcançadas eliminando a distribuição de chaves. Não existe um sistema de certificação complexo e todo esse horror corporativo; chaves de criptografia curtas são distribuídas de forma muito semelhante às chaves SSH.”
Projeto WireGuard Está em desenvolvimento desde 2015, foi auditado e . Apoiar WireGuard Integrado ao NetworkManager e ao systemd, e patches de kernel incluídos nas distribuições base. Debian Instável, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph e ALT.
Fonte: habr.com
