Files
harheimertc/scripts/README-re-encrypt.md

2.0 KiB

Daten-Neuverschlüsselung

Dieses Script verschlüsselt alle verschlüsselten Daten mit einem neuen Schlüssel neu.

Verwendung

Voraussetzungen

  1. Stelle sicher, dass ENCRYPTION_KEY in der .env Datei gesetzt ist:

    ENCRYPTION_KEY=dein-neuer-sicherer-schlüssel-hier
    
  2. Optional: Wenn du einen spezifischen alten Schlüssel verwendest (nicht den Standard), kannst du ihn angeben:

    node scripts/re-encrypt-data.js --old-key="dein-alter-schlüssel"
    

Ausführung

node scripts/re-encrypt-data.js

Was wird neu verschlüsselt?

Das Script verarbeitet folgende Dateien:

  1. server/data/users.json - Benutzerdaten
  2. server/data/members.json - Mitgliederdaten
  3. server/data/membership-applications/*.json - Mitgliedschaftsanträge (wenn sie ein encryptedData Feld enthalten)
  4. server/data/membership-applications/*.data - Verschlüsselte Antragsdaten

Sicherheit

  • Automatische Backups: Vor jeder Änderung werden Backups im Verzeichnis backups/re-encrypt-<timestamp>/ erstellt
  • Mehrere Schlüssel: Das Script versucht automatisch verschiedene alte Standard-Schlüssel:
    • default-key-change-in-production
    • local_development_encryption_key_change_in_production
    • Ein optional angegebener --old-key Parameter

Beispiel

# Standard-Ausführung (verwendet Standard-Entwicklungsschlüssel)
node scripts/re-encrypt-data.js

# Mit spezifischem altem Schlüssel
node scripts/re-encrypt-data.js --old-key="mein-alter-produktions-schlüssel"

Fehlerbehandlung

Falls die Entschlüsselung mit allen verfügbaren Schlüsseln fehlschlägt:

  • Das Script bricht ab
  • Alle Backups bleiben erhalten
  • Du kannst die Dateien manuell aus den Backups wiederherstellen

Wichtig

⚠️ WICHTIG: Stelle sicher, dass:

  • Die .env Datei den neuen ENCRYPTION_KEY enthält
  • Du ein Backup der Daten hast (wird automatisch erstellt)
  • Der Server während der Ausführung nicht läuft
  • Du nach der Ausführung testest, ob alles funktioniert