Due amministratori confrontano il segreto sullo schermo, concordano che corrisponde, e il tunnel fallisce comunque l’autenticazione. La stringa che hanno confrontato non è il valore che nessuno dei due estremi inserisce nella derivazione della chiave. Tra i caratteri che vedete e i byte che il protocollo calcola con l’hash ci sono un tipo di campo, una codifica del testo, un editor e un’appunti, e uno dei quattro può cambiare l’input senza cambiarne l’aspetto. Confrontate i byte e il disaccordo di solito compare in pochi secondi.

Che cosa fa il gateway con la stringa

Una chiave precondivisa non viene inviata sulla rete e confrontata. Ogni estremo inserisce la propria copia locale nella derivazione della chiave per lo scambio IKE, e i payload di autenticazione risultanti vengono verificati oppure no. Questo progetto significa che le due copie devono essere identiche byte per byte, non solo visivamente simili, e significa anche che l’errore viene segnalato nella fase di autenticazione invece che come messaggio di password errata.

Quindi la domanda utile non è mai «queste sembrano uguali» ma «quale sequenza esatta di byte calcola con l’hash ogni implementazione».

Da dove vengono i byte in più

Un ritorno a capo finale è il colpevole classico, e si nasconde in piena vista perché la maggior parte degli editor ne aggiunge uno in modo invisibile quando si salva un file. Uno spazio iniziale o finale incollato da una finestra di chat fa lo stesso, e lo stesso fa una virgoletta tipografica sostituita con una dritta da un elaboratore di testi. Nulla di tutto questo cambia il confronto visivo che una persona esegue.

Confrontate con uno strumento che mostra i byte anziché i glifi. printf '%s' "$PSK" | xxd | tail -2 stampa la coda del valore in esadecimale, dove un 0a o un 20 vagante è evidente. Fatelo su entrambi gli estremi e confrontate i due dump fianco a fianco. Fatelo su materiale di test generato, non su un segreto di produzione che poi lasciate nella cronologia della shell.

Codificato non è cifrato

Le esportazioni di configurazione spesso portano il segreto in una codifica di base, a volte con interruzioni di riga ogni sessanta o settantasei caratteri e a volte con riempimento. Se un estremo si aspetta i byte decodificati e voi incollate il testo codificato, non avete inviato una password diversa, ne avete inviata una molto più lunga fatta di caratteri stampabili. Base64 non offre alcuna riservatezza, ed è anche per questo che un segreto codificato non va mai incollato su un forum per chiedere un secondo parere.

Il dizionario IPSec di Apple è un buon esempio del fatto che il tipo conta: documenta SharedSecret come dato per il metodo di autenticazione con segreto condiviso nei payload L2TP e Cisco IPsec. È una proprietà specifica in un payload specifico, non un campo di testo generico che potete riutilizzare per un altro protocollo che per caso chiede un segreto.

Un limite dichiarato appartiene a una combinazione

I vecchi resoconti di un tetto di trentadue caratteri su un client Apple sono resoconti reali su una versione di client, un protocollo e una forma di profilo. Non sono un limite universale per ogni piattaforma Apple, ogni fornitore e ogni protocollo. Verificate insieme la versione, il tipo di payload e il requisito del gateway, poi provate su una configurazione approvata invece di dedurre da un thread. Scrivete la combinazione testata nel registro delle modifiche, altrimenti la prossima persona citerà lo stesso thread con più fiducia di quanto meriti.

Se un limite si applica davvero, la risposta è un progetto di credenziali supportato che vi rientri, non una versione accorciata di un segreto forte. Troncare una chiave di produzione per soddisfare un limite ipotizzato ne riduce la forza in modo permanente e produce un sistema la cui documentazione non corrisponde più alla sua sicurezza.

Correggete la rappresentazione, non la forza

Quando l’autenticazione fallisce dopo aver confermato la rappresentazione, leggete la politica effettiva nella fase di autenticazione: quale metodo viene negoziato, quale identità del peer è attesa e se il gateway corrisponde alla connessione che pensate. Le ipotesi sempre più deboli non sono una diagnosi, sono un lento declassamento con un ticket di supporto allegato.

Se la credenziale richiesta non può soddisfare lo standard dell’organizzazione, cambiate il progetto con uno che può. Un segreto condiviso con entropia sufficiente, generato una volta, conservato in un campo gestito e mai pubblicato, è una risposta del tutto valida; una versione più corta non lo è.

Articoli correlati