Calcola i checksum dei file e confrontali esattamente
Un checksum è un'impronta digitale ripetibile di byte di file. La corrispondenza di un valore pubblicato da una fonte attendibile può mostrare che i byte scaricati corrispondono al riferimento di quella fonte.
Una somma di controllo non dimostra che un file sia innocuo, che l'editore sia affidabile o che un valore di riferimento non sia stato sostituito da un utente malintenzionato. Il confronto è affidabile tanto quanto il canale che ha fornito il riassunto previsto.
Inizia con l'origine del valore atteso
Un digest copiato dalla stessa pagina di download compromessa del file potrebbe essere sostituito insieme ad esso. Preferisci una versione firmata, un archivio autenticato, un annuncio separato o un altro canale affidabile.
Registra il nome file, la versione, la piattaforma, l'architettura e l'algoritmo esatti. Gli editori spesso forniscono diversi file con nomi simili e checksum diversi.
Gli algoritmi non sono intercambiabili
Un valore SHA-256 non può essere confrontato con SHA-512 o MD5. Seleziona esattamente l'algoritmo pubblicato e confronta l'output esadecimale completo.
CRC32 rileva errori di trasferimento comuni ma è facile da manipolare. MD5 e SHA-1 presentano punti deboli in termini di collisione e non dovrebbero essere scelti per nuovi progetti di integrità dell'avversario, sebbene gli editori legacy possano comunque fornirli per compatibilità.
Comprendi cosa stabilisce una partita
Una corrispondenza indica che i byte del file locale concordano con i byte a cui si fa riferimento in quell'algoritmo. Rinominare il file normalmente non ha importanza perché il nome file non ha un hash.
Una corrispondenza non esegue la scansione alla ricerca di malware, non controlla il codice sorgente né stabilisce l'identità dell'editore. Se il riferimento attendibile descrive un file dannoso, il digest corrispondente identifica fedelmente quel file dannoso.
Combina checksum con firme e revisione della fonte
Per il software, verificare la firma della piattaforma, la firma del pacchetto o la versione firmata, se disponibile. Controlla il dominio dell'editore, le note di rilascio e il digest.
Conserva un registro del valore atteso e della sua fonte quando la verifica sarà importante in un secondo momento. Ricalcola dopo qualsiasi operazione che modifica i byte del file, inclusa la riarchiviazione o gli aggiornamenti dei metadati.
Proteggi il valore di riferimento, non solo la fase di confronto
La verifica del checksum è affidabile solo quanto il valore atteso. Preferisci un riassunto pubblicato tramite un canale autenticato controllato dal software o dall'editore dei dati. Se il file e il checksum arrivano dallo stesso messaggio non attendibile o dallo stesso sito Web compromesso, un utente malintenzionato potrebbe sostituirli entrambi. Registra l'algoritmo insieme al valore, perché stringhe esadecimali dall'aspetto identico possono rappresentare famiglie e lunghezze digest diverse. Per il software ad alta garanzia, verificare una versione firmata o la firma del pacchetto quando disponibile. Un checksum corrispondente conferma quindi che i byte ricevuti corrispondono ai byte a cui si fa riferimento; non certifica ancora che quei byte siano sicuri o idonei.
Avvio rapido: LocalUtils
- Ottieni il checksum previsto dall'editore del software o da un altro canale autenticato.
- Scegli lo stesso algoritmo indicato dall'editore; i valori di algoritmi diversi non possono essere confrontati.
- Seleziona il file e lascia che l'operatore finisca senza modificarlo o scaricarlo nuovamente.
- Confronta le stringhe esadecimali complete, preferibilmente tramite copia/incolla in un confronto di testo esatto o a tempo costante anziché controllare solo i primi caratteri.
Cosa fa il browser
Un Web Worker legge il file e calcola gli algoritmi selezionati, incluse le varianti CRC32, MD5, SHA-1, SHA-256, SHA-384, SHA-512 e SHA-3 implementate dalle librerie in bundle.
I byte del file rimangono nel percorso di elaborazione del browser. Gli algoritmi più vecchi rimangono utili per i controlli di compatibilità e corruzione accidentale, ma MD5 e SHA-1 non sono scelte adatte per i nuovi progetti di sicurezza resistenti alle collisioni.
Ingressi e uscite
- Input: qualsiasi file locale leggibile dall'API File del browser.
- Output: stringhe digest esadecimali per gli algoritmi selezionati.
- Un digest identifica i byte esatti; la modifica di un byte, di un campo di metadati o di un timestamp di archivio normalmente modifica il risultato.
Limiti da sapere prima di iniziare
- Un digest corrispondente non può rilevare malware quando il riferimento attendibile descrive lo stesso file dannoso.
- CRC32 è un checksum per il rilevamento degli errori, non una prova di integrità crittografica.
- MD5 e SHA-1 hanno noti punti deboli nelle collisioni.
- I file di grandi dimensioni richiedono tempo per essere letti e consumano comunque risorse di I/O e di elaborazione del dispositivo.
Lista di controllo per la verifica
- Conferma che il checksum di riferimento è stato ottenuto tramite HTTPS o un canale di rilascio firmato.
- Confronta l'intero digest con le maiuscole corrispondenti ignorate solo quando la rappresentazione è esadecimale.
- Per il software ad alta garanzia, verificare una firma digitale oltre al checksum.
Risoluzione dei problemi
- Se i valori differiscono, conferma l'algoritmo, la versione del file, l'architettura, lo stato di decompressione e se l'editore ha sottoposto ad hashing un archivio o i suoi contenuti.
- Copia il checksum senza spazi, etichette o interruzioni di riga nascoste.
- Ricalcola dopo un nuovo download solo quando il valore atteso proviene da una fonte indipendente attendibile.
Domande che le persone fanno
I checksum dovrebbero fare distinzione tra maiuscole e minuscole?
Le lettere esadecimali di solito possono essere confrontate senza maiuscole e minuscole, ma altrimenti ogni cifra e posizione di lettera deve corrispondere.
Perché due file visivamente identici hanno un hash diverso?
Metadati, impostazioni di compressione, ordine degli oggetti, timestamp o byte invisibili possono differire anche quando il contenuto visualizzato è lo stesso.
SHA-256 è sufficiente?
È un riassunto moderno ampiamente utilizzato, ma la distribuzione affidabile dipende anche da come vengono autenticati il valore atteso e l'identità dell'editore.
