Sicherheit bei Wavor Deine Geschäftsdaten verdienen denselben Schutz wie bei einer Bank. Wir sagen dir nicht nur WAS wir schützen. Wir zeigen dir WIE.
AES-256 TLS 1.3 2FA DSGVO/GDPR UK GDPR LGPD (BR) DPDP (IN) EU-Server
AES-256 Verschlüsselung
Sensible Felder liegen verschlüsselt in der Datenbank. Wer sie ohne Schlüssel liest, sieht nichts.
EU-Rechenzentren (Hetzner DE)
Server und Kundendateien in Deutschland. Ausgelagerte Sicherungen liegen verschlüsselt außerhalb der EU, abgesichert nach den EU-Regeln für Drittlandübermittlungen; die Datenschutzerklärung nennt den Anbieter.
Nerd-Bereich Ab hier wird es technisch. Nichts davon musst du lesen, um Wavor sicher zu nutzen - es steht hier, damit es nachprüfbar ist.
Sicherheitsarchitektur So fließen deine Daten. Von der Anfrage bis zur Speicherung
SCHRITT 1
Cloudflare Edge
DDoS-Schutz, WAF, TLS 1.3 mit 1.2-Fallback. Globales Anycast-Netzwerk.
SCHRITT 2
Cloudflare Tunnel
Origin physisch unauffindbar. Outbound-only Verbindung zu CF, kein Inbound-Port. AOP Custom-only Trust mit Wavor-RSA-4096-Cert.
SCHRITT 3
Node.js App
Session-Validierung, 2FA-Prüfung, RBAC, Input-Validierung via Zod-Schemas.
SCHRITT 4
PostgreSQL + Vault
Verschlüsselte Speicherung mit AES-256. Secrets in HashiCorp Vault.
TLS 1.3 (1.2 Fallback)
Full Strict HTTPS auf allen 7 Domains.
DDoS-Schutz
Schutz auf der Edge bevor der Server die Anfrage sieht.
Wo werden Daten gespeichert?
Die Server stehen bei Hetzner in Deutschland (Falkenstein und Nürnberg), Kundendateien im Objektspeicher in Deutschland. Die Rechenzentren sind rund um die Uhr bewacht, der Zutritt ist biometrisch gesichert. Sicherungen und einzelne Dienste wie E-Mail, SMS und KI laufen über Anbieter außerhalb der EU. Diese Übermittlungen sind nach den EU-Regeln abgesichert, und die Datenschutzerklärung nennt jeden Anbieter.
Wie sind Schlüssel gesichert?
Alle API-Keys und Secrets in HashiCorp Vault (KV v2, verschlüsselt, zugriffskontrolliert). Automatische Rotations-Warnung nach 90/180/365 Tagen. Keine Klartext-Secrets in Code, Env oder Logs.
Wie funktioniert Backup?
Automatische PostgreSQL-Sicherungen alle 6 Stunden. Aufbewahrt wird zwei Tage lang jede, bis 14 Tage eine pro Tag, bis 90 Tage eine pro Woche. Jede wird nach dem Verschlüsseln wieder entschlüsselt und geprüft, und jede Nacht wird die neueste testweise eingespielt. Ausgelagerte Kopie bei Backblaze, vor dem Verlassen des Servers mit unserem eigenen Schlüssel verschlüsselt.
Verteidigungsschichten HTTP Security Headers: 14 gehärtete Direktiven
CSP Level 3 (21 Direktiven)
Enforce-Modus. Maximaler W3C-Standard inkl. script-src-elem/-attr granular, Trusted-Types auf Admin-Subdomain, manifest/worker/media-src whitelist.
HSTS (Strict-Transport-Security)
max-age 1 Jahr, includeSubDomains, preload aktiviert.
X-Frame-Options
DENY. Kein Clickjacking via iframes.
X-Content-Type-Options
nosniff. Browser können MIME-Typen nicht fehlinterpretieren.
Referrer-Policy
strict-origin-when-cross-origin.
Permissions-Policy
Kamera, Mikrofon, Standort. Alle standardmäßig deaktiviert.
COOP (Cross-Origin-Opener-Policy)
same-origin. Isoliert den Browsing-Kontext.
CORP (Cross-Origin-Resource-Policy)
same-site. Ressourcen können nicht Cross-Origin eingebettet werden.
Unabhängig nachprüfbar: Mozillas HTTP Observatory bewertet die Header von wavor.io mit A+. Ein Test fragt Mozillas Ergebnis jede Nacht neu ab. https://developer.mozilla.org/en-US/observatory/analyze?host=wavor.io(developer.mozilla.org)
2FA: TOTP / SMS / E-Mail
Drei Methoden für den zweiten Faktor. Backup-Codes einmalig nutzbar.
Geräte-Erkennung
Sofortige Benachrichtigung bei neuen Geräten via E-Mail mit IP + User-Agent.
Session-Management
Aktive Sitzungen einsehen, einzeln beenden oder alle auf einmal abmelden.
Brute-Force-Schutz (3 Layer)
5 Fehlversuche pro Email / 15min Lockout. 10 pro IP / 1h. 5 unterschiedliche Emails von einer IP / 24h Ban.
Cloudflare Turnstile Captcha
Bot-Schutz ohne Klick-Puzzle. Script mit crossOrigin anonymous + no-referrer geladen. Kein Session-Leak zu Cloudflare.
Bcrypt Passwort-Hashing (cost 12)
Jeder Rateversuch kostet Rechenzeit, das macht Listen-Angriffe unbezahlbar. Passwörter >= 12 Zeichen, zxcvbn-Stärke-Check.
Zod Input-Validierung
Alle API-Eingaben serverseitig via Zod-Schemas validiert. Drizzle-Zod als Single-Source-of-Truth mit DB-Schema.
Ratenbegrenzung mit gleitendem Fenster
Gleitendes Zeitfenster statt fester Blöcke, damit ein Grenzwert nicht zu Beginn jeder Minute neu geschenkt wird. Der Zähler liegt derzeit im einzelnen Arbeitsprozess; sobald Redis konfiguriert ist, teilen sich alle Prozesse denselben.
RBAC Fine-Grained (fail-closed)
Rollen + HTTP-Methoden-bewusst: GET braucht view, POST/PATCH brauchen edit, DELETE braucht delete. Fehlende Berechtigung = 403, nicht Bypass.
Multi-Tenant-Isolation
companyId-Scope in jeder DB-Query. Kein Daten-Leck zwischen Firmen.
Audit-Protokolle
Jede Mutation geloggt via eventLog + AuditLogger. Unveränderliche Spur mit userId, companyId, action, entity.
Freigabe durch zwei Personen
Vier Vorgänge brauchen zwei Freigaben: Änderungen an Rechtswerten, Preisen und Bedingungen sowie ein neuer Unterauftragsverarbeiter. Solange nur eine Person berechtigt ist, entscheidet sie allein. Die Regel greift, sobald es eine zweite gibt.
Secret-Rotations-Policy
Automatische Warnung nach 90/180/365 Tagen via secretRotation.ts.
PII-Masking in Responses
E-Mail, IBAN, Telefon maskiert für Team-Member ohne PII-Zugriff. piiMasking.ts central.
Log-Scrubbing
Alle Logs werden zentral bereinigt. Keine PII in Logs, Monitoring oder Debug-Ausgaben.
API-Schlüssel mit Scopes
Granulare Berechtigungen mit Ablaufdatum via apiKeyAuth.ts.
Soft-Delete & Recovery
28 Tage Wiederherstellung gelöschter Daten. deletedAt-Spalte mit automatischer Query-Filter.
Datenexport
Vollständiger JSON-Export aller User-Daten in einer Request. Löschung über den Datenschutz-Antrag.
Datenschutz-Technik Konkrete technische Maßnahmen
Field-Level-Encryption (AES-256-GCM)
IBAN, Steuernummer, Sozialversicherungs-Nr, Bankverbindung, TOTP-2FA-Secrets und Einmal-Codes (Login/Verifizierung/Reset): AES-256-GCM mit 96-Bit-IV, 128-Bit-Auth-Tag. Random-IV pro Encrypt.
Fail-closed Encryption
Ohne ENCRYPTION_KEY in Production: Server startet nicht. Kein Klartext-Fallback.
Tamper-Detection (GCM)
AES-GCM Auth-Tag erkennt jede Manipulation des Ciphertexts. Decrypt schlägt hart fehl. Nie Silent-Akzeptanz.
HMAC-SHA256 Suchhashes
Verschlüsselte Felder bleiben durchsuchbar via deterministisches HMAC. Separater Key (Key-Separation per NIST SP 800-57).
Vault-Key-Management
ENCRYPTION_KEY + SESSION_SECRET + alle API-Keys in HashiCorp Vault (KV v2). Kein Klartext im Code, Env oder Logs.
Key-Versioning für Rotation
Ciphertext-Format v1:iv:data:tag. Neue Version ohne Datenverlust rotierbar.
Supply-Chain-Sicherheit Schutz gegen manipulierte Dependencies (event-stream 2018, ua-parser-js 2021)
Abhängigkeiten als Bau-Tor
Jeder Bau prüft alle Abhängigkeiten gegen die Schwachstellen-Datenbank. Neue Funde blockieren; bekannte stehen mit Datum in einer Grundlinie, die nur schrumpfen darf.
Dependabot Alerts
GitHub Dependabot prüft täglich gegen CVE-Datenbank. Automatische Security-PRs.
Lockfile eingecheckt
package-lock.json im Repo. Verhindert dass CI andere Versionen zieht als lokal.
SSRF-Schutz bei ausgehenden Abrufen
Jede Adresse, die aus einer Eingabe stammt, wird vor dem Abruf geprüft. Private Netze sind gesperrt, und jede Weiterleitung wird erneut geprüft statt blind verfolgt.
Auto-Security-Patches
unattended-upgrades installiert Security-Fixes des Betriebssystems automatisch.
Externe Scripts: CORS + Referrer
Turnstile (Cloudflare) geladen mit crossOrigin anonymous + referrerPolicy no-referrer. Kein Credential-Leak.
Monitoring & Observability Error-Tracking (selbst-gehostet)
Echtzeit-Fehleralarme mit Stacktraces.
Metrics (Prometheus + Grafana)
Request-Latenz, DB-Queries, Memory, eigene Business-Metrics.
Server-Monitoring
Uptime, CPU, Memory, Disk: 24/7 automatisierte Checks.
File-Upload-Sicherheit (7-Layer-Stack) Schutz gegen Malware, Polyglot-Attacks, SVG-XSS, Path-Traversal, MIME-Sniffing
Layer 1: Absolute Size-Gate (100 MB)
Hard-Cap gegen Zip-Bombs + DoS. Multer + Defense-in-Depth.
Layer 2: Per-Type Size-Gate
Bilder 5 MB, PDF 20 MB, Video 100 MB. Type-spezifische Limits.
Layer 3: MIME-Whitelist + Blocklist
22 Types erlaubt. HTML/JS/EXE/SH/JAR explizit blockiert (XSS-Vektoren).
Layer 4: Filename-Sanitization
Path-Traversal (../), Null-Byte, Windows-Reserved-Names blockiert.
Layer 5: Magic-Byte-Validation
Datei-Inhalt MUSS zur Endung + MIME passen. File-type Library erkennt 'evil.exe als picture.jpg'-Attacks.
Layer 6: SVG-Sanitization
DOMPurify entfernt embedded <script>-Tags aus SVGs. Ohne Sanitize ist SVG-Upload häufiger XSS-Vektor.
Schicht 7: Virenscan
Server-seitiger Virenscan vor der Speicherung, sofern der Scanner auf dem Server läuft. Fehlt er, wird das protokolliert statt still übergangen.
XSS-Schutz: 4-Schichten-Verteidigung Stored-XSS, Reflected-XSS, DOM-XSS, Supply-Chain. Alle Vektoren abgedeckt
Schicht 1: React JSX Auto-Escape
Alle User-Inputs werden by-default escaped. <script>-Tags werden als Text gerendert, niemals ausgeführt. Code-Pflicht: niemals dangerouslySetInnerHTML mit User-Input.
Schicht 2: DOMPurify Sanitizer
sanitizeProse() + sanitizeEmailPreview() reinigen Article-HTML, Email-Vorschauen + Markdown. Entfernt <script>, <iframe>, on*-Handler, javascript:/data:-URIs.
Schicht 3: CSP script-src 'self'
Selbst wenn Schichten 1+2 versagen: Browser blockt fremde Scripts. Whitelist nur für Stripe + Turnstile-Captcha.
Schicht 4: Trusted-Types (Admin)
require-trusted-types-for 'script' auf admin.wavor.io zwingt jede DOM-Manipulation durch eine Policy. Verhindert dass Bibliotheken-Bugs zu DOM-XSS führen.
Wir sind transparent: Wir befinden uns im Aufbau und haben noch keine formalen Zertifizierungen. Aber wir implementieren bereits die Standards und arbeiten aktiv darauf hin.
DSGVO / GDPR (EU)
Umgesetzt UK GDPR (Data Protection Act 2018)
Umgesetzt LGPD (Brasilien)
Umgesetzt DPDP Act 2023 (Indien)
Umgesetzt AVG (Niederlande)
Umgesetzt ePrivacy (Cookie-Consent)
Umgesetzt DSA (Digital Services Act)
Umgesetzt
ISO 27017 + 27018 (Cloud)
Geplant
ISO 27701 (Privacy)
Geplant
ISO 42001 (AI Management)
Geplant Zusätzlich richten wir uns nach EU AI Act, NIS2 und GoBD (DE-Buchführung). Das sind Regelwerke, keine Zertifizierungen.
Wir arbeiten nur mit geprüften, zertifizierten Anbietern zusammen. Jeder wurde auf Sicherheit und Datenschutz geprüft.
Hetzner Online GmbH ISO 27001, Rechenzentrum in Deutschland
Cloudflare, Inc. SOC 2, ISO 27001
Stripe Payments Europe Ltd. PCI DSS Level 1
Amazon Web Services, Inc. (AWS) ISO 27001, SOC 2
OVH SAS (OVHcloud) ISO 27001, Speicherort Deutschland. Verschlüsselung im Ruhezustand durch den Anbieter (AES-256).
Backblaze, Inc. SOC 2. Eimer mit Object Lock (Compliance-Modus): eine einmal geschriebene Sicherung lässt sich vor Fristablauf nicht löschen.
Twilio, Inc. SOC 2, ISO 27001
Mistral AI SAS SOC 2 Type II, ISO 27001/27701, Daten in der EU
OpenAI LLC SOC 2 Type II, kein Training auf API-Eingaben
OpenProvider B.V. EU-basiert (Niederlande)
Sicherheitsproblem melden Hast du eine Sicherheitslücke entdeckt? Melde sie vertraulich an unser Team. Wir nehmen jeden Hinweis ernst und melden uns so schnell wie möglich.
Melden