Una breve nota – questo articolo è circa la teoria di come decifrare le password. Capire come i criminali informatici eseguono attacchi è estremamente importante per capire come proteggere i sistemi contro questi tipi di attacchi.

Il tentativo di hackerare un sistema che non possiedi è probabilmente illegale nella tua giurisdizione (inoltre l’hacking dei tuoi sistemi potrebbe violare qualsiasi garanzia per quel prodotto).

Iniziamo con le basi. Che cos’è un attacco di forza bruta?,

Questo tipo di attacco comporta ripetutamente il tentativo di accedere come utente provando ogni possibile combinazione di lettere, numeri e caratteri (utilizzando strumenti automatici).

Questo può essere fatto online (quindi in tempo reale, provando continuamente diverse combinazioni di nome utente/password su account come social media o siti bancari) o offline (ad esempio se hai ottenuto una serie di password con hash e stai cercando di craccarle offline).

Offline non è sempre possibile (può essere difficile ottenere una serie di password con hash), ma è molto meno rumoroso., Questo perché un team di sicurezza probabilmente noterà molti, molti account di accesso falliti dallo stesso account, ma se riesci a decifrare la password offline, non avrai un record di tentativi di accesso falliti.

Questo è relativamente facile con una password breve. Diventa esponenzialmente più difficile con una password più lunga a causa del gran numero di possibilità.,

Ad esempio, se sai che qualcuno sta usando una password lunga 5 caratteri, composta solo da lettere minuscole, il numero totale di password possibili è 26^5 (26 lettere possibili tra cui scegliere per la prima lettera, 26 possibili scelte per la seconda lettera, ecc.), o 11.881.376 combinazioni possibili.

Ma se qualcuno sta usando una password di 11 caratteri, solo di lettere minuscole, il numero totale di password possibili è 26 ^11, o 3.670.344.486.987.776 possibili password.,

Quando si aggiungono lettere maiuscole, caratteri speciali e numeri, questo diventa ancora più difficile e richiede tempo per decifrare. Più password possibili ci sono, più è difficile per qualcuno accedere con successo con un attacco di forza bruta.

Come proteggersi

Questo tipo di attacco può essere difeso in un paio di modi diversi. Innanzitutto, è possibile utilizzare password sufficientemente lunghe e complesse (almeno 15 caratteri). È inoltre possibile utilizzare password univoche per ogni account (utilizzare un gestore di password!) per ridurre il pericolo di violazioni dei dati.,

Un team di sicurezza può bloccare un account dopo un certo numero di tentativi di accesso falliti. Possono anche forzare un metodo secondario di verifica come, o utilizzare l’autenticazione a 2 fattori (2FA) che richiede un secondo codice (SMS o e-mail, basato su app o basato su chiave hardware).

Ecco un articolo su come eseguire un attacco di forza bruta.

Come si può rompere le password più velocemente?

Un attacco dizionario comporta il tentativo di accedere ripetutamente provando un numero di combinazioni incluse in un ‘dizionario’ precompilato, o un elenco di combinazioni.,

Questo di solito è più veloce di un attacco di forza bruta perché le combinazioni di lettere e numeri sono già state calcolate, risparmiando tempo e potenza di calcolo.

Ma se la password è sufficientemente complessa (ad esempio 1098324ukjbfnsdfsnej) e non appare nel ‘dizionario’ (l’elenco precompilato di combinazioni da cui stai lavorando), l’attacco non funzionerà.

È spesso successo perché, spesso quando le persone scelgono le password, scelgono parole comuni o variazioni su quelle parole (ad esempio, ‘password’ o ‘p@SSword’).,

Un hacker potrebbe anche usare questo tipo di attacco quando conosce o indovina una parte della password (ad esempio, il nome di un cane, i compleanni dei bambini o un anniversario – informazioni che un hacker può trovare sulle pagine dei social media o altre risorse open source).

Misure di protezione simili a quelle sopra descritte contro gli attacchi di forza bruta possono impedire che questi tipi di attacchi abbiano successo.

Cosa succede se hai già un elenco di password con hash?,

Le password sono memorizzate nel file/etc / shadow per Linux e C:\Windows\System32\config file per Windows (che non sono disponibili mentre il sistema operativo è avviato).

Se sei riuscito a ottenere questo file o se hai ottenuto un hash della password in un modo diverso, ad esempio annusando il traffico sulla rete, puoi provare a cracking della password “offline”.

Mentre gli attacchi di cui sopra richiedono di provare ripetutamente ad effettuare il login, se si dispone di un elenco di password con hash, è possibile provare a cracking sul proprio computer, senza disattivare gli avvisi generati da ripetuti tentativi di accesso falliti., Quindi provi ad accedere solo una volta, dopo aver decifrato con successo la password (e quindi non c’è alcun tentativo di accesso fallito).

È possibile utilizzare attacchi di forza bruta o attacchi dizionario contro i file hash, e può avere successo a seconda di quanto forte è l’hash.

Aspetta un minuto-cos’è l’hashing?

35D4FFEF6EF231D998C6046764BB935D

