Instalar un servidor VPN suele ser una tarea complicada debido a la creación de los certificados de la Infraestructura de Clave Pública (PKI), y también a las propias opciones del software que utilizamos para ello como puede ser OpenVPN o StrongSwan para IPsec. Hoy os presentamos WireGuard, una VPN que según sus desarrolladores es tan fácil de instalar y configurar como un servidor SSH.
WireGuard es un cliente-servidor VPN fácil de instalar y configurar, rápido y además moderno, ya que incorpora los últimos algoritmos criptográficos para dotar de la máxima seguridad posible a las comunicaciones. Según sus desarrolladores, es más rápida y simple que cualquier túnel IPSec y además sin tener que rompernos la cabeza con sus complicadas configuraciones. Respecto a OpenVPN, proporciona mayor rendimiento debido a sus algoritmos de última generación que utiliza.
WireGuard ha sido diseñado para utilizar VPN en dispositivos basados en Linux, y debido a que consume pocos recursos y gracias a la combinación de las técnicas criptográficas que usa WireGuard, el rendimiento que proporciona es superior a IPSec y OpenVPN, además es ideal para dispositivos embebidos como routers o placas de desarrollo tipo Raspberry Pi por el bajo consumo de recursos.
Tan simple como SSH y soporta roaming como mosh
WireGuard es tan fácil de configurar como SSH según sus desarrolladores, la conexión VPN realizará el intercambio de claves públicas tal y como se hace con las llaves SSH, el resto de operaciones las realiza WireGuard de forma totalmente transparente. Esta VPN nos permite roaming en IP, es decir, si nos estamos conectando vía VPN a través de nuestra red de banda ancha móvil y nos conectamos a un Wi-Fi, la conexión se seguirá manteniendo, no es necesario parar e iniciar nuevamente el proceso. Esta característica tan útil ya la incorpora Mosh para SSH.
La seguridad de WireGuard
La seguridad de una VPN es fundamental, por este motivo, los desarrolladores de WireGuard han incorporado el algoritmo ChaCha20 para el cifrado simétrico, que además está autenticado por Poly1305 y utiliza el estándar RFC7539 con AEAD para proporcionar la máxima seguridad. Esta suite de cifrado es muy utilizada por los dispositivos móviles gracias a que consume muy pocos recursos. Respecto a la generación de los parámetros Diffie-Hellmann para el intercambio de claves, se ha utilizado Curve25519 que es una implementación de ECDH (DH con curvas elípticas). Para las función hash y proporcionar integridad a los datos y llaves, se ha utilizado BLAKE2s, asimismo para la tabla hash de las llaves se ha utilizado SipHash24 y el algoritmo de derivación de claves es HKDF.
Con todos estos ingredientes, tendremos una conexión VPN rápida, segura y que además consume muy pocos recursos en el sistema. WireGuard se ha diseñado teniendo la simplicidad en mente, esto significa que se puede auditar fácilmente para encontrar posibles fallos de seguridad (este software es de código libre), no es como otros softwares que tienen miles de líneas de código y que para auditarlos es necesario tener un equipo de expertos en seguridad.
Os recomendamos acceder a la página web oficial de WireGuard donde encontraréis toda la información sobre este cliente-servidor VPN. También podéis acceder al apartado de detalles técnicos de cómo se ha creado esta VPN así como al Paper donde se cuentan todos los detalles de su arquitectura.