La password come prima linea di difesa

La password resta lo strumento più diffuso per dimostrare di essere chi si dichiara di essere. Proprio perché è ovunque, è anche il punto debole più sfruttato: una password indovinata, rubata o riutilizzata apre l’accesso a un account senza bisogno di alcun attacco sofisticato. Capire cosa rende una password davvero solida, e come i siti la conservano dietro le quinte, aiuta a proteggere i propri account in modo concreto.

Conviene chiarire subito un punto controintuitivo: la sicurezza di una password non dipende tanto dalla presenza di simboli strani o di lettere maiuscole, quanto dalla sua lunghezza e dall’imprevedibilità. Le regole tradizionali che impongono un carattere speciale e un numero hanno prodotto, paradossalmente, password corte e difficili da ricordare ma facili da indovinare per un computer.

Perché la lunghezza conta più della complessità

La forza di una password si misura in termini di quante combinazioni un attaccante deve provare per indovinarla. Questo valore, chiamato entropia, cresce molto più rapidamente aggiungendo caratteri che aggiungendo tipi di carattere.

Un esempio rende l’idea. Una password di otto caratteri che mescola maiuscole, minuscole, numeri e simboli può sembrare solida, ma per un sistema di calcolo moderno lo spazio delle possibilità è comunque limitato e attaccabile. Una frase di quattro o cinque parole comuni scelte a caso, anche se fatta di sole lettere minuscole, è molto più lunga e genera un numero di combinazioni enormemente superiore, restando al tempo stesso facile da ricordare.

È il principio delle passphrase: invece di “P@ss1!”, che è corta e segue schemi prevedibili, conviene qualcosa come una sequenza di parole non collegate tra loro. La condizione fondamentale è che le parole siano scelte in modo realmente casuale, non tratte da una citazione famosa o legate tra loro da un senso logico, perché in quel caso la prevedibilità annulla il vantaggio della lunghezza.

Le linee guida più aggiornate riflettono questo cambio di prospettiva: privilegiano la lunghezza minima, scoraggiano l’obbligo di simboli imposti per forza e raccomandano di bloccare le password già comparse in violazioni note, perché sono le prime che un attaccante prova.

Gli attacchi alle password

Capire come le password vengono violate aiuta a scegliere difese efficaci.

Il riempimento di credenziali (credential stuffing) sfrutta password riutilizzate: chi ottiene un elenco di coppie email e password da una violazione le prova automaticamente su molti altri servizi. È il motivo per cui riutilizzare la stessa password ovunque è così pericoloso, come spiega l’articolo sulle violazioni di dati.

L’attacco a dizionario prova parole comuni, varianti prevedibili e password note. L’attacco a forza bruta prova invece tutte le combinazioni possibili, partendo dalle più corte: ecco perché ogni carattere aggiunto rende il compito esponenzialmente più oneroso. Esiste infine il furto diretto della password, ad esempio tramite phishing, dove la vittima la digita su un sito falso.

Come i siti conservano le password: hashing e salt

Un sito gestito correttamente non conserva mai la password così com’è. Se lo facesse, chiunque violasse il database, o anche solo vi avesse accesso dall’interno, leggerebbe immediatamente tutte le credenziali. Al loro posto viene conservata un’impronta crittografica della password, prodotta da una funzione hash.

Una funzione hash trasforma un input di qualsiasi lunghezza in una stringa di lunghezza fissa, in modo deterministico ma non reversibile: dallo stesso input si ottiene sempre la stessa impronta, ma dall’impronta non si può tornare all’input. Quando l’utente accede, il sito calcola l’impronta della password digitata e la confronta con quella memorizzata. Se coincidono, l’accesso è concesso, senza che la password in chiaro sia mai stata conservata. Il funzionamento di queste primitive è descritto nella sezione dedicata alla crittografia.

