2. Wireguard

WireGuard es un protocolo de red (Layer 3 – Network en OSI / Internet en TCP/IP).
Se comporta como IPsec o GRE, creando un túnel IP dentro de otro IP, con cifrado.
Se transporta mediante UDP (capa 4), pero su función lógica está en capa 3.


Software de código abierto.
Este Software está distribuido bajo GLP2 : "The kernel components are released under the GPLv2, as is the Linux kernel itself. Other projects are licensed under MIT, BSD, Apache 2.0, or GPL, depending on context." por lo que es libre. ( https://www.wireguard.com/#license )

Tiene un diseño minimalista. esto impacta en varios aspectos , mantenimiento, rapidez, etc.

Comparativa
Wireguard  Open VPN  IPSec
4.000 – 5.000 líneas de código en el kernel de Linux (más algunas en herramientas de usuario). Supera las 100.000 líneas de código en total (incluyendo librerías como OpenSSL). Decenas de miles de líneas de código.
Se centra en un conjunto reducido de algoritmos modernos y seguros (Curve25519, ChaCha20, Poly1305, BLAKE2s). Soporta múltiples modos de cifrado, transporte y compatibilidad histórica → mucha más complejidad. Estándar muy amplio, con gran cantidad de modos, algoritmos y opciones → difícil de auditar y mantener.

Al tener menos líneas de código : 
  • Menos superficie de ataque: menos lugares donde se pueden esconder vulnerabilidades.
  • Más fácil de auditar: la comunidad de seguridad puede revisarlo completo.
  • Rendimiento mejorado: menos “ifs” y configuraciones innecesarias. WireGuard solo hace lo que tiene que hacer → tunel IP cifrado simple.
  • Mantenimiento a largo plazo: actualizaciones más rápidas y con menos riesgo de romper compatibilidad.
Desventajas:
A) Falta de ofuscación. WireGuard no ofrece ofuscación, lo que significa que los proveedores de servicios de Internet (ISP) pueden ver cuándo lo estás usando, aunque, por supuesto, no pueden ver para qué lo estás usando.
¿Como detecta un ISP que estás usando Wireguard?
  1. Puerto por defecto (51820/UDP)

    • Aunque se puede cambiar, muchos despliegues dejan el puerto estándar.

    • Un ISP que monitoree puertos puede sospechar fácilmente.

  2. Uso exclusivo de UDP

    • WireGuard siempre usa UDP.

    • Un flujo constante de paquetes UDP cifrados, con tamaños regulares, es muy diferente al tráfico típico de navegación web (que es TCP, con fluctuaciones en tamaño de paquetes).

  3. Patrón de los paquetes

    • Aunque el contenido va cifrado (ChaCha20-Poly1305), las cabeceras siguen presentes:

      • Dirección IP origen/destino.

      • Puerto UDP origen/destino.

      • Longitud del paquete.

    • El handshake inicial de WireGuard tiene un tamaño y patrón muy característico, que se puede reconocer con inspección profunda de paquetes (DPI – Deep Packet Inspection).

  4. Ausencia de protocolos conocidos

    • Un ISP puede ver que en el flujo UDP no aparecen firmas típicas de QUIC, DNS, VoIP, etc., lo que levanta sospechas de que sea un túnel VPN.

B) No está integrado en todas las VPN. 
Si bien WireGuard se está adoptando ampliamente, no todos los proveedores de VPN lo han integrado todavía en sus aplicaciones

El problema de WireGuard

WireGuard es minimalista:

  • Cada cliente (usuario) se identifica con una clave pública fija.

  • En la implementación original, esa clave se asocia directamente a una dirección IP interna dentro del túnel.

  • Esto significa que, para que funcione la VPN, el servidor debe mantener un mapa persistente (clave ↔ IP interna).

👉 Problema: si el servidor guarda esos datos, queda un rastro permanente de qué usuario usó qué IP interna, lo cual va contra la filosofía de no-logs de muchas VPN comerciales.