WireGuard "llegará" al kernel de Linux: ¿por qué?

A finales de julio, los desarrolladores del túnel VPN WireGuard propusieron conjunto de parches, lo que hará que su software de túnel VPN forme parte del kernel de Linux. Sin embargo, se desconoce la fecha exacta de implementación de la “idea”. Debajo del corte hablaremos de esta herramienta con más detalle.

WireGuard "llegará" al kernel de Linux: ¿por qué?
/ foto tambako el jaguar CC

Brevemente sobre el proyecto

WireGuard es un túnel VPN de próxima generación creado por Jason A. Donenfeld, director ejecutivo de Edge Security. El proyecto se desarrolló como simplificado y una alternativa rápida a OpenVPN e IPsec. La primera versión del producto contenía sólo 4 mil líneas de código. A modo de comparación, OpenVPN tiene alrededor de 120 mil líneas e IPSec, 420 mil.

En de acuerdo a desarrolladores, WireGuard es fácil de configurar y se logra la seguridad del protocolo a través de algoritmos criptográficos probados. Al cambiar de red: Wi-Fi, LTE o Ethernet deben volver a conectarse al servidor VPN cada vez. Los servidores WireGuard no finalizan la conexión, incluso si el usuario ha recibido una nueva dirección IP.

A pesar de que WireGuard fue diseñado originalmente para el kernel de Linux, los desarrolladores cuidado y sobre una versión portátil de la herramienta para dispositivos Android. La aplicación aún no está completamente desarrollada, pero puedes probarla ahora. Para esto necesitas conviértete en uno de los probadores.

En general, WireGuard es bastante popular e incluso ha sido implementado varios proveedores de VPN, como Mullvad y AzireVPN. Publicado en línea un gran numero guías de configuración esta decisión. Por ejemplo, hay guias, que son creados por los usuarios, y hay guías, preparado por los autores del proyecto.

Detalles técnicos

В documentación oficial (p. 18) se observa que el rendimiento de WireGuard es cuatro veces mayor que el de OpenVPN: 1011 Mbit/s frente a 258 Mbit/s, respectivamente. WireGuard también está por delante de la solución estándar para Linux IPsec: tiene 881 Mbit/s. También lo supera en facilidad de configuración.

Después de intercambiar las claves (la conexión VPN se inicializa de manera muy similar a SSH) y se establece la conexión, WireGuard maneja todas las demás tareas por sí solo: no hay necesidad de preocuparse por el enrutamiento, el control de estado, etc. Es necesario si desea utilizar cifrado simétrico.

WireGuard "llegará" al kernel de Linux: ¿por qué?
/ foto Anders Hojbjerg CC

Para instalar, necesitará una distribución con un kernel de Linux anterior a 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, el autoensamblaje a partir de los textos originales también es fácil. Basta con abrir la interfaz y generar claves públicas y privadas:

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

WireGuard no se usa interfaz para trabajar con un proveedor de cifrado Cryptoapi. En su lugar, se utiliza un cifrado de flujo. ChaCha20, criptográfico inserto de imitación Poly1305 y funciones hash criptográficas patentadas.

La clave secreta se genera usando Protocolo de Diffie-Hellman basado en curva elíptica Curve25519. Cuando hacen hash, usan funciones hash BLAKE2 и SipHash. Debido al formato de marca de tiempo TAI64N El protocolo descarta paquetes con un valor de marca de tiempo más pequeño, por lo que prevención de DoS- и ataques de repetición.

En este caso, WireGuard utiliza la función ioctl para controlar las E/S (anteriormente utilizada enlace de red), lo que hace que el código sea más limpio y sencillo. Puedes verificar esto mirando código de configuración.

Planes de desarrollador

Por ahora, WireGuard es un módulo de kernel fuera del árbol. Pero el autor del proyecto es Jason Donenfeld. dice, que ha llegado el momento de la implementación completa en el kernel de Linux. Porque es más sencilla y fiable que otras soluciones. Jason en este sentido apoyo Incluso el propio Linus Torvalds calificó el código WireGuard como una “obra de arte”.

Pero nadie habla de las fechas exactas para la introducción de WireGuard en el kernel. Y apenas Esto sucederá con el lanzamiento del kernel Linux 4.18 de agosto. Sin embargo, existe la posibilidad de que esto suceda en un futuro muy cercano: en la versión 4.19 o 5.0.

Cuando se agrega WireGuard al kernel, los desarrolladores querer finalice la aplicación para dispositivos Android y comience a escribir una aplicación para iOS. También hay planes para completar implementaciones en Go y Rust y trasladarlas a macOS, Windows y BSD. También está previsto implementar WireGuard para más “sistemas exóticos”: DPDK, FPGA, además de muchas otras cosas interesantes. Todos ellos están listados en lista de quehaceres autores del proyecto.

PD: Algunos artículos más de nuestro blog corporativo:

La principal dirección de nuestra actividad es la prestación de servicios en la nube:

Infraestructura Virtual (IaaS) | Alojamiento PCI DSS | Nube FZ-152 | Alojamiento SAP | Almacenamiento virtual | Cifrar datos en la nube | Almacenamiento en la nube

Fuente: habr.com

Añadir un comentario