Werkszeit App · Datenschutz & Technik
Auf deutschen Servern. Verschlüsselt. DSGVO-konform.
Eine technische Tiefenseite. Jede Aussage ist im Code, in der Terraform-Konfiguration oder im Feinkonzept verankert — keine Werbe-Aussagen ohne Beleg.
Wo Ihre Daten liegen
Werkszeit läuft auf eigener Hardware in Deutschland. Anfragen aus der App und dem Web-Portal laufen über Cloudflare (CDN/Edge: TLS-Terminierung und DDoS-Schutz), bevor sie den Anwendungs-Server im internen Netz erreichen. Verarbeitung und Speicherung der personenbezogenen Daten erfolgen ausschließlich in Deutschland.
| Komponente | Anbieter | Standort | Verwendung |
|---|---|---|---|
| Marketing-Site (werkszeit.de) | Statisches Hosting (Caddy, eigene Hardware) | Deutschland + Cloudflare-Edge | Statisches HTML/CSS, keine personenbezogenen Daten |
| Doku-Site (docs.werkszeit.de) | Statisches Hosting (Caddy, eigene Hardware) | Deutschland + Cloudflare-Edge | Statisches HTML/CSS, keine personenbezogenen Daten |
| API (api.werkszeit.de) | Hono-Anwendung (Docker, eigene Hardware) | Deutschland | Session-Cookies, Datenbank-Bindung |
| Datenbank | PostgreSQL 17 (self-hosted) | Deutschland | Alle Stamm- und Bewegungsdaten, Row-Level-Security |
| Datei-Speicher | S3-kompatibler Objektspeicher (Garage, self-hosted) | Deutschland | Foto-Uploads, Lohnzettel-PDFs, DSGVO-Exports |
| Backup | age-verschlüsselte Dumps + Offsite Cloudflare R2 | Deutschland (+ Offsite EU) | 14 Tage lokale Aufbewahrung, tägliches verschlüsseltes Offsite-Backup |
Verarbeitung und Speicherung in Deutschland. Die personenbezogenen Daten liegen auf eigener Hardware in Deutschland, Offsite-Backups innerhalb der EU. Cloudflare wird ausschließlich als CDN/Edge (TLS-Terminierung, DDoS-Schutz) eingesetzt. Drittanbieter-Tracker (Google Analytics, Hotjar, Facebook Pixel) sind nicht eingebunden — weder auf der Marketing-Site noch in der App.
Verschlüsselung
- Transport. TLS 1.3 erzwungen (TLS 1.2 nur als Fallback bei sehr alten Endgeräten, dort mit AES-GCM-Cipher-Suites). HSTS-Header mit 365 Tagen Preload-Eintrag.
- Secrets. Sensible Geheimnisse (OAuth-Client-Secrets, Import-Zugangsdaten, TOTP-Seeds) werden über HashiCorp Vault (KV v2) verwaltet und mit Vault Transit verschlüsselt — nie im Klartext in der Datenbank. Die Datenbank-Verbindung läuft ausschließlich im internen Netz, kein öffentlicher Endpunkt.
- Datei-Speicher. Zugriff ausschließlich über kurzlebige, signierte URLs (Gültigkeit wenige Minuten); der Objektspeicher ist nicht öffentlich gelistet.
- App-internes Secure Storage. iOS-Keychain (Class AfterFirstUnlock), Android-EncryptedSharedPreferences. Keine Klartext-Tokens im Filesystem.
- Passwort-Hashing. Argon2id mit Empfehlungs-parametern aus OWASP 2023 (m=19456, t=2, p=1).
- Recovery-Codes. Klartext einmalig dem Nutzer gezeigt, in der Datenbank ausschließlich Argon2id-gehasht.
Backup und Wiederherstellung
Nächtliche logische Backups (pg_dump) werden age-verschlüsselt und 14 Tage lokal aufbewahrt; zusätzlich wird täglich ein verschlüsseltes Offsite-Backup zu Cloudflare R2 (EU) repliziert. Datei-Uploads werden als append-only-Spiegel gesichert — Löschungen im Live-Speicher erreichen den Spiegel nicht (GoBD-Schutz) — und ebenfalls verschlüsselt offsite gesichert. Die Wiederherstellung wird geprüft und im Audit-Log protokolliert.
DSGVO und Auftragsverarbeitung
Werkszeit ist Auftragsverarbeiter im Sinne der DSGVO Art. 28 für die Daten Ihrer Mitarbeiter; der Betriebs-Inhaber bleibt Verantwortlicher. Der Auftragsverarbeitungsvertrag (AVV) ist Teil jedes kommerziellen Vertrags und wird beim Onboarding standardmäßig digital signiert.
- Auskunft (Art. 15). Mitarbeiter können den Export ihrer eigenen Daten direkt im ESS anfordern. Lieferzeit < 30 Tage, laut DSGVO Art. 12 Abs. 3.
- Berichtigung (Art. 16). Stammdaten-Pflege im ESS mit Workflow-Freigabe durch Personal-Verantwortliche.
- Löschung (Art. 17). Steuerlich relevante Daten werden 10 Jahre aufbewahrt (§147 AO), nicht-relevante Daten auf Antrag innerhalb 30 Tagen gelöscht. Hash-Chain-Anker bleibt pseudonym erhalten — siehe Compliance-Audit.
- Datenportabilität (Art. 20). Vollständiger Export in JSON und CSV, beim Vertragsende automatisch.
Offline-Fähigkeit der Mobile-App
Die Realität auf der Baustelle ist: Im Keller ist kein LTE, im Tunnel ist kein Signal, im Schichtwechsel um 6:00 Uhr ist der DSL-Router noch nicht hochgefahren. Werkszeit löst das auf drei Ebenen.
- Lokaler Speicher. Drift (Flutter-SQLite-ORM) hält jede Buchung und jedes Bautagebuch-Foto lokal. Speicher-Limit: 5 Werktage normaler Last (Faustregel: 1.000 Buchungen + 200 Fotos).
- Sync-Queue mit Idempotency-Keys. Jede Operation bekommt eine UUID-v4 vor dem Versand. Ein Retry derselben Operation ist sicher — der Server erkennt die ID, gibt die ursprüngliche Antwort zurück. Doppel-Stempelungen sind technisch unmöglich.
- Konflikt-Auflösung. Bei kollidierenden Korrekturen (Mitarbeiter und Bauleitung korrigieren denselben Eintrag) gewinnt die Bauleitung; der Mitarbeiter bekommt eine Inbox-Nachricht mit Versionsdiff. Keine stille Daten-Überschreibung.
Was wir nicht behaupten
Wir sind kein ISO-27001-zertifiziertes Unternehmen. Wir tragen kein TÜV-Siegel. Wir sagen nicht „marktführend", „beliebteste" oder „Nr. 1". Stattdessen:
- Maßnahmen orientieren sich an ISO 27001 / BSI IT-Grundschutz-Bausteinen. Wir sind nicht zertifiziert, aber unsere Sicherheitsmaßnahmen entsprechen den dort beschriebenen Bausteinen.
- Open-Source-Komponenten (PostgreSQL, Hono, Astro, Flutter) — kein „proprietary stack lock-in".
- Audit-Trails sind hash-verkettet (siehe Modul: Compliance & Audit). Eine nachträgliche Manipulation eines Audit-Eintrags würde die Hash-Kette brechen — unabhängig prüfbar.
Die vollständige Sicherheits-Erklärung steht auf /sicherheit/.