Behebt den kritischsten Befund (Klartext-Private-Keys in remote-gehosteter MySQL): - SecretProtection (Core/Security): AES-256-GCM, authenticated. Master-Key AUSSERHALB der DB (env POLYTRADER_MASTER_KEY, sonst gitignorierte master.key). Format enc:v1:base64(nonce|tag|ct). Alt-Klartext (ohne Praefix) wird gelesen und beim Speichern verschluesselt (selbstheilend). Ohne Master-Key: Passthrough + deutliche Startwarnung (kein stiller Sicherheitsverlust). - EncryptedStringConverter (EF ValueConverter) auf core_accounts.PrivateKey/ApiSecret/ApiPassphrase; Spalten 256->512 verbreitert (Migration EncryptAccountSecretsWidenColumns, offline generiert). - Program.cs: Master-Key vor der Hydration laden; nach Start einmalige/idempotente Re-Encryption vorhandener Klartext-Credentials. Auch in --smoke-ui verdrahtet. - CoreDbContextFactory nutzt jetzt fixe Server-Version (offline-Migrationsgenerierung, kein DB-Zugriff). 13 neue Krypto-Tests (Round-Trip, Nonce-Frische, Manipulations-/Falscher-Key-Erkennung, Passthrough, Key-Formate). Build 0 Fehler, 324 Tests gruen, --smoke-ui ok (Warnung ohne Key wie erwartet). AKTIVIERUNG (im Zielland): POLYTRADER_MASTER_KEY setzen (zufaelliger 32-Byte-Base64-Key, SEPARAT sichern!) + Migration anwenden (dotnet ef database update --context CoreDbContext). Danach Alchemy-/Mullvad-Secrets aus F3 rotieren. WICHTIG: Master-Key-Verlust = Kein Zugriff auf die Keys mehr. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
46 lines
1.0 KiB
Plaintext
46 lines
1.0 KiB
Plaintext
# ── Build-Artefakte ──────────────────────────────
|
||
[Bb]in/
|
||
[Oo]bj/
|
||
[Dd]ebug/
|
||
[Rr]elease/
|
||
*.dll
|
||
*.exe
|
||
*.pdb
|
||
|
||
# ── Visual Studio / IDE ──────────────────────────
|
||
.vs/
|
||
.claude/settings.local.json
|
||
*.user
|
||
*.suo
|
||
*.userosscache
|
||
*.sln.docstates
|
||
*.code-workspace
|
||
|
||
# ── Lokale Daten & Secrets (NICHT versionieren!) ─
|
||
data.db
|
||
*.db
|
||
*.db-shm
|
||
*.db-wal
|
||
server_settings.xml
|
||
appsettings.*.json
|
||
!appsettings.json
|
||
|
||
# Mongo-Exporte (enthalten Secrets: PrivateKey, ApiSecret) – niemals committen
|
||
MongoDB/
|
||
|
||
# Gitea Personal Access Token für Pushes – niemals committen
|
||
.gitea-token
|
||
master.key
|
||
|
||
# ── Logs & temporäre Dateien ─────────────────────
|
||
*.log
|
||
*.tmp
|
||
|
||
# ── Agent-Arbeitsbereich: Brain / Chatverlauf ────
|
||
agentspace/antigravity/
|
||
|
||
# ── Backups ──────────────────────────────────────
|
||
*.bak
|
||
*.bak[0-9]
|
||
*.bak_*
|