Verifica delle immagini ISO in Linux: checksum, GPG e best practice

  • La verifica di un'immagine ISO implica il controllo sia della sua integrità tramite checksum, sia della sua autenticità tramite firme GPG.
  • Le utility md5sum, sha1sum e sha256sum consentono di calcolare e verificare facilmente gli hash dal terminale.
  • I file SHA256SUMS e SHA256SUMS.gpg sono fondamentali per verificare che i file scaricati corrispondano alle immagini ufficiali.
  • Generare e pubblicare i propri file di checksum semplifica la verifica rapida e sicura dei download da parte di altri utenti.

Verifica delle immagini ISO in Linux tramite checksum e GPG

Quando scarichiamo una distribuzione GNU/Linux, la cosa usuale è scaricare il Crea un'immagine ISO e inizia a creare l'unità USB avviabile. Senza riflettere troppo su cosa possa essere successo lungo il percorso. La verità è che, anche se spesso non succede nulla di male, ci fidiamo ciecamente che l'immagine ISO sia legittima. Che nessuno l'abbia toccata e che il download non sia stato corrotto.

Se parliamo di un sistema operativo completo, le cose cambiano. Si tratta di file di grandi dimensioni, il loro download richiede molto tempo e soprattutto, Un errore o una manipolazione nel sistema ISO può compromettere l'intero team.Ecco perché nel mondo Linux è così comune (e consigliato) verificare l'integrità e l'autenticità delle immagini ISO utilizzando checksum e firme GPG prima di masterizzarle su un DVD o scriverle su un'unità USB.

Cosa significa verificare una certificazione ISO: integrità e autenticità

Quando si verifica uno standard ISO, non si esegue un singolo controllo, ma due controlli distinti che non devono essere confusi: il integrità del file e autenticità della sua origineL'integrità ti dice se l'immagine ISO che hai sul disco è identica, bit per bit, a quella che si trovava sul server. L'autenticità ti dice se quell'immagine ISO e i relativi checksum provengono effettivamente dal progetto che dichiarano di rappresentare.

L'integrità viene verificata tramite un funzione hash (checksum) calcolata sull'intero fileSe il risultato ottenuto sul tuo computer corrisponde a quello pubblicato dalla distribuzione, significa che l'immagine ISO non è stata alterata durante il download né danneggiata durante la memorizzazione.

L'autenticità viene convalidata tramite Firme digitali GPG associato alle chiavi pubbliche degli sviluppatoriIn pratica, la distribuzione firma il file contenente i checksum (ad esempio, SHA256SUMS) e tu verifichi che questa firma corrisponda alla chiave ufficiale del progetto e che non sia stata modificata.

Sebbene molte persone controllino solo il checksum MD5 o SHA e lo considerino valido, se qualcuno ha compromesso il server di download, potrebbe anche... Sostituisci l'immagine ISO e pubblica un checksum falso.Pertanto, una buona prassi prevede anche la convalida della firma GPG del file delle somme.

checksum iso linux

Cos'è un checksum e perché viene utilizzato negli standard ISO?

Il checksum è il risultato dell'applicazione di un algoritmo di checksum a un file. funzione hash crittografica che genera una stringa univoca per quel contenuto. Tale stringa è solitamente rappresentata in esadecimale (caratteri da 0 a 9 e af) e ha una lunghezza fissa, indipendentemente dalle dimensioni del file originale.

Nel contesto delle distribuzioni GNU/Linux, i checksum vengono utilizzati per verificare che i dati non siano cambiati da quando il progetto ha pubblicato l'immagineSe due file producono lo stesso hash utilizzando lo stesso algoritmo, vengono considerati (in pratica) identici. Se l'hash non corrisponde, è sufficiente una sola differenza di bit per cambiare completamente il valore e consentirci di rilevare il problema.