Riconoscere questo messaggio? Dice ‘Ciao il mio nome è megan’

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Questo è il primo paragrafo di questo articolo. Sì, sembra una sciocchezza, ma in realtà è un “hash”.,

Una funzione hash consente a un computer di inserire una stringa (una combinazione di lettere, numeri e simboli), prendere quella stringa, mescolarla e produrre una stringa di lunghezza fissa. Ecco perché entrambe le stringhe sopra sono della stessa lunghezza, anche se gli input delle stringhe erano di lunghezze molto diverse.

Gli hash possono essere creati da quasi tutti i contenuti digitali. Fondamentalmente tutto il contenuto digitale può essere ridotto a binario, o una serie di 0 e 1. Pertanto, tutti i contenuti digitali (immagini, documenti, ecc.) può essere hash.,

Esistono molte funzioni di hashing diverse, alcune delle quali sono più sicure di altre. Gli hash sopra sono stati generati con MD5 (MD sta per “Message Digest”). Diverse funzioni differiscono anche nella lunghezza dell’hash che producono.

Lo stesso contenuto nella stessa funzione hash produrrà sempre lo stesso hash. Tuttavia, anche una piccola modifica altererà completamente l’hash. Ad esempio,

2FF5E24F6735B7564CAE7020B41C80F1

È l’hash per ‘Ciao il mio nome è Megan’ Solo capitalizzando la M in Megan ha completamente cambiato l’hash dall’alto.,

Gli hash sono anche funzioni unidirezionali (nel senso che non possono essere invertiti). Ciò significa che gli hash (unici e unidirezionali) possono essere utilizzati come tipo di impronta digitale per i contenuti.

Qual è un esempio di come vengono utilizzati gli hash?

Gli hash possono essere utilizzati come verifica che un messaggio non sia stato modificato.

Quando si invia un’e-mail, ad esempio, è possibile eseguire l’hash dell’intera e-mail e inviare anche l’hash. Quindi il destinatario può eseguire il messaggio ricevuto tramite la stessa funzione hash per verificare se il messaggio è stato manomesso in transito., Se i due hash corrispondono, il messaggio non è stato modificato. Se non corrispondono, il messaggio è stato modificato.

Inoltre, le password sono solitamente hash quando vengono memorizzate. Quando un utente inserisce la propria password, il computer calcola il valore hash e lo confronta con il valore hash memorizzato. In questo modo il computer non memorizza le password in chiaro (quindi qualche hacker ficcanaso non può rubarle!).

Se qualcuno è in grado di rubare il file della password, i dati sono inutili perché la funzione non può essere invertita (anche se ci sono modi, come le tabelle arcobaleno, per capire quale testo in chiaro crea l’hash noto).,

Qual è il problema con gli hash?

Se un hash può prendere dati di qualsiasi lunghezza o contenuto, ci sono possibilità illimitate per i dati che possono essere hash.

Poiché un hash converte questo testo in un contenuto di lunghezza fissa (ad esempio, 32 caratteri), esiste un numero finito di combinazioni per un hash. Si tratta di un gran numero di possibilità, ma non infinite.

Alla fine due diversi set di dati produrranno lo stesso valore hash. Questo è chiamato una collisione.,

Se hai un hash e stai cercando di esaminare ogni singolo valore di testo in chiaro possibile per trovare il testo in chiaro che corrisponde al tuo hash, sarà un processo molto lungo e molto difficile.

Tuttavia, cosa succede se non ti interessa quali due hash si scontrano?

Questo è chiamato il ‘problema di compleanno’ in matematica. In una classe di 23 studenti, la probabilità che qualcuno abbia un compleanno in un giorno specifico è di circa il 7%, ma la probabilità che due persone condividano lo stesso compleanno è di circa il 50%.,

Lo stesso tipo di analisi può essere applicato alle funzioni hash per trovare due hash che corrispondono (invece di un hash specifico che corrisponde all’altro).

Per evitare ciò, è possibile utilizzare funzioni hash più lunghe come SHA3, dove la possibilità di collisioni è inferiore.

Puoi provare a generare le tue funzioni hash per SHA3 qui e MD5 qui.

Puoi provare a forzare gli hash, ma ci vuole molto tempo. Il modo più veloce per farlo è usare tabelle arcobaleno pre-calcolate (che sono simili agli attacchi del dizionario).

Sembra davvero facile da ottenere violato., Dovrei preoccuparmi?

La cosa più importante da ricordare sull’hacking è che nessuno vuole fare più lavoro di quello che deve fare. Ad esempio, la forzatura bruta degli hash può richiedere molto tempo e difficoltà. Se c’è un modo più semplice per ottenere la password, questo è probabilmente ciò che un attore nefasto proverà prima.

Ciò significa che abilitare le migliori pratiche di sicurezza informatica di base è probabilmente il modo più semplice per evitare di essere violato. Infatti, Microsoft ha recentemente riferito che solo abilitando 2FA finirà per bloccare il 99,9% degli attacchi automatici.,

Additional Reading:

Popular password cracking tools