…
…
…
32 octets CSPRNG, clampés selon Curve25519 · clé publique = scalaire privé × point de base 9 · générée localement, jamais envoyée · les clés ne sont volontairement pas encodées dans l'URL de partage.
Ce que ça fait
Le Générateur de clés WireGuard crée les clés cryptographiques dont un tunnel WireGuard a besoin, entièrement dans votre navigateur. Il tire 32 octets du CSPRNG de votre appareil, les clamp selon les règles de Curve25519 (key[0] &= 248; key[31] &= 127; key[31] |= 64), et dérive la clé publique correspondante en multipliant le point de base de la courbe — une implémentation pure BigInt de l’échelle de Montgomery du RFC 7748 sur GF(2²⁵⁵ − 19). Vous pouvez aussi générer une pre-shared key (PSK) optionnelle et copier un template de config wg-quick prêt à éditer.
Les deux clés sont émises en
Base64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
standard avec padding — 44 caractères — le format exact qu’attendentwg setconf, wg-quick et tout gestionnaire WireGuard. Rien n’est uploadé : génération, dérivation et copie sont toutes locales, et les clés ne sont volontairement jamais encodées dans l’URL de la page.
Comment l’utiliser
- Appuyez sur Generate (ou Regenerate) pour créer une nouvelle paire de clés.
- Copiez la Private key dans la section
[Interface]de la config de votre appareil — ne la partagez jamais. - Copiez la Public key et donnez-la au pair ou à l’administrateur du serveur — elle peut être partagée sans risque.
- Activez la bascule Pre-shared key pour une PSK optionnelle de 32 octets ; placez la même valeur dans les configs des deux côtés pour une protection symétrique supplémentaire.
- Copiez le Config template, puis remplacez
<PEER_PUBLIC_KEY>,AddressetEndpointpar les valeurs de votre serveur.
Exemples
Une paire de clés connue (vecteur de test « Alice » du RFC 7748 §6.1)
Private key: dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo=
Public key: hSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
Donnez la clé privée à n’importe quelle implémentation X25519 et vous obtenez exactement cette clé publique — la dérivation que cet outil effectue est vérifiée contre des vecteurs comme celui-ci dans ses tests unitaires. Une paire fraîchement générée est une sortie aléatoire au même format de 44 caractères.
Template de config avec pre-shared key
[Interface]
PrivateKey = dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo=
PublicKey = hSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
Address = 10.0.0.2/32
[Peer]
PublicKey = <PEER_PUBLIC_KEY>
PresharedKey = 7Xk2Pq9wLmY4vRtNz8sB1cHf6Gj3Kd0eA5uOi2WxSbE=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25
Rotater une clé
Regenerate → replace only the PrivateKey line in your config →
send the new Public key to the peer admin → restart the tunnel.
Bon à savoir
- Pourquoi le clamping ? Les 3 bits de poids faible et le bit de poids fort sont effacés et le bit 254 est forcé, donc chaque clé privée est un scalaire valide qui fonctionne avec toute implémentation de Curve25519 et protège contre les attaques par petits sous-groupes.
- Les pre-shared keys ajoutent un secret symétrique de 256 bits par-dessus l’échange Diffie-Hellman — utile contre de futures attaques quantiques sur le trafic enregistré. La même PSK doit figurer dans les configs des deux pairs, et elle n’est jamais clampée (elle sert de matière de clé brute).
- Privé : s’exécute à 100 % côté client ; le CSPRNG et les calculs sur la courbe ne touchent jamais le réseau, et les clés ne sont écrites ni dans l’URL ni dans le stockage.
- Outils liés : Password Generator, Secure Token Generator,
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Generator.