WireGuard Keys & Peers
WireGuard & Curve25519 Cryptographic Suite

Guía para Desarrolladores: Generador de Claves y Configuración de Peers WireGuard

Genere pares de claves pública/privada Curve25519, claves precompartidas (PSK) y bloques de configuración de peers WireGuard en el navegador.

100% Client-Side Privacy
Curve25519 ↔ wg0.conf & wg-client.conf
Preajustes:
Interface Parameters & Cryptographic Handshake Options
UDP 51820•2 Peers
Configured Peers:
Work Laptop(10.8.0.2/32)
iPhone Roaming(10.8.0.3/32)
Definiciones de peers y entrada de claves2 Peers
# =========================================================
# WireGuard Client Configuration for: Work Laptop
# Save to /etc/wireguard/wg0-client.conf or import into app
# =========================================================

[Interface]
PrivateKey = qIOQti92akyvcSrNxKmDGmOTOqZpyCNpIiRCU1AqIFI=
Address = 10.8.0.2/32, fd86:ea04:1115::2/128
DNS = 1.1.1.1, 8.8.8.8
MTU = 1420

[Peer]
PublicKey = WkT9aMOtAuXEg5bG2/PvXSNJ90Fcf4UejCPG7Fmfs2U=
PresharedKey = WYf+0IeaWwZX2zdozh+ujBc32PJ2NCPhB7vG1OmlluE=
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Peers activos
2 Client Peers
10.8.0.1/24, fd86:ea04:1115::1/64
Claves Curve25519
3 RFC 7748 Keypairs
256-bit ECDH Clamped
Túnel WireGuard
PSK Hardened (256-bit)
Port 51820 • MTU 1420

Generación de claves Curve25519

Multiplicación escalar Diffie-Hellman en curva elíptica RFC 7748 X25519 pura, calculada localmente sin transmisión al servidor.

Ejecución sin conocimiento en el navegador

Todas las claves privadas, claves precompartidas y configuraciones de endpoint permanecen estrictamente en la memoria del navegador.

Compatible con WireGuard multiplataforma

Exportación instantánea para Linux wg-quick, macOS, Windows, escaneo QR en Android/iOS y despliegues con Docker Compose.

Referencia técnica y guía de arquitectura

Guía para Desarrolladores: Generador de Claves y Configuración de Peers WireGuard — Guía de referencia

Genere pares de claves pública/privada Curve25519, claves precompartidas (PSK) y bloques de configuración de peers WireGuard en el navegador.

Parámetros clave y controles

PrivateKeyBase64 (32 bytes Curve25519)

Clave privada secreta utilizada para el descifrado de la interfaz local y la autenticación de sesión.

Por defecto: Autogenerada
PublicKeyBase64 (32 bytes Curve25519)

Clave pública derivada matemáticamente de la clave privada mediante multiplicación escalar X25519 para compartir con peers.

Por defecto: Derivada
PresharedKey (PSK)Base64 (32 bytes simétrica)

Clave precompartida simétrica opcional de 256 bits para protección híbrida poscuántica entre pares.

Por defecto: Opcional
AllowedIPsLista CIDR

Filtro de enrutamiento criptográfico que define los rangos IP permitidos a través del túnel (0.0.0.0/0 para túnel completo).

Por defecto: 0.0.0.0/0, ::/0
EndpointHost / IP:Puerto

Dirección IPv4/IPv6 pública o dominio FQDN y puerto UDP de escucha del peer remoto.

Por defecto: vpn.example.com:51820
PersistentKeepaliveEntero (segundos)

Intervalo en segundos para enviar paquetes de mantenimiento y mantener abiertas las conexiones NAT con estado.

Por defecto: 25

Consejos profesionales y mejores prácticas

Aislamiento criptográfico total en el navegador

Todos los pares de claves Curve25519 y PSK se generan mediante WebCrypto en el navegador. Las claves privadas nunca se transmiten por la red, garantizando privacidad absoluta.

Defensa poscuántica con clave precompartida (PSK)

Combinar Curve25519 con una clave simétrica PSK de 256 bits crea un canal híbrido poscuántico: incluso si la criptografía asimétrica se vulnera en el futuro, la capa simétrica protege el tráfico.

Cryptokey Routing y separación estricta de AllowedIPs

WireGuard enruta paquetes según la correspondencia entre clave pública y AllowedIPs. Nunca asigne IPs de túnel idénticas a diferentes peers para evitar conflictos y caídas silenciosas.

Ajuste de MTU para redes móviles y conexiones PPPoE

Configure 'MTU = 1420' o '1360' en clientes móviles o PPPoE para compensar el encabezado de 32 bytes de WireGuard y evitar la fragmentación de paquetes.

Errores comunes y solución de problemas

El apretón de manos (handshake) no se completa (cero bytes recibidos)

Verifique que el puerto UDP 51820 esté abierto en el firewall o grupo de seguridad, que el Endpoint sea accesible y que la PublicKey esté correctamente registrada en el peer remoto.

El handshake tiene éxito pero no hay acceso a Internet ni enrutamiento

Habilite el reenvío de paquetes en el servidor Linux (sysctl -w net.ipv4.ip_forward=1) y configure una regla MASQUERADE con iptables o nftables en la interfaz WAN externa.

La conexión se interrumpe tras inactividad detrás de routers NAT o redes móviles

Añada 'PersistentKeepalive = 25' al bloque [Peer] del cliente para enviar paquetes cada 25 segundos y mantener abiertas las tablas de estados NAT.

Preguntas frecuentes (FAQ)

¿Qué primitivas criptográficas utiliza WireGuard para la generación de claves?▼

WireGuard emplea Curve25519 para el intercambio de claves ECDH, ChaCha20 para cifrado simétrico, Poly1305 para autenticación y BLAKE2s para hashing. Las claves se codifican en Base64 de 32 bytes.

¿Por qué se recomienda utilizar una clave precompartida (PSK) en WireGuard?▼

La PSK añade una capa simétrica de 256 bits al intercambio Curve25519, ofreciendo seguridad híbrida resistente a ordenadores cuánticos frente a interceptaciones y registros a largo plazo.

¿Pueden varios clientes de WireGuard compartir el mismo par de claves?▼

No. WireGuard vincula estrictamente las IPs internas con las claves públicas mediante Cryptokey Routing. Compartir claves causará colisiones de IP y desconexión de clientes.

¿Cómo difiere AllowedIPs entre la configuración del servidor y la del cliente?▼

En el servidor, AllowedIPs indica la IP asignada exclusivamente al cliente (/32 o /128). En el cliente, define qué tráfico se enruta por el túnel (0.0.0.0/0 para todo el tráfico o rangos privados para túnel dividido).

¿Cómo aplico de forma segura la configuración de peer en Linux con wg-quick?▼

Guarde el bloque en /etc/wireguard/wg0.conf o use 'wg set wg0 peer <PublicKey> allowed-ips <IP>/32' para añadir o actualizar el peer en caliente sin reiniciar la interfaz.

Herramientas y utilidades relacionadas

Todas las herramientas →