Integrität
Kurz: Die Eigenschaft, dass Daten seit ihrer Erstellung oder letzten autorisierten Änderung nicht (unbemerkt) verändert wurden.
Genauer: Integrität wird technisch meist über Hash-Werte geprüft: Stimmt der Hash der empfangenen Daten mit dem erwarteten Hash überein, wurden die Daten nicht verändert. Kombiniert mit einer Signatur lässt sich zusätzlich die Authentizität nachweisen (nicht nur “unverändert”, sondern auch “wirklich vom angegebenen Absender”). Integrität ist eines der drei klassischen IT-Sicherheits-Schutzziele neben Vertraulichkeit und Verfügbarkeit.
Im Detail
Ein einfaches Beispiel zeigt, wie Integritätsprüfung in der Praxis funktioniert — etwa beim Download einer Software:
1. Anbieter veröffentlicht Datei + deren SHA-256-Hash separat (z. B. auf der Website)
2. Nutzer lädt Datei herunter
3. Nutzer berechnet lokal den Hash der heruntergeladenen Datei:
$ sha256sum programm.zip
4. Vergleich: stimmt der berechnete Hash mit dem veröffentlichten überein?
Ja -> Datei ist unverändert angekommen
Nein -> Datei wurde beschädigt ODER manipuliert (z. B. durch Malware ersetzt)
Reine Hash-Prüfung allein schützt allerdings nur vor UNBEABSICHTIGTEN Veränderungen (Übertragungsfehler) und vor Manipulationen durch jemanden, der die Datei ändern, aber NICHT den veröffentlichten Hash mit-manipulieren kann. Ein aktiver Angreifer, der sowohl Datei als auch Hash-Angabe kontrolliert (z. B. bei einem kompromittierten Download-Server), kann einfach beides gleichzeitig austauschen. Deshalb wird für echte Sicherheit meist ein Message Authentication Code (MAC) oder eine digitale Signatur genutzt: Diese verknüpfen die Integritätsprüfung zusätzlich mit einem geheimen Schlüssel, den nur der legitime Absender besitzt — ein Angreifer kann dann zwar die Datei ändern, aber keinen gültigen neuen MAC/keine gültige neue Signatur dafür erzeugen.
In Netzwerkprotokollen wie TLS wird Integrität laufend, für jedes einzelne Datenpaket, automatisch geprüft — nicht nur einmalig bei einem Download, sondern kontinuierlich während der gesamten Verbindung.
Integrität in Datenbanken und verteilten Systemen
Integrität ist nicht nur ein Netzwerk-Konzept, sondern auch zentral für Datenbanken und verteilte Systeme: Ein Datenbanksystem muss sicherstellen, dass gleichzeitige, konkurrierende Schreibzugriffe nicht zu inkonsistenten Zuständen führen (z. B. zwei gleichzeitige Überweisungen, die sich gegenseitig “überschreiben” und Geld verschwinden lassen) — Mechanismen wie ACID-Transaktionen garantieren genau diese Art von Integrität auf Datenbankebene, unabhängig von kryptografischen Methoden. Verteilte Systeme (z. B. Blockchains) nutzen dagegen oft verkettete Hash-Strukturen: Jeder neue Datenblock enthält den Hash des vorherigen Blocks, sodass eine nachträgliche Manipulation eines beliebigen früheren Blocks zwangsläufig alle nachfolgenden Hashes verändern und damit sofort erkennbar machen würde.
Integritätsschutz bei Backups
Ein praktischer, oft übersehener Anwendungsfall: Backups sollten regelmäßig auf Integrität geprüft werden, nicht nur beim Erstellen — ein Backup, das über Monate hinweg unbemerkt beschädigt wurde (z. B. durch einen fehlerhaften Speicherbereich oder eine schleichende Datenkorruption), ist im Ernstfall wertlos. Gut geführte Backup-Strategien speichern deshalb zu jedem Backup einen Integritäts-Hash und prüfen diesen regelmäßig automatisiert nach, statt sich erst im Wiederherstellungsfall auf die Funktionsfähigkeit zu verlassen.
Merkle-Bäume für effiziente Integritätsprüfung großer Datenmengen
Bei sehr großen Datenmengen (z. B. Millionen Dateien in einem Software-Repository) wäre es ineffizient, bei jeder kleinen Änderung den Hash der GESAMTEN Datenmenge neu zu berechnen und zu übertragen. Merkle-Bäume (auch Hash-Bäume genannt) lösen das elegant: Daten werden in kleine Blöcke geteilt, jeder Block einzeln gehasht, benachbarte Hashes paarweise wieder gehasht, bis am Ende ein einziger “Root-Hash” die Integrität der gesamten Struktur repräsentiert. Ändert sich auch nur ein winziger Teil der Daten, ändert sich der Root-Hash, aber nur die betroffenen Teilbäume müssen neu übertragen/geprüft werden — Git nutzt genau diese Struktur intern, um Integrität über riesige Commit-Historien effizient zu gewährleisten, ebenso wie BitTorrent und viele Blockchain-Systeme.
Siehe auch: Hashing, Authentizität