Checksum (Prüfsumme)
Eine Prüfsumme (englisch: Checksum) ist ein Wert, der aus einer Datenmenge berechnet wird, um deren Integrität zu überprüfen. Sie funktioniert wie ein digitaler Fingerabdruck: Ändert sich auch nur ein einziges Bit in den Ursprungsdaten, ergibt die Neuberechnung eine völlig andere Prüfsumme.
Das Grundprinzip ist einfach: Vor der Übertragung oder Speicherung berechnet der Absender die Prüfsumme. Nach dem Empfang berechnet der Empfänger die Prüfsumme erneut und vergleicht beide Werte. Stimmen sie überein, sind die Daten mit hoher Wahrscheinlichkeit unverändert. Bei Abweichungen liegt ein Fehler oder eine Manipulation vor.
Funktionsweise von Prüfsummen
Eine Prüfsumme wird durch einen mathematischen Algorithmus berechnet, der die Eingabedaten verarbeitet und einen Wert fester Länge erzeugt. Die einfachste Form ist die Quersumme: Bei der Zahl 34567 ergibt sich 3+4+5+6+7=25. In der IT-Praxis werden jedoch komplexere Verfahren eingesetzt, die deutlich zuverlässiger arbeiten.
Der Berechnungsprozess läuft in mehreren Schritten ab:
- Daten einlesen: Die zu prüfenden Daten werden blockweise verarbeitet
- Algorithmus anwenden: Jeder Block durchläuft mathematische Operationen
- Ergebnis aggregieren: Die Teilergebnisse werden zu einer finalen Prüfsumme zusammengefasst
- Ausgabe erzeugen: Das Ergebnis hat immer die gleiche Länge, unabhängig von der Eingabegröße
Eine wichtige Eigenschaft: Selbst bei gigabytegroßen Dateien ist die Prüfsumme nur wenige Zeichen lang. Eine SHA-256-Prüfsumme besteht beispielsweise immer aus 64 hexadezimalen Zeichen.
Gängige Prüfsummen-Algorithmen
Je nach Anwendungsfall kommen unterschiedliche Algorithmen zum Einsatz. Sie unterscheiden sich in Komplexität, Geschwindigkeit und Sicherheitsniveau.
CRC (Cyclic Redundancy Check)
CRC ist ein weit verbreitetes Verfahren zur Fehlererkennung in der Datenübertragung. Es basiert auf Polynomdivision und kann Mehrfachfehler sowie systematische Fehler zuverlässig erkennen. Du findest CRC in Ethernet-Frames, ZIP-Archiven und vielen Netzwerkprotokollen. CRC32 erzeugt eine 32-Bit-Prüfsumme und ist für die Fehlererkennung optimiert, jedoch nicht für kryptographische Sicherheit.
MD5 (Message Digest 5)
MD5 erzeugt einen 128-Bit-Hash (32 hexadezimale Zeichen). Der Algorithmus war jahrelang Standard, gilt heute jedoch als kryptographisch unsicher, da Kollisionen (verschiedene Eingaben mit gleichem Hash) praktisch berechnet werden können. Für einfache Integritätsprüfungen bei Downloads wird MD5 noch verwendet, für sicherheitskritische Anwendungen wie Passwörter oder digitale Signaturen solltest du es nicht mehr einsetzen.
SHA-Familie (Secure Hash Algorithm)
Die SHA-Algorithmen wurden vom US-amerikanischen NIST (National Institute of Standards and Technology) standardisiert und bieten unterschiedliche Sicherheitsniveaus:
- SHA-1: Erzeugt 160-Bit-Hashes (40 Zeichen). Gilt seit 2017 als gebrochen und sollte nicht mehr verwendet werden
- SHA-256: Teil der SHA-2-Familie, erzeugt 256-Bit-Hashes (64 Zeichen). Aktueller Standard für die meisten Anwendungen
- SHA-512: Erzeugt 512-Bit-Hashes (128 Zeichen). Bietet höchste Sicherheit, ist aber langsamer
SHA-256 ist heute der empfohlene Standard für Integritätsprüfungen und kryptographische Anwendungen. Er bietet ein gutes Verhältnis zwischen Sicherheit und Performance.
Unterschied: Checksum vs. Hash
Die Begriffe werden oft synonym verwendet, beschreiben aber unterschiedliche Konzepte:
| Eigenschaft | Checksum (Prüfsumme) | Kryptographischer Hash |
|---|---|---|
| Zweck | Fehlererkennung | Sicherheit und Integrität |
| Geschwindigkeit | Sehr schnell | Langsamer |
| Kollisionsresistenz | Gering | Hoch |
| Beispiele | CRC32, Quersumme | SHA-256, SHA-512 |
| Einsatz | Netzwerkprotokolle, Archive | Passwörter, Signaturen, Downloads |
Eine einfache Checksum wie CRC reicht aus, um zufällige Übertragungsfehler zu erkennen. Gegen absichtliche Manipulation schützt sie jedoch nicht, da ein Angreifer die Checksum passend berechnen kann. Kryptographische Hashes wie SHA-256 machen dies praktisch unmöglich.
Einsatzgebiete von Prüfsummen
Software-Downloads verifizieren
Softwarehersteller veröffentlichen neben ihren Downloads häufig die zugehörigen SHA-256-Prüfsummen. Damit kannst du sicherstellen, dass du eine unveränderte Originaldatei erhalten hast und nicht etwa eine mit Schadsoftware manipulierte Version. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) empfiehlt dieses Vorgehen ausdrücklich.
Datenübertragung in Netzwerken
Bei der Datenübertragung können Bits durch elektromagnetische Störungen oder Hardware-Fehler "umkippen". Netzwerkprotokolle wie TCP/IP verwenden deshalb Prüfsummen im Header jedes Pakets. Der IP-Header enthält eine eigene Checksum, die bei jedem Router neu berechnet wird. Auch Ethernet-Frames nutzen CRC zur Fehlererkennung auf der Sicherungsschicht.
Datenspeicherung und Backup
Moderne Dateisysteme wie ZFS und Btrfs berechnen Prüfsummen für jeden Datenblock. Beim Lesen wird die Prüfsumme erneut berechnet und verglichen. So erkennt das System Bitfehler auf Festplatten (Silent Data Corruption) und kann diese bei redundanter Speicherung automatisch korrigieren. Auch bei Backups solltest du Prüfsummen speichern, um die Integrität deiner Sicherungen verifizieren zu können.
Prüfsummen im Alltag
Auch außerhalb der IT begegnest du Prüfsummen: Die letzte Ziffer einer ISBN-Nummer ist eine Prüfziffer. Gleiches gilt für Kreditkartennummern (Luhn-Algorithmus) und IBAN-Kontonummern. Sie erkennen Tippfehler bei der manuellen Eingabe.
Prüfsummen in der Praxis berechnen
Als Fachinformatiker für Systemintegration oder Anwendungsentwicklung wirst du regelmäßig mit Prüfsummen arbeiten. Hier sind die wichtigsten Befehle für die gängigen Betriebssysteme.
Linux und macOS
Linux-Systeme bieten standardmäßig Kommandozeilen-Tools für alle gängigen Hash-Algorithmen:
# SHA-256-Prüfsumme berechnen (empfohlen)
sha256sum datei.iso
# MD5-Prüfsumme berechnen
md5sum datei.iso
# SHA-512-Prüfsumme berechnen
sha512sum datei.iso
# Prüfsumme aus Datei verifizieren
sha256sum -c checksums.txt
Die Ausgabe zeigt die berechnete Prüfsumme gefolgt vom Dateinamen. Bei der Verifikation mit -c gibt das Tool OK oder FAILED für jede geprüfte Datei aus.
Windows PowerShell
Windows bietet mit PowerShell das Cmdlet Get-FileHash für die Berechnung von Prüfsummen:
# SHA-256-Prüfsumme berechnen (Standard)
Get-FileHash datei.iso
# MD5-Prüfsumme berechnen
Get-FileHash datei.iso -Algorithm MD5
# SHA-512-Prüfsumme berechnen
Get-FileHash datei.iso -Algorithm SHA512
# Prüfsumme mit erwartetem Wert vergleichen
$hash = Get-FileHash datei.iso
if ($hash.Hash -eq "erwartetePrüfsumme") { "OK" } else { "FAILED" }
Alternativ kannst du in der klassischen Eingabeaufforderung certutil verwenden: certutil -hashfile datei.iso SHA256.
Prüfsummen und IT-Sicherheit
Prüfsummen spielen eine zentrale Rolle in der Authentifizierung und Integritätssicherung. Bei der TLS-Verschlüsselung werden Hash-Funktionen verwendet, um die Integrität der übertragenen Daten sicherzustellen. Auch DNSSEC nutzt kryptographische Hashes, um DNS-Antworten vor Manipulation zu schützen.
In der forensischen Analyse sind Prüfsummen unverzichtbar: Sie dokumentieren, dass digitale Beweismittel seit der Sicherung nicht verändert wurden. Ohne diese Nachweismöglichkeit wären digitale Beweise vor Gericht anfechtbar.
Quellen und weiterführende Links
- RFC 1071 - Computing the Internet Checksum - Technische Spezifikation der IP-Checksum
- Wikipedia: Prüfsumme - Ausführlicher Überblick mit mathematischen Grundlagen
- Wikipedia: Checksum (EN) - Englischsprachige Referenz mit technischen Details