VPNSmith
VPS Contabo
self-host-vpnINFO

Chiave precondivisa WireGuard: a cosa serve (non è una password)

La chiave precondivisa è facoltativa, si genera con un solo comando e quasi ogni guida la salta o la descrive male come autenticazione aggiuntiva. Non è né l'una né l'altra cosa. È una protezione contro un futuro attaccante dotato di computer quantistico, ed ecco come aggiungerla senza rompere un tunnel attivo.

Di Eric Gerard · Fondatore · VPNSmith - Specialista in VPN autogestite e VPS GDPR5 min letturaFoto via Pexels

Ogni peer WireGuard ha già una coppia di chiavi, quindi la prima domanda sensata su PresharedKey è che cosa dovrebbe aggiungere una terza chiave.

La risposta è circoscritta e precisa, e vale la pena formularla con esattezza, perché le due descrizioni più diffuse sono entrambe sbagliate.

Cosa non è

Non è una password sul tunnel. Molti la aggiungono aspettandosi che la connessione richieda un segreto, come SSH richiede una passphrase. Non funziona così.

Non sostituisce nulla. Aggiungere una chiave precondivisa non ti permette di usare chiavi più deboli, saltare regole del firewall o esporre la porta in modo più sicuro.

Cos'è

L'handshake di WireGuard ricava le chiavi di sessione dalle chiavi pubbliche e private dei due peer. Se è configurata una chiave precondivisa, viene mescolata in quella derivazione come input aggiuntivo.

La conseguenza è proprio il punto: la chiave precondivisa è simmetrica e non viene mai inviata in rete. Un attaccante che registra oggi ogni pacchetto del tuo traffico, e che in seguito acquisisce la capacità di rompere lo scambio su curva ellittica, non può comunque ricavare le chiavi di sessione, perché uno degli input non ha mai attraversato la rete.

La documentazione di WireGuard la descrive come resistenza post-quantistica, e la formulazione è corretta purché tu tenga presente il modello di minaccia. L'avversario da cui ti difendi è quello che conserva il traffico oggi e lo decifra domani. Se nessuno sta registrando il tuo tunnel, non ti difende da nulla, e aggiungerla non ti costa comunque quasi niente.

Generarla e installarla

wg genpsk

Il comando stampa una chiave di 32 byte codificata in base64. Per generarla e salvarla in un solo passaggio:

wg genpsk > peer1.psk
chmod 600 peer1.psk

Va nella sezione [Peer], su entrambe le macchine, con lo stesso valore:

[Peer]
PublicKey = <the other side's public key>
PresharedKey = <the same value on both ends>
AllowedIPs = 10.10.0.2/32

Una chiave precondivisa per ogni coppia di peer, non una per server. Riutilizzare un unico valore su tutti i client significa che ognuno di essi possiede la chiave che protegge tutti gli altri.

Se hai creato i tuoi file con il nostro generatore di configurazioni WireGuard, tieni presente cosa fa e cosa non fa su questo punto: genera le coppie di chiavi nel tuo browser e scrive l'[Interface] del server, i blocchi [Peer] e un file client per dispositivo, ma non produce una riga PresharedKey. Esegui wg genpsk una volta per client e incolla lo stesso valore nel blocco [Peer] di quel client su entrambi i lati prima di consegnare il file, e le configurazioni sono complete. Il generatore è gratuito fino a 10 dispositivi; oltre, WireGuard Pro (un nostro prodotto, 9 EUR una tantum, nessun abbonamento) alza il limite a 250 e aggiunge un unico ZIP con ogni .conf client e il relativo codice QR in PNG, comodo per configurare un intero ufficio o una famiglia in un colpo solo.

Una griglia di una ventina di piccole chiavi antiche di ottone di forme diverse, disposte in tre file ordinate su una superficie di marmo grigio scuro venato di bianco
Una griglia di una ventina di piccole chiavi antiche di ottone di forme diverse, disposte in tre file ordinate su una superficie di marmo grigio scuro venato di bianco

Aggiungerla a un tunnel attivo senza chiuderti fuori

