Download
Version 1.1.0, für Exporte ab Schema 2.0 (Fabrik ab v0.32.0); prüft bei Schema 2.1 (Fabrik ab v0.39.0) zusätzlich die signierten Spec-Fassungen und deren Bindung an die Läufe. Benötigt ein JDK 25 oder neuer.
- softwarefabrik-verifier-1.1.0.jar — das Programm
SHA-256cfee58cfc8c8cce300dda266d37fbb0634d763945230327b9bb6af9a590955bf - softwarefabrik-verifier-1.1.0-sources.jar — der vollständige Quelltext zum Lesen
SHA-256fc850202f679c6543af174dbd07be76d26d5cf12c1a6b17c1c418c2d018e09cc - softwarefabrik-verifier-1.1.0.sha256 — Prüfsummen (
sha256sum -c)
Das Werkzeug kommt bewusst nicht aus der Fabrik, die geprüft wird: Ein Prüfwerkzeug bezieht man nicht von der geprüften Partei. Der Build ist reproduzierbar — zwei Builds aus demselben Quelltext ergeben Byte für Byte dasselbe JAR. Nachbauen: Quelltext entpacken, mvn package mit JDK 25 auf einem Linux-Dateisystem (auf NTFS-Laufwerken unter WSL weichen nur die Dateirechte der JAR-Einträge ab, nicht der Inhalt).
Was Sie brauchen
- Den Export — in der Fabrik unter Audit-Export als JSON, je Projekt oder Lauf.
- Den Fingerabdruck des Signaturschlüssels — in der Fabrik unter Attestierung → Vertrauensanker. Lassen Sie ihn sich auf einem zweiten Weg bestätigen (Brief, Ticket, signierte E-Mail): Wer Einträge fälscht, kann auch den Schlüssel im Export austauschen.
- Den Verifier von dieser Seite.
java -jar softwarefabrik-verifier-1.1.0.jar audit-export.json --schluessel <fingerabdruck>
| Exit | Bedeutung |
|---|---|
| 0 | Bewiesen: Kette, Signaturen und Lauf-Nachweis gegen die vertrauten Schlüssel belegt |
| 1 | Verletzung: verändert, unvollständig, fremd signiert oder in sich widersprüchlich |
| 2 | Keine Verletzung, aber nicht alles beweisbar — etwa ohne --schluessel |
| 3 | Aufruffehler |
Ohne --schluessel endet die Prüfung nie mit 0. Mit --bekannt <seq>:<hash> übergeben Sie einen früher gesehenen Kettenstand, der unverändert enthalten sein muss.
Was geprüft wird
- Schlüssel: Fingerabdruck jedes Public Keys gegen Ihre vertrauten Werte.
- Einträge: Hash aus der dokumentierten kanonischen Form nachrechnen, Ed25519-Signatur prüfen.
- Stellvertreter: Einträge anderer Läufe und Mandanten erscheinen nur als Hash mit Signatur — so ist Vollständigkeit prüfbar, ohne fremde Inhalte offenzulegen.
- Verkettung: lückenlose Folge, jeder Eintrag verweist auf seinen Vorgänger. Weglassen, Einfügen und Umordnen fallen auf.
- Kopf: Die Kette endet genau am signierten Kopf — sonst fehlen Einträge am Ende.
- Policy: die im Lauf angewandte Version, Inhalt und Signatur.
- Lauf-Nachweis: welche Ereignisse zu einem Lauf gehören, bezeugt ein signiertes Manifest; jedes muss als geprüfter Eintrag dieses Laufs vorliegen.
Felder, in denen die Fabrik über sich selbst urteilt („intakt“, „Kette ok“), gelten nicht als Beleg.
Grenzen
- Bewiesen wird die Unversehrtheit ab dem ersten exportierten Eintrag und bis zum Exportzeitpunkt.
- Wer vor dem Export Datenbankzugriff hatte, könnte die neuesten Einträge löschen und den Kopf zurücksetzen. Dagegen hilft
--bekanntmit einem früher festgehaltenen Stand. - Die Vollständigkeit der Zuordnung von Ereignissen zu einem Lauf bezeugt die Fabrik mit ihrer Signatur zum Exportzeitpunkt.
- Tool-Aufrufe der Agenten stehen nur in der Kette, wenn sie über den MCP-Gateway laufen (seit v0.34, opt-in, als
MCP_TOOL_AUFRUF); die eingebauten Werkzeuge der Agent-CLIs (Dateien, Shell) nicht.
Hintergrund und Entscheidungen: ADR-0023 „Offline-Verifier für den Audit-Export“.