Le funzioni crittografiche di hash sono progettate per funzionare in un’unica direzione: sottoponendo ad esse, in ingresso, un qualunque testo o meglio un qualsiasi messaggio, esse restituiscono in uscita una sorta di “impronta digitale”.
A partire dall'”impronta digitale” ottenuta, però, non è mai possibile risalire al messaggio originale: se ciò avvenisse la funzione crittografica di hash viene dichiarata non sicura e il suo utilizzo deve essere abbandonato. È il caso, ad esempio, dell’algoritmo MD5, da tempo ritenuto insicuro e non più adeguato, ad esempio, per memorizzare le password degli account utente lato server.
Nell’articolo MultiHasher: verificare l’integrità di qualunque file in Windows già nel 2012 descrivevamo le varie funzioni di hash disponibili e la loro utilità.
Gli algoritmi di hashing più solidi devono quindi essere usati per conservare le credenziali di accesso degli utenti da parte dei singoli provider (la mancata adozione delle misure minime di sicurezza può portare a sanzioni importanti ai sensi del Regolamento generale sulla protezione dei dati, alias GDPR) ma l’utilizzo delle funzioni crittografiche di hash è utile anche per accertare l’identità di un file e assicurarsi che non sia stato modificato rispetto alla versione pubblicata dall’autore sul sito web ufficiale.
Verificare l’impronta digitale, il checksum o, appunto, l’hash della ISO di un sistema operativo è importante. Basti pensare che un servizio come VirusTotal dapprima restituisce rapidamente il risultato della scansione antimalware di un file senza che l’utente debba neppure effettuarne l’upload. Il servizio calcola infatti l’hash del file da esaminare quindi cerca nel suo database riferimenti a precedenti scansioni di elementi contraddistinti dalla stessa firma univoca.
Tant’è vero che portandosi in questa pagina quindi inserendo, nella casella di ricerca, la firma SHA-256, SHA-1 o MD5 di qualunque file è possibile trovare il responso delle precedenti scansioni.
Nell’articolo VirusTotal: guida all’uso del servizio per controllare l’identità dei file abbiamo presentato tutte le principali peculiarità di VirusTotal.
Usare PowerShell e CertUtil per calcolare l’hash di qualunque file in Windows
Senza installare o comunque utilizzare applicazioni di terze parti, per calcolare l’hash di qualsiasi file in ambiente Windows si possono usare PowerShell o l’utilità CertUtil.
La procedura da seguire è molto semplice: basta premere la combinazione di tasti Windows+X
quindi scegliere Windows PowerShell.
Al prompt di PowerShell digitare quindi get-filehash
seguito dal nome del file da verificare (percorso completo).
Digitando get-filehash -Algorithm
seguito da SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5 oppure RIPEMD160, è possibile calcolare l’hash del file con l’algoritmo di hashing indicato.
Per leggere completamente il checksum nel caso di alcuni algoritmi, suggeriamo di aggiungere | Format-List
.
In alternativa, si può digitare certutil -hashfile
seguito dal nome del file da controllare e dal riferimento alla funzione di hash da usare (ad esempio SHA512
o SHA256
). Si può ad esempio indicare MD5, SHA1, SHA256, SHA384 oppure SHA512.
La lunga stringa alfanumerica restituita da PowerShell o da CertUtile può essere selezionata e copiata altrove (selezionare e premere il tasto Invio per copiare il checksum nell’area degli appunti di Windows). Confrontando l’impronta digitale calcolata con le informazioni riportate sul sito dei singoli sviluppatori, si può verificare la corrispondenza del contenuto di un file con la versione ufficiale e originale.