# 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:** 32 Bytes zufällig generiert
- **IV:** 12 Bytes zufällig generiert (GCM Best Practice)
- **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



