mercoledì, Aprile 24, 2024
GuideSicurezza

HASH di un file, e sai cosa scarichi! Ma non solo…

In un recente articolo ho parlato di come verificare un sito prima di aprirlo, per evitare che siti infetti, a loro volta, infettino il nostro computer. Altra cosa molto importante per la nostra sicurezza è quella di sapere, quando scarichiamo qualcosa, che quello che abbiamo scaricato sia davvero quello che vogliamo, che sia quindi integro ed autentico.

Durante le fasi di download, copia, e trasferimento, può succedere ad un file che si danneggi, ma anche che qulcuno possa alterarlo per metterci del malware.

Al di là che il consiglio che vi do è quello di fare sempre una scansione antivirus appena scaricate qualsiasi file prima di eseguirlo (o con l’antivirus installato in locale o con un antivirus online o meglio ancora con tutti e due), vedremo ora come essere certi che quanto abbiamo tra le mani sia proprio quanto voluto. Impariamo quindi a calcolare “l’impronta digitale” che identifica unicamente quel file (come l’impronta digitale identifica unicamente una persona), andiamo cioè a calcolarne l’HASH (detto anche CHECKSUM).

L’HASH è una funzione matematica che permette, dato in input un file o una sequenza arbitraria di byte, di ottenere una stringa di caratteri di lunghezza predefinita. La stringa di caratteri è univoca per ogni file, ed è quasi impossibile trovare due file diversi che abbiano lo stesso HASH così come è anche impossibile modificare un file senza che si modifichi il suo HASH.

E’ ovvio che ha senso calcolare l’HASH dei file, in un’ottica di download affidabile degli stessi, solo se abbiamo un HASH di paragone, fornito dal produttore del software ed indicato sul sito dove effettuiamo il download. Questo significa che il produttore (affidabile) ci indica qual’è l’impronta digitale del suo file, ed una volta che lo avremo scaricato sarà nostra cura calcolarne l’impronta e confrotarla con quanto indicato sul sito. Se è identica saremo certi che il file è integro ed è proprio quello voluto.

Foto1

La foto in alto rappresenta la pagina web dove poter scaricare il sofware ad uso forense DEFT Linux. Il produttore indica a fianco del file “DEFT 8.2.iso”,  anche il tipo di Hash che ha calcolato (md5) ed il suo valore (8a70f61507251355153cbe94809323dd), che ho sottolineato in rosso. Ecco, quella è l’impronta di quel file. Dopo averlo scaricato anche noi dovremmo trovare la stessa impronta per essere certi che il file sia integro rispetto a quello originario. Purtroppo c’è da dire che la pratica di indicare l’HASH dei file sui siti non è molto frequente. Al giorno d’oggi viene indicato l’HASH per lo più per file grossi (es immagini .iso) e per quelli di una certa importanza. Certamente sarebbe utile che ogni pagina web indicasse per ogni sofware da poter scaricare il proprio valore di HASH. Alcuni siti forniscono insieme al software da scaricare anche un piccolo file in cui è riportato il valore dell’HASH.

Gli algoritmi che permettono di calcolare l’HASH sono diversi. I due algoritmi più comuni sono l’MD5 (come visto nella foto) che produce un output a 128 bit e lo SHA1 che produce un output a 160 bit. Ma esistono anche lo SHA224, SHA256, SHA512, etc … E’ ovvio che per poter confrontare due HASH l’algoritmo utilizzato deve essere lo stesso.

Vediamo finalmente come poter calcolare il valore HASH di un file/testo …

E’ importante qui comprendere il concetto che sta dietro al calcolo dell’HASH e non quale programma è utilizzato per produrlo.

Infatti come per ogni cosa, anche per il calcolo dell’HASH, esistono moltissimi programmi, anche gratuiti, addirittura che fanno la comparazione automatica tra due o più valori di HASH. Io mi limito a mostrarvene uno per windows e ad illustrare i comandi da terminale per OS X e Linux. Una volta capito il concetto però potrete usare il programma, tra i molti che ci sono, che più vi aggrada.

HASHCALC 2.02

Hashcalc è un programmino gratuito per Windows (che funziona, al momento, da Windows 95 a Windows 8.1) che si scarica tranquillamente da qui.

Foto2Arrivati sul sito del produttore, basta premere sulla scritta evidenziata in alto “HashCalc 2.02” (che ha di fianco una bella freccia rossa rivolta verso il basso). A questo punto comincia il download di un file zippato che potete salvare sul desktop o dove meglio credete. (La cosa simpatica è che lo stesso sito di HashCalc non riporta il valore HASH per permetterci una volta scaricato di controllarne l’integrita 🙂 ). Una volta scaricato basta scompattare il file che conterrà a sua volta altri tre file. Un file “setup“, uno “readme” ed infine un “fsum“. Per installare il programma basta fare doppio click su “setup” ed installarlo come qualsiasi altro programma. Il file “readme” è autoesplicativo, infine il file “fsum” permette di calcolare l’HASH da riga dei comandi di windows. Noi qui vedremo la versione grafica, quella che stiamo installando … Una volta installato quindi basta aprire il programma HashCalc per trovarci di fronte la sua maschera

Foto3La maschera è intuitiva. Nella finestra a discesa in alto a sinistra “Data Format” si può scegliere se calcolare l’HASH di un file, di una riga di testo oppure di una stringa di caratteri esadecimali.  Nel campo “Data” in alto, si va ad inserire, premendo il bottone sulla destra del campo che ci permette di cercarlo, il file di cui vogliamo calcolare l’HASH. A quel punto sulla sinistra si selezionano le caselle relative all’algoritmo con il quale vogliamo fare il calcolo e quindi si preme in basso “calculate“.  A questo punto nella foto in basso vedete come risulta l’output del calcolo su un file.