È qui che molti si scottano. Una chiave precondivisa che coincide su un solo lato significa che l'handshake smette di completarsi, e WireGuard non ti dice perché. wg show non riporta alcun handshake recente, lo stesso output che ottieni con una porta sbagliata, un drop del firewall o una chiave pubblica errata.

Se il tunnel è la tua unica via d'accesso a un server remoto, sei chiuso fuori.

L'ordine sicuro:

  1. Genera la chiave e portala prima su entrambe le macchine, senza modificare nessuna delle due configurazioni.
  2. Se hai un accesso fuori banda, una console o IPMI, usalo e modifica entrambi i lati.
  3. Se non ce l'hai, programma un ripristino. Qualcosa come echo "wg-quick down wg0 && wg-quick up wg0" | at now + 10 minutes con la configurazione originale su disco, così un errore si corregge da solo mentre hai ancora un modo per entrare.
  4. Modifica il lato remoto, poi quello locale, poi verifica con wg show che un handshake sia avvenuto negli ultimi due minuti.

Il sintomo generale, un tunnel che funzionava e ora non mostra alcun handshake, è trattato nella guida alla risoluzione dei problemi di handshake. Aggiungi a quell'elenco "un lato ha una chiave precondivisa e l'altro no".

Dove si collocano le chiavi precondivise rispetto al resto

Non fanno nulla per la visibilità del tunnel. Una rete che blocca WireGuard in base alla forma del traffico lo blocca allo stesso modo. È un problema diverso con risposte diverse: vedi anti-DPI per aggirare i blocchi VPN.

Non fanno nulla su chi può raggiungere la porta. Nascondere l'endpoint è una tecnica separata, trattata in port knocking e VPN invisibile.

Vanno trattate come materiale crittografico. Non in un messaggio di chat, non in un documento condiviso, non committate in un repository. Una chiave precondivisa nella cronologia git è peggio di nessuna chiave precondivisa, perché genera una fiducia che non poggia su nulla.

Se stai costruendo il lato server da zero, la guida completa è in WireGuard self-hosted su un VPS, e l'aggiunta di client in seguito è trattata in aggiungere un peer WireGuard. Se ti serve ancora la macchina, quella guida è scritta su un Contabo Cloud VPS (link di affiliazione).

Se preferisci un host negli Stati Uniti con garanzia soddisfatti o rimborsati di 30 giorni, Ultahost VPS Basic costa 5,52 $ al mese con un impegno di 24 mesi (1 GB di RAM, IPv4 dedicato, verificato il 21 ottobre 2026), abbastanza per un server WireGuard per qualche dispositivo.

★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s

Ospita la tua VPN sul tuo VPS → ContaboAccesso root completo · IPv4 pubblico · scegli la tua regione→

Domande frequenti

La chiave precondivisa di WireGuard è obbligatoria?
No. WireGuard funziona perfettamente senza, e la coppia di chiavi pubblica e privata fornisce già autenticazione e cifratura. La chiave precondivisa è un livello aggiuntivo facoltativo, mescolato nell'handshake.
Da cosa protegge davvero una chiave precondivisa?
È documentata come protezione contro un futuro attaccante che registra oggi il tuo traffico cifrato e lo decifra più avanti con un computer quantistico. Poiché la chiave precondivisa è simmetrica e non viene mai trasmessa, un attaccante che rompe lo scambio a chiave pubblica non può comunque ricavare le chiavi di sessione senza di essa.
Una chiave precondivisa aggiunge autenticazione?
Non nel modo in cui ci si aspetta. Non è una seconda password sulla connessione, e perderla non chiude fuori nessuno di per sé. Viene mescolata nella derivazione delle chiavi, quindi un peer con la chiave precondivisa sbagliata semplicemente non riesce a stabilire una sessione.
Posso aggiungere una chiave precondivisa a un tunnel WireGuard esistente?
Sì, ma vanno aggiornati entrambi i lati. La chiave va nella sezione peer di ciascun estremo e le due voci devono coincidere esattamente. Se modifichi un solo lato, l'handshake smette di completarsi, senza alcun messaggio di errore che spieghi il perché.