Come verificare il checksum ISO di Linux e confermare che non è stato manomesso
Il mese scorso, il sito Web di Linux Mint è stato violato e una ISO modificata è stata predisposta per il download che includeva una backdoor. Sebbene il problema sia stato risolto rapidamente, dimostra l'importanza di controllare i file ISO di Linux scaricati prima di eseguirli e installarli. Ecco come.
Le distribuzioni Linux pubblicano i checksum in modo da poter confermare che i file scaricati sono quelli che sostengono di essere, e questi sono spesso firmati in modo da poter verificare che i checksum stessi non siano stati manomessi. Ciò è particolarmente utile se si scarica una ISO da un luogo diverso dal sito principale, ad esempio un mirror di terze parti o tramite BItTorrent, dove è molto più semplice per le persone manomettere i file.
Come funziona questo processo
Il processo di controllo di una ISO è un po 'complesso, quindi prima di entrare nei passaggi esatti, spieghiamo esattamente cosa comporta il processo:
- Scaricherai il file ISO di Linux dal sito Web della distribuzione Linux, o da qualche altra parte, come al solito.
- Scarica il checksum e la sua firma digitale dal sito Web della distribuzione Linux. Questi possono essere due file TXT separati, oppure puoi ottenere un singolo file TXT contenente entrambe le parti di dati.
- Otterrai una chiave PGP pubblica che appartiene alla distribuzione Linux. È possibile ottenere questo dal sito Web della distribuzione Linux o da un server delle chiavi separato gestito dalle stesse persone, a seconda della propria distribuzione Linux.
- Utilizzerai la chiave PGP per verificare che la firma digitale del checksum sia stata creata dalla stessa persona che ha creato la chiave: in questo caso, i manutentori di quella distribuzione Linux. Ciò conferma che il checksum stesso non è stato manomesso.
- Si genera il checksum del file ISO scaricato e si verifica che corrisponda al file TXT di checksum scaricato. Ciò conferma che il file ISO non è stato alterato o danneggiato.
Il processo può differire un po 'per ISO diversi, ma di solito segue questo schema generale. Ad esempio, esistono diversi tipi di checksum. Tradizionalmente, le somme MD5 sono state le più popolari. Tuttavia, le somme SHA-256 sono ora più frequentemente utilizzate dalle moderne distribuzioni Linux, poiché SHA-256 è più resistente agli attacchi teorici. Qui discuteremo principalmente delle somme SHA-256, anche se un processo simile funzionerà per somme MD5. Alcune distribuzioni Linux possono anche fornire somme SHA-1, sebbene siano ancora meno comuni.
Allo stesso modo, alcune distro non firmano i loro checksum con PGP. Avrai solo bisogno di eseguire i passaggi 1, 2 e 5, ma il processo è molto più vulnerabile. Dopo tutto, se l'attaccante può sostituire il file ISO per il download, può anche sostituire il checksum.
L'uso di PGP è molto più sicuro, ma non infallibile. L'hacker potrebbe ancora sostituire quella chiave pubblica con la propria, potrebbero ancora indurti a pensare che l'ISO sia legittimo. Tuttavia, se la chiave pubblica è ospitata su un server diverso, come nel caso di Linux Mint, questo diventa molto meno probabile (dato che dovrebbero hackerare due server invece di uno solo). Ma se la chiave pubblica è archiviata sullo stesso server dell'ISO e del checksum, come nel caso di alcune distro, allora non offre la stessa sicurezza.
Tuttavia, se si sta tentando di verificare la firma PGP su un file di checksum e quindi di convalidare il download con quel checksum, è tutto ciò che si può ragionevolmente fare da utente finale scaricando un ISO di Linux. Sei ancora molto più sicuro delle persone che non danno fastidio.
Come verificare un checksum su Linux
Qui utilizzeremo Linux Mint come esempio, ma potrebbe essere necessario cercare nel sito Web della distribuzione Linux per trovare le opzioni di verifica che offre. Per Linux Mint, vengono forniti due file insieme al download ISO sui relativi mirror di download. Scarica l'ISO, quindi scarica i file "sha256sum.txt" e "sha256sum.txt.gpg" sul tuo computer. Fai clic con il pulsante destro del mouse sui file e seleziona "Salva collegamento con nome" per scaricarli.
Sul desktop Linux, apri una finestra di terminale e scarica la chiave PGP. In questo caso, la chiave PGP di Linux Mint è ospitata sul server delle chiavi di Ubuntu e dobbiamo eseguire il seguente comando per ottenerlo.
gpg --keyserver hkp: //keyserver.ubuntu.com --recv-keys 0FF405B2
Il sito web della tua distribuzione Linux ti indicherà la chiave che ti serve.
Ora abbiamo tutto ciò di cui abbiamo bisogno: ISO, il file di checksum, il file della firma digitale del checksum e la chiave PGP. Quindi, passa alla cartella in cui sono stati scaricati ...
cd ~ / Download
... ed esegui il seguente comando per verificare la firma del file di checksum:
gpg --verify sha256sum.txt.gpg sha256sum.txt
Se il comando GPG ti consente di sapere che il file sha256sum.txt scaricato ha una "buona firma", puoi continuare. Nella quarta riga dello screenshot qui sotto, GPG ci informa che questa è una "buona firma" che afferma di essere associata a Clement Lefebvre, il creatore di Linux Mint.
Non preoccuparti che la chiave non sia certificata con una "firma attendibile". Ciò dipende dal modo in cui funziona la crittografia PGP: non hai impostato una rete di fiducia importando le chiavi da persone fidate. Questo errore sarà molto comune.
Infine, ora che sappiamo che il checksum è stato creato dai manutentori di Linux Mint, esegui il seguente comando per generare un checksum dal file .iso scaricato e confrontalo con il file TXT checksum che hai scaricato:
sha256sum --check sha256sum.txt
Vedrai molti messaggi "no file o directory" se hai scaricato solo un singolo file ISO, ma dovresti vedere un messaggio "OK" per il file che hai scaricato se corrisponde al checksum.
È anche possibile eseguire i comandi del checksum direttamente su un file .iso. Esaminerà il file .iso e sputerà il suo checksum. Puoi quindi controllare che corrisponda al checksum valido osservando entrambi con gli occhi.
Ad esempio, per ottenere la somma SHA-256 di un file ISO:
sha256sum /path/to/file.iso
Oppure, se hai un valore md5sum e hai bisogno di ottenere il md5sum di un file:
md5sum /path/to/file.iso
Confronta il risultato con il file TXT di checksum per vedere se corrispondono.
Come verificare un checksum su Windows
Se stai scaricando una ISO Linux da una macchina Windows, puoi anche verificarne il checksum, anche se Windows non ha il software necessario integrato. Quindi, dovrai scaricare e installare lo strumento Gpg4win open-source.
Individuare il file della chiave di firma della distro Linux e i file di checksum. Useremo Fedora come esempio qui. Il sito Web di Fedora fornisce download di checksum e ci dice che è possibile scaricare la chiave di firma di Fedora da https://getfedora.org/static/fedora.gpg.
Dopo aver scaricato questi file, dovrai installare la chiave di firma utilizzando il programma Kleopatra incluso in Gpg4win. Avvia Kleopatra e fai clic su File> Importa certificati. Seleziona il file .gpg che hai scaricato.
È ora possibile verificare se il file di checksum scaricato è stato firmato con uno dei file chiave importati. Per fare ciò, fare clic su File> Decrittografa / Verifica file. Seleziona il file di checksum scaricato. Deseleziona l'opzione "Immetti il file è una firma separata" e fai clic su "Decrypt / Verify".
Sei sicuro di vedere un messaggio di errore se lo fai in questo modo, poiché non hai ancora avuto il problema di confermare che i certificati Fedora sono effettivamente legittimi. È un compito più difficile. Questo è il modo in cui PGP è progettato per funzionare: ad esempio, si incontrano e si scambiano le chiavi e si raccoglie una rete di fiducia. La maggior parte delle persone non lo usa in questo modo.
Tuttavia, è possibile visualizzare ulteriori dettagli e confermare che il file di checksum è stato firmato con una delle chiavi importate. Questo è molto meglio che fidarsi solo di un file ISO scaricato senza controllo, comunque.
Ora dovresti essere in grado di selezionare File> Verifica file checksum e confermare che le informazioni nel file checksum corrispondano al file .iso scaricato. Tuttavia, questo non ha funzionato per noi, forse è solo il modo in cui il file di checksum di Fedora è tracciato. Quando abbiamo provato questo con il file sha256sum.txt di Linux Mint, ha funzionato.
Se questo non funziona per la tua distribuzione Linux di scelta, ecco una soluzione alternativa. Per prima cosa, fai clic su Impostazioni> Configura Kleopatra. Seleziona "Operazioni di crittografia", seleziona "Operazioni sui file" e imposta Kleopatra per utilizzare il programma di checksum "sha256sum", poiché con questo è stato generato questo particolare checksum. Se hai un checksum MD5, seleziona "md5sum" nell'elenco qui.
Ora, fare clic su File> Crea file di checksum e selezionare il file ISO scaricato. Kleopatra genererà un checksum dal file .iso scaricato e lo salverà in un nuovo file.
È possibile aprire entrambi i file, il file di checksum scaricato e quello appena generato, in un editor di testo come Blocco note. Conferma che il checksum è identico in entrambi i tuoi occhi. Se è identico, hai confermato che il tuo file ISO scaricato non è stato manomesso.
Questi metodi di verifica non erano originariamente destinati alla protezione da malware. Sono stati progettati per confermare che il file ISO è stato scaricato correttamente e non è stato danneggiato durante il download, quindi è possibile masterizzarlo e usarlo senza preoccuparsi. Non sono una soluzione completamente infallibile, dato che devi fidarti della chiave PGP che scarichi. Tuttavia, questo offre ancora molta più sicurezza rispetto all'utilizzo di un file ISO senza verificarlo affatto.
Immagine di credito: Eduardo Quagliato su Flickr