Skip to content
BlockchainSign
de

Blockchain-Protokollierung erklärt

Von Veröffentlicht am

Blockchain-Protokollierung erklärt
Photo: panumas nikhomkhai

Audit-Logs haben eine strukturelle Schwäche: Sie werden meist von derselben Organisation geschrieben, gespeichert und verwaltet, deren Verhalten sie dokumentieren. Blockchain-Protokollierung ist eine Antwort darauf, aber sie ist enger gefasst und günstiger, als der Name vermuten lässt.

Das Problem

Ein Audit-Log soll beantworten: "Was ist passiert, und wann?" Es funktioniert einwandfrei, bis jemand mit Datenbankzugriff einen Grund hat, es zu ändern.

Die Standard-Maßnahmen helfen, schließen die Lücke aber nicht. Write-once-Speicher (schreibgeschützte Speicher) haben immer noch einen Administrator. Das Versenden von Logs an einen Drittanbieter verschiebt das Vertrauen nur, statt es zu beseitigen. Kryptografische Verkettung — wobei jeder Eintrag den vorherigen hashwertet — macht Manipulationen innerhalb des Logs erkennbar, aber wer das Log überschreiben kann, kann auch die Kette neu berechnen.

Es fehlt ein Anker: ein Wert, der irgendwo veröffentlicht wird, auf den der Log-Besitzer keinen Zugriff hat.

Was Blockchain-Protokollierung tatsächlich ist

Nicht, wie bei jedem sinnvollen Design, jede einzelne Log-Zeile in eine Blockchain zu schreiben. Das wäre absurd teuer und würde Daten veröffentlichen, die man fast sicher nicht öffentlich machen möchte.

Das praktische Muster:

  1. Logs werden normal geschrieben, wobei jeder Eintrag den vorherigen hashwertet.
  2. In einem festen Rhythmus — stündlich, täglich — wird der aktuelle Head-Hash in eine öffentliche Blockchain geschrieben.
  3. Diese Transaktion ist eine Verpflichtung: Jeder Eintrag davor ist damit festgeschrieben.

Das Ändern eines Eintrags nach Veröffentlichung seines Ankers erfordert das Ändern jedes nachfolgenden Hashwerts, der dann nicht mehr mit dem Wert in der Chain übereinstimmt. Die Manipulation wird für jeden sichtbar, der prüft, einschließlich Personen außerhalb der Organisation.

Die Kosten betragen eine Transaktion pro Zeitraum, nicht pro Eintrag.

Was es bietet und was nicht

Geboten
Erkennung von Änderungen früherer Einträge Ja, nach ihrem Anker
Erkennung von Löschungen früherer Einträge Ja
Verhinderung von Änderungen Nein — es macht sie erkennbar
Schutz von Einträgen seit dem letzten Anker Nein — dieses Fenster ist nicht verankert
Beweis der Wahrheit der Einträge Nein — nur, dass sie unverändert geblieben sind
Wahrung der Privatsphäre der Log-Inhalte Ja — es werden nur Hashwerte veröffentlicht
Überprüfbarkeit durch Außenstehende Ja

Zwei Grenzen verdienen besondere Betonung. Alles, was seit dem letzten Anker geschrieben wurde, ist ungeschützt, daher ist der Verankerungszeitraum Ihr Expositions-Fenster. Und ein Anker sagt nichts darüber aus, ob ein Eintrag zum Zeitpunkt des Schreibens korrekt war — nur, dass er seither unverändert geblieben ist.

Wann es sich lohnt

Lohnt sich, wenn das Log von jemandem geglaubt werden muss, der einen Grund hat, Ihnen zu misstrauen: regulierte Dokumentationspflichten, Beweissicherung, Kettennachweise, sicherheitskritische Systeme, Mehrparteienvereinbarungen, bei denen jede Seite ihr eigenes Log führt.

Lohnt sich nicht für gewöhnliche Betriebs-Logs. Debugging-Ausgaben benötigen keine Manipulationssicherheit, und der zusätzliche Aufwand hilft niemandem.

Der Test ist, ob ein Außenstehender jemals dem Log vertrauen muss. Wenn die Antwort nein lautet, reicht die kryptografische Verkettung allein völlig aus.

Umsetzung ohne Blockchain-Team

Der Mechanismus ist einfach genug, um kein eigenes Projekt zu sein. Berechnen Sie den Head-Hash in Ihrem Rhythmus, versehen Sie diesen einzelnen Wert mit einem Zeitstempel und bewahren Sie das Zertifikat zusammen mit dem Log-Archiv auf. Das ist eine Datei pro Zeitraum, und es ist derselbe Vorgang wie beim Zeitstempeln jedes anderen Dokuments — der einzige Unterschied ist, worauf Sie es beziehen.

Dieser Ansatz deckt auch verwandte Fälle ab: eine nächtliche Datenbankexportdatei, ein Build-Manifest, eine signierte Release-Version, ein Konfigurations-Snapshot. Überall dort, wo Sie sagen können "Dies befand sich zu dieser Zeit genau in diesem Zustand" und dies von einem Außenstehenden überprüfen lassen möchten.

Siehe wie man eine Software-Release zeitstempelt für die Variante, die auf Build-Artefakte abzielt, und Chained-of-Custody für digitale Dateien für die beweiskräftige Einordnung.

Häufige Fragen

Bedeutet Blockchain-Protokollierung, jede Log-Zeile in eine Blockchain zu schreiben?
Nein, und jedes Design, das dies tut, ist unpraktisch und teuer. Das normale Muster besteht darin, das Log lokal zu verketten und periodisch nur den aktuellen Head-Hash in eine öffentliche Chain zu schreiben. Damit werden alle vorherigen Einträge mit einer Transaktion pro Zeitraum festgeschrieben, und keine Log-Inhalte werden jemals veröffentlicht.
Verhindert es, dass jemand Logs manipuliert?
Es macht Manipulationen erkennbar, statt sie unmöglich zu machen. Jeder kann weiterhin den zugrunde liegenden Speicher bearbeiten; was er nicht tun kann, ist die neu berechnete Kette so anzupassen, dass sie mit dem bereits im Register veröffentlichten Wert übereinstimmt. Die Erkennbarkeit durch Außenstehende ist die entscheidende Eigenschaft, da eine Verhinderung gegen einen Administrator nicht erreichbar ist.
Wie sieht es mit Einträgen aus, die seit dem letzten Anker geschrieben wurden?
Sie sind ungeschützt, bis der nächste Anker veröffentlicht wird, daher ist der Verankerungszeitraum Ihr Expositions-Fenster. Die Verkürzung kostet eine weitere Transaktion pro Zeitraum, was den gesamten Trade-off darstellt — stündliches Ankern kostet etwa vierundzwanzigmal so viel wie tägliches Ankern und hinterlässt ein deutlich kleineres Zeitfenster.

Beweisen Sie heute, dass Ihre Arbeit existiert

Versehen Sie jede beliebige Datei auf der Ethereum-Blockchain mit einem Zeitstempel und erhalten Sie ein fälschungssicheres Zertifikat, das lebenslang gilt. Ihre Datei verlässt niemals Ihren Browser.