lanzamiento emblemático de VPN , que marcó la entrega de componentes de WireGuard en el núcleo principal y la estabilización del desarrollo. El código incluido en el núcleo de Linux una auditoría de seguridad adicional, realizada por una empresa independiente especializada en tales verificaciones. La auditoría no identificó ningún problema.
Dado que WireGuard ahora se desarrolla en el núcleo principal de Linux, se ha preparado un repositorio . El repositorio incluye el código retroportado de WireGuard y una capa compat.h para garantizar la compatibilidad con núcleos más antiguos. Se señala que mientras haya capacidad de los desarrolladores y necesidad por parte de los usuarios, se mantendrá en funcionamiento una versión separada de los parches. En su forma actual, la versión separada de WireGuard puede utilizarse con núcleos de y , y también está disponible en forma de parches para núcleos de Linux y . Las distribuciones que utilizan los núcleos más recientes, como Arch, Gentoo y
Fedora 32, tendrán la posibilidad de usar WireGuard junto con la actualización del núcleo 5.6.
El proceso principal de desarrollo se lleva a cabo ahora en el repositorio , que incluye todo el árbol del núcleo de Linux con los cambios del proyecto Wireguard. Los parches de este repositorio serán revisados para su inclusión en el núcleo principal y transferidos regularmente a las ramas net/net-next. El desarrollo de utilidades y scripts que se ejecutan en el espacio de usuario, como wg y wg-quick, se realiza en el repositorio , que se puede usar para crear paquetes en las distribuciones.
Recordemos que la VPN WireGuard se basa en métodos de cifrado modernos, ofrece un rendimiento muy alto, es fácil de usar, carece de complicaciones y ha demostrado ser eficaz en una serie de grandes implementaciones que manejan grandes volúmenes de tráfico. El proyecto ha estado en desarrollo desde 2015, ha pasado una auditoría y de los métodos de cifrado aplicados. El soporte para WireGuard ya está integrado en NetworkManager y systemd, y los parches para el núcleo están incluidos en la base de las distribuciones , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, y .
En WireGuard se aplica el concepto de enrutamiento por claves de cifrado, que implica la vinculación de una clave privada a cada interfaz de red y la aplicación para la unión de claves públicas. El intercambio de claves públicas para establecer una conexión se realiza de manera similar a SSH. Para el acuerdo de claves y la conexión sin iniciar un daemon separado en el espacio de usuario, se utiliza el mecanismo Noise_IK del , similar al mantenimiento de authorized_keys en SSH. La transmisión de datos se lleva a cabo a través de la encapsulación en paquetes UDP. Se admite el cambio de dirección IP del servidor VPN (roaming) sin interrumpir la conexión con una reconfiguración automática del cliente.
Para el cifrado un cifrador de flujo y un algoritmo de autenticación de mensajes (MAC) , desarrollado por Daniel Bernstein (), Tanja Lange
(Tanja Lange) y Peter Schwabe (Peter Schwabe). ChaCha20 y Poly1305 se presentan como alternativas más rápidas y seguras a AES-256-CTR y HMAC, cuya implementación de software permite lograr un tiempo de ejecución fijo sin la necesidad de soporte hardware especial. Para la generación de una clave secreta compartida se aplica el protocolo de Diffie-Hellman sobre curvas elípticas con la implementación de , también propuesto por Daniel Bernstein. Para el hashing se utiliza el algoritmo .
Con la antigua rendimiento, WireGuard demostró tener una capacidad de paso 3.9 veces más alta y ser 3.8 veces más receptivo en comparación con OpenVPN (256-bit AES con HMAC-SHA2-256). En comparación con IPsec (256-bit ChaCha20+Poly1305 y AES-256-GCM-128), WireGuard muestra una ligera ventaja en rendimiento (13-18%) y una disminución en las latencias (21-23%). Los resultados de las pruebas publicados en el sitio del proyecto abarcan la antigua implementación aislada de WireGuard y se anotan como de calidad insuficiente. Desde la realización de las pruebas, el código de WireGuard e IPsec ha sido optimizado adicionalmente y ahora funciona más rápido. Las pruebas más completas, que abarcan la implementación integrada en el núcleo, aún no se han realizado. Sin embargo, se observa que WireGuard en ciertas situaciones sigue superando a IPsec debido a su capacidad de trabajo multihilo, mientras que OpenVPN sigue siendo muy lento.
Fuente: opennet.ru
