Berechnen Sie Dateiprüfsummen und vergleichen Sie diese genau
Eine Prüfsumme ist ein wiederholbarer Fingerabdruck von Dateibytes. Der Abgleich mit einem von einer vertrauenswürdigen Quelle veröffentlichten Wert kann zeigen, dass Ihre heruntergeladenen Bytes mit der Referenz dieser Quelle übereinstimmen.
Eine Prüfsumme beweist nicht, dass eine Datei harmlos ist, dass der Herausgeber vertrauenswürdig ist oder dass ein Referenzwert nicht durch einen Angreifer ersetzt wurde. Der Vergleich ist nur so vertrauenswürdig wie der Kanal, der den erwarteten Digest geliefert hat.
Beginnen Sie mit dem Ursprung des erwarteten Werts
Ein Digest, der von derselben kompromittierten Download-Seite wie die Datei kopiert wurde, kann daneben ersetzt werden. Bevorzugen Sie eine signierte Veröffentlichung, ein authentifiziertes Repository, eine separate Ankündigung oder einen anderen vertrauenswürdigen Kanal.
Notieren Sie den genauen Dateinamen, die Version, die Plattform, die Architektur und den Algorithmus. Oftmals stellen Herausgeber mehrere Dateien mit ähnlichen Namen und unterschiedlichen Prüfsummen bereit.
Algorithmen sind nicht austauschbar
Ein SHA-256-Wert kann nicht mit SHA-512 oder MD5 verglichen werden. Wählen Sie genau den veröffentlichten Algorithmus aus und vergleichen Sie die vollständige Hexadezimalausgabe.
CRC32 erkennt häufige Übertragungsfehler, ist aber leicht zu manipulieren. MD5 und SHA-1 weisen Kollisionsschwächen auf und sollten nicht für neue kontradiktorische Integritätsdesigns ausgewählt werden, obwohl ältere Herausgeber sie aus Kompatibilitätsgründen möglicherweise weiterhin bereitstellen.
Verstehen Sie, was eine Übereinstimmung bewirkt
Eine Übereinstimmung gibt an, dass die lokalen Dateibytes mit den referenzierten Bytes unter diesem Algorithmus übereinstimmen. Das Umbenennen der Datei spielt normalerweise keine Rolle, da der Dateiname nicht gehasht wird.
Bei einem Abgleich wird nicht nach Malware gescannt, der Quellcode wird nicht geprüft und die Identität des Herausgebers wird nicht ermittelt. Wenn die vertrauenswürdige Referenz eine schädliche Datei beschreibt, identifiziert der passende Digest diese schädliche Datei zuverlässig.
Kombinieren Sie Prüfsummen mit Signaturen und Quellenprüfung
Überprüfen Sie bei Software eine Plattformsignatur, Paketsignatur oder signierte Version, sofern verfügbar. Überprüfen Sie die Domain des Herausgebers und die Versionshinweise sowie den Digest.
Notieren Sie den erwarteten Wert und seine Quelle, wenn es später auf die Überprüfung ankommt. Neuberechnung nach jedem Vorgang, der Dateibytes ändert, einschließlich Neuarchivierung oder Metadatenaktualisierungen.
Schützen Sie den Referenzwert, nicht nur den Vergleichsschritt
Die Überprüfung der Prüfsumme ist nur so vertrauenswürdig wie der erwartete Wert. Bevorzugen Sie einen Digest, der über einen authentifizierten Kanal veröffentlicht wird, der von der Software oder dem Datenherausgeber kontrolliert wird. Wenn die Datei und die Prüfsumme von derselben nicht vertrauenswürdigen Nachricht oder kompromittierten Website stammen, kann ein Angreifer beide ersetzen. Notieren Sie den Algorithmus zusammen mit dem Wert, da identisch aussehende Hexadezimalzeichenfolgen unterschiedliche Digest-Familien und -Längen darstellen können. Überprüfen Sie bei hochsicherer Software eine signierte Version oder Paketsignatur, sofern verfügbar. Eine passende Prüfsumme bestätigt dann, dass die von Ihnen empfangenen Bytes mit den referenzierten Bytes übereinstimmen; Es wird immer noch nicht bestätigt, dass diese Bytes sicher oder geeignet sind.
Schnellstart: LocalUtils
- Erhalten Sie die erwartete Prüfsumme vom Softwareherausgeber oder einem anderen authentifizierten Kanal.
- Wählen Sie denselben vom Herausgeber benannten Algorithmus. Werte aus verschiedenen Algorithmen können nicht verglichen werden.
- Wählen Sie die Datei aus und lassen Sie den Worker fertig werden, ohne sie zu ändern oder erneut herunterzuladen.
- Vergleichen Sie die vollständigen hexadezimalen Zeichenfolgen, vorzugsweise durch Kopieren/Einfügen in einen zeitkonstanten oder exakten Textvergleich, anstatt nur die ersten Zeichen zu überprüfen.
Was der Browser macht
Ein Web Worker liest die Datei und berechnet ausgewählte Algorithmen, einschließlich CRC32-, MD5-, SHA-1-, SHA-256-, SHA-384-, SHA-512- und SHA-3-Varianten, die von den gebündelten Bibliotheken implementiert werden.
Die Dateibytes verbleiben im Browser-Verarbeitungspfad. Ältere Algorithmen bleiben für Kompatibilitäts- und versehentliche Korruptionsprüfungen nützlich, aber MD5 und SHA-1 sind keine geeigneten Optionen für neue kollisionsresistente Sicherheitsdesigns.
Ein- und Ausgänge
- Eingabe: jede lokale Datei, die von der Datei-API des Browsers gelesen werden kann.
- Ausgabe: Hexadezimale Digest-Strings für die ausgewählten Algorithmen.
- Ein Digest identifiziert genaue Bytes; Das Ändern eines Bytes, eines Metadatenfelds oder eines Archivzeitstempels ändert normalerweise das Ergebnis.
Grenzen, die Sie kennen sollten, bevor Sie beginnen
- Ein passender Digest kann keine Malware erkennen, wenn die vertrauenswürdige Referenz dieselbe schädliche Datei beschreibt.
- CRC32 ist eine Prüfsumme zur Fehlererkennung, kein kryptografischer Integritätsnachweis.
- MD5 und SHA-1 weisen bekannte Kollisionsschwächen auf.
- Das Lesen großer Dateien nimmt Zeit in Anspruch und verbraucht dennoch Geräte-E/A- und Verarbeitungsressourcen.
Checkliste zur Verifizierung
- Bestätigen Sie, dass die Referenzprüfsumme über HTTPS oder einen signierten Release-Kanal abgerufen wurde.
- Vergleichen Sie den gesamten Digest mit übereinstimmender Groß- und Kleinschreibung, die nur ignoriert wird, wenn die Darstellung hexadezimal ist.
- Überprüfen Sie bei hochsicherer Software zusätzlich zur Prüfsumme eine digitale Signatur.
Fehlerbehebung
- Wenn sich die Werte unterscheiden, überprüfen Sie den Algorithmus, die Dateiversion, die Architektur, den Dekomprimierungsstatus und ob der Herausgeber ein Archiv oder seinen Inhalt hasht.
- Kopieren Sie die Prüfsumme ohne Leerzeichen, Beschriftungen oder verdeckte Zeilenumbrüche.
- Führen Sie nach einem erneuten Download nur dann eine Neuberechnung durch, wenn der erwartete Wert von einer vertrauenswürdigen unabhängigen Quelle stammt.
Fragen, die Menschen stellen
Sollte bei Prüfsummen zwischen Groß- und Kleinschreibung unterschieden werden?
Hexadezimale Buchstaben können in der Regel ohne Groß- und Kleinschreibung verglichen werden, ansonsten müssen aber alle Ziffern und Buchstabenpositionen übereinstimmen.
Warum hashen zwei optisch identische Dateien unterschiedlich?
Metadaten, Komprimierungseinstellungen, Objektreihenfolge, Zeitstempel oder unsichtbare Bytes können unterschiedlich sein, selbst wenn der gerenderte Inhalt gleich aussieht.
Reicht SHA-256?
Es handelt sich um einen weit verbreiteten modernen Digest, aber eine vertrauenswürdige Verteilung hängt auch davon ab, wie der erwartete Wert und die Identität des Herausgebers authentifiziert werden.
