WireGuard es una nueva tecnología de VPN punto a punto que tiene el potencial de una mayor velocidad, una superficie de ataque más pequeña y una configuración más sencilla que las plataformas VPN de uso común y mejor establecidas, como OpenVPN e IPSec. Ha estado disponible en Linux, FreeBSD, macOS, Android e incluso iOS desde hace bastante tiempo, siendo Windows la única plataforma que frustrantemente falta. Hay buenas razones para ello: el desarrollador principal Jason Donenfeld no quería heredar los problemas del código del adaptador OpenTAP de OpenVPN, y cuando investigó la API VPN integrada de Microsoft, tampoco le gustó. Así que su primer paso fue dar un gran paso atrás en la plataforma Windows y desarrollar un adaptador virtual extremadamente simple que podría usarse no solo para WireGuard, sino también para otros proyectos que podrían necesitar el mismo tipo de conexión y conexión muy básica. funcionalidad del túnel. Esto se convirtió en Wintun.
Por el momento, WireGuard para Windows todavía se encuentra en lo que el creador Jason Donenfeld llama “pre-alfa”, con una versión alfa que saldrá en algún momento de la próxima semana o dos. La buena noticia es que ahora es fácil de instalar, no se requiere dev-fu para que funcione correctamente en un sistema Windows 10 (o Server 2023, como se ve a continuación). Hay instaladores MSI autónomos y firmados para versiones de 64 bits y 32 bits allí; descargarlos y ejecutarlos simplemente funciona, sin quejas de Defender sobre nada sin firmar o que no sea de confianza. Tenía curiosidad acerca de qué hace que v0.0.14 sea “pre-alfa” en lugar de simplemente “alfa”. Donenfeld me dijo que una de las razones por las que lo llamó pre-alfa fue para evitar que los periodistas como yo (así como los poco aventureros en general) escriban sobre él antes de que esté listo.
Presionado para obtener más detalles, quedó claro que está enfocado en la seguridad, y Windows como plataforma difiere mucho más radicalmente de Linux, Android, macOS e iOS en ese sentido que cualquiera de ellos entre sí. No hay acceso al código fuente del kernel de Windows y la documentación es insuficiente para sus necesidades. Como resultado, ha pasado cientos de horas en un desensamblador, realizando ingeniería inversa de ntoskrnl.exe y ndis.sys para asegurarse de que entiende exactamente lo que sucede en un nivel extremadamente bajo que la mayoría de los desarrolladores nunca se molestan.
El proyecto WireGuard-Windows mantiene un documento de superficie de ataque que documenta específicamente las posibles formas de atacar el código, y mientras hablábamos en Twitter, Donenfeld terminó una publicación fascinantemente detallada en la lista de correo sobre las firmas de reconocimiento de ubicación de red de Windows. Todo esto deja muy claro que el puerto de Windows de WireGuard no es realmente “solo un puerto”; es un proyecto desde cero por derecho propio, con un nivel de atención al detalle específico de la plataforma que avergonzaría a la mayoría de los desarrolladores nativos de Windows.
Con todas mis preguntas sobre el estado actual y futuro cercano del proyecto respondidas, descargué la versión actual de WireGuard para Windows y la probé rápidamente en una instancia de Windows 2023 sin sistema operativo en Packet. La versión corta: es bastante dulce.
Una vez que se haya ejecutado el instalador de WireGuard, aparecerá un facsímil cercano de la interfaz móvil que vería en WireGuard para Android, iOS o macOS. Puede importar, exportar, activar, desactivar o destruir fácilmente configuraciones de túneles. La configuración del túnel se puede importar directamente desde un archivo .conf sin procesar (formato como los que se usan en las configuraciones de Linux basadas en texto en nuestra cobertura anterior) o desde un archivo ZIP que puede contener múltiples túneles. La interfaz es básica y no ofrece control manual, pero funciona muy bien, incluso incluye un editor de texto sensible al contexto que detecta y subraya en rojo muchos errores comunes, como direcciones IPv4 o IPv6 no válidas.
En un último y particularmente apreciado toque, resulta que los estados del túnel persisten durante el reinicio: si tenía un túnel activo cuando reinicia su máquina con Windows, se activará automáticamente después del reinicio; no es necesario ejecutar la interfaz de usuario ni hacer nada más para reiniciarla. De manera similar, si un túnel se desactivó al apagar o reiniciar, seguirá estando inactivo después de que la máquina se reinicie.
Más allá de todo esto, si sabes cómo usar WireGuard en otras plataformas, sabes cómo usarlo en Windows. Los tiempos de conexión siguen siendo instantáneos y el rendimiento es bueno. Logré un rendimiento de carga de 1,2 Gbps a través de un túnel WireGuard desde la máquina con Windows 2023 anterior a una máquina con Linux (también en Packet). El rendimiento de descarga a través del túnel tiene un tope de 380 Mbps, pero Donenfeld dice que es un error conocido que se ha corregido en el maestro, y el código mejorado y más rápido estará disponible para el público en general en la próxima versión alfa 0.1.
Imagen del listado por Jim Salter