VPN WireGuard foi aceptado na rama net-next e está programado para a súa inclusión no núcleo Linux 5.6

David Miller (David S. Miller), responsable do subsistema de rede do núcleo Linux, aceptada á rama net-next parches coa implementación da interface VPN do proxecto WireGuard. A principios do próximo ano, os cambios acumulados na rama net-next constituirán a base para o lanzamento do núcleo de Linux 5.6.

Durante os últimos anos realizáronse intentos de introducir o código WireGuard no núcleo principal, pero non tiveron éxito debido a que estaban vinculados a implementacións propietarias de funcións criptográficas que se utilizaron para mellorar o rendemento. Inicialmente, estas funcións eran proposto para o núcleo como unha API adicional de zinc de baixo nivel, que eventualmente podería substituír á API Crypto estándar.

Despois das discusións na conferencia Kernel Recipes, os creadores de WireGuard en setembro tomou unha decisión de compromiso transfire os teus parches para usar a API Crypto dispoñible no núcleo, á que os desenvolvedores de WireGuard teñen queixas no ámbito do rendemento e da seguridade xeral. Decidiuse seguir desenvolvendo a API Zinc, pero como un proxecto separado.

En novembro, os desenvolvedores do núcleo foi en resposta a un compromiso e acordou transferir parte do código de Zinc ao núcleo principal. Esencialmente, algúns compoñentes de Zinc moveranse ao núcleo, pero non como unha API separada, senón como parte do subsistema Crypto API. Por exemplo, a API Crypto xa incluído implementacións rápidas dos algoritmos ChaCha20 e Poly1305 preparados en WireGuard.

En conexión coa próxima entrega de WireGuard no núcleo principal, o fundador do proxecto anunciou sobre a reestruturación do repositorio. Para simplificar o desenvolvemento, o repositorio monolítico "WireGuard.git", que foi deseñado para existir illado, será substituído por tres repositorios separados, máis axeitados para organizar o traballo co código no núcleo principal:

  • wireguard-linux.git - unha árbore do núcleo completo con cambios do proxecto Wireguard, os parches dos cales se revisarán para a súa inclusión no núcleo e se transferirán regularmente ás ramas net/net-next.
  • wireguard-tools.git - un repositorio de utilidades e scripts executados no espazo do usuario, como wg e wg-quick. O repositorio pódese usar para crear paquetes para distribucións.
  • wireguard-linux-compat.git - un repositorio cunha variante do módulo, subministrado por separado do núcleo e que inclúe a capa compat.h para garantir a compatibilidade con núcleos máis antigos. O desenvolvemento principal levarase a cabo no repositorio wireguard-linux.git, pero sempre que exista unha oportunidade e necesidade entre os usuarios, tamén se admitirá unha versión separada dos parches en forma de traballo.

Lembrámosche que VPN WireGuard está implementado sobre a base de métodos de cifrado modernos, ofrece un rendemento moi alto, é fácil de usar, libre de complicacións e demostrou a súa valía nunha serie de grandes despregamentos que procesan grandes volumes de tráfico. O proxecto desenvólvese dende 2015, foi auditado e verificación formal métodos de cifrado utilizados. O soporte de WireGuard xa está integrado en NetworkManager e systemd, e os parches do núcleo están incluídos nas distribucións base Debian Inestable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgrafo и ALT.

WireGuard usa o concepto de enrutamento de claves de cifrado, que implica anexar unha clave privada a cada interface de rede e utilizala para vincular as claves públicas. As chaves públicas intercámbianse para establecer unha conexión dun xeito similar ao SSH. Para negociar claves e conectarse sen executar un daemon separado no espazo do usuario, o mecanismo Noise_IK de Marco do protocolo de ruídosimilar a manter as claves_autorizadas en SSH. A transmisión de datos realízase mediante o encapsulamento en paquetes UDP. Admite cambiar o enderezo IP do servidor VPN (roaming) sen desconectar a conexión e reconfigurar automaticamente o cliente.

Para cifrado se usa cifrado de fluxo ChaCha20 e algoritmo de autenticación de mensaxes (MAC) Poly1305, deseñado por Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) e Peter Schwabe. ChaCha20 e Poly1305 sitúanse como análogos máis rápidos e seguros de AES-256-CTR e HMAC, cuxa implementación de software permite acadar un tempo de execución fixo sen o uso de soporte especial de hardware. Para xerar unha clave secreta compartida, utilízase na implementación o protocolo Diffie-Hellman de curva elíptica Curva25519, proposto tamén por Daniel Bernstein. O algoritmo usado para o hash é BLAKE2s (RFC7693).

En probando Rendemento WireGuard demostrou un rendemento 3.9 veces maior e unha capacidade de resposta 3.8 veces maior en comparación con OpenVPN (AES de 256 bits con HMAC-SHA2-256). En comparación con IPsec (ChaCha256+Poly20 de 1305 bits e AES-256-GCM-128), WireGuard mostra unha lixeira mellora de rendemento (13-18%) e unha menor latencia (21-23%). As probas realizáronse mediante implementacións rápidas de algoritmos de cifrado desenvolvidos polo proxecto; a transferencia á API Crypto estándar do núcleo pode levar a un peor rendemento.

VPN WireGuard foi aceptado na rama net-next e está programado para a súa inclusión no núcleo Linux 5.6

Fonte: opennet.ru

Engadir un comentario