¿Por qué WireGuard «llegará» al núcleo de Linux?

A finales de julio, los desarrolladores del túnel VPN WireGuard propusieron un conjunto de parches, que harán que su software para la organización de túneles VPN sea parte del núcleo de Linux. Sin embargo, la fecha exacta de implementación de la 'idea' aún sigue siendo desconocida. En el siguiente apartado, hablaremos de esta herramienta con más detalle.

¿Por qué WireGuard «llegará» al núcleo de Linux?
/ фото Tambako The Jaguar CC

Resumen del proyecto

WireGuard es un túnel VPN de nueva generación, creado por Jason Donenfeld, jefe de la empresa Edge Security. El proyecto ha sido desarrollado como una alternativa simplificada y rápida a OpenVPN e IPsec. La primera versión del producto contenía solo 4.000 líneas de código. En comparación, OpenVPN tiene alrededor de 120.000 líneas y IPSec aproximadamente 420.000.

Por palabras Para los desarrolladores, WireGuard es fácil de configurar, y la seguridad del protocolo se logra gracias a algoritmos criptográficos probados.. Al cambiar de red: Wi-Fi, LTE o Ethernet, es necesario reconectar a cada vez al servidor VPN. Sin embargo, los servidores de WireGuard no rompen la conexión, incluso si el usuario recibe una nueva dirección IP.

A pesar de que WireGuard inicialmente está diseñado para el núcleo de Linux, los desarrolladores también se han preocupado por una versión portátil de la herramienta para dispositivos Android. La aplicación todavía no está completada, pero ya se puede probar en acción. Para ello, hay que convertirse en uno de los testers..

En general, WireGuard goza de bastante popularidad y ha sido el modo «BACKUP LOCK», que se puede utilizar durante la copia de seguridad de archivos de la base de datos; implementado por varios proveedores de VPN, como Mullvad y AzireVPN. En la red se ha publicado una gran cantidad de guías de configuración de esta solución. Por ejemplo, hay guías, que son creadas por los usuarios, y hay guías , preparadas por los autores del proyecto..

Detalles técnicos

En documentación oficial (pág. 18) se señala que el ancho de banda de WireGuard es cuatro veces mayor que el de OpenVPN: 1011 Mbit/s frente a 258 Mbit/s, respectivamente. WireGuard también supera a la solución estándar para Linux IPsec, que tiene 881 Mbit/s. Además, lo supera en cuanto a la simplicidad de configuración.

Después del intercambio de claves (la conexión VPN se inicia casi como en SSH) y el establecimiento de la conexión, WireGuard resuelve automáticamente todas las demás tareas: no es necesario preocuparse por la ruta, el estado y otras cuestiones. Solo se requerirán esfuerzos adicionales de configuración si se desea utilizar cifrado simétrico.

¿Por qué WireGuard «llegará» al núcleo de Linux?
/ фото Anders Hojbjerg CC

Para la instalación, se necesita una distribución con un núcleo de Linux 'más reciente' que 4.1. Se puede encontrar en los repositorios de las principales distribuciones de Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Como señalan los editores de xakep.ru, compilar por su cuenta a partir de los textos fuente también es sencillo. Solo es necesario levantar la interfaz y generar las claves pública y privada:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard no usa interfaz para trabajar con el proveedor de criptografía CryptoAPI. En su lugar, se utiliza el cifrado de flujo ChaCha20, criptográfico inserción de autenticación Poly1305 y sus propias funciones hash criptográficas.

La clave secreta se genera utilizando el protocolo Diffie-Hellman basado en curvas elípticas Curve25519. Al realizar el hash se utilizan funciones hash BLAKE2 y SipHash. Gracias al formato de marca de tiempo TAI64N el protocolo descarta paquetes con un valor de timestamp menor, evitando así ataques DoS- y de repetición.

En este sentido, WireGuard utiliza la función ioctl para el control de entrada/salida (anteriormente se usaba Netlink), lo que hace que el código sea más limpio y simple. Esto puede comprobarse revisando el código de configuración.

Los planes de los desarrolladores

Por ahora, WireGuard es un módulo del kernel fuera del árbol. Pero el autor del proyecto, Jason Donenfeld, indica, cree que ya es hora de una implementación completa en el núcleo de Linux, ya que es más simple y confiable que otras soluciones. En este sentido, soporta incluso el mismo Linus Torvalds comentó que el código de WireGuard es "una obra maestra".

Pero nadie habla aún de fechas exactas para la implementación de WireGuard en el núcleo. Y es poco probable que esto suceda con el lanzamiento del kernel de Linux 4.18 en agosto. Sin embargo, existe una posibilidad de que ocurra en un futuro muy cercano: en la versión 4.19 o 5.0.

Cuando WireGuard sea añadido al núcleo, los desarrolladores quieren mejorar la aplicación para dispositivos Android y comenzar a escribir una aplicación para iOS. Además, se planea finalizar las implementaciones en Go y Rust y portarlas a macOS, Windows y BSD. También se contempla la implementación de WireGuard para sistemas más "exóticos": DPDK, FPGA, así como muchas otras cosas interesantes. Todas ellas están enumeradas en el lista de tareas de los autores del proyecto.

P.D. Algunos artículos más de nuestro blog corporativo:

Nuestra principal área de actividad es la provisión de servicios en la nube:

Infraestructura virtual (IaaS) | Hosting PCI DSS | Nube FZ-152 | Hosting SAP | Almacenamiento virtual de datos | Cifrado de datos en la nube | Almacenamiento en la nube

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster