Download
Version 1.0.0, für Exporte ab Schema 2.0 (Fabrik ab v0.32.0). Benötigt ein JDK 25 oder neuer.
- softwarefabrik-verifier-1.0.0.jar — das Programm
SHA-2568b2b3b2f00ca1cac60d9aac237508a93a71c7aeb2137a91068f7df528fa7a873 - softwarefabrik-verifier-1.0.0-sources.jar — der vollständige Quelltext zum Lesen
SHA-2569fc128f494214111364e9f026b8248c34bc3e72f63705c46e9e109e29e5c5737 - softwarefabrik-verifier-1.0.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 Run.
- 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.0.0.jar audit-export.json --schluessel <fingerabdruck>
| Exit | Bedeutung |
|---|---|
| 0 | Bewiesen: Kette, Signaturen und Run-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 Runs 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 Run angewandte Version, Inhalt und Signatur.
- Run-Nachweis: welche Ereignisse zu einem Run gehören, bezeugt ein signiertes Manifest; jedes muss als geprüfter Eintrag dieses Runs 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 Run bezeugt die Fabrik mit ihrer Signatur zum Exportzeitpunkt.
- Tool-Aufrufe der Agenten stehen noch nicht in der Kette.
Hintergrund und Entscheidungen: ADR-0023 „Offline-Verifier für den Audit-Export“.