Funzionamento

Struttura del sistema

Il test della password è composto dalle componenti server Web, dall’apposita applicazione e da una banca dati.

Server Web

Il server Web rappresenta l’interfaccia con l’utente, fornisce il test della password, gestisce le statistiche in una banca data e le presenta sotto forma di pagine Web.

Applicazione per il test della password

Il test della password, implementato in JavaScript, è il cuore dell’applicazione e contribuisce a valutare i punti di forza della password inserita. I programmi JavaScript sono caricati dal browser ed eseguiti sul computer dell’utente. Di conseguenza, non vengono inviati al server né password né altri dati privati dell’utente. Tutti i calcoli sono effettuati sul computer dell’utente. Una volta chiuso il browser i dati vengono cancellati. Per produrre una statistica sulla frequenza delle password forti e deboli, JavaScript invia il risultato al server. L’unica informazione inviata è quella relativa al risultato del test, ovvero se la password è forte o debole.

La verifica della password è descritta alla pagina Processo di verifica .

Banca dati

Nella banca dati sono raccolte informazioni sulla qualità (forte / debole) della password verificata a fini statistici.

In questo caso, sono salvati soltanto i risultati della verifica. Le password non sono mai inviate al server.

Processo di verifica

Il test della password valuta il grado di sicurezza delle password in funzione del probabile numero di tentativi necessari all’hacker per indovinare una password.

In primo luogo, ciò dipende dalla lunghezza della password e dalla serie di caratteri utilizzati. Se la password contiene parole, serie numeriche o sequenze di tastiera conosciute, l’hacker può usarle a suo vantaggio. Invece di provare a inserire lunghe sequenze di caratteri a caso, proverà a utilizzare e a combinare parole provenienti da dizionari, date, sequenze di tastiera o simili. Ciò riduce sensibilmente il numero di tentativi necessari.

Di conseguenza, il test della password cerca le seguenti componenti:

  • Parole dai dizionari italiano, tedesco, francese, romancio e inglese (a seconda della scelta dell’utente)
  • Sequenze di tastiera sulla tastiera svizzera (ad es. «qwertz»)
  • Sequenze numeriche e alfabetiche (ad es. «1234» e «abcd»)
  • Date (ad. es. «03.06.2019»)

Per la ricerca nel vocabolario vengono considerate anche le modifiche di minuscole e maiuscole e la scrittura leet. Di conseguenza, sequenze come ad esempio gaTTo, C@sa e L3tto sono riconosciute come parole.

Il test della password calcola il probabile numero di combinazioni che dovrebbero essere provate per trovare la password. Come detto, prima cerca le parole dei dizionari e le sequenze di tastiera nella password, che poi viene scomposta nelle sue componenti.

processo verifica

Per ogni parola parziale viene calcolato il numero di possibilità che un hacker dovrebbe provare:

  • Per le parole tratte dai dizionari caricati, il numero delle possibilità è uguale alla grandezza del dizionario. Poiché il sistema fa distinzione tra maiuscole e minuscole e riconosce la scrittura leet, la grandezza del dizionario è moltiplicata per 10
  • Per le sequenze di tastiera, di cifre e l’ordine alfabetico il numero corrisponde alle combinazioni possibili
  • Per gli altri caratteri che non fanno parte né di una parola né di una sequenza, il numero corrisponde alle possibilità kn, dove k rappresenta il numero di caratteri possibili e n la lunghezza.

Per valutare il tempo necessario, si presuppone che l’hacker possa effettuare cento miliardi di tentativi al secondo. Ciò corrisponde alla capacità di calcolo di un computer efficiente dotato di software e hardware specializzati.

Una password deve resistere a un attacco per più di un anno per essere considerata forte.

Craccare le password

Il metodo più semplice per craccare una password consiste nel provare tutte le possibilità una dopo l’altra. Questo metodo è molto dispendioso in termini di tempo, poiché il numero delle possibilità aumenta in modo esponenziale con la lunghezza della password.

Siccome la maggior parte delle persone non sceglie a caso la propria password, per decifrare le password, i programmi ambiziosi ricorrono a speciali dizionari di password, che contengono, oltre alle parole abituali di un dizionario, altre catene di caratteri comuni quali sequenze di tastiera o di cifre (ad es. 12345). Inoltre, si deve considerare che spesso le lettere possono essere sostituite da altri caratteri, come ad esempio la E dal numero 3 o la A dal segno @, metodo conosciuto con il nome di leet o l33t. L’utilizzo di dizionari specializzati nelle password e il ricorso alla forma codificata l33t diminuisce il numero di tentativi necessari.

Gli attacchi online e offline sono sferrati con metodologie diverse. Se ad esempio un computer portatile viene rubato, la persona non autorizzata può effettuare una copia del disco rigido e provare miliardi di potenziali password con l’ausilio del proprio computer. Per stimare il tempo necessario, il test della password parte dal presupposto che il criminale è in grado di effettuare cento miliardi di tentativi al secondo.

Anche i servizi online possono essere colpiti da un attacco offline. Se una persona riesce a copiare banche dati di password, è anche in grado di effettuare sul proprio computer un numero elevatissimo di tentativi al secondo.

La sottrazione di banche dati di password è delicata per un altro motivo: queste banche dati contengono spesso altri dati degli utenti, come il loro nome o l’indirizzo e-mail. Visto che molti utenti utilizzano la stessa password per accedere a più servizi, gli hacker provano a entrare in altri servizi sfruttando l’indirizzo e-mail e i dati relativi alla password sottratti.

Cosa fa concretamente il test della password?

Cosa fa

Il test verifica che la password non contenga sequenze di caratteri comuni che l’hacker si aspetta di trovare e che di conseguenza la rendono molto più vulnerabile. Si tratta di parole contenute nel dizionario, sequenze di tastiera, di cifre ecc.

Il tempo di ricerca necessario viene stimato in funzione delle sequenze di caratteri trovate.

I dettagli sul processo di valutazione sono disponibili a questo Processo di verifica.

Cosa non fa

I rischi legati a ricerche mirate non possono essere coperti da un test generico della password. La verifica della password avviene sulla base dei dizionari generali, che comprendono vocaboli comuni nelle diverse lingue. Un hacker che prende di mira una vittima specifica può tenere conto delle informazioni che ha su di essa come la data di nascita, il nome, i dati relativi all’indirizzo o al nucleo familiare, i nomi dei bambini o degli animali domestici ecc.

Allo stesso modo, il test della password non può tenere conto del rischio che la password venga scoperta in altri modi, ad esempio come conseguenza del fatto che l’utente la salva sul computer senza protezione o attraverso lo spionaggio con malware.

Nuovi metodi

Nel test della password dell’incaricato della Incaricata cantonale della protezione dei dati del Cantone di Zurigo sono state implementate le seguenti particolarità:

  • Tutti i testi avvengono localmente nel browser dell’utente. Nessuna password è inviata al server.
  • La verifica avviene in tempo reale. L’utente può rendersi conto di come cambia la valutazione della password a ogni carattere digitato.
  • Sono disponibili dizionari in tedesco svizzero standard, italiano, francese, romancio e inglese, che possono essere selezionati dall’utente.
  • Sono riconosciute anche le modifiche di parole più comuni (leeten / l33t).
  • Sono riconosciute le sequenze di tastiera in base alla tastiera svizzera.
  • Il codice sorgente e il metodo applicato sono accessibili pubblicamente (Github Repository).

Un servizio fornito da