La matematica dietro alle password: le passphrase sono davvero più sicure?

La violazione delle password è una piaga da cui è difficile sfuggire. Ecco le indicazioni di un esperto per fare scelte davvero efficaci.

Tecnologie/Scenari

Avete mai pensato di utilizzare una frase come password? Molto è stato scritto negli anni, e alcune abitudini sono state superate grazie a una comprensione maggiore degli strumenti utilizzati dagli attaccanti per decifrare le password. Rispetto al passato, inoltre, sono cambiate le linee guida, e organizzazioni come la NIST oggi raccomandano alle aziende di non imporre modifiche frequenti alle password dei dipendenti e consigliare attivamente l'utilizzo di passphrase più lunghe invece di password molto complesse, ma più brevi.

Il cracking della password

Tradizionalmente, i cyber criminali cercano di impossessarsi delle password indovinandole un carattere alla volta. L’opinione generale è, quindi, che più lunga è una password, più difficile sarà per i computer eseguire una ricerca esauriente (nota anche come attacco brute force).

Da questo punto di vista, le passphrase sembrano più sicure: sono più lunghe quindi, in teoria, offrono una migliore protezione contro gli attacchi; inoltre sono più facili da ricordare, il che dovrebbe impedire il loro riutilizzo su sistemi diversi o la memorizzazione su post-it. Combinando un piccolo numero di parole di uso quotidiano possiamo creare password molte volte più lunghe di quella da 8-9 caratteri che molti di noi ancora utilizzano. Ma è veramente tutto così semplice? Diamo un’occhiata alla matematica.


Gli hash delle password

Le organizzazioni mantengono le password al sicuro memorizzandole come "hash". Un hash è l'output di una funzione che converte i dati di qualsiasi lunghezza in una stringa di lunghezza fissa. Gli hash sono teoricamente impossibili da riconvertire, quindi se un attaccante ruba una password con hash di una vittima designata non ha altra scelta che andare per tentativi inviando parole diverse attraverso la stessa funzione per vedere se ottengono lo stesso hash.

Per trovare la passphrase corretta, gli aggressori devono controllare parola per parola finché non ne trovano una che restituisca lo stesso valore hash di quella che hanno rubato. Anche se sembra noioso, gli strumenti di cracking delle password, come Hashcat, sono in grado di calcolare miliardi di hash al secondo su un singolo computer.

Ricerche esaustive

Dal malware utilizzato per identificare le sequenze di tasti, al formjacking per acquisire le password dei siti Web fino alle tecniche di social engineering come il phishing, sono tantissimi gli strumenti a disposizione degli hacker per ottenere la password di un utente. Ma se tutti questi falliscono, la vecchia e buona tecnica di indovinare la password utilizzando ricerche approfondite potrebbe comunque consentire loro di accedere all'account della vittima.

Sebbene gli "attacchi al dizionario" accelerino il moderno cracking delle password, il modo più completo per eseguire un attacco brute force è, infatti, provare ogni possibile combinazione di caratteri nell'alfabeto della password. Se la password di un utente, ad esempio, utilizza solo lettere minuscole a-z e è lunga 8 caratteri, lo strumento di cracking della password dovrebbe iniziare con aaaaaaaa, quindi provare aaaaaaab, ecc. e proseguire fino a zzzzzzzz identificando in totale 268 combinazioni possibili. Ricordando che i computer funzionano in maniera binaria, questo equivale all'incirca a 238 operazioni necessarie per cercare ogni possibile combinazione di lettere.

Considerando la velocità con cui i computer moderni possono indovinare le password, si ritiene però che sia necessaria una complessità di circa 2128 combinazioni per essere sicuri poiché, come accennato in precedenza, ricerche approfondite troveranno la password corretta. Anche utilizzando un alfabeto esteso, la nostra password di 8 caratteri non sarà sufficientemente sicura, e se aumentiamo la lunghezza da 8 a 12 caratteri, arriviamo a circa 274 combinazioni, ancora molto lontano dalla complessità richiesta.


Passphrase o password?