C’è però un’insidia. Se due utenti scelgono la stessa password, otterrebbero la stessa impronta, e un attaccante potrebbe precalcolare le impronte delle password più comuni e confrontarle (le cosiddette tabelle precompilate). Per impedirlo si usa il salt: una stringa casuale, diversa per ogni utente, che viene aggiunta alla password prima di calcolarne l’impronta. Così la stessa password produce impronte diverse per utenti diversi, e le tabelle precalcolate diventano inutili.

A questo si aggiunge un ultimo accorgimento. Le funzioni hash generiche sono progettate per essere veloci, ma per le password questo è un difetto, perché permette di provare miliardi di tentativi al secondo. Per questo motivo si usano funzioni di derivazione pensate apposta, deliberatamente lente e costose in termini di memoria, che rallentano enormemente gli attacchi pur restando istantanee per una singola verifica legittima. Conoscere questo meccanismo spiega perché, dopo una violazione, le password protette in questo modo restano molto difficili da recuperare, mentre quelle conservate in chiaro o con algoritmi obsoleti sono immediatamente esposte.

Il gestore di password

Se ogni account deve avere una password lunga, casuale e diversa dalle altre, è semplicemente impossibile ricordarle tutte. La soluzione pratica è il gestore di password (password manager), un’applicazione che genera password forti, le conserva in un archivio cifrato e le inserisce automaticamente nei siti corretti.

Il funzionamento è semplice da usare ma solido nei principi. L’utente ricorda una sola password principale, che protegge l’intero archivio. Tutte le altre vengono generate dal gestore, sono uniche per ogni servizio e l’utente non ha bisogno di conoscerle. L’archivio è cifrato, quindi anche se il file finisse nelle mani sbagliate non sarebbe leggibile senza la password principale.

I vantaggi sono notevoli. Si elimina il riutilizzo delle password, che è la causa principale dei danni a catena dopo una violazione. Si usano password lunghe e casuali ovunque, senza sforzo di memoria. E poiché il gestore inserisce le credenziali solo sul sito corretto, offre anche una protezione indiretta contro il phishing: se il dominio non corrisponde, le credenziali non vengono compilate, e questo è un segnale d’allarme prezioso. La sola accortezza è proteggere bene la password principale e, dove possibile, abbinarla a un secondo fattore.

L’autenticazione a due fattori

Per quanto sia forte, una password resta un singolo segreto: se viene rubata, l’account è esposto. L’autenticazione a due fattori (2FA) aggiunge un secondo elemento indipendente, in modo che la sola password non basti più.

I fattori si dividono per natura: qualcosa che si conosce (la password), qualcosa che si possiede (il telefono, una chiave fisica) e qualcosa che si è (un’impronta digitale, il volto). Combinarne due appartenenti a categorie diverse aumenta molto la sicurezza, perché un attaccante dovrebbe procurarseli entrambi.

Le forme più comuni hanno livelli di solidità diversi. Il codice via SMS è meglio di niente, ma è il più debole, perché esposto a tecniche di dirottamento del numero. I codici temporanei generati da un’app dedicata sono più sicuri, perché non transitano su una rete intercettabile. Le chiavi di sicurezza fisiche offrono la protezione migliore, in particolare contro il phishing, perché verificano crittograficamente l’identità del sito e non possono essere ingannate da una pagina falsa.

L’impatto pratico è notevole. Anche se la password viene rubata in una violazione o consegnata per errore su un sito falso, senza il secondo fattore l’accesso resta bloccato. Attivare la 2FA almeno sugli account critici, a cominciare dalla posta elettronica e dai servizi finanziari, è una delle misure a più alto rendimento in assoluto.

In sintesi

Una buona strategia per le password si regge su pochi principi chiari. Preferire la lunghezza e l’imprevedibilità alla complessità forzata. Usare una password diversa per ogni servizio e affidarne la gestione a un gestore di password. Attivare l’autenticazione a due fattori sugli account importanti. E sapere che, dal lato dei siti, la conservazione corretta avviene tramite impronte calcolate con salt e funzioni di derivazione lente, non in chiaro. Messe insieme, queste abitudini rendono i propri account un bersaglio molto più difficile e i danni di un’eventuale violazione molto più contenuti.