RichardandClaude Opus 5 86b497bdbf
CI / Build & Tests (Linux) (push) Canceled after 0s
CI / Plattformneutralität & Hygiene (push) Canceled after 0s
Desktop: Passwortabfrage vor Konten, Geheimnissen und WebUI-Zugang
Umsetzung von #567.

Entscheidung Richard, 13.09.2026: Geheimnisse verwalten wir ausschliesslich im
Desktop, und selbst dort erst nach zusaetzlicher Passwortabfrage.

Bisher sah und aenderte jeder, der die Desktop-Oberflaeche offen vor sich
hatte:
- Polymarket-Konten mit ApiKey, ApiSecret, ApiPassphrase und PrivateKey
- Master-Key, OpenRouter-Key, Watchdog-Token und Lizenzschluessel
- Mullvad-Account und Polygon-RPC-URL mit Alchemy-Key, offen im Editor
- das WebUI-Token, per "Anzeigen" lesbar

Jetzt gesperrt, bis entsperrt:
- Tab "Polymarket Accounts": Gesperrt stehen die Konten gar nicht im
  visuellen Baum. Das Raster bleibt leer, der Editor mit den Private Keys
  ebenfalls; nichts ist nur verdeckt.
- Master-Key erzeugen, OpenRouter-, Watchdog- und Lizenzschluessel setzen.
- Mullvad-Account und Polygon-RPC-URL: mit [SensitiveSetting] markiert und im
  Editor ausgeblendet.
- WebUI-Zugang: Gesperrt steht das Token nicht einmal maskiert im Feld.
  Speichern ist mitgesperrt, weil es den Feldinhalt als Token schreibt;
  gesperrt und leer haette es das Token geloescht.
- Frei bleiben Lizenzpruefung und Test-Heartbeat, weil sie keinen Schluessel
  zeigen.

Kern im Core (PolyTrader.Core.Security), weil nur dort testbar:
- SettingsPasswordStore: PBKDF2-HMAC-SHA256, 600 000 Iterationen, Salt, eigene
  Datei settings-password.json neben master.key, atomar geschrieben und nur fuer
  den Besitzer lesbar. Nicht in server_settings.xml, die seit #561 das WebUI
  mitschreibt. Ein vorhandenes Passwort wird nie ueberschrieben.
- SettingsLock:
  - erstes Festlegen mit Wiederholung und mindestens 10 Zeichen
  - zwei freie Fehlversuche, danach 5 s bis 5 min Wartezeit, in der auch das
    richtige Passwort nicht geprueft wird
  - Sperre nach 5 Minuten ohne geschuetzte Aktion und beim Verlassen der
    Einstellungen
  - eine unlesbare Passwortdatei entsperrt nie und gilt auch nicht still als
    "kein Passwort"
  - Protokoll ohne eingegebene Werte

Oberflaeche: PasswordDialog deklarativ in .axaml, Sperr-Leiste ueber den Tabs.
Die PBKDF2-Pruefung dauert etwa eine halbe Sekunde und laeuft nicht im
UI-Thread.

Grenzen:
- Die Sperre schuetzt gegen jemanden an einer entsperrten Desktop-Sitzung. Wer
  Dateizugriff hat, liest master.key selbst. Deshalb gibt es kein "Passwort
  vergessen": Wer settings-password.json loeschen kann, braucht keins.
- Die Wartezeit nach Fehlversuchen beginnt nach einem Neustart von vorn.
- "Datenbankeinstellungen": Eine Ansicht dafuer gibt es im Desktop nicht; die
  Verbindungszeichenfolge steht nur in appsettings.Local.json. Entsteht eine,
  gehoert sie hinter dieselbe Sperre.

Tests: 20 fuer Passwortdatei und Sperre (Festlegen, Fehlversuche, Wartezeit,
Leerlauf, unlesbare Datei, Aendern, Iterationszahl aus der Datei, Dateirechte)
und 5 fuer die Markierung der Geheimnisfelder. Die Oberflaeche selbst wird auf
der VM abgenommen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 14:34:32 +02:00

Doku (Predictalytics / PolyTraderSharp)

Zentrale Ablage für Roadmap, Leitfäden, Fach- und Business-Dokumente. Code-gekoppelte Pläne bleiben bewusst in diesem Repo (statt in einem separaten Docs-Repo), damit „Plan → umsetzende Commits" nachvollziehbar bleibt.

Wo anfangen?

ROADMAP.md Das Steuerungsdokument. Alle Vorhaben, Status, Reihenfolge — was als Nächstes zu tun ist und was bewusst liegen bleibt
PROJEKTSTAND.md Der Ist-Zustand: Architektur, Kennzahlen, Modul-Stand

Kurzformel: PROJEKTSTAND = was ist. ROADMAP = was kommt.

Leitfäden (vor der Arbeit lesen)

Struktur

  • archiv/ — die Umsetzungspläne und Konzepte, aus denen die Roadmap zusammengeführt wurde. Nicht tot: weiterhin die Bauanleitungen mit Code-Bezügen, Akzeptanzkriterien und Begründungen. Nur der Status darin ist eingefroren — dafür gilt ausschließlich die Roadmap. Details in archiv/README.md.
  • sicherheit/ — Sicherheitskonzept und die wiederkehrende Audit-Checkliste. Die offenen Kästchen in Abschnitt 6 sind eine Vorlage für jedes Release, kein Rückstand.
  • steuer/ — Steuer-/Buchhaltungs-Fachdokumente und Vorlagen, auch zum Weitergeben an Berater.
    • Accounting-US-Tax-Questionnaire.md — Fragebogen (EN) für die US-Steuerberaterin (Florida LLC).
  • pruefplaene/ — Prüf-/Validierungspläne zum Abarbeiten.
    • PRUEFPLAN-Linux-Betrieb.md — erster Lauf auf einer Linux-VM (Roadmap A4a).
    • PREDICTALYTICS-PRUEFPLAN-Master-Auswahl.md — Master-Trader-Auswahl (separates Predictalytics-Projekt).
  • ideen/ — frühe Ideen, bevor sie zu einem Konzept reifen.
  • UI-SPEZIFIKATION-WinForms.md — Beschreibung der abgelösten Oberfläche. Vergleichsvorlage für die Abnahme A5.
  • IDEENSAMMLUNG-Feldtest-2026-08.md — Beobachtungen aus dem laufenden Einsatz. Nur sammeln, Umsetzung später.

Konventionen

  • Eine Statusquelle. Fortschritt wird ausschließlich in der Roadmap gepflegt, nirgends sonst. Bis zum 22.08.2026 stand der Status in einem Dutzend Dokumenten — mehrere davon waren wochenlang falsch.
  • Plandokument und Code wandern im selben Commit. Wer etwas abhakt, committet die Roadmap mit.
  • Neue Detailpläne: UMSETZUNGSPLAN-*.md → archiv/umsetzungsplaene/, und in der Roadmap verlinken. Neue Konzepte analog nach archiv/konzepte/.
  • Übergreifende, an Externe weitergebbare Dokumente können später in ein eigenes Predictalytics-Docs-Repo ausgelagert werden (Ordner rausziehen genügt) — für jetzt bewusst hier gebündelt.
S
Description
No description provided
Readme
2.3 MiB
Languages
C# 87%
JavaScript 6.5%
HTML 4.6%
CSS 1.3%
PowerShell 0.6%