# Sicherheitskonzept ## 1. Überblick Hinweisly ist eine Plattform zur Einrichtung und zum Betrieb interner Hinweisgebersysteme gemäß dem deutschen Hinweisgeberschutzgesetz (HinSchG) und dem österreichischen HSchG. Sicherheit und Vertraulichkeit stehen im Zentrum der Architektur. Dieses Dokument beschreibt die implementierten Sicherheitsmaßnahmen. ## 2. Verschlüsselung ### 2.1 Verschlüsselung ruhender Daten (Encryption at Rest) - **Algorithmus:** AES-256-GCM (Galois/Counter Mode) - **Schlüsselmanagement:** Jede Meldung, Nachricht und jeder Dateianhang wird mit einem individuellen Verschlüsselungsschlüssel und einem einzigartigen Initialisierungsvektor (IV) verschlüsselt. - **Umfang:** Alle Meldungsinhalte, Nachrichten zwischen Hinweisgeber und Sachbearbeiter sowie Dateianhänge werden vor der Speicherung in der Datenbank verschlüsselt. ### 2.2 Verschlüsselung in Transit (Encryption in Transit) - **HTTPS/TLS:** Alle Verbindungen werden über HTTPS mit TLS 1.2 oder höher verschlüsselt. - **HSTS:** HTTP Strict Transport Security ist aktiviert (`max-age=31536000; includeSubDomains`), um Downgrade-Angriffe zu verhindern. ### 2.3 Ende-zu-Ende-Verschlüsselung (optional) - Mandanten können einen öffentlichen Schlüssel hinterlegen. - Hinweisgeber verschlüsseln Meldungen mit diesem Schlüssel im Browser, bevor sie an den Server gesendet werden. - In diesem Fall kann auch Hinweisly den Meldungsinhalt nicht lesen — nur der Mandant mit dem privaten Schlüssel kann entschlüsseln. ## 3. Authentifizierung & Zugriffskontrolle ### 3.1 Passwort-Sicherheit - Passwörter werden mit **bcrypt** gehasht (Kostenfaktor gemäß aktuellen Best Practices). - Passwörter werden niemals im Klartext gespeichert oder übertragen. ### 3.2 Session-Management - Zufällig generierte Session-IDs. - Session-Cookie (`hinweisly_session`) mit `HttpOnly`- und `SameSite=Lax`-Flags. - Automatische Session-Invalidierung nach Inaktivität. ### 3.3 Brute-Force-Schutz - **Account-Sperrung** nach 5 fehlgeschlagenen Anmeldeversuchen. - **Rate Limiting** auf öffentliche Endpunkte (Anmeldung, Registrierung, Meldekanal, Statusabfrage). ### 3.4 Rollenbasierte Zugriffskontrolle (RBAC) - **Owner:** Vollzugriff auf alle Funktionen (Dashboard, Einstellungen, Benutzerverwaltung, Abrechnung). - **Case Handler:** Zugriff auf Dashboard und Meldungsbearbeitung. Kein Zugriff auf Einstellungen, Benutzerverwaltung oder Abrechnung. ### 3.5 Hinweisgeber-Authentifizierung - Hinweisgeber erhalten bei der Meldungsabgabe einen einmaligen Zugangsschlüssel. - Der Zugangsschlüssel wird mit **bcrypt** gehasht und nicht im Klartext gespeichert. - Über den Zugangsschlüssel können Hinweisgeber den Status ihrer Meldung abrufen und anonym kommunizieren. ## 4. Anwendungssicherheit ### 4.1 Security Headers Alle Antworten enthalten die folgenden Security-Header: | Header | Wert | Zweck | |---|---|---| | Content-Security-Policy | `default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; frame-ancestors 'none'` | Schutz vor XSS und Code-Injection | | X-Content-Type-Options | `nosniff` | Verhindert MIME-Type-Sniffing | | X-Frame-Options | `DENY` | Schutz vor Clickjacking | | X-XSS-Protection | `1; mode=block` | Zusätzlicher XSS-Schutz | | Referrer-Policy | `strict-origin-when-cross-origin` | Kontrolliert Referrer-Informationen | | Permissions-Policy | `camera=(), microphone=(), geolocation=()` | Deaktiviert nicht benötigte Browser-APIs | | Strict-Transport-Security | `max-age=31536000; includeSubDomains` | Erzwingt HTTPS | ### 4.2 Eingabevalidierung - Serverseitige Validierung aller Benutzereingaben. - Dateianhänge: Nur Bilddateien (JPEG, PNG, GIF, WebP) mit maximal 5 MB. - Content-Type-Prüfung bei Datei-Uploads. ### 4.3 Datenbankabsicherung - Parametrisierte Abfragen zum Schutz vor SQL-Injection. - Mandantentrennung durch Tenant-ID-Filter in allen Datenbankabfragen. ## 5. Anonymität ### 5.1 Hinweisgeberschutz - Es werden **keine personenbezogenen Daten** des Hinweisgebers erfasst. - Keine IP-Adress-Protokollierung bei Meldungsabgabe. - Keine Tracking-Cookies, keine Analyse-Software. - Der Zugangsschlüssel ist das einzige Identifikationsmerkmal und wird gehasht gespeichert. ### 5.2 Anonyme Kommunikation - Nachrichten zwischen Hinweisgeber und Sachbearbeiter werden verschlüsselt. - Die Identität des Hinweisgebers ist dem Sachbearbeiter nicht bekannt, sofern der Hinweisgeber diese nicht freiwillig offenlegt. ## 6. Audit & Nachvollziehbarkeit ### 6.1 Audit-Trail - Alle Statusänderungen an Meldungen werden in einem **unveränderlichen Audit-Trail** protokolliert. - Jeder Eintrag enthält: Zeitstempel, Aktion, handelnder Benutzer (bei Sachbearbeitern). - Audit-Logs können nicht nachträglich verändert oder gelöscht werden. ### 6.2 Datenexport - Sachbearbeiter können Meldungen für Behörden exportieren. - Der Export enthält alle relevanten Informationen inklusive Audit-Trail. ## 7. Gesetzliche Konformität ### 7.1 Hinweisgeberschutzgesetz (HinSchG) — Deutschland - Anonymer Meldekanal gemäß § 16 HinSchG. - Eingangsbestätigung innerhalb von 7 Tagen (§ 17 Abs. 1 HinSchG). - Rückmeldung über ergriffene Maßnahmen innerhalb von 3 Monaten (§ 17 Abs. 2 HinSchG). - Dokumentation der Meldungen gemäß § 11 HinSchG. - Automatisierte Fristenüberwachung mit E-Mail-Warnungen. ### 7.2 HSchG — Österreich - Internes Meldesystem gemäß § 12 HSchG. - Eingangsbestätigung innerhalb von 7 Tagen (§ 13 Abs. 1 HSchG). - Angemessene Folgemaßnahmen und Rückmeldung innerhalb von 3 Monaten (§ 13 Abs. 2 HSchG). ### 7.3 DSGVO-Konformität - Verschlüsselung gemäß Art. 32 DSGVO. - Auftragsverarbeitungsvertrag (AVV) gemäß Art. 28 DSGVO verfügbar. - Automatische Datenlöschung nach konfigurierbarer Aufbewahrungsfrist. - Recht auf Löschung (Art. 17 DSGVO) durch Kontakt an info@hinweisly.com. - Kein Tracking, keine Profilbildung, keine Weitergabe an Dritte. ## 8. Infrastruktur - Hosting innerhalb der Europäischen Union. - PostgreSQL-Datenbank in der EU. - Keine Datenübermittlung in Drittländer (sofern nicht im Verzeichnis der Unterauftragsverarbeiter angegeben). - Regelmäßige Backups mit verschlüsselter Speicherung. *Stand: April 2026*