Refactor environment configuration for local development; update SMTP settings and add JWT secret, encryption key, and debug options. Enhance Nuxt configuration for development server and runtime settings. Introduce new membership application form with validation and PDF generation functionality. Update footer and navigation components to include new membership links. Revise user and session data in JSON files.
This commit is contained in:
144
DATENSCHUTZ.md
Normal file
144
DATENSCHUTZ.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# 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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user