Du hast ein großes Installationsprogramm über wackeliges Hotel-WLAN geladen, und irgendetwas fühlt sich falsch an. Eine Zeichenkette aus 64 Zeichen neben dem Downloadlink klärt die Frage in Sekunden.
Kurz gesagt
Eine Prüfsumme oder ein Hashwert ist ein Fingerabdruck fester Länge, der aus Daten berechnet wird: Ein Hash-Algorithmus bildet eine Nachricht beliebiger Länge auf einen Hashwert fester Länge ab [2]. SHA-256 gehört zur SHA-2-Familie, die das NIST in FIPS 180-4 normiert; der Wert ist 256 Bit lang und wird meist als 64 Hexadezimalzeichen geschrieben [1][2]. Wie prüfst du einen Download? Du berechnest den SHA-256-Wert deiner Datei und vergleichst ihn mit dem veröffentlichten: Stimmen beide überein, hat sich die Datei seit der Berechnung nicht verändert [1]. Unsere Einschätzung: Eine passende Prüfsumme belegt, dass die Datei unverändert ist, aber nicht, von wem sie stammt – dafür brauchst du eine Signatur.
So funktioniert’s
- Gleiche Daten, gleicher Wert. Eine Hashfunktion liefert für dieselben Daten immer denselben Wert, und laut FIPS 180-4 dienen diese Werte dazu, zu erkennen, ob eine Nachricht seit ihrer Berechnung verändert wurde [1]. Ändern sich die Daten, ändert sich der Wert; genau das macht den Vergleich nützlich.
- Starke und schwache Verfahren. FIPS 180-4 legt SHA-1 und die SHA-2-Verfahren SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 und SHA-512/256 fest [2]. Das NIST hat SHA-1 im Jahr 2011 für veraltet erklärt und Ende 2013 für digitale Signaturen untersagt [2]. Microsoft schreibt, dass MD5 und SHA-1 nicht mehr als sicher gelten und nur für einfache Änderungsprüfungen taugen, nicht für Dateien, die vor Angriffen oder Manipulation geschützt werden müssen [3].
- Windows. Das PowerShell-Cmdlet
Get-FileHashberechnet den Hash einer Datei und nutzt standardmäßig SHA256; außerdem kennt es SHA1, SHA384, SHA512 und MD5 [3]. - Linux und macOS. Unter Linux berechnet
sha256sumden Wert, und mit-cliest es Prüfsummen aus einer Datei und prüft sie [4]. Unter macOS rechnetshasumohne weitere Angabe SHA-1, erst mit-a 256kommt SHA-256 heraus; das Werkzeug ahmt die GNU-Programme wiesha256sumnach [5]. - Die Grenze. Steht die Prüfsumme auf derselben Webseite wie die Datei, fängt sie vor allem kaputte Downloads ab: Wer die Datei austauschen kann, kann meist auch die Zahl austauschen. Deshalb veröffentlicht Ubuntu zu seiner Prüfsummendatei eine GPG-Signatur. Die Signatur zeigt, dass die Prüfsummenliste echt ist, und die Prüfsumme zeigt, dass das Abbild unversehrt ist [6].
Ein Praxisbeispiel
Du lädst ein Installationsprogramm herunter, und die Projektseite nennt seinen SHA-256-Wert. In der PowerShell berechnest du den Wert deiner Kopie:
Get-FileHash .\installer.exeDie Ausgabe zeigt den Algorithmus SHA256 und den Hash [3]. 64 Zeichen mit bloßem Auge zu vergleichen geht leicht schief, also lass PowerShell vergleichen: (Get-FileHash .\installer.exe).Hash -eq "<veröffentlichter Wert>" liefert True oder False, genau wie in Microsofts eigenem Beispiel [3]. Unter Linux prüft sha256sum -c SHA256SUMS jede Datei, die in einer Prüfsummendatei steht [4]; unter macOS gibt shasum -a 256 installer.dmg den Wert aus [5]. Weichen die Werte ab, löschst du die Datei und lädst sie aus einer vertrauenswürdigen Quelle neu [6].
Prüfliste
- Nimm die Prüfsumme von der offiziellen Projektseite oder aus einer signierten Prüfsummendatei, nicht von einem Spiegelserver oder aus einem Forenbeitrag [6].
- Nutze SHA-256 oder stärker; verlass dich bei schützenswerten Dateien nicht auf MD5 oder SHA-1 [3].
- Lass das Werkzeug die Werte vergleichen, statt 64 Zeichen selbst zu lesen [3][4].
- Prüfe die Signatur der Prüfsummendatei, wenn das Projekt eine anbietet [6].
- Lade die Datei aus einer vertrauenswürdigen Quelle neu, wenn die Werte abweichen [6].