È necessario fare qualcosa di significativo per aumentare la complessità delle password; ed è qui che le passphrase entrano in gioco. L'idea è utilizzare 3-5 parole reali scelte a caso per formare una frase senza senso, ma che sia più facile da ricordare.

Facendo un esempio, se ci inventiamo una passphrase di 4 parole utilizzando solo lettere minuscole, e un set di 27 caratteri includendo lo spazio, una lunghezza della passphrase di 28 ci porta a 2728 tentativi, equivalente su base binaria a circa 2133: finalmente il numero che cercavamo!

Anche le passphrase però possono essere hackerate; esistono infatti numerosi strumenti che consentono di scoprirle. Il più semplice è fornire a uno strumento di cracking delle password come "Hashcat" un elenco di passphrase predefinite, composto da quasi 22 milioni di frasi conosciute, e disponibile su Github. Un approccio alternativo consiste nell'utilizzare l'algoritmo PRINCE per creare passphrase che vengono quindi inviate a Hashcat per calcolare gli hash.

In base alla legge di Zipf sappiamo che tutte le lingue umane seguono grosso modo la “regola 80/20”: per essere precisi il 18% delle parole più comuni nella nostra lingua costituisce l'80% di tutto ciò che diciamo. Uno strumento di cracking delle password programmato con le prime 1000 parole potrebbe quindi, invece di provare ogni possibile combinazione di caratteri, limitarsi a ogni possibile combinazione di 3-5 frasi di parole nelle sue 1000 parole dizionario. Applicando tale concetto alla lingua inglese per la nostra frase di 4 parole otterremmo un numero massimo di combinazioni che equivale a meno di 260, ovvero molto peggio di una password casuale di 12 caratteri!

La matematica suggerisce quindi che l'uso di passphrase da solo, nella migliore delle ipotesi, non sia migliore delle password complesse e, nella peggiore, possa dimostrarsi ancora meno sicuro!

Vorrei quindi concludere offrendovi quattro semplici suggerimenti da utilizzare, perché, se è vero che il dilemma tra password e passphrase non è risolto, è necessario comprendere che la forza di una determinata password o passphrase non è semplicemente proporzionale alla sua lunghezza, ma dipende fortemente dalla sua entropia (casualità).

  • Non scegliere la password, ma utilizzare gestori di password per creare stringhe di caratteri davvero casuali.
  • Non riutilizzare le password. La violazione dei dati di un sito non dovrebbe mettere a rischio la sicurezza di tutti i propri account online. Ogni sito e servizio devono avere una password univoca.
  • Creare password o passphrase lunghe e casuali. Le credenziali dovrebbero essere password di oltre 16 caratteri scelte completamente a caso (idealmente da un gestore di password) o passphrase di 4-5 parole che utilizzano la sostituzione dei caratteri (linguaggio l33t) e/o interruzioni nelle parole.
  • Affidarsi all'autenticazione multifattore (MFA). A volte la sottrazione di una password è inevitabile. La presenza di un secondo fattore di autenticazione, come un codice a tempo su un'app per lo smartphone, può impedire a chi attacca di accedere all’account anche se è in possesso della password.

David Warburto è Principal Threat Research Evangelist (EMEA) di F5

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di SecurityOpenLab.it iscriviti alla nostra Newsletter gratuita.

Notizie correlate

Speciali Tutti gli speciali

Speciale

Threat Intelligence

Speciale

Cloud Security

Speciale

Cybertech Europe 2022

Speciale

Backup e protezione dei dati

Speciale

Cyber security: dentro o fuori?

Calendario Tutto

Ott 12
Business Continuity in IperConvergenza per l’Edge e la PMI
Ott 18
IT CON 2022 - Milano
Ott 19
IDC Future of Data 2022
Ott 20
SAP NOW 2022
Ott 20
Dell Technologies Forum 2022
Ott 20
IT CON 2022 - Roma
Nov 08
Red Hat Summit Connect - Roma
Nov 30
Red Hat Open Source Day - Milano

Iscriviti alla nostra newsletter

Soluzioni B2B per il Mercato delle Imprese e per la Pubblica Amministrazione

Iscriviti alla newsletter