La risposta breve
Usa l’algoritmo indicato da chi pubblica il file, perché per il confronto serve lo stesso algoritmo. Per nuovi impieghi, SHA-256 è la scelta più compatibile e anche SHA-512 è una buona opzione. BLAKE3 è la scelta più veloce per grandi quantità di dati propri, se lo strumento è disponibile su tutti i sistemi coinvolti. Oggi tutti e tre sono considerati sicuri e per nessuno è noto un attacco praticabile.
In cosa differiscono
SHA-256 e SHA-512 appartengono alla famiglia SHA-2 standardizzata dal NIST e sono spesso richiesti dalle regole di conformità. BLAKE3 è più recente e non è uno standard NIST, quindi potrebbe non soddisfare tali regole. SHA-256 e BLAKE3 con l’output predefinito producono 256 bit, ossia circa 128 bit di resistenza alle collisioni. SHA-512 produce 512 bit e circa 256 bit di resistenza. In pratica, entrambi i livelli superano di gran lunga ciò che è attaccabile.
La velocità dipende dall’hardware
BLAKE3 è progettato per usare più core della CPU e istruzioni vettoriali moderne, quindi sui file grandi di solito prevale nettamente. Tra le varianti SHA-2 il risultato varia: SHA-512 è spesso più veloce sulle CPU a 64 bit senza istruzioni speciali, mentre sulle CPU con estensioni SHA è più veloce SHA-256. Misura sul tuo computer con un file grande, perché cache e disco influiscono sul risultato. Potrebbe essere necessario installare b3sum separatamente.
time sha256sum large.iso
time sha512sum large.iso
time b3sum large.isoCosa dimostra un checksum
Un checksum corrispondente indica che il file è identico a quello da cui è stato calcolato il digest. Non indica chi ha creato il file. Se un attaccante può modificare sia il file da scaricare sia il checksum sulla stessa pagina, il confronto va a buon fine. Per verificare l’origine serve un digest ottenuto tramite un canale separato e fidato oppure una firma, ad esempio GPG.
sha256sum -c SHA256SUMS
gpg --verify SHA256SUMS.asc SHA256SUMSCosa evitare
La resistenza alle collisioni di MD5 e SHA-1 è stata compromessa e questi algoritmi non vanno usati per proteggere da manomissioni intenzionali. Possono ancora comparire in vecchi manifesti, dove rilevano solo danni accidentali. Funzioni non crittografiche come CRC-32 e xxHash sono progettate per la velocità e il rilevamento di errori accidentali, mai per la sicurezza.
Checksum in CH-J Server Manager
Il modulo Hash & Checksum include tutti e tre gli algoritmi e contrassegna SHA-256, SHA-512 e BLAKE3 come consigliati, MD5 e SHA-1 come compromessi. Può calcolare digest, confrontare file e verificare un valore atteso. Il modulo non può stabilire se il valore atteso sia a sua volta affidabile, quindi prendilo da una fonte fidata. L’applicazione verifica i propri aggiornamenti usando insieme SHA-512 e una firma OpenPGP.