- rq_c5c.py: TolariaClient save_token/delete_token DI, _require_token fail-closed, write()/delete() senden Bearer (SAVE/DELETE), read()/list() ohne Credential - rq_c5_cli.py: _delete_executor liest nur DELETE-Credential (Least Privilege) - test_c5c.py: write()-Tests injizieren synthetisches SAVE-Token - test_c5_auth3a.py: isolierte AUTH.3A-Testsuite (19 Tests, Fake/Mock Tolaria) - auth3a-sensitivity.sh: 8 Sensitivitaets-Mutationen (A-H) -> ROT - AUTH3A_HUMAN_APPROVAL_AUTHENTICITY_GAP.md: Gap dokumentiert (OPEN, nicht repariert) Keine echten Tokens. Keine ENV-Mutation. Kein Deployment. Keine produktive Auth-Aktivierung.
2.3 KiB
2.3 KiB
AUTH.3A — HUMAN APPROVAL AUTHENTICITY GAP (Dokumentation)
Status: OPEN (nicht in AUTH.3A repariert — bewusste Scope-Begrenzung) Mission: AUTH.3A (C5 Caller Auth Integration) Datum: 2026-08-27
Gap-Beschreibung
Der bekannte PRE_HERMES-Gap:
approved_by="human:christian"ist ein frei waehlbares CLI-Argument (rq_c5_cli.py,--approved-bymit Default"human:christian").- Es gibt keine kryptographische Bindung der Human-Approval an Christian (keine Signatur, kein Nonce-Beweis, kein Out-of-Band-Verifikationskanal).
Das bedeutet: Ein Angreifer mit Schreibzugriff auf die C5-DB (oder auf den
CLI-Aufruf) koennte eine Approval mit approved_by="human:christian" faelschen,
ohne dass dies kryptographisch nachweisbar waere.
Scope-Begrenzung (AUTH.3A)
AUTH.3A repariert diesen Gap NICHT. Gruende:
- AUTH.3A ist strikt auf C5-Caller-Auth-Integration begrenzt (SAVE-/DELETE-Credential fuer die legitimen Writer).
- Die Approval-Authenticity ist ein eigenstaendiges Security-Thema (eigene Mission, eigene Freigabe durch Christian).
- Keine Scope-Ausweitung ueber die AUTH.3A-Freigabe hinaus.
Was AUTH.3A sicherstellt (in Bezug auf DELETE)
AUTH.3A fuegt dem DELETE-Pfad ein zweites, unabhaengiges Gate hinzu:
- Gate 1 (bestehend): gueltige persistierte Human-Approval
(
DeleteExecutor._validate_approval— Approval existiert, APPROVED, bindet exakt Commit/Objekt/Pfad). - Gate 2 (AUTH.3A, neu): gueltiges DELETE-Credential
(
TolariaClient._require_token— fail-closed, kein Request ohne Token).
Beide Gates sind zwingend und unabhaengig:
- DELETE-Credential ersetzt NIE die Human-Approval.
- Human-Approval ersetzt NIE das DELETE-Credential.
- Fehlt eines von beiden → FAIL CLOSED (kein Request gesendet).
Verbleibende Luecke (nicht in AUTH.3A)
Die Authentizitaet der Human-Approval selbst (dass sie wirklich von Christian stammt) bleibt ungeloest. Das DELETE-Credential schuetzt vor unautorisierten Ausfuehrern, aber nicht vor einer gefaelschten Approval.
Kennung
HUMAN_APPROVAL_AUTHENTICITY_GAP = OPEN
Naechste Schritte (separate Freigabe erforderlich)
- Eigene Security-Mission zur kryptographischen Bindung der Human-Approval an Christian (z. B. Signatur, Nonce-Beweis, Out-of-Band-Verifikation).
- Kein Teil von AUTH.3A / AUTH.3B / AUTH.4.