Wurde der Vertrag nachträglich geändert?
Ein Hashwert ist eine kurze Zahl, die eine Datei eindeutig kennzeichnet. Ändert sich nur ein Zeichen in der Datei, ändert sich der Hashwert völlig. So beweisen Sie, dass ein Beweisstück unverändert blieb.
Ein Kunde behauptet, im Liefervertrag habe früher ein anderer Preis gestanden. Vergleichen Sie den Hashwert von heute mit dem vom Tag der Übergabe, und der Streit ist schnell entschieden.
Am Ende dieser Lektion
Notiz
Ich kann beweisen, dass eine Datei unverändert ist, und ihre Metadaten lesen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Hashwert | der Fingerabdruck einer Datei, eine feste Zeichenfolge | |
| Hashfunktion | die Rechenregel, die aus Daten den Hashwert macht | SHA-256 |
| Kollision | zwei verschiedene Dateien mit demselben Hashwert | |
| Metadaten | Angaben über eine Datei, nicht ihr Inhalt | |
| Änderungszeit | der Zeitpunkt, an dem der Inhalt zuletzt geändert wurde | |
| Besitzer | das Konto, dem die Datei gehört |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Hashwert ist der Fingerabdruck einer Datei
Eine Hashfunktion liest eine Datei und rechnet eine Zeichenfolge von immer gleicher Länge aus. Bei SHA-256 sind es 64 Zeichen, geschrieben mit den Ziffern 0 bis 9 und den Buchstaben a bis f.
Dieselbe Datei ergibt immer denselben Hashwert. Aus dem Hashwert lässt sich die Datei nicht zurückrechnen.
Den Hashwert des Textes abc berechnen
printf "abc" | sha256sumHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Einen Buchstaben ändern und neu rechnen
printf "abd" | sha256sumHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Dieselbe Eingabe mit der alten Funktion MD5
printf "abc" | md5sumHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein Beispiel: ein Buchstabe, ein ganz anderer Hashwert
| Eingabe | SHA-256, die ersten 16 Zeichen | Länge insgesamt |
|---|---|---|
| abc | ba7816bf8f01cfea | 64 Zeichen |
| abd | a52d159f262b2c6d | 64 Zeichen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
So prüfen Sie, dass eine Datei unverändert blieb
Sie rechnen den Hashwert gleich bei der Übernahme aus und schreiben ihn in die Beweiskette. Später rechnen Sie ihn neu aus und vergleichen.
Sind beide gleich, ist die Datei unverändert. Der Befehl sha256sum -c macht diesen Vergleich für Sie und schreibt OK oder FAILED.
Den Hashwert einer Beweisdatei in eine Datei schreiben
sha256sum case/mtimes.txt > hashes.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Später prüfen, ob die Datei noch stimmt
sha256sum -c hashes.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele glauben, jede Hashfunktion sei für Beweise gleich gut. MD5 ist alt, und man kann gezielt zwei verschiedene Dateien mit gleichem MD5-Wert bauen. Eine Kollision wie diese macht einen Vergleich wertlos. Nehmen Sie für Beweise SHA-256.
Metadaten zeigen Besitzer, Rechte und Zeiten
Jede Datei trägt Angaben über sich selbst: Besitzer, Rechte, Größe und drei Zeiten. Die Änderungszeit zeigt, wann der Inhalt zuletzt geändert wurde. Die Zugriffszeit zeigt das letzte Lesen. Die Statuszeit zeigt, wann Besitzer oder Rechte sich änderten.
Der Befehl stat zeigt sie. Mit einem Format, etwa %U für den Besitzer und %a für die Rechte, wählen Sie aus.
Eine kleine Datei anlegen und ihre Größe lesen
printf "Hallo" > probe.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Größe der Datei in Bytes ausgeben
stat -c "%s Bytes" probe.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Besitzer und Rechte einer Beweisdatei lesen
stat -c "%U %a %n" case/mtimes.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Sekunden seit 1970 in ein Datum umrechnen
date -u -d @1760400000 "+%F %T"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Noch ein häufiger Fehler
Warnung
Viele halten das Datum einer Datei für unfälschbar. Wer die Datei besitzt, kann ihre Zeit mit einem Befehl setzen. Verlassen Sie sich auf eine Zeit nur, wenn ein Log oder ein zweiter Beleg sie stützt.