Codemeta Secure Links – Technische Dokumentation
Übersicht
Codemeta Secure Links ist eine Webanwendung für den sicheren, Zero-Knowledge-basierten Austausch sensibler Informationen (Passwörter, Zugangsdaten, vertrauliche Dokumente). Der Dienst gewährleistet durch clientseitige Verschlüsselung, dass Daten den Browser des Absenders nur in verschlüsselter Form verlassen und ausschließlich vom Empfänger mittels eines einzigartigen Links entschlüsselt werden können.
1. Sicherheitsarchitektur & Verschlüsselung
Das Kernstück des Sicherheitsmodells ist die Zero-Knowledge-Architektur. Dies bedeutet, dass weder Codemeta noch der Cloud-Provider (AWS) zu irgendeinem Zeitpunkt Zugriff auf die Daten im Klartext haben.
Verschlüsselungsprozess (Absender)
- Lokale Generierung: Bei der Eingabe von Daten (Text oder Datei) wird im Browser des Nutzers (clientseitig) ein kryptographisch sicherer Zufallsschlüssel generiert.
- Verschlüsselung: Die Daten werden lokal mit AES-256 (Advanced Encryption Standard mit 256-Bit-Schlüssellänge) verschlüsselt.
- Übertragung: Lediglich der verschlüsselte Ciphertext wird an den Server übermittelt.
- Link-Erstellung: Der Entschlüsselungs-Key wird als Fragment Identifier (der Teil hinter dem
#) an die URL angehängt.- Beispiel:
https://pass.codemeta.de/id#entschlüsselungs_key - Hinweis: Moderne Browser senden den Fragment-Teil (
#...) nicht in HTTP-Requests an den Server. Der Schlüssel verlässt somit niemals das Endgerät des Nutzers.
- Beispiel:
Entschlüsselungsprozess (Empfänger)
- Zugriff: Der Empfänger öffnet den Link.
- Abruf: Die Webanwendung lädt das verschlüsselte Datenpaket vom Server anhand der ID.
- Lokale Entschlüsselung: Der Browser extrahiert den Key aus dem URL-Fragment und entschlüsselt die Daten lokal im Arbeitsspeicher.
- Darstellung: Die Klartext-Daten werden angezeigt und nach dem Schließen des Tabs aus dem Speicher entfernt.
2. Infrastruktur & Datenhaltung
Die Infrastruktur ist auf maximale Sicherheit, Ausfallsicherheit und strikte Datentrennung (Mandantenfähigkeit) ausgelegt.
-
Cloud-Provider: Die gesamte Infrastruktur wird bei Amazon Web Services (AWS) betrieben.
-
Standort: Alle Daten und Server befinden sich in der Region Frankfurt (eu-central-1), womit die Datenverarbeitung ausschließlich in Deutschland und unter Geltung der DSGVO erfolgt.
-
Mandantentrennung (Data Isolation): Um höchste Sicherheit und Compliance zu gewährleisten, werden die Daten der Kunden logisch getrennt gespeichert:
- Datenbank: Jeder Kunde erhält eine eigene MongoDB-Datenbank (für Metadaten und Verwaltung).
- Objektspeicher: Verschlüsselte Dateien werden in einem kundenspezifischen AWS S3-Bucket abgelegt.
- Dies verhindert effektiv, dass Datenlecks oder Konfigurationsfehler bei einem Mandanten Auswirkungen auf andere Kunden haben ("Bulkhead"-Pattern).
Zusätzlich zur beschriebenen Ende-zu-Ende-Verschlüsselung kommt auf Speicherebene "Encryption at Rest" zum Einsatz: S3-Buckets sind serverseitig verschlüsselt (z. B. SSE-S3 oder bevorzugt SSE-KMS mit kundenseitigem KMS-Key) und die MongoDB-Datenbanken laufen auf verschlüsselten Datenträgern (WiredTiger/Storage-Engine-Verschlüsselung). Dadurch sind auch ruhende Daten und Backups geschützt.
3. Datenlebenszyklus (Data Lifecycle)
- Burn-on-Read: Standardmäßig werden die verschlüsselten Datenpakete unmittelbar nach dem ersten erfolgreichen Abruf unwiderruflich aus der Datenbank und dem S3-Bucket gelöscht (
S3 Object Deletion&MongoDB Document Deletion). - Automatische Expiration: Wird ein Link nicht abgerufen, greift eine konfigurierbare Ablaufzeit (TTL), nach der die Daten automatisch bereinigt werden.
- Kein Logging: Es werden keine Inhalte oder Schlüssel in Server-Logs protokolliert.
4. Technische Merkmale
- Verschlüsselungsstandard: AES-256.
- Transportsicherheit: Die gesamte Kommunikation erfolgt über HTTPS/TLS (Transport Layer Security), um Man-in-the-Middle-Angriffe zu verhindern.
- Optionaler Passwortschutz: Nutzer können ein zusätzliches Passwort vergeben. Dieses dient als zweiter Faktor für die Client-seitige Entschlüsselung (Key-Derivation/Wrapping).