Zusammenfassung

  • Der neue zehnte Prüfschritt in draft-sharif-agent-audit-trail-06 untersagt das Urteil „Sitzung vollständig“, wenn der letzte vorgelegte Eintrag kein session_end ist – selbst nach bestandener Hashkettenprüfung.
  • Ein Löschvermerk in einer signierten Kette braucht nun eine neue Signatur der löschbefugten Stelle über den Vermerk selbst. Die Unterschrift des ersetzten Eintrags darf nicht kopiert werden.

Auf einem Prüfprotokoll stehen lauter Häkchen. Jeder vorhandene Eintrag passt kryptografisch zum vorherigen. Der Prüfer weiß dadurch, dass die vorgelegte Folge in sich stimmt. Er weiß nicht, ob nach ihrem letzten Eintrag noch etwas geschah. Wer das Ende einer Hashkette abschneidet, hinterlässt zunächst einen unveränderten, weiterhin gültigen Anfang. Aus dieser schlichten Asymmetrie entsteht ein Governance-Problem, sobald aus „geprüft“ ein Freispruch für die gesamte Agentensitzung wird.

Raza Sharifs individueller Agent-Audit-Trail-Entwurf wurde am 29. September als Version 06 aktualisiert. Sein Abschnitt 6.3 enthält jetzt Prüfschritt 10. Fehlt am Ende der präsentierten Sitzung ein Abschlussdatensatz mit dem Ereignis session_end, muss der Verifizierer die Vollständigkeit als unklar und das Kettenende als nicht überprüfbar melden. Die neun vorherigen Schritte können trotzdem erfolgreich sein. Als mögliche Begrenzung des Endes nennt der Text einen Abschlussdatensatz, eine vorher festgelegte Heartbeat-Frequenz oder einen externen Anker. Die bloße Hashverkettung beweist nicht, dass hinter dem letzten vorgelegten Element nichts entfernt wurde.

Der Vergleich mit Version 05 zeigt, worin die Änderung tatsächlich besteht. Abschlussdatensätze und Heartbeats waren dort bereits beschrieben. Neu ist die verbindliche Grenze für das Prüfurteil. Ein Programmabsturz kann eine Sitzung ohne regulären Abschluss hinterlassen; der Entwurf behandelt solche verwaisten Sitzungen. Aus dem fehlenden Abschluss folgt also nicht automatisch ein Manipulationsvorwurf. Ebenso wenig darf ein erfolgreiches Integritätsprüfergebnis stillschweigend in den Nachweis einer vollständigen Sitzung umbenannt werden.

Ein zweiter Eingriff betrifft bewusst gelöschte Einträge. Zuvor sollte ein Ersatzvermerk, ein Tombstone, die vorhandene Originalsignatur behalten. Diese Signatur galt jedoch dem ursprünglichen Inhalt und gerade nicht der späteren Löschmeldung. Nach Abschnitt 9.3 der Version 06 muss in einer signierten Kette die löschbefugte Stelle den neuen Vermerk mit ihrem eigenen signer_kid über dessen kanonische Bytes signieren. Die alte Signatur zu übernehmen ist ausdrücklich untersagt. Ein unsignierter oder ungültig signierter Ersatz lässt die Prüfung einer signierten Kette scheitern. Nur in einer ursprünglich unsignierten Kette ist ein unsignierter Vermerk zulässig; er soll gemeldet werden. Außerdem soll der Schlüssel eines Agenten nicht dessen eigene Handlungen aus dem Protokoll entfernen dürfen.

Das sind zwei verschiedene Beweisfragen. Wo endet die verlässlich erfasste Zeitspanne? Und wer durfte einen vorhandenen Datensatz durch einen Löschvermerk ersetzen? Daniel Kade schlägt für die Übergabe an eine Revision einen Beleg vor, der letzten Sequenzstand, Abschluss- oder Heartbeat- beziehungsweise Ankerbeleg, das Vollständigkeitsurteil und die löschbefugte Schlüsselidentität getrennt festhält. Das ist ein redaktioneller Betriebsvorschlag, keine vom Entwurf definierte Pflichtvorlage.

Der Datatracker führt die Vorlage als aktiven individuellen Internet-Draft im Status I-D Exists, ohne RFC-Stream und ohne formelle Billigung durch die IETF. Die Quellen belegen keinen Angriff in einem produktiven System. Gerade deshalb zählt die begrenzte Aussage: Die neue Fassung zwingt dazu, einen intakten vorgelegten Verlauf nicht mit einem nachgewiesenen vollständigen Verlauf zu verwechseln.

Quellen