Audit-Nachweise und SIEM-Anbindung
Signiertes Audit-Evidence-Bundle herunterladen, Hash-Kette und Ed25519-Signaturen offline prüfen und das Log inkrementell in ein SIEM ziehen.
Jede Gate-Entscheidung wird in eine fortlaufende, hash-verkettete und
Ed25519-signierte Audit-Kette geschrieben. Sie können die Kette als
eigenständiges Beweispaket exportieren und offline verifizieren — ohne
obhut vertrauen zu müssen. Alle Routen liegen hinter dem security_reader-Gate
(ein API-Token mit Rolle auditor, member oder admin).
Evidence-Bundle herunterladen
curl --fail-with-body \
"https://api.obhut.io/tenants/$TENANT/audit-events/bundle" \
--header "Authorization: Bearer $OBHUT_PAT" \
--output obhut-audit.jsonDas Bundle (format: "obhut-audit-evidence-bundle", version: 1) enthält jedes
Ereignis in seq-Reihenfolge, die öffentlichen Signaturschlüssel, das
serverseitige Prüfurteil und eine algorithm-Beschreibung. Das Serverurteil ist
eine Bequemlichkeit, nicht der Vertrauensanker: das Bundle trägt alles, um es
unabhängig neu zu berechnen.
Offline verifizieren
Jedes Glied bindet an das vorherige. Der Hash eines Ereignisses ist:
sha256(prevHash || canonicalJSON{id,tenantId,resourceId,actor,decision,reason,requestedUrl})Der Genesis-prevHash ist der leere String. Die Signatur ist Ed25519 über
den Hex-Hash; den passenden Schlüssel wählen Sie per signingKid aus
signingKeys.
Für lange Ketten prüfen Sie seitenweise über
GET /audit-events/verify/page?afterSeq=&prevHash=&limit= und reichen den
prevHash der letzten Seite in die nächste. Eine unterbrochene Kette meldet die
erste abweichende seq.
Inkrementell in ein SIEM ziehen
GET /audit-events/export zieht die Kette vorwärts ab dem zuletzt
aufgenommenen seq (sinceSeq, exklusiv), eine Seite pro Aufruf:
curl --fail-with-body \
"https://api.obhut.io/tenants/$TENANT/audit-events/export?sinceSeq=0&limit=500" \
--header "Authorization: Bearer $OBHUT_PAT"Die Antwort liefert auditEvents, die signingKeys, den nextSeq-Cursor und
hasMore. Rufen Sie in einer Schleife mit dem neuen sinceSeq = nextSeq auf,
bis hasMore false ist. Den aktuellen Ketten-Kopf für Lag-Anzeigen liefert
GET /audit-events/head.