# Security Policy — Öffentliche Evidence-Forgery-Challenge

## Scope

**Erlaubt und erwünscht:** Versuche, ein Evidence Package zu konstruieren, das der
Challenge-Verifier unter `/challenge/submit` als `valid` akzeptiert, obwohl es **nicht**
echt vom Challenge-Signing-Key signiert wurde. Das schließt ein: Signaturfälschung,
Schlüssel-Verwechslung, Downgrade auf eine schwächere Schema-Version, Hash-Chain-
Manipulation, jede Lücke in `tools/verify-bundle/verify.ts`.

Der Challenge-Dienst importiert `tools/verify-bundle/verify.ts` direkt und unverändert
(kein Fork, keine abgespeckte Kopie) — Stand Commit
[`8ae432f`](https://github.com/Alex-Proof/alex-core/blob/8ae432fb292541cadd0a58618c19e7c0c9b6c58f/tools/verify-bundle/verify.ts).

**Grenzen für faires Testen:**
- `POST /challenge/submit` ist limitiert auf 5 Anfragen/Minute pro IP und 2 MB
  Payload-Größe. Das ist kein Lücken-Hinweis, sondern Abuse-Schutz — plane deine Tests
  entsprechend, statt gegen das Limit zu laufen.

**Explizit verboten:**
- DoS/Last-Angriffe auf die Challenge-Instanz oder jede andere alex-core-Infrastruktur.
- Social Engineering gegen den Betreiber, Mitarbeitende oder Dritte.
- Jeder Angriff auf Produktion (`alexproof.de`, `178.105.216.4`), auf Hetzner/GCP/KMS
  selbst, auf andere Nutzer, auf den Telegram-Bot oder auf GitHub-Repos außerhalb
  dieses Scopes.
- Automatisiertes Massen-Scanning außerhalb des `/challenge/submit`-Endpunkts.

Verstöße gegen die Verbote fallen **nicht** unter die Safe-Harbor-Zusage unten.

## Safe Harbor

Wer sich an den Scope hält, in guter Absicht handelt und Funde verantwortungsvoll
meldet (siehe unten), riskiert keine rechtlichen Schritte unsererseits — unabhängig
davon, ob der Fund als valide anerkannt wird.

## Meldeweg

**Öffentlich (Normalfall):** Fund melden als GitHub-Issue im Verifier-Repo:
`https://github.com/Alex-Proof/alex-mrtb-verify-bundle` — mit reproduzierbarem
Beispiel-Payload (dem exakten JSON, das `/challenge/submit` akzeptiert hat) und dem
zurückgegebenen `verdict`. Antwortzeit-Zusage: 72 Stunden.

**Privat (bei sensiblen Funden):** Statt eines öffentlichen Issues per E-Mail an
[bewusst.ki@gmail.com](mailto:bewusst.ki@gmail.com), mit denselben Angaben
(Payload + `verdict`). Gleiche Antwortzeit-Zusage.

**Verifikation:** Jeder gemeldete Fund wird von uns gegen genau dieses Payload am
Challenge-Verifier nachvollzogen, bevor er als valide bestätigt wird — kein Fund wird
ungeprüft übernommen.

**Bei einem bestätigten Fund:** Wird öffentlich bestätigt (Credit an die Melderin/den
Melder, sofern gewünscht), der Challenge-Key wird rotiert, die zugrunde liegende Lücke
in `tools/verify-bundle/verify.ts` wird gefixt und derselbe Fix in
`core/mrtb/evidenceBundle.server.ts` nachgezogen (identische Prüflogik, siehe
Kopfkommentar dort).

## Was hier bewusst nicht existiert

- Kein Belohnungs-/Bug-Bounty-Programm.
- Kein Anspruch auf 100% Bugfreiheit — unmöglich, nicht das Ziel.
- Kein neues Security-System: Basis bleibt KMS/Sandbox/Observer/Evidence wie in
  Produktion, hier nur mit eigenem, isoliertem Challenge-Key statt Produktions-Keys.
