VPN WireGuard ha sido aceptada en la rama net-next y está previsto su inclusión en el kernel de Linux 5.6

David Miller (David S Miller), responsable del subsistema de red del kernel de Linux, donado a la siguiente rama neta parches con la implementación de la interfaz VPN del proyecto WireGuard. A principios del próximo año, los cambios acumulados en la rama net-next formarán la base para el lanzamiento del kernel de Linux 5.6.

En los últimos años se han realizado intentos de insertar el código WireGuard en el núcleo principal, pero no tuvieron éxito debido a que estaban vinculados a implementaciones propietarias de funciones criptográficas que se utilizaban para mejorar el rendimiento. Inicialmente estas funciones eran propuesto para el kernel como una API Zinc adicional de bajo nivel, que eventualmente podría reemplazar la API Crypto estándar.

Tras las discusiones en la conferencia Kernel Recipes, los creadores de WireGuard en septiembre tomó una decisión de compromiso transfiera sus parches para utilizar la Crypto API disponible en el núcleo, sobre la cual los desarrolladores de WireGuard tienen quejas en el campo del rendimiento y la seguridad general. Se decidió continuar desarrollando el API Zinc, pero como un proyecto separado.

En noviembre, los desarrolladores del kernel vamonos en respuesta a un compromiso y acordó transferir parte del código de Zinc al núcleo principal. Esencialmente, algunos componentes de Zinc se trasladarán al núcleo, pero no como una API separada, sino como parte del subsistema Crypto API. Por ejemplo, la Crypto API ya incluido Implementaciones rápidas de los algoritmos ChaCha20 y Poly1305 preparados en WireGuard.

En relación con la próxima entrega de WireGuard en el núcleo principal, el fundador del proyecto объявил sobre la reestructuración del repositorio. Para simplificar el desarrollo, el repositorio monolítico “WireGuard.git”, que fue diseñado para existir de forma aislada, será reemplazado por tres repositorios separados, más adecuados para organizar el trabajo con código en el núcleo principal:

  • wireguard-linux.git - un árbol del núcleo completo con cambios del proyecto Wireguard, cuyos parches se revisarán para incluirlos en el núcleo y se transferirán periódicamente a las ramas net/net-next.
  • herramientas-wireguard.git - un repositorio de utilidades y scripts que se ejecutan en el espacio del usuario, como wg y wg-quick. El repositorio se puede utilizar para crear paquetes para distribuciones.
  • wireguard-linux-compat.git - un repositorio con una variante del módulo, suministrado por separado del kernel e incluyendo la capa compat.h para garantizar la compatibilidad con kernels más antiguos. El desarrollo principal se llevará a cabo en el repositorio wireguard-linux.git, pero siempre que exista la oportunidad y la necesidad entre los usuarios, también se admitirá una versión separada de los parches en forma funcional.

Le recordamos que VPN WireGuard se implementa sobre la base de métodos de cifrado modernos, proporciona un rendimiento muy alto, es fácil de usar, no presenta complicaciones y ha demostrado su eficacia en una serie de grandes implementaciones que procesan grandes volúmenes de tráfico. El proyecto se viene desarrollando desde 2015, ha sido auditado y verificación formal métodos de cifrado utilizados. El soporte de WireGuard ya está integrado en NetworkManager y systemd, y los parches del kernel están incluidos en las distribuciones básicas. Debian inestable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgrafo и ALT.

WireGuard utiliza el concepto de enrutamiento de claves de cifrado, que implica adjuntar una clave privada a cada interfaz de red y utilizarla para vincular las claves públicas. Las claves públicas se intercambian para establecer una conexión de forma similar a SSH. Para negociar claves y conectarse sin ejecutar un demonio separado en el espacio del usuario, el mecanismo Noise_IK de Marco del protocolo de ruidosimilar a mantener claves_autorizadas en SSH. La transmisión de datos se realiza mediante encapsulación en paquetes UDP. Admite cambiar la dirección IP del servidor VPN (roaming) sin desconectar la conexión y reconfigurar automáticamente el cliente.

Para cifrado utilizado cifrado de flujo ChaCha20 y algoritmo de autenticación de mensajes (MAC) Poly1305, diseñado por Daniel Bernstein (Daniel Bernstein), Tania Lange
(Tanja Lange) y Peter Schwabe. ChaCha20 y Poly1305 se posicionan como análogos más rápidos y seguros de AES-256-CTR y HMAC, cuya implementación de software permite lograr un tiempo de ejecución fijo sin el uso de soporte de hardware especial. Para generar una clave secreta compartida, en la implementación se utiliza el protocolo de curva elíptica Diffie-Hellman. Curve25519, también propuesto por Daniel Bernstein. El algoritmo utilizado para el hash es BLAKE2 (RFC7693).

en pruebas Rendimiento WireGuard demostró un rendimiento 3.9 veces mayor y una capacidad de respuesta 3.8 veces mayor en comparación con OpenVPN (AES de 256 bits con HMAC-SHA2-256). En comparación con IPsec (ChaCha256+Poly20 de 1305 bits y AES-256-GCM-128), WireGuard muestra una ligera mejora en el rendimiento (13-18%) y una menor latencia (21-23%). Las pruebas se realizaron utilizando implementaciones rápidas de algoritmos de cifrado desarrollados por el proyecto; la transferencia a la Crypto API estándar del kernel puede conducir a un peor rendimiento.

VPN WireGuard ha sido aceptada en la rama net-next y está previsto su inclusión en el kernel de Linux 5.6

Fuente: opennet.ru

Añadir un comentario