Foto4

La foto in alto illustra il calcolo dell’HASH con codifica MD5, MD4, SHA1, SHA256, e SHA512 del mio file “ccsetup502.exe” che ho sul Desktop. HashCalc permette anche, come accennato, di calcolare l’HASH di stringhe di testo o caratteri esadecimali. Nella foto in basso vediamo il calcolo del testo scritto “Ciao a tutti”

Foto5

CALCOLO DELL’HASH SU MAC OS X e LINUX

Su Mac e Linux il calcolo dell’HASH è più semplice in quanto dalla riga di comando entrambi i sistemi operativi dispongono già del relativo programma per il calcolo, senza necessità di installare nulla.

Foto6

Su Mac OS X dalla riga di comando, posizionandosi nella cartella dove si ha il file di cui fare il controllo, basta digitare

$ openssl md5 (o sha1) nomefile

Nella foto in alto vedete il calcolo dell’HASH con codifica MD5 e SHA1 del mio file “Curriculum.pdf”

Su Linux invece la cosa è analoga ma i comandi da utilizzare saranno invece

$ md5sum nomefile

$ sha1sum nomefile

ALTRI UTILIZZI DELL’HASHING

Fin qui abbiamo visto come sia importante saper calcolare l’HASH al fine di un download sicuro ed integro dei file di nostro interesse. Ma gli algroritmi di HASHING hanno altri importanti utilizzi che sinteticamente illustrerò ..

Vengono utilizzati nell’informatica forense per effettuare la copia dei supporti fisici (hard disk, penne  e dischi usb) costituenti le fonti di prova. La recente legislazione impone infatti una catena di custodia che permetta di preservare i reperti informatici da eventuali modifiche successive all’acquisizione. Nel momento dell’acquisizione della fonte di prova, quindi, viene calcolato il suo valore di HASH, per lo più con codifica MD5 e SHA1. In questo modo sarà sempre possibile dimostrare che la copia acquisita è fedele all’originale, se i valori di HASH corrispondono tra originale e copia. Inoltre sarà anche possibile dimostrare in qualsiasi momento che la copia non è stata alterata dopo l’acquisizione mantenendone l’integrità.

Le funzioni di HASH svolgono un ruolo essenziale anche nella Crittografia. Infatti consentono di verificare l’integrità di un messaggio e scoprire eventuali manomissioni dello stesso. Infatti ricordiamo che un testo anche minimamente modificato produce un valore di HASH diverso rispetto a quello del  messaggio iniziale. Inoltre l’HASHING è utile anche nella memorizzazione sicura della password, infatti i siti internet memorizzano nel database degli utenti le password sotto forma di valore HASH. In questo modo se un hacker viene a conoscenza del valore MD5 non potrebbe risalire alla password. Infatti l’HASHING non è una “funzione reversibile” perchè trovato l’HASH di un file o di un testo, non sarebbe possibile tornare indietro. Da un valore di HASH non si può calcolare e riprodurre cosa l’ha generato.

Infine l’HASHING è utile anche nella creazione delle firme digitali. Infatti permette di ottenere la firma (l’impronta) anche di file di grosse dimensioni senza richiedere calcoli lunghi e complessi. Diventa più conveniente a quel punto autenticare il valore di hashing di un file di grosse dimensioni piuttosto che autenticare tutto il file. Del resto una minima modifica al file provocherebbe necessariamente un valore di hashing diverso.

SICUREZZA

Nel momento in qui scrivo le codifiche MD5 e SHA1 hanno dimostrato di non essere più molto sicure, soffrendo di alcune vulnerabilità. Ed è infatti per questo motivo che sono state introdotte le codifiche successive alla SHA1. Esattamente SHA256, SHA512  e successive.

E’ pur vero che per specifici utilizzi (Informatica Forense e download dei file) l’MD5 e la SHA1 sono ancora molto utilizzate e utilizzabili. Del resto è stato calcolato, in merito all’MD5 ad esempio, che c’è una possibilità su 2^42 (4.398.046.511.104) di trovare due file diversi che producano lo stesso hash MD5. Penso che per i nostri scopi sapere che il file scaricato ha solo una possibilità su 4 mila miliardi di essere diverso da quello che vogliamo, pur avendo lo stesso hash, ci possa andar bene lo stesso, non credete?

Termina qui questa guida sull’HASH. Una materia complessa ma al tempo stesso importante nel campo della tecnologia e della sicurezza informatica. E soprattutto una materia in continua evoluzione. Quanto scritto qui, senza alcuna pretesa di esaustività, potrebbe quindi essere smentito da una nuova scoperta tecnica domani. Ma il bello della Tecnologia e’ anche questo ..

 

( Foto di copertina tratta da Matteocavalli.it )

 

blank

AntonioS

Grande amante della Tecnologia ed Informatica, si è occupato per molti anni di Sistemistica Windows, Linux e OSx nonchè di problematiche tecnico/hardware. Ora si occupa di investigazioni private e digitali. Socio CLUSIT dal 2014, ha una forte passione per l'Ethical Hacking e la Sicurezza Informatica, che studia, e che desidera condividere, in un momento in cui in un mondo interconnesso i rischi aumentano di giorno in giorno. Puoi seguire i suoi aggiornamenti sulla sicurezza su Twitter .. https://twitter.com/AntSagliocca.

0 0 votes
Valutazione Articolo
Subscribe
Notificami
guest
0 Commenti
Inline Feedbacks
View all comments