Bruteforce: La tua password è realmente sicura?

Bu1tre/ gennaio 20, 2017/ Security/ 2 comments

Molte persone non si pongono il problema dei requisiti minimi che deve rispettare una password.
Un bruteforce con dizionario – tra poco vedremo di cosa si tratta – riuscirebbe a trovare una password come abcd1234 in circa 3 secondi.

In quest’articolo vi spiegheremo come funziona un attacco bruteforce e come scegliere una password che non sia vulnerabile ad esso.

Cosa si intende per bruteforce

Il bruteforce è un metodo che utilizza un algoritmo e provando varie combinazioni tenta di trovare una password.

Questo tipo di attacco viene utilizzato come ultimissima risorsa, poiché può richiedere davvero molto tempo nel caso di eventuali password che seguano gli standard.
Per ridurre il tempo di esecuzione si può anche distribuire l’attacco su più macchine.

Esistono due tipi di bruteforce:

  1. Con dizionario.
  2. Esaustivo.

I bruteforce possono essere personalizzati, se abbiamo delle conoscenze di programmazione, in modo da riuscire a ridurre notevolmente il tempo impiegato dal programma per scovare la password.

Negli anni molte persone hanno utilizzato enormi botnet, per riuscire ad avere una grande potenza di calcolo.
Suddividendo parallelamente il lavoro tra i vari pc si può scovare una password che normalmente richiederebbe troppi anni, in pochissimo tempo.

Bruteforce con dizionario

L’attacco con dizionario non è esattamente l’ultima speranza, poiché non è considerato un attacco bruteforce definitivo, in quanto andrà a sfruttare una lista di possibili combinazioni, precedentemente selezionate.

Durante la creazione di questa lista, o dizionario, sceglieremo dopo aver studiato accuratamente la vittima, le password che ci sembreranno più probabili.
Ovviamente nella lista da utilizzare ci dovranno essere anche parole comuni come casafamigliacane, ecc
Per rendere più funzionale un attacco con dizionario si devono anche combinare tra loro i vari elementi della lista.

Supponiamo di essere a conoscenza che il target dell’attacco sia un tifoso della Roma.
Questo è un esempio delle possibili combinazioni:

  • FrancescoTotti
  • TottiFrancesco
  • Francesco10
  • Totti10
  • FTotti1
  • FTotti10

Le probabilità di successo di un attacco con dizionario sono relativamente scarse, poiché non si andranno a provare tutte le possibili combinazioni ma solo le più comuni.
Ovviamente se la password corretta non rientra nella nostra lista l’attacco bruteforce non andrà a buon fine.
Se non abbiamo idea di come creare una lista si possono sempre scaricare liste di password, molto usate, da internet ma saranno solo password molto generiche.

Bruteforce esaustivo

Differentemente dall’attacco con dizionario, l’esaustivo è considerato definitivo in quanto andrà a combinare tutti i possibili caratteri, in tutte le possibili combinazioni in maniera sequenziale.
«Cosa cazzo vuol dire?»

Supponiamo di dover trovare una password di soli numeri senza conoscerne la lunghezza.
Inizialmente l’algoritmo proverà combinazioni di una sola cifra, poi di due, poi di tre e così via.

Esempio con una sola cifra: 0, 1, 2, 3, 4…9
Esempio con due cifre: 00, 01, 02, 03…99
Esempio con tre cifre: 000, 001, 002…999

L’algoritmo utilizza dei calcoli matematici racchiusi nel calcolo combinatorio quale la disposizione con ripetizione.

Per sapere quante sono le possibili combinazioni dobbiamo prendere il numero dei caratteri utilizzabili per poi elevarlo alla lunghezza della password.
Avendo una combinazione di 4 sole cifre (quindi 10 elementi utilizzabili) dobbiamo svolgere la seguente operazione:

10^4

Più è vasta la tipologia di caratteri utilizzati (minuscole, maiuscole, caratteri speciali e numeri), più è lunga la password in questione, più sarà il tempo necessario per l’attacco.

Ipotizziamo di dover trovare una password che utilizzi almeno un carattere per ogni tipologia e che abbia una lunghezza di almeno 8 caratteri, le combinazioni che possono essere generate sono  66342043000000000000000.

Una WPA2, per esempio, utilizza come minimo 95^8 possibili combinazioni, perché sono utilizzabili 95 caratteri differenti ed una lunghezza minima di 8.

Utilizzando un pc con un normale processore si possono provare circa 20000 combinazioni al secondo.
Facendo un breve calcolo ci accorgiamo che potremmo impiegare fino a 106645516653 anni per trovare la password corretta.

Scegliere una password sicura

Una password viene considerata sicura quando il bruteforce richiede un tempo superiore rispetto alla vita media di una persona.

Una password per essere al sicuro da possibili bruteforce deve:

  • Essere lunga almeno 8 caratteri.
  • Utilizzare almeno una maiuscola.
  • Utilizzare almeno una minuscola.
  • Utilizzare almeno una cifra.
  • Utilizzare almeno un carattere speciale.
  • Evitare due caratteri uguali in successione.

Ovviamente se si usa comunque una password abbastanza significativa per la persona o relativamente generica, un attaccante astuto ed esperto potrebbe trovare comunque la nostra password in poco tempo.

Conclusione

Il fine di Howorks è quello di informare, non mi assumo nessuna responsabilità dell’uso che farete delle informazioni contenute in questo articolo.
Per qualsiasi dubbio potete contattarci utilizzando i commenti o le nostre pagine social.

2 Comments

  1. fate una guida sull’utilizzo della GPU applicata ai bruteforce 😀
    -Beavy.exe

    1. Abbiamo in programmazione altri articoli, in seguito prenderemo in considerazione il tuo consiglio.

Facci sapere cosa ne pensi con un commento!