Questo articolo nasce dopo aver passato una bella lezioncina nell'istituto riguardo proprio di quell'argomento che andrò a parlare oggi.
Qualche volta quando andiamo a scaricare una distro Linux e vogliamo tentare di far partire l'installer, può capitare che quest'ultima non funziona correttamente. Ciò può essere dovuto al fatto che il file che abbiamo scaricato sia stata corrotta e che quindi risulti in sostanza differente rispetto all'originale. Ma prima di continuare sarà meglio spiegare di cosa sto parlando...
Qualche volta quando andiamo a scaricare una distro Linux e vogliamo tentare di far partire l'installer, può capitare che quest'ultima non funziona correttamente. Ciò può essere dovuto al fatto che il file che abbiamo scaricato sia stata corrotta e che quindi risulti in sostanza differente rispetto all'originale. Ma prima di continuare sarà meglio spiegare di cosa sto parlando...
Cos'è un Checksum?
Checksum consiste nel sommare in trasmissione tutti i bit del messaggio e di memorizzare il valore risultante nel frame inviato. Per controllare l'integrità del messaggio sarà sufficiente effettuare in ricezione la stessa operazione di somma e confrontarla con il checksum memorizzato nel frame. Se i due valori coincidono, i dati possono essere considerati integri. In maniera più semplice, serve per capire se il file che abbiamo scaricato coincide perfettamente con l'originale, altrimenti non funzionerà come dovrebbe rispetto all'originale.
E' molto utile per la verifica di corruzioni accidentali (errori di trasferimento, o di memorizzazione, perdita di dati), ma non sono sicuri contro gli attacchi di malintenzionati, in quanto le loro strutture matematiche non sono particolarmente complesse da aggirare. Per questo tipo di attacchi vengono utilizzati algoritmi di hash crittografati, come l'MD5, lo SHA-1 (in cui però sono state trovate collisioni), o lo SHA-256, per il momento incorruttibile.
I checksum vengono usati spesso su Internet per poter garantire che i dati scaricati siano corretti e per garantirne l'autenticità. Per esempio nel download di software, il distributore del programma pubblica il checksum (in genere MD5 o SHA-1), che nello specifico viene chiamato digest, che viene controllato dall'utente per verificare l'integrità dei dati).
Come si fa a capire se il file scaricato coincide con quello originale?
Molto semplice, di solito nei siti ufficiali dove si va a scaricare qualsiasi tipo di software, vi verrà detto da qualche parte l'hash di un software il quale vogliamo scaricare. Facciamo l'esempio più semplice con Debian:
Se noi andiamo a vedere il file di testo denominato MD5SUMS, ci dirà su schermo quale hash corrisponderà perfettamente all'originale che andremmo a scaricare, come questo qui:
db8ab7871bc2b7d456c4746e706fb5d3 debian-9.3.0-amd64-netinst.iso
7b371559088a36b073a2cc50cbcffff2 debian-9.3.0-amd64-xfce-CD-1.iso
17ba5970585cfd4464d8e696f8cfe517 debian-mac-9.3.0-amd64-netinst.iso
In questo caso sceglieremo Debian versione net (la prima scelta e quella che pesa di meno).
Poi ci servirà un software per analizzare l'hash, infatti su Windows bisognerà usare WinMD5 (completamente leggero e che può funzionare anche su Windows 98).
Dopo averlo scaricato, estratto ed eseguito, ci si presenterà così!
Poi dovete cliccare su Browse... e cercare il file da analizzare, quello che abbiamo scaricato, dopodiché farà una analisi molto veloce e ci dirà subito qual'è la sua hash in MD5:
In questo caso, come si può vedere, l'hash del file scaricato coincide perfettamente con il file originale, ma se non si è sicuri basta incollare l'originale hash che abbiamo trovato sul web e cliccare su Verifiy. Se sarà così, ci dirà Matched! (ovvero che coincide), altrimenti ci dirà NOT Matched!
Su GNU/Linux (ma anche su MacOS e FreeBSD) invece si userà il Terminale e dovrete scrivere:
sudo su
cd /home/ILVOSTRONOMEUTENTE/Downloads/NOMEFILE.ISO
A differenza di Windows, qui potete controllare anche le altre hash oltre a MD5, infatti dovrete scrivere uno di questi comandi a seconda dell'hash che volete scegliere di controllare:
md5sum NOMEFILE.ISO (se volete controllare l'hash con MD5)
sha1sum NOMEFILE.ISO (se volete controllare l'hash con SHA1)
sha256sum NOMEFILE.ISO (se volete controllare l'hash con SHA256)
sha512sum NOMEFILE.ISO (se volete controllare l'hash con SHA512)
Ed il gioco è fatto, vi mostrerà l'hash oltre al nome del file che abbiamo analizzato e mettetelo a confronto con quello originale trovato su web ed il gioco è fatto!
Spero che io vi sia stato utile e che vi abbia insegnato una bella lezioncina che vi potrà essere utile quando dovrete lavorare e cercare di installare un sistema operativo su una macchina, buona giornata a tutti! :)