Oggi parleremo di come vengono conservate le nostre password quando ci registriamo ad un sito o ad un servizio online.
Nel momento in cui ci registriamo, le nostre informazioni nome utente e password devono essere conservate da qualche parte per far sì che quando vogliamo accedere al sito/servizio il sistema si "ricordi" di noi.
Il luogo virtuale preposto a conservare queste informazioni è il database: in pratica un archivio virtuale dove sono conservati dei dati.
Questo archivio è suddiviso in sottosezioni chiamate "tavole" e ogni tavola può contenere informazioni diverse (articoli, una serie di prodotti in vendita, un'insieme di sedi sul territorio etc.). Se il sito ha un sistema di login, allora ci sarà una tavola dove sono conservati nome utente e password di tutti gli utenti.
I dati con cui ci siamo registrati possono essere (teoricamente) conservati nella tavola in 3 modi:
In chiaro ovvero ricopiati sulla tavola proprio come sono stati scritti - es l'utente "Tizio" con password "caio" viene copiato sulla tabella senza criptare nulla. Questa scelta è molto pericolosa e risulta una cattivissima pratica.
Tramite crittografia con chiave con questo sistema la password utilizzata viene criptata e quindi la password "caio" nel database apparirà come una lunga serie incomprensibile di lettere e numeri che potrà essere decriptata tramite una chiave. Questo sistema non è ancora ottimale perché se esiste una chiave e qualcuno la dovesse trovare i nostri dati potrebbero essere rubati.
Tramite crittografia con Hash in questo caso la nostra password viene trasformata in hash ovvero una serie di lettere, numeri e caratteri speciali che non possono riconvertiti nella forma originale. Esistono moltissimi algoritmi per trasformare in hash la nostra password, non esiste un solo standard.
La formula dell'hash è sicuramente la più sicura (soprattutto se vengono utilizzati più algoritmi per creare un sistema a scatole cinesi) tuttavia anche questo sistema ha delle vulnerabilità rispetto agli attacchi "brute force" (e per questo dobbiamo applicare le regole per una password sicura).
Una domanda che sorge spontanea: se la mia password viene crittata irreversibilmente in modo che neanche il proprietario del database possa accedere alla mia password, come fa il sistema a riconoscermi?
Molto semplice: quando inseriamo i dati per compiere il login, il sistema trasforma con il medesimo algoritmo la password appena immessa in un hash.
Ora non bisogna far altro che vedere se la hash appena generata combacia perfettamente con quella memorizzata quando ci siamo registrati, se nome utente e password combaciano allora il login si concluderà con successo, altrimenti riceveremo un messaggio di errore.
DICO Sì - progetto finanziato dal Ministero dello Sviluppo Economico nell’ambito delle Iniziative a vantaggio dei consumatori, di cui all’articolo 148, comma 1, della legge 23 dicembre 2000, n. 388. DD 26 ottobre 2021.