Cosa succede quando davanti ad una schermata di login ci viene chiesto di digitare la nostra password?
Capita di ricevere avvisi che ci avvertono di tentativi di intrusione nei nostri account oppure di ascoltare del VIP che si è visto trafugare i dati dai propri profili social. Esistono molte tecniche per arrivare ad un risultato simile, con questo articolo cominciamo un breve viaggio alla fine del quale la nostra consapevolezza informatica sarà maggiore perché avremo imparato come fanno gli hacker a violare le password dei nostri account e come difenderci.
Benché possa far sorridere ci sono metodi molto banali per rubare una password che non richiedono nessuna capacità informatica. Origliare, leggere un post-it attaccato al monitor, rovistare tra la spazzatura. Altri metodi richiedono un approccio di Social Engineering come, ad esempio, creare un problema ad un computer aziendale e poi spacciarsi per un tecnico che deve risolverlo. Oppure si possono comprare e installare sul computer preso di mira, dispositivi o programmi, chiamati keylogger, che registrano tutto quello che viene digitato sulla tastiera.
Queste tecniche sono spesso usate dai professionisti dell’hacking e permettono di ottenere di norma la password dell’utente preso di mira, ma quando ad essere attaccato è un sito che conserva centinaia, se non migliaia, di credenziali di accesso, le nostre password per quanto forti, lunghe e complicate sono irrimediabilmente compromesse?
La risposta è no!
Contrariamente a quanto possiamo immaginare oggi i siti e i computer non conservano le nostre password. Quello che conservano è un codice alfanumerico che si chiama hash.
L’hash è il risultato di un algoritmo che riceve la nostra password e la sottopone a complessi calcoli matematici fornendo un risultato di lunghezza predefinita, come dimostra l’esempio qui sotto:
Password: abc123 >>> algoritmo >>> Output: e99a18c428cb38d5f260853678922e03
Come si può notare con questo metodo un hacker non avrebbe a disposizione subito le chiavi per il nostro account. Dovrebbe sudarselo perché l’uso di questi algoritmi è dettato da altre due caratteristiche interessanti:
- Il Risultato è irreversibile
La crittografia classica prevede che un messaggio venga criptato dal mittente e poi decriptato dal destinatario rendendo “impossibile” a chiunque lo intercetti la lettura del contenuto. L’esempio più semplice in assoluto è il cifrario di Cesare che cripta il messaggio da inviare (Plain Text) spostando in avanti di 3 il valore di ogni lettera per ottenere il messaggio criptato (Chiper Text).
Plain Text: Ciao >>> Caesar Cipher(+3) >>> Chiper Text: Fldr
Chi riceve il messaggio sottrarrà 3 al valore del testo crittografato per ottenere il messaggio originale.
Chiper Text: Fldr >>> Caesar Cipher(-3) >>> Plain Text: Ciao
Negli algoritmi di hash questa operazione non è possibile, quindi la prima caratteristica degli algoritmi di hash è l’irreversibilità del risultato, ossia non esiste modo da un messaggio criptato di ottenere il testo originale.
Chiper Text: E99a18c428cb38d5f260853678922e03 >>> Operazione inversa >>> Plain Text: 17a3b3b654358d7530c039c3f7272677
- Resistenza alle collisioni
Ci si potrebbe chiedere quanto siano affidabili i risultati di questi calcoli matematici. Sappiamo che:
8 = 4 + 2 x 2
8 = 4 + 4
8 = 2 x 3 + 2
Uno stesso risultato può essere ottenuto con operazioni diverse. Come possiamo essere certi che la mia password elaborata dall’algoritmo, non dia un risultato uguale a quella di un altro utente?
In parole tecniche come possiamo essere certi che non si verifichi quella che in crittografia è chiamata “Collisione”, ossia lo stesso risultato prodotto da due messaggi diversi?
Se questo accadesse, un utente potrebbe entrare nel nostro account digitando la sua password, non la nostra e avremmo un enorme problema.
In realtà in termini statistici si ritiene altamente improbabile che un algoritmo certificato produca una collisione. Ci vorrebbero un numero inimmaginabile di combinazioni salvate sullo stesso computer perché due risultati possano essere uguali, parliamo di una quantità nell’ordine di 1 seguito da 24 zeri:
1.000.000.000.000.000.000.000.000
Decisamente improbabile, non impossibile, ma molto improbabile.
E’ interessante sapere che queste caratteristiche rendono gli algoritmi di hash utili anche come “sigillo” per marcare i file e assicurare che non siano stati modificati.
Torniamo davanti alla schermata di login di un sito.
Ci verrà chiesto di digitare prima il nostro username e poi la nostra password. Con questi dati il server calcolerà il valore di hash e lo confronterà con quella salvato nel nostro record (la registrazione dei nostri dati) sul proprio database.
Se i due valori saranno identici, allora ci aprirà la porta, oppure come nel caso dei sistemi di autenticazione a due fattori saremo avviati ad una seconda fase dove verrà applicato un meccanismo simile, ma utilizzando un dato temporaneo, tipicamente un codice numerico, inviato ad un altro dispositivo.
Ora sapete come vengono trattate le vostre password. Nel prossimo articolo spiegheremo come gli hacker possono “scoprirle“.
Se vi piace il progetto “Passo Uno Security”, ricordate di visitare i nostri profili social, aggiungere “mi piace” e condividere i miei post.
Note: Per gli appassionati di enigmistica lascio il link ad un sito molto interessante che raccoglie molti sistemi di cifratura con i quali giocare
4 commenti su “Hacker a caccia di password: parte 1°”
I commenti sono chiusi.