Impronta digitale di un file e verifica della sua integrità

In questa sezione del forum si parla di sicurezza, soluzioni antivirus, firewall, problematiche relative a malware in generale

Moderatore: Staff forum IlSoftware.it

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 21 apr 2017 02:08

L'aver effettutato negli ultimi giorni, molti download di vario genere, mi ha dato lo spunto per riordinare un po' le idee, riguardo all'argomento verifica dei files e condividerlo poi qui in forum.
Che vuole semplicente tentare di essere un quadro sintetico-pratico sull'argomento.
Oltre a provare a riassumere delle info basiche a riguardo, ho cercato di raggruppare dei metodi per effettuare la verifica, su Windows, Linux ed online.
Quanto ho assemblato nel post sotto è in buona parte desunto anche da articoli e materiale già pubblicati qui sul sito nel corso degli anni dal Direttore (link a fondo post o nel mezzo secondo post).
Ultima modifica di Chulo il 22 apr 2017 20:02, modificato 1 volta in totale.
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 21 apr 2017 02:49

L'IMPRONTA DIGITALE
di un file serve ad identificare in maniera unica lo stesso.
La si ottiene avvalendosi di una funzione matematica algoritmica.
Tale funzione tramite una scansione dei bytes che compongono un file, permette di ottenere una stringa di caratteri di lunghezza predefinita, composta da lettere e cifre, denominata digest, la cosidetta impronta digitale del file, o valore di hash, o checksum.
Vi sono diversi algoritmi di hashing e dunque la lunghezza della stringa ottenibile può variare a seconda del tipo di algoritmo utilizzato.
Tra i più comunemente usati vi sono:
MD5 stringa di 128bit = 32 caratteri
SHA (Secure Hash Algoritm)
- SHA1 stringa di 160bit = 40 caratteri
- SHA2
sha256 stringa di 256bit = 64 caratteri
sha512 stringa di 512bit = 128 caratteri
(sha224 stringa di 224bit = 56 caratteri)
(sha384 stringa di 384bit = 96 caratteri)
Più gli algoritmi utilizzati risultano complessi, ovvero in grado di generare un numero maggiore di possibili risultati e minore è la possibilità che due files diversi producano una stessa impronta.
Circostanza che viene definita con il termine di collisione.
La validità-qualità di una funzione di hash è quindi commisurata proprio in base alla difficoltà, all'improbabilità, che si presenti una collisione (si parla di probabilità nell'ordine di qualche miliardo ma che matematicamente parlando non può essere esclusa).
Md5 e sha1 sono ancora piuttosto usate, anche nell'ambito dell'informatica forense, tuttavia essendo emerse alcune criticità dal punto di vista della sicurezza, paiono destinate a lasciare sempre più il campo in favore delle codifiche sha256, sha512 e seguenti.

- Caratteristica basilare delle funzioni hash è la non reversibilità.
L'algoritmo è combinato in modo da non consentire di risalire alla composizione/contenuto del file che ha generato la tal stringa. E non vi è nessun "contro-algoritmo" di decodifica, che possa smascherare cosa ci sia dietro ad un'impronta hash.
- altra caratteristica di rilievo è l'impossibilità di modificare un file senza che si modifichi anche il suo hash. Modificando anche un solo bit di un file si ha un'impronta hash differente, in linea di massima piuttosto differente. Infatti anche in presenza di cambiamenti minimi nel file, la stringa dell'impronta hash finale non si presenterà come quasi simile rispetto a quella prima del cambiamento (con solo uno o due caratteri modificati magari), ma nella maggior parte dei casi risulterà piuttosto diversa.

CHECKSUM-HASHSUM VERIFICARE INTEGRITA' FILES
Scaricare files da internet è pratica consueta, non sempre seguita però (o peggio, raramente ?), da una buona consuetudine. Ovvero quella di verificare l'integrità del file scaricato.
Aldilà delle circostanze in cui il download venga richiesto da siti di dubbia affidabilità per così dire, o palesemente a rischio di poter ospitare adware, malware e schifezzuole varie di ogni genere e tipo (che naturalmente l'utente accorto farebbe meglio ad evitare, anzichè pensare di essere "più furbo" e farla franca, salvo poi ritrovarsi a formattare il pc...), vi possono essere circostanze in cui utenti magari inesperti, non sono in grado di comprendere bene se l'azione di download da loro intrapresa sia in realtà "rischiosa" o meno.
Durante un download poi potrebbe capitare che:
- si verifichino degli errori che danneggino il file,
- il sito abbia linkato magari involontariamente una versione diversa del programma che stiamo scaricando, rispetto a quella dichiarata,
- dei malintenzionati riescano in qualche modo a manipolare-modificare il file in questione, per poter veicolare del malware.
A proposito dell'ultimo scenario, per fare un esempio, ricordiamo quanto accaduto il 20 febbraio 2016, una data che gli sviluppatori di Linux Mint non dimenticheranno facilmente, giacchè la distro in questione è stata vittima di un episodio piuttosto spiacevole. Dei bad guys manipolarono la .iso della versione 17.3 edizione Cinnamon ed hackerarono il sito di Mint in modo da farvi puntare il download alla versione da loro compromessa. Quel giorno dunque (fintanto che non se ne accorsero) diversi utenti, anzichè quella legittima, scaricarono la versione modificata ed infetta della distro, che se poi anche installata, li costrinse a rifare il tutto daccapo.
Qui l'articolo dell'epoca con la notizia sul blog di Mint.

Soprattutto quando il file che scarichiamo è un'immagine ISO o un eseguibile di un programma, azione che prelude dunque ad un'installazione sul nostro pc, direi valga la pena concedere qualche istante per la verifica, per metterci al riparo da sgradite sorprese, o fastidiose scocciature. Che al caso si verificassero, ci farebbero perdere molta più pazienza e soprattutto tempo, di quanto poco ce ne vuole invece per fare un check ad un file.
Nei casi in cui ciò è reso possibile naturalmente, in quanto per calcolare/verificare l'impronta-l'hash, di un file è necessario che il sito ufficiale del programma o dell'immagine iso, riporti l'indicazione riguardo l'impronta del suo file, messo in download. Di modo che post scaricamento, o comunque prima di provare ad installarlo, possiamo a nostra volta fare un check al file, per confrontarlo e verificare che il checksum o hashsum, corrisponda con quello fornito dal sito-produttore. Ed avere così garanzia dell'integrità/autenticità del file.

Su Linux
verificare il checksum-hashsum di un file è molto semplice e non c'è bisogno di scaricare, nè installare nulla, in quanto buona parte delle maggiori distribuzioni dispongono già di default della possibilità di farlo tramite il Terminale. Indicando il tipo di algoritmo di codifica, seguito dopo uno spazio, dal nome del file con estensione finale inclusa e dando Invio, possiamo ottenere la stringa relativa al file presente in una delle cartelle del nostro pc.
md5sum nomecompletofile
sha1sum nomecompletofile
sha256sum nomecompletofile
sha512sum nomecompletofile


Ad esempio per il file .iso di Mint 18.1 edizione Cinnamon:
sha256sum linuxmint-18.1-cinnamon-64bit.iso
l'output restituitoci dovrebbe risultare ---> b99f4b98a1b41737ded072dc1a7060ca32224e23236074790d4fc86b51009e3c
che possiamo confrontare con quello indicato qui

Ma per verificare direttamente la corrispondenza dei due valori via Terminale, possiamo fare ricorso a grep.
- Inseriamo il relativo comando come da esempio appena descritto sopra,
- seguito dal simbolo | e da grep
- dopo uno spazio incolliamo la stringa che avremo copiato dal sito del riferimento del file che vogliamo verificare
- diamo Invio ed attendiamo qualche istante per il risultato
Quindi ad es: sha256sum linuxmint-18.1-cinnamon-64bit|grep b99f4b98a1b41737ded072dc1a7060ca32224e23236074790d4fc86b51009e3c
In caso di esito positivo, ovvero se l'hashsum verificato dal sito e quello del file nella nostra cartella corrispondono, il Terminale ci restituisce la stringa "formattata" in grassetto e colorata di rosso.
Immagine

Qualora invece le stringhe non risultino uguali, il Terminale dopo la verifica, si riposizionerà nella cartella, senza visualizzare alcun risultato
Immagine

Per farlo:
- posizionarsi con il Terminale dentro la cartella dove si trova il file su cui fare il controllo, digitare il comando corrispondente al tipo di codifica hash da verificare, dare l'invio ed attendere alcuni istanti che venga visualizzato l'output
- qualora risulti problematico spostarsi col Terminale dentro la cartella dove si trova il file da controllare, un workaround potrebbe essere quello di copiare/spostare il file in questione nella cartella Home, giacchè il Terminale solitamente si apre all'interno di tale cartella
- tuttavia alcuni sistemi rendono il tutto ancora molto più semplice ed immediato. Possiamo navigare normalmente tra le cartelle fino a raggiungere il punto dove si trova il file su cui fare il controllo, dare click dx all'interno della cartella, scegliendo la voce Apri nel terminale, digitare il comando corrispondente al tipo di codifica hash da verificare, dare invio ed attendere alcuni istanti che venga visualizzato l'output.

Chi al posto del Terminale, preferisse invece avvalersi di un software, può rivolgersi ad esempio a GTKHash, piccola e semplice utility, presente nei repository Ubuntu ed installabile da Terminale con il comando:
sudo apt-get install gtkhash
Immagine

Basterà selezionare il file da sottoporre alla verifica tramite il pulsante presente nel riquadro File, poi incollare nel riquadro Check la stringa che avremo copiato dal sito di riferimento del file ed infine cliccare su Hash. In caso di corrispondenza, GTKHash mostrerà un segno di spunta accanto alle due stringhe uguali
Immagine

La mancanza di tali simboli invece starà a significare che non vi è corrispondenza tra le stringhe esaminate, che non sono quindi uguali!
Immagine

Chi invece volesse/necesitasse di un programma con delle funzioni in più, potrebbe essere interessato a QuickHash GUI
About QuickHash GUI
Downloads QuickHash GUI
Software open source e multipiattaforma. Originariamente nato per Linux è stato poi reso disponibile anche in versioni per Windows e Mac.
Disponibile in formato portable, che non richiede installazione.

Nella versione linux una volta estratto il file .zip assicurarsi che il file a 32 o 64bit, abbia i permessi di esecuzione (tasto dx sul file/proprietà/permessi --> consenti l'esecuzione del file come programma).
Per effettuare la verifica di un file, portandoci nel tab omonimo, tramite il pulsante Select File selezioneremo il file oggetto della nostra verifica, mentre nel riquadro Expected Hash Value (paste from other utility) andremo ad incollare la stringa, che al solito, avremo copiato dal sito di riferimento del file oggetto della nostra verifica.
Il programma ci renderà conto del risultato, tramite una finestrella. Questo sia in caso di esito positivo
Immagine

sia in caso di esito negativo
Immagine

Linux Mint (ediz. Cinnamon, file manager Nemo per fare un esempio) nel caso delle immagini iso, consente di effettuare il check anche in un passaggio unico, rendendolo disponibile dal menù del tasto dx, anche se limitatamente ad un solo algoritmo di codifica, che nella versione 17.3 era md5 e dalla versione 18 è diventato sha256.
Immagine
Dopo qualche istante l'output viene proposto sotto forma di una finestrella. Attenzione, non tragga in inganno il tipo di visualizzazione proposta, in quanto la relativa stringa di caratteri nella finestrella risulta selezionabile con il mouse e con un click dx avremo a disposizione l'opzione per copiarla.
Immagine

Su Windows
per le nostre verifiche possiamo avvalerci di avvalerci di diversi programmi. Quelli sotto elencati sono tutti fruibili gratuitamente.
HashMyFiles piccola utility, di casa Nirsoft, piuttosto ricca di opzioni che non necessita installazione trattandosi di Applicazione portabile e che si integra nella shell
Immagine
Immagine
Immagine
Immagine

MultiHasher
MultiHasher: verificare l'integrità di qualunque file in Windows
è disponibile sia in versione installer, che in versione portable ed anch'esso si integra nella shell
Immagine
Immagine

Hashtab
è un programma che richiede l'installazione e che va ad aggiungere un tab nella finestra Proprietà di ogni file, da dove procedere con l'analisi
Immagine
Una trentina gli algoritmi supportati
Immagine

Verificare se il file ISO di Windows è originale con l'uso di Windows and Office Genuine ISO

Online
troviamo alcuni siti che assolvono tale compito
http://onlinemd5.com/
algoritmi codifica 3: md5, sha1, sha256
File: max 4 GB

http://www.fileformat.info/tool/hash.htm
algoritmi codifica 14: Adler32, CRC32, Haval, MD2, MD4, MD5, RipeMD128, RipeMD160, SHA-1, SHA-256, SHA-384, SHA-512, Tiger, Whirlpool
File: max 5 MB

http://www.hashemall.com/
algoritmi codifica 35: SHA1, SHA256bit, SHA384bit, SHA512bit, MD4, MD5, RIPEMD128bit, RIPEMD160bit, WHIRLPOOL, Snefru, GOST Adler32, CRC32, CRC32b, Tiger128bit 3p, Tiger160bit 3p, Tiger192bit 3p, Tiger128bit 4p, Tiger160bit 4p, Tiger192bit 4p,
HAVAL (15 tipi)
File: max 10 MB

--------------------------------------------------------------------------------------------------------------
Articoli del sito, inerenti l'argomento

L'algoritmo di hashing SHA-1 non è più sicuro: Google spiega perché

Crittografia: funzioni hash sotto la lente dei ricercatori

Controllare la firma digitale di file in Windows
Ultima modifica di Chulo il 24 apr 2017 23:27, modificato 6 volte in totale.
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 21 apr 2017 02:59

Suggerimenti, consigli, osservazioni per integrare e/o migliorare il topic sono ovviamente i benvenuti e nel caso modificherò il post :wink:
Ultima modifica di Chulo il 22 apr 2017 20:03, modificato 1 volta in totale.
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Avatar utente
[Claudio]
Advanced Software
Advanced Software
Messaggi: 2188
Iscritto il: 12 giu 2009 10:09
Località: 45° 44' 54'' N; 7° 21' 22'' E

Re: Verifica integrità files. Su Win, Linux ed online

Messaggioda [Claudio] » 22 apr 2017 00:30

Avevo letto il post questa mattina, presumo nella sua prima provvisoria stesura.

Avevo giusto alcuni suggerimenti ..... ed ecco che, grazie al tuo post, scopro (ho appena formattato) uno stramaletto problema attinente il menu contestuale che non mi consente (vista l'assenza nel menu stesso, del collegamento) di eseguire analisi su file con Hitmanpro.

Comunque:

1) il 95% dei software e' scaricabile dai siti ufficiali dei produttori; andarsi a cercare rogne (comprese quelle che, a latere, evidenzia il tuo post) scaricandoli da altri siti o peer .... e' da .... (omissis);

2) punto che si ricollega al mio attuale problema: scansionare un file .exe prima di passare all'installazione, non e' mai una cattiva idea;

3) altro utile accorgimento, attivare la visualizzazione delle estensioni dei file.

Quattro elementari regolette (compresa quella descritta nel tuo post), per vivere "quasi" tranquilli.

E ora ..... devo capire come risolvere la rogna :|
Windows 10 Enterprise N 2016 LTSB
HitmanPro.Alert 3.6 HitmanPro Malwarebytes Antimalware ProtonVPN Chrome & Tor Browser

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 22 apr 2017 19:55

Il tuo post invece Claudio mi hai fatto accorgere che ho sbagliato titolo del topic...

Così infatti giustamente sembra l'argomento voglia/possa abbracciare tutta la "filiera" di possibili verifiche sui files. Tu ad es. citi subito il discorso antivirus etc., ma in realtà la mia intenzione era, è, quella di circoscrivere l'argomento al discorso impronta digitale. Cercando quindi di rapportarsi con un solo argomento alla volta, questo sia per una questione di "ordine" e per evitare dispersioni (che diventano poi inevitabili, quando il campo di una qualsiasi argomentazione diventa piuttosto ampio), sia perchè nell'era dei 160-200 caratteri...un post come quello sopra mi sa che già sia considerato lunghissimo o un mattone...

Quindi chiedo venia e provvedo a modificare il titolo :wink:
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Sampei Nihira
Advanced Software
Advanced Software
Messaggi: 2045
Iscritto il: 13 gen 2014 08:52

Re: Impronta digitale di un file e verifica della sua integrità

Messaggioda Sampei Nihira » 23 apr 2017 12:03

Per la firma digitale sono solito utilizzare SigChecKGUI portable.

Cito anche un sw che viene usato da un mio collega:

http://www.boredomsoft.org/vt-hash-check.bs

Personalmente sono molto restio ad usare sw che modificano la Shell Extensions.
Probabilmente per una conversazione avuta molti anni fà con Didier Stevens.


3D lodevole. :approvato:

mlandia
Messaggi: 5
Iscritto il: 17 mar 2017 18:31

Re: Impronta digitale di un file e verifica della sua integrità

Messaggioda mlandia » 23 apr 2017 21:28

Bravo Chulo.
Mi associo 3D lodevole,molto.

PS. Scaricare file dal sito ufficiale del produttore ,neanche quella è garanzia che il file è intatto,inalterato.

Lo SHA , il checksum,quello dice 100/100 se il file è inalterato,integro.

..Finalmente un post degno di lettura.

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Re: Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 24 apr 2017 02:55

Ho modificato/integrato il secondo post, avendo clamorosamente dimenticato di indicare come verificare direttamente la corrispondenza di due stringhe via Terminale (linux).
Poi per i più "pigri" :P inserirò anche un'alternativa per farlo via software (sempre su linux)
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Re: Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 24 apr 2017 23:23

Modificato il post con l'inserimento di 2 software per le verifiche hash.
GTKHash (solo per linux, come alternativa all'uso del Terminale) e QuickHash GUI che è un software open source e multipiattaforma, disponibile in versioni per linux, Windows e Mac
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Avatar utente
Chulo
Active member
Active member
Messaggi: 3647
Iscritto il: 02 ott 2006 18:57
Località: Trieste

Re: Impronta digitale di un file e verifica della sua integrità

Messaggioda Chulo » 12 mag 2017 21:45

Sampei Nihira ha scritto:Per la firma digitale sono solito utilizzare SigChecKGUI portable.

Cito anche un sw che viene usato da un mio collega:

http://www.boredomsoft.org/vt-hash-check.bs

Non mi sono dimenticato, nè ho snobbato. Ho win in stand by, non lo sto usando neanche quel minimo, in attesa di nuova installazione con navicella Enterprise :lol: . Quando provvedo, darò un'occhiata al software che hai citato, per vedere se inserirlo in lista :wink:
Il mattino ha l'oro in bocca!
Màs ayuda la mañana, que prima y hermana!

Sampei Nihira
Advanced Software
Advanced Software
Messaggi: 2045
Iscritto il: 13 gen 2014 08:52

Re: Impronta digitale di un file e verifica della sua integrità

Messaggioda Sampei Nihira » 13 mag 2017 17:32

:approvato:


Torna a “Sicurezza e antivirus”

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti