Come, perché e quando dovresti controllare l’hash

Qui a ProPrivacy abbiamo appena amore software open source. Questo principalmente perché, nonostante non sia perfetto, l'open source fornisce l'unico modo per sapere con certezza che un programma è al livello.


Un problema, tuttavia, è come sapere che un programma open source che scarichi da un sito Web è il programma che i suoi sviluppatori hanno voluto scaricare? Gli hash crittografici sono una soluzione parziale a questo problema.

Che cos'è un hash crittografico?

Un hash crittografico è un checksum o un'impronta digitale derivata eseguendo una funzione hash unidirezionale (un'operazione matematica) sui dati che comprendono un programma per computer (o altri file digitali).

Qualsiasi modifica in un solo byte dei dati che compongono il programma per computer cambierà il valore di hash. Il valore hash è, quindi, un'impronta digitale unica per qualsiasi programma o altri file digitali.

Che cos'è un controllo hash?

Garantire che un programma non sia stato manomesso, o semplicemente corrotto, è una questione abbastanza semplice di calcolare il suo valore di hash e quindi confrontarlo con il checksum di hash fornito dai suoi sviluppatori.

Se è lo stesso, allora hai un ragionevole grado di sicurezza che il programma che hai scaricato è esattamente lo stesso di quello pubblicato dal suo sviluppatore. In caso contrario, il programma è stato modificato in qualche modo.

Le ragioni di ciò non sono sempre dannose (vedi sotto), ma un controllo hash fallito dovrebbe far suonare le campane di allarme.

Problemi con i controlli hash

Potresti aver rilevato una nota di cautela quando canti le lodi dei controlli hash...

Integrità ma non autenticazione

I controlli hash sono utili per garantire l'integrità dei file, ma non forniscono alcun tipo di autenticazione. Cioè, sono buoni per garantire che il file o il programma che hai corrisponda alla fonte, ma non forniscono alcun modo per verificare che la fonte sia legittima.

I controlli hash non offrono alcuna garanzia in merito alla fonte del checksum hash.

Ad esempio, esistono siti Web fasulli che distribuiscono versioni dannose di popolari software open source come KeePass. Molti di questi siti web forniscono persino checksum di hash per i programmi che forniscono e, se li controllassi con il programma falso, corrisponderebbero. Spiacenti.

Debolezze matematiche

Un ulteriore problema è che le debolezze matematiche possono significare che gli hash non sono così sicuri come dovrebbero essere.

L'algoritmo MD5, ad esempio, rimane una funzione hash molto popolare, nonostante la sua vulnerabilità nota agli attacchi di collisione. In effetti, anche SHA1 non è più considerato sicuro in questo senso.

Nonostante ciò, MD5 e SHA1 rimangono gli algoritmi più popolari utilizzati per generare valori hash. SHA256, tuttavia, rimane sicuro.

Pigrizia per gli sviluppatori

Gli sviluppatori a volte aggiornano i loro programmi con correzioni di bug e nuove funzionalità, ma trascurano di pubblicare un checksum di hash aggiornato. Ciò comporta un controllo hash non riuscito durante il download e si tenta di verificare il loro programma.

Ovviamente, questo non è affatto grave come un controllo hash che dà un passaggio al software dannoso, ma può degradare la fiducia nell'ecosistema, con il risultato che le persone non si preoccupano di controllare l'integrità dei file che scaricano...

Hash crittografici vs firme digitali

La maggior parte dei problemi con gli hash crittografici è risolta dall'uso delle firme digitali, che garantiscono sia integrità che autenticazione.

Gli sviluppatori che sono felici di utilizzare il codice proprietario possono convalidare automaticamente e in modo trasparente le firme quando il loro software viene installato per la prima volta, utilizzando meccanismi come le tecnologie Microsoft, Apple o Google PKI (infrastruttura a chiave pubblica).

Gli sviluppatori open source non hanno questo lusso. Devono utilizzare PGP, che non è supportato in modo nativo da alcun sistema operativo proprietario e perché non esistono equivalenti di PKI Microsoft, Apple o Google in Linux.

Quindi le firme digitali PGP devono essere verificate manualmente. Ma PGP è un maiale completo da usare e non è un processo semplice, come dimostrerà una rapida occhiata alla nostra guida al controllo delle firme PGP in Windows.

Né è il vero processo di firma per gli sviluppatori, che sanno bene che nel mondo reale poche persone si preoccupano di controllare manualmente le firme digitali.

Gli hash crittografici non sono affatto sicuri come le firme digitali PGP, ma sono molto più facili da usare, con il risultato che molti sviluppatori scelgono semplicemente di fare affidamento su di loro invece di firmare digitalmente il loro lavoro.

Dovresti davvero controllare l'hash (se non è presente alcuna firma digitale)

Questa è una situazione tutt'altro che ideale e dovresti sempre controllare la firma digitale di un programma open source quando è disponibile. Se uno non lo è, tuttavia, controllare il suo hash crittografico è molto meglio che non fare nulla.

Finché sei sicuro della fonte (ad esempio sei sicuro che provenga dal vero sito Web dello sviluppatore, che non è stato violato per mostrare un falso hash crittografico), quindi controllando il suo valore di hash si fornisce un discreto grado di coincidenza che il software aver scaricato è il software che il suo sviluppatore intende scaricare.

Se per il software open source non è disponibile né una firma digitale né un checksum, non installarlo o eseguirlo.

Come controllare l'hash

Il processo di base è il seguente:

Sottotitolo opzionale

  1. Prendi nota del numero di hash pubblicato dallo sviluppatore
  2. Genera il valore hash del file che hai
  3. Confronta i due valori di hash

Se sono identici, allora hai il file che lo sviluppatore intendeva avere. In caso contrario, è stato danneggiato o è stato manomesso.

Se è disponibile un hash SHA256 +, verificare che. In caso contrario, utilizzare SHA1. Solo come ultima risorsa dovresti verificare un hash MD5.

Il modo semplice (tutti i sistemi)

Il modo più semplice per generare il valore hash dei file è utilizzare un sito Web come Strumenti online. Basta selezionare il tipo di valore hash che è necessario generare, quindi trascinare e rilasciare il file richiesto nello spazio fornito e il relativo valore hash verrà generato.

Esempio

Vogliamo verificare l'integrità del file di installazione di KeePass che abbiamo scaricato dal sito Web di KeePass.org (che sappiamo essere il dominio corretto). Il sito Web pubblica hash MD5, SHA1 e SHA256 per tutte le versioni del suo KeePass, quindi controlleremo SHA256 per la versione scaricata.

  1. Prendiamo nota del valore di hash corretto, come pubblicato sul sito Web di KeePass.

  2. Visitiamo quindi il sito Web Strumenti online, selezioniamo File Hash: SHA256 e trasciniamo il nostro file di installazione KeePass scaricato nello spazio fornito.

  3. Confrontiamo l'output con il checksum pubblicato sul sito Web di KeePass e sono identici. Supponendo quindi che il sito Web KeePass non sia stato violato per visualizzare valori di hash falso, possiamo essere certi di aver scaricato un file non manomesso. Sìì!

    Windows, macOS e Linux hanno anche funzioni di valore hash integrate a cui è possibile accedere dalla riga di comando...

finestre

Questo metodo funziona immediatamente in Windows 10, mentre gli utenti di Windows 7 devono prima aggiornare Windows PowerShell con Windows Management Framework 4.0.

Per ottenere un hash SHA256, fare clic con il tasto destro del mouse su Start -> Windows PowerShell e digitare:

Get-FileHash [percorso / to / file]

Per esempio:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe

Gli hash MD5 e SHA1 possono essere calcolati utilizzando la sintassi:

Get-FileHash [percorso a [percorso / a / file] -Algoritmo MD5

e

Get-FileHash [percorso a [percorso / a / file] -Algoritmo SHA1

Per esempio:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe -Algorithm MD5

Mac OS

Apri Terminale e digita:

openssl [tipo di hash] [/ path / to / file]

Il tipo di hash dovrebbe essere md5, SHA1 o SHA256.

Ad esempio, per controllare l'hash SHA256 per il programma di installazione di Windows KeePass (solo per mantenere le cose semplici per questo tutorial), digitare:

openssl sha256 /Users/douglascrawford/Downloads/KeePass-2.43-Setup.exe

Linux

Apri Terminale e digita:

Md5sum [percorso / to / file] Sha1sum [percorso / to / file]

o

Sha256sum [percorso / to / file]

Per esempio:

sha256sum /home/dougie/Downloads/KeePass-2.43-Setup.exe

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me