Esistono molti algoritmi di hash, ma quelli che più spesso vengono associati agli standard ISO sono: MD5, SHA-1 e la famiglia SHA-2 (SHA-256, SHA-384, SHA-512…)Sulle pagine di download di Debian, Ubuntu, Fedora o altre distribuzioni, spesso vengono offerti file con nomi come MD5SUMS, SHA1SUMS o SHA256SUMS insieme alle immagini ISO.

La procedura è semplice: scarichi l'ISO e il suo file hash, calcoli l'hash ISO sulla tua macchina e Si verifica che il risultato corrisponda al valore pubblicato nel file di checksum.Se corrispondono, si può ragionevolmente essere certi che l'immagine non sia danneggiata o troncata.

MD5 è considerato oggi un algoritmo obsoleto per usi di sicurezza gravosiperché sono state riscontrate collisioni pratiche. Ciononostante, rimane utile per un controllo di integrità di base. Per download di grandi dimensioni, soprattutto file ISO, è meglio utilizzare... SHA-256, che è attualmente lo standard raccomandato. nella maggior parte delle distribuzioni.

Tipi di file che troverai durante il download di un'immagine ISO

Quando si scarica una distribuzione dal suo server ufficiale, è comune trovare, oltre all'immagine stessa, una serie di file aggiuntivi. Ognuno di essi ha uno scopo preciso ed è importante conoscerne la funzione. Qual è la funzione di ciascun tipo di file e in che modo si collega al processo di verifica? che hai intenzione di fare.

In genere troverai qualcosa del genere (i nomi possono variare leggermente tra le diverse distribuzioni):

  • distribution-name-version-architecture.isoL'immagine stessa, ovvero ciò che masterizzerai su un'unità USB o un DVD. Ad esempio, ubuntu-20.04-desktop-amd64.iso, che indica la distribuzione, la versione, l'edizione (desktop/server) e l'architettura.
  • MD5SUMS: Un file di testo che include un elenco di hash MD5 per le immagini disponibili in quella directory. Ogni riga associa un hash a un nome file.
  • MD5SUMS.gpgFirma GPG del file MD5SUMS, generata con la chiave degli sviluppatori. Serve a verificare che il file hash MD5 provenga effettivamente dal progetto e non sia stato alterato.
  • SHA256SUMSEquivalente a MD5SUMS ma che utilizza l'algoritmo SHA-256. Questo è il file a cui dovresti dare la priorità, se disponibile.
  • SHA256SUMS.gpg: Firma digitale SHA256SUMS GPG, utilizzata per garantirne l'autenticità.

In alcune distribuzioni troverai anche file SHA1SUMS, SHA512SUMS o simili. Tutti seguono lo stesso principio: un elenco di somme e, facoltativamente, una firma GPG associata così puoi verificare che l'elenco non sia stato manomesso.

Se invece di scaricare l'ISO tramite HTTP/HTTPS lo fai usando BitTorrent, la maggior parte dei client integra già un sistema di verifica L'elaborazione interna si basa su frammenti e hash parziali, quindi le probabilità di ottenere un'immagine ISO corrotta sono notevolmente ridotte. Ciononostante, se si desidera essere assolutamente certi della sua autenticità, è comunque consigliabile verificare la firma GPG del file hash.

funzioni hash di Linux

Come funzionano le funzioni hash (MD5, SHA-1, SHA-256…)

A livello pratico, non è necessario comprendere la matematica alla base degli hash, ma è utile afferrare un paio di concetti di base per avere una chiara comprensione. Perché sono così utili per verificare le norme ISO?Una funzione hash crittografica prende in input un file di qualsiasi dimensione e restituisce una stringa di lunghezza fissa; la modifica di un singolo bit del file produce un hash completamente diverso.

I requisiti per una buona funzione hash includono che sia facile da calcolare in un certo senso, ma praticamente impossibile investireche è molto difficile trovare due file diversi con lo stesso hash (collisione) e che è resistente ai tentativi di generare contenuti dannosi che corrispondano a uno specifico hash.

MD5 è stato per anni lo standard di fatto per questo tipo di verifica, ma i progressi nella crittografia hanno dimostrato che È possibile creare file diversi con lo stesso hash MD5Pertanto, sebbene rimanga una pratica comune in alcuni progetti, per ragioni di sicurezza si raccomanda di utilizzare algoritmi più robusti.

SHA-1 ha migliorato alcune delle debolezze di MD5, ma sono stati identificati anche problemi di collisione ed è considerato Non adatto a nuove implementazioni che richiedono elevati livelli di sicurezza.La famiglia SHA-2 (in particolare SHA-256) rappresenta attualmente l'opzione più equilibrata in termini di sicurezza e prestazioni per la verifica ISO.

In pratica, se la distribuzione offre diversi file di somma, l'opzione migliore è sceglierne uno. SHA-256 o SHA-512 come prima opzioneRiserva SHA-1 solo ai casi in cui non ci siano altre opzioni e relega MD5 a un controllo di integrità di base quando non hai alternative.

Strumenti Linux per il calcolo e la verifica dei checksum

La buona notizia è che non è necessario installare nulla di insolito: la maggior parte delle distribuzioni GNU/Linux moderne li includono già. Utilità da riga di comando per il calcolo e la verifica degli hashQuesti strumenti sono generalmente inclusi in coreutils o in altri pacchetti di base.

I comandi più comuni che incontrerai sono:

  • md5sumCalcola e verifica le somme MD5.
  • sha1sumCalcola e verifica le somme SHA-1.
  • sha256sumCalcola e verifica le somme SHA-256.
  • sha512sumCalcola e verifica le somme SHA-512.

Il loro utilizzo è molto semplice. Se si desidera calcolare l'hash di un file specifico, è sufficiente eseguire il seguente comando nel terminale, dalla directory in cui si trova il file ISO:

cd Descargas
sha256sum nombre-de-tu-imagen.iso

Il comando stamperà una riga con l'hash e il nome del file, che puoi confrontare con il valore pubblicato sul sito web. Se preferisci MD5 o SHA-1, Il formato del comando è identico, cambiando l'utilità (md5sum, sha1sum, sha512sum…).

Oltre a calcolare gli hash individuali, questi stessi strumenti consentono di verificare più file contemporaneamente utilizzando il modalità di verifica con l'opzione -cÈ qui che entra in gioco il file MD5SUMS o SHA256SUMS che hai scaricato insieme alle immagini ISO.

Verifica dell'integrità di un'immagine ISO tramite file di somma

In genere, si scaricano sia l'immagine ISO che il relativo file SHA256SUMS (e, se disponibile, MD5SUMS o SHA1SUMS) dal sito web ufficiale della distribuzione. La struttura di questo file è molto semplice: ogni riga contiene un hash, uno spazio, facoltativamente un asterisco o un ulteriore spazio e il nome del file.

Per controllare l'ISO con il file di somma, devi solo andare nella cartella in cui hai sia l'immagine che il file SHA256SUMS ed esegui:

sha256sum -c SHA256SUMS

L'utility scorre tutte le righe SHA256SUMS e confronta l'hash calcolato localmente per ciascun file elencato con quello presente nel documento. Se tutto è in ordine, visualizzerà qualcosa di simile a:

nombre-distro.iso: OK

In caso di discrepanze, sia perché l'ISO è corrotto sia perché Il file non corrisponde all'elenco delle sommeVedrai messaggi come questo:

nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

La stessa procedura si applica a MD5 e SHA-1 sostituendo lo strumento e il file corrispondenti, ad esempio:

md5sum -c MD5SUMS
sha1sum -c SHA1SUMS

Questo approccio è particolarmente conveniente quando si scaricano più ISO o più file contemporaneamente, perché Con un singolo comando è possibile verificare tutti i file contemporaneamente. e il sistema ti dice chi ha superato il test e chi no.

Firme GPG: verifica dell'autenticità delle somme

Finora abbiamo parlato solo di integrità, ma manca il secondo elemento: assicurarsi che il file delle somme provenga effettivamente dal progetto e non da qualcuno che ha compromesso il server. È qui che entra in gioco GnuPG (gpg), lo strumento standard per la gestione della crittografia a chiave pubblica in GNU/Linux.

La maggior parte delle principali distribuzioni firma i propri file hash (ad esempio, SHA256SUMS.gpg) con una chiave privata associata agli sviluppatori. Tu, in qualità di utente, scarichi tale firma e la utilizzi. la chiave pubblica del progetto per verificare che il file SHA256SUMS non è stato modificato.

Il flusso di lavoro tipico con una distribuzione come Ubuntu sarebbe questo, una volta installato gpg e trovandosi nella directory dei download:

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

Se il tuo computer ha già la chiave pubblica di Ubuntu correttamente importata e considerata attendibile, gpg visualizzerà un messaggio che indica un firma valida e identificatore di chiaveMa è molto comune che la prima volta che lo si esegue, venga visualizzato un messaggio di errore che indica che la chiave pubblica non è riconosciuta.

In tal caso, il passo successivo sarebbe quello di importare la chiave pubblica da un server di chiavi attendibile. Ad esempio, con Ubuntu si potrebbe fare qualcosa del genere:

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

Questo scarica la chiave con l'identificativo specificato dal keyserver ufficiale. Una volta importata, esegui nuovamente il comando di verifica della firma utilizzando SHA256SUMS e dovresti ora ottenere un conferma che la firma è corretta ed è associato alla chiave “Ubuntu CD Image Automatic Signing Key (2012)[email protected]>” o un altro simile a seconda della distribuzione.

GPG può visualizzare avvisi come "Non vi è alcuna indicazione che la firma appartenga al proprietario", il che significa sostanzialmente che Non hai contrassegnato quella chiave come assolutamente affidabile.Non si tratta di un errore fatale: a condizione che tu abbia verificato tramite altri mezzi (sito web ufficiale, documentazione, ecc.) che l'impronta digitale della chiave corrisponda a quella dichiarata dal progetto, puoi procedere.

Esempio pratico: verifica di una recente immagine ISO di Ubuntu

Per comprendere appieno questo concetto, immaginate di scaricare un'immagine ISO di Ubuntu (ad esempio, una versione LTS recente) dal sito web ufficiale. Su quella pagina troverete i link per scaricare l'immagine ISO, il file SHA256SUMS e la relativa firma SHA256SUMS.gpg, tutti nella stessa directory o in una directory vicina.

I passaggi da seguire sarebbero essenzialmente i seguenti:

Primo, Scarica l'immagine ISO appropriata per la tua architettura (ad esempio, l'immagine desktop AMD64 a 64 bit), oltre ai file SHA256SUMS e SHA256SUMS.gpg corrispondenti a tale versione.

Successivamente, con gpg installato sul sistema, è possibile verificare la firma del file sums con:

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

Se gpg ti dice che non riesce a trovare la chiave, puoi ottenerla da un server di chiavi associato al progetto eseguendo un comando simile a:

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

Una volta importata la chiave e convalidata la firma del file SHA256SUMS, è possibile confrontare l'immagine ISO con tale elenco utilizzando:

sha256sum -c SHA256SUMS

Il comando controllerà tutte le voci e visualizzerà un messaggio per ogni file elencato. Per l'immagine ISO appena scaricata, dovresti vedere qualcosa di simile a questo: “ubuntu-XX.XX-desktop-amd64.iso: Somma delle corrispondenze” oppure “OK”, a conferma che l’immagine locale corrisponde esattamente a quella pubblicata dagli sviluppatori.

Verifica manuale di un singolo checksum

A volte non si ha a disposizione il file completo delle somme oppure nella pagina di download viene fornito un solo hash. In tal caso, è possibile eseguire anche la verifica "tradizionale". calcolare il checksum locale e confrontarlo manualmente con il valore pubblicato.

Immagina di aver scaricato un'immagine ISO di Red Hat e che il sito web mostri solo l'hash SHA-1 di quell'immagine. Nella tua directory di lavoro, esegui il seguente comando:

sha1sum redhat7-x64.iso

Il comando restituirà qualcosa di simile a:

2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso

Da lì, non ti resta che confronta visivamente o copiando/incollando quell'hash Confronta il nome del file con quello mostrato sul sito web o nel piccolo file di testo che hai scaricato. Se corrispondono carattere per carattere, l'integrità del file è garantita; se differiscono, dovrai scaricarlo di nuovo.

Verifica più ISO contemporaneamente

Ci sono situazioni in cui si desidera scaricare più immagini contemporaneamente (ad esempio, versioni o architetture diverse) e non si vuole controllarle una per una. Fortunatamente, i file MD5SUMS, SHA1SUMS o SHA256SUMS di solito le raggruppano. tutte le somme di una directory in un unico documento, giusto per poter effettuare la verifica in blocco in un unico passaggio.

Supponiamo di avere sei diverse immagini ISO in una cartella e di aver scaricato i file MD5SUM, SHA1SUM e SHA256SUM. Per i controlli MD5, si procederebbe in questo modo:

md5sum -c MD5SUM

L'output elencherà ogni ISO insieme a "OK" o "FAILED" a seconda che la somma corrisponda o meno. Lo stesso vale per SHA-1 e SHA-256, cambiando solo lo strumento e il file:

sha1sum -c SHA1SUM
sha256sum -c SHA256SUM

Se modifichi intenzionalmente un'immagine ISO o se questa viene danneggiata a causa di un errore del disco, vedrai che Solo quella specifica voce è FALLITA Anche se tutto il resto rimane a posto, i programmi ti avviseranno con un messaggio come "ATTENZIONE: 1 checksum calcolato NON corrisponde", così saprai che qualcosa è andato storto.

Come generare i propri file di checksum

Oltre a verificare ciò che pubblicano gli altri, puoi anche creare i tuoi file di checksum se intendi condividere ISO o qualsiasi altro tipo di file con più persone. È semplice come usare gli stessi strumenti, ma reindirizzamento dell'output standard a un file che potrai poi caricare insieme ai download.

Ad esempio, se hai preparato diverse immagini ISO in una directory e desideri generare un file MD5SUM con tutte, puoi procedere come segue:

md5sum *.iso > MD5SUM

Il comando eseguirà la scansione di tutte le ISO presenti nella cartella e salverà l'elenco degli hash e dei nomi nel file MD5SUM. Allo stesso modo, è possibile creare documenti utilizzando SHA-1 o SHA-256:

sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM

Pubblicando questi file di verifica insieme ai tuoi file, chiunque potrà eseguire md5sum -c, sha1sum -co sha256sum -c Controllate i file e verificate che i download siano andati a buon fine e che nessuno li abbia modificati durante il trasferimento.

Se vuoi fare un ulteriore passo avanti e offrire garanzie di autenticità, potresti persino firmare digitalmente quei file di somma Utilizzando la propria chiave GPG, in modo simile a quanto avviene nei grandi progetti. In questo modo, chiunque riceva il materiale può verificare non solo che i dati siano completi, ma anche che provengano effettivamente da voi.

Adottare l'abitudine di controllare i checksum e le firme GPG prima di installare una distribuzione Linux richiede pochissimo tempo e, in cambio, fornisce un importante livello di sicurezza, impedendo installazioni con ISO corrotte o manipolate e aiutando a individuare i problemi prima che compromettano il computer.

Crea facilmente un'unità USB multiboot con Ventoy
Articolo correlato:
Come creare facilmente un'unità USB multiboot con Ventoy

Aggiungi come fonte preferita in Google