trading-system-docs/tolaria/tolaria-write-auth/AUTH3A_HUMAN_APPROVAL_AUTHENTICITY_GAP.md
Red Queen a11c1bbe53 AUTH.3A: C5 Caller Auth Integration (SAVE/DELETE Credential, fail-closed, Tests, Sensitivity, Gap-Doku)
- 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.
2026-08-27 08:42:26 +00:00

62 lines
2.3 KiB
Markdown

# 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-by` mit 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:
1. AUTH.3A ist strikt auf **C5-Caller-Auth-Integration** begrenzt
(SAVE-/DELETE-Credential fuer die legitimen Writer).
2. Die Approval-Authenticity ist ein **eigenstaendiges Security-Thema**
(eigene Mission, eigene Freigabe durch Christian).
3. 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.