Recuperare i tunnel WireGuard da un PC Windows morto
I profili sono blob DPAPI legati all’account e alla macchina che li hanno creati. Copiare il file su un nuovo PC vi lascia con byte che nessuna chiave locale può aprire.
Un portatile muore con tre tunnel WireGuard configurati, e i file di configurazione sono ancora sul disco. Copiarli su una macchina sostitutiva produce un servizio che si avvia e poi rifiuta di salire. I file sono protetti con una chiave che appartiene all’account e alla macchina che li hanno creati, quindi i byte viaggiano e la capacità di leggerli no. Il percorso qui sotto va dal localizzare il file all’opzione che recupera davvero il servizio.
Dove vive ora il file del tunnel
La posizione è cambiata tra le versioni. Le installazioni più vecchie tenevano i profili nei dati delle applicazioni locali del profilo di sistema, in una cartella WireGuard\Configurations, e le build attuali usano una directory dati dentro l’albero dei file di programma. Ogni tunnel è un singolo file con una doppia estensione che nomina la protezione:
Get-ChildItem "C:\Program Files\WireGuard\Data\Configurations"
Il suffisso .dpapi non è decorazione. Il file è un blob protetto, e il servizio è progettato per consumarlo esattamente in quella forma. Il modo supportato di installare un tunnel da esso è una chiamata elevata che punta al blob:
$blob = "C:\Program Files\WireGuard\Data\Configurations\hq.conf.dpapi"
wireguard.exe /installtunnelservice $blob
Quel comando riesce solo nel contesto che può scartare il blob. Installa un servizio; non decifra nulla per voi.
Perché il blob non si apre altrove
La protezione deriva la sua chiave dalle credenziali di accesso dell’utente e, secondo l’ambito scelto, dalla macchina. La documentazione Microsoft per la chiamata di protezione dice che il valore predefinito appartiene all’utente e alla macchina che l’hanno cifrato, e un’opzione a livello di macchina cambia chi può scartarlo. In entrambi i casi la chiave vive nel materiale delle credenziali del sistema operativo, non dentro il file. Il testo cifrato è portatile; la chiave no.
Prendere possesso della cartella cambia un ACL e nient’altro. Montare il vecchio disco in un box e copiare il blob su un nuovo PC vi lascia un testo cifrato la cui chiave non è mai stata copiata. Il guasto è crittografico, e nessuna reinstallazione del servizio lo cambia. La nuova macchina non ha alcuna chiave principale per quell’account, e il vecchio archivio di chiavi non viaggia con il file.
I prodotti che conservano le impostazioni in un file offuscato rendono evidente il contrasto. Una configurazione solo offuscata diventa leggibile quando trovate il flag che disattiva l’offuscamento; un blob protetto resta chiuso senza la chiave. Confondere le due cose porta la gente a cercare un decoder che non esiste.
Cosa provare mentre il vecchio sistema si avvia ancora
Se l’installazione si avvia ancora, esportate i tunnel dal client mentre siete connessi come l’account che li ha creati. L’esportazione produce normali file di configurazione, ed è lì che un backup diventa portatile.
Se il disco è leggibile ma Windows non si avvia, i file protetti sono di fatto persi. Gli strumenti che promettono di recuperarli o girano nel contesto originale, che non avete più, oppure vi chiedono di consegnare il blob e l’immagine del vecchio disco, il che è una decisione su cui vale la pena fermarsi.
Annotate ciò che imparate in entrambi i casi: i nomi dei tunnel, gli endpoint e le chiavi pubbliche. I nomi e gli endpoint vi permettono di ricostruire rapidamente, e le chiavi pubbliche permettono all’altro lato di identificare quale voce rimuovere.
Ricostruite invece dal lato del peer
Per un peer che controllate, generate una nuova coppia di chiavi e aggiungete la nuova chiave pubblica all’elenco del peer. Per un endpoint aziendale o ospitato, chiedete all’amministratore di emettere una nuova chiave e rimuovere quella vecchia. Quella richiesta è la stessa che fareste dopo un furto, perché un disco perduto significa che la vecchia chiave privata va trattata come esposta.
Poi ricostruite il tunnel dai valori che avete annotato, e confermate lo handshake prima di cancellare qualsiasi altra cosa. La vecchia voce sul peer dovrebbe sparire nella stessa modifica, così un disco rubato non può riconnettersi più tardi.
La lezione appartiene alla politica di backup, non a uno strumento di ripristino. Una configurazione WireGuard è una credenziale: chi detiene la chiave privata detiene l’identità del peer, e non c’è una seconda password nel mezzo. O esportate deliberatamente la configurazione e la conservate con gli altri vostri segreti, oppure accettate che recuperare significhi riemettere chiavi, e annotate quale scelta vale per ogni tunnel.