145 lines
3.9 KiB
Markdown
145 lines
3.9 KiB
Markdown
# 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
|
|
|
|
|
|
|