# Datenschutz und Verschlüsselung - Harheimer TC ## 🔒 **Verschlüsselung implementiert** ### **Verschlüsselte Daten:** - **Mitgliedschaftsanträge:** Alle persönlichen Daten (Name, Adresse, E-Mail, Telefon, Bankdaten) - **Benutzerdaten:** E-Mail, Name, Telefon (in `users.json`) - **Mitgliederdaten:** Name, E-Mail, Telefon, Adresse (in `members.json`) ### **Nicht verschlüsselte Daten:** - **News-Artikel:** Autor-Namen (öffentlich sichtbar) - **Konfiguration:** Vereinsdaten, Trainingszeiten (öffentlich) - **Termine:** Event-Daten (öffentlich) ## 🛡️ **Sicherheitsmaßnahmen** ### **Verschlüsselung:** - **Algorithmus:** AES-256-GCM - **Schlüsselableitung:** PBKDF2 mit 100.000 Iterationen - **Salt:** 64 Bytes zufällig generiert - **IV:** 16 Bytes zufällig generiert - **Auth-Tag:** 16 Bytes für Integrität ### **Passwort-Sicherheit:** - **Hashing:** bcryptjs mit Salt - **Rounds:** 10 (konfigurierbar) ### **Datenzugriff:** - **Authentifizierung:** JWT-Token - **Autorisierung:** Rollenbasierte Zugriffskontrolle - **Session-Management:** Sichere Cookies ## 📋 **Datenverarbeitung** ### **Mitgliedschaftsanträge:** 1. **Eingabe:** Formular auf Website 2. **Verschlüsselung:** Sofortige Verschlüsselung aller persönlichen Daten 3. **Speicherung:** Verschlüsselte Dateien in `server/data/membership-applications/` 4. **E-Mail:** Benachrichtigung an Vorstand/Trainer 5. **Genehmigung:** Entschlüsselung und Übertragung in Mitgliederliste 6. **Archivierung:** Original-Anträge bleiben verschlüsselt gespeichert ### **Benutzerdaten:** - **Registrierung:** E-Mail, Name, Telefon - **Login:** E-Mail, Passwort (gehashed) - **Profil:** Bearbeitbare Kontaktdaten - **Rollen:** admin, vorstand, mitglied ### **Mitgliederdaten:** - **Manuell hinzugefügt:** Direkt in `members.json` - **Aus Anträgen:** Nach Genehmigung übertragen - **Zugriff:** Nur für "vorstand" Rolle sichtbar ## 🔄 **Datenfluss** ``` Mitgliedschaftsformular ↓ Verschlüsselung (AES-256-GCM) ↓ Speicherung (verschlüsselt) ↓ E-Mail-Benachrichtigung ↓ CMS-Verwaltung ↓ Genehmigung/Ablehnung ↓ Bei Genehmigung: Übertragung in Mitgliederliste ``` ## ⚖️ **GDPR-Konformität** ### **Rechtmäßigkeit:** - **Einwilligung:** Explizite Zustimmung im Formular - **Vertragserfüllung:** Mitgliedschaftsvertrag - **Berechtigtes Interesse:** Vereinsverwaltung ### **Betroffenenrechte:** - **Auskunft:** Über gespeicherte Daten - **Berichtigung:** Korrektur falscher Daten - **Löschung:** Recht auf Vergessenwerden - **Einschränkung:** Verarbeitung einschränken - **Datenübertragbarkeit:** Export der Daten ### **Datenspeicherung:** - **Zweckbindung:** Nur für Vereinszwecke - **Minimierung:** Nur notwendige Daten - **Genauigkeit:** Aktuelle und korrekte Daten - **Speicherbegrenzung:** Löschung nach Zweckerfüllung ## 🔧 **Technische Implementierung** ### **Verschlüsselungsfunktionen:** ```javascript // Verschlüsselung encryptObject(data, password) // Entschlüsselung decryptObject(encryptedData, password) // Passwort-Hashing hashPassword(password, salt) // Passwort-Verifikation verifyPassword(password, hash, salt) ``` ### **Environment-Variablen:** ```bash # Verschlüsselungsschlüssel (MUSS in Produktion geändert werden!) ENCRYPTION_KEY=your_secure_encryption_key_here # JWT-Secret JWT_SECRET=your_jwt_secret_here ``` ## 🚨 **Sicherheitshinweise** ### **Produktionsumgebung:** - **Verschlüsselungsschlüssel:** MUSS geändert werden! - **JWT-Secret:** MUSS geändert werden! - **HTTPS:** Zwingend erforderlich - **Backup:** Verschlüsselte Backups ### **Entwicklungsumgebung:** - **E-Mails:** Nur an `tsschulz@tsschulz.de` - **Test-Daten:** Keine echten persönlichen Daten - **Logs:** Keine sensiblen Daten in Logs ## 📞 **Kontakt** Bei Fragen zum Datenschutz: - **E-Mail:** tsschulz@tsschulz.de - **Verantwortlicher:** Torsten Schulz --- **Stand:** Januar 2025 **Version:** 1.0 **Letzte Aktualisierung:** Implementierung der Verschlüsselung