WireGuard VPN 1.0.0 ya está disponible y estas son sus novedades
A pocas horas de haber sido presentado el lanzamiento de la nueva versión del Kernel de Linux 5.6 en la cual se incluye la implementación de WireGuard VPN (puedes consultar los cambios y novedades de esta nueva versión aquí) sus desarrolladores dieron a conocer la liberación de un lanzamiento significativo de WireGuard VPN 1.0.0 que marca la entrega de los componentes WireGuard.
Dado que WireGuard ahora se está desarrollando en el núcleo principal de Linux, se ha preparado un repositorio wireguard-linux-compat.git para distribuciones y usuarios que continúan enviando versiones anteriores del núcleo.
Sobre WireGuard VPN
WireGuard VPN se implementa sobre la base de métodos de cifrado modernos, proporciona un rendimiento muy alto, es fácil de usar, carece de complicaciones y se ha demostrado en una serie de implementaciones grandes que procesan grandes volúmenes de tráfico. El proyecto se ha desarrollado desde 2015, ha pasado una auditoría y verificación formal de los métodos de cifrado utilizados.
El soporte WireGuard ya está integrado en NetworkManager y systemd y los parches de kernel están incluidos en las distribuciones base de Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph y ALT.
WireGuard utiliza el concepto de enrutamiento de clave de cifrado, que implica vincular una clave privada a cada interfaz de red y usarla para vincular claves públicas. El intercambio de claves públicas para establecer una conexión se realiza por analogía con SSH.
Para negociar claves y conectarse sin iniciar un demonio separado en el espacio del usuario, se utiliza el mecanismo Noise_IK del Marco de protocolo de ruido, similar al mantenimiento de claves autorizadas en SSH. Los datos se transmiten a través de la encapsulación en paquetes UDP. Admite cambiar la dirección IP del servidor VPN (roaming) sin interrumpir la conexión con la reconfiguración automática del cliente.
Para el cifrado, se utilizan el cifrado de flujo ChaCha20 y el algoritmo de autenticación de mensajes Poly1305 (MAC) desarrollado por Daniel J. Bernstein, 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 involucrar soporte de hardware especial.
Para generar una clave secreta compartida, el protocolo Diffie-Hellman en curvas elípticas se utiliza en la implementación de Curve25519, también propuesta por Daniel Bernstein. Para el hash, se utiliza el algoritmo BLAKE2s (RFC7693).
¿Qué cambios se incluyen en WireGuard VPN 1.0.0?
El código incluido en el kernel de Linux se sometió a una auditoría de seguridad adicional, realizada por una compañía independiente especializada en dichos controles. La auditoría no reveló ningún problema.
El repositorio preparado incluye el código WireGuard con respaldo y la capa compat.h para garantizar la compatibilidad con los núcleos más antiguos. Se observa que, si bien existe una oportunidad para los desarrolladores y la necesidad de los usuarios, se mantendrá una versión separada de los parches en forma de trabajo.
En su forma actual, WireGuard se puede usar con kernels de Ubuntu 20.04 y Debian 10 “Buster” y también está disponible como parches para los kernels Linux 5.4 y 5.5. Las distribuciones que utilizan los últimos núcleos, como Arch, Gentoo y Fedora 32, podrán utilizar WireGuard junto con la actualización 5.6 del núcleo.
El proceso de desarrollo principal ahora está en marcha en el repositorio wireguard-linux.git, que incluye un árbol completo del kernel de Linux con cambios del proyecto Wireguard.
Los parches de este repositorio se revisarán para su inclusión en el núcleo principal y se transferirán regularmente a las ramas net/net-next.
El desarrollo de utilidades y scripts que se ejecutan en el espacio del usuario, como wg y wg-quick, se lleva a cabo en el repositorio wireguard-tools.git, que se puede usar para crear paquetes en distribuciones.
Ademas de que no serán necesarias más compilaciones de soporte de módulo de núcleo dinámico aun que WireGuard seguirá funcionando como un módulo de kernel cargable.
Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión, puedes consultar el comunicado de sus desarrolladores en el siguiente enlace.