Chiunque incolli un profilo VPN in un thread di un forum parte dalla stessa convinzione. Il file contiene solo un indirizzo del server e alcune opzioni, quindi condividerlo sembra condividere un numero di telefono. Poi qualcuno lo legge e trova una chiave privata non cifrata alla quarta riga.

Il profilo non è documentazione sul tunnel. È l’identità del tunnel, scritta.

Gli oggetti nel file non hanno lo stesso livello di segretezza

Un certificato CA pubblico è pensato per viaggiare. Una chiave privata del client no. Quando entrambi compaiono nello stesso file, quello innocuo fa sembrare sicuro l’intero allegato. Questa è la trappola.

OpenVPN peggiora la situazione per progettazione. Consente di incorporare certificati, chiavi e materiale di autenticazione direttamente. È comodo per la distribuzione e disastroso per la condivisione. Il file che inizia con un blocco di certificato leggibile prosegue nella metà privata.

WireGuard è più diretto. La sezione dell’interfaccia porta una chiave privata, e ogni peer può portare in aggiunta una chiave precondivisa. Non c’è ambiguità su quali righe contino. Quasi tutte contano.

Uno screenshot è la stessa fuga in un altro formato

Codificare una configurazione come codice QR non la classifica come anteprima. Il codice porta gli stessi byte, e qualsiasi fotocamera di un telefono nella stanza può decodificarlo. Lo stesso vale per uno screenshot della finestra di configurazione di un client, dove la chiave è leggibile nell’angolo.

I file di autenticazione e i percorsi delle chiavi a cui si fa riferimento rientrano nello stesso audit. Un profilo che punta a un file esterno non è automaticamente più sicuro, perché il percorso può risolversi in un punto raggiungibile da un lettore. Un token in un file di autenticazione è utilizzabile quanto una password, e raramente lo sembra.

Invia il testo dell’errore, non la chiave

La diagnosi ha bisogno del testo dell’errore, della versione del client e dei nomi delle opzioni provate. Non ha bisogno della chiave. Scrivi la domanda con queste tre cose, e sostituisci ogni segreto e ogni identificatore di rete superfluo prima che il file lasci la tua macchina.

La sezione del manuale di OpenVPN sui file incorporati è una mappa utile di dove si trovano quegli oggetti. Ricorda anche quanti ne può contenere un singolo profilo.

# which lines in this profile look like secrets?
grep -n -E 'PrivateKey|PresharedKey|password|auth-user-pass|BEGIN .*PRIVATE KEY' wg0.conf

# OpenVPN: show the structure without printing key material
awk '/BEGIN/{print NR": "$0} /^[a-z-]+ /{print NR": "$1}' office.ovpn

Poi leggi l’allegato finale invece di fidarti della tua memoria della modifica. Le chiavi si nascondono in blocchi successivi, in un commento non oscurato e in una riga che hai deciso essere strutturale.

Dopo un’esposizione, la rotazione è l’unica riparazione

Eliminare il post non revoca nulla. Chi ha ricevuto il file ha ancora una credenziale valida, per questo l’emittente deve revocarla o sostituirla tramite il processo proprio del servizio. Rimuovere una copia locale non cambia nulla all’estremità remota.

Conserva i profili di lavoro con un metodo protetto, e rimuovi di proposito le voci importate obsolete invece di lasciare tre copie in una cartella dei download. Un profilo che non usi più resta una credenziale finché non viene revocato.

L’abitudine che vale la pena costruire è piccola. Prima che un profilo lasci la macchina, chiediti cos’altro contiene oltre all’indirizzo, e rispondi leggendo il file invece di ricordarlo.

Articoli correlati