Verschlüsselung und Schlüsselaustausch: Technischer Überblick
netfiles Data Vault schützt Daten mit Ende-zu-Ende-Verschlüsselung („End-to-End Encryption“, E2EE). Der gesamte Prozess ist für maximale Nutzerfreundlichkeit optimiert. In diesem Artikel erhalten Sie einen technischen Überblick über die zugrundeliegenden Abläufe und Verfahren.
Für Hilfe bei der Einrichtung Ihres netfiles Data Vault stellen wir Ihnen diesen Artikel bereit.
Detaillierte Informationen finden Sie auch in unserem Whitepaper zu netfiles Data Vault.
Um E2EE in netfiles Data Vault anzubieten, übernimmt netfiles folgende Aufgaben:
- Verschlüsseln/Entschlüsseln von Inhalten im Browser, um die Vertraulichkeit und Integrität der Inhalte zu gewährleisten
- Den für die Ver-/Entschlüsselung verwendeten Schlüssel an einem sicheren Ort speichern, auf den auch netfiles keinen Zugriff hat
- Den für die Ver-/Entschlüsselung verwendeten Schlüssel auf sichere Weise an neue Mitglieder des Datenraums weitergeben
Um netfiles Data Vault zu nutzen zu können, benötigen Administrator und Benutzer folgende Informationen:
- netfiles Benutzername/E-Mail-Adresse
- netfiles Benutzer-Kennwort
- Daten-Schlüssel
netfiles verwendet dafür folgende Verfahren und Technologien:
- RSA-4096: Schlüsselaustausch (privater und öffentlicher Schlüssel)
- AES-256: Daten-Verschlüsselung
- Argon2id: Schlüssel-Ableitung
- WebCrypto: Schlüsselverwaltung, Ver- und Entschlüsselung
RSA-Schlüsselpaar: Öffentlicher und privater Schlüssel („Daten-Schlüssel“)
Um E2EE-verschlüsselte Daten mit Benutzern und Gruppen teilen zu können, ist ein Schlüsselpaar aus privatem („Private Key“) und öffentlichen („Public Key“) Schlüssel erforderlich. Während der private Schlüssel ausschließlich dem Benutzer bekannt sein darf und zur Entschlüsselung benötigt wird, ist der öffentliche Schlüssel frei abrufbar und wird nur für die Verschlüsselung genutzt. Sowohl der Administrator als auch die zukünftigen Benutzer eines netfiles Data Vault benötigen ein RSA-Schlüsselpaar. Dieses wird beim Erstellen des Datenraumes (Administrator) oder infolge einer Einladung in einen Datenraum (Benutzer) angelegt. Hierzu wird der Administrator oder Benutzer aufgefordert, einen persönlichen „Daten-Schlüssel“ anzulegen. Der Daten-Schlüssel ist ein ausschließlich für die E2EE verwendete Passwort.
Wichtig: Der Daten-Schlüssel ist unabhängig vom netfiles Benutzer-Kennwort, das zur Anmeldung bei netfiles erforderlich ist. Bitte wählen Sie aus Sicherheitsgründen auf keinen Fall dasselbe Passwort als Benutzer-Kennwort und Daten-Schlüssel
Der persönliche Daten-Schlüssel ist (neben den netfiles Zugangsdaten) das einzige Passwort, das im weiteren Verlauf von Administrator und Benutzern gemerkt oder gespeichert werden muss. Alle weiteren für die Arbeit mit E2EE-Daten erforderlichen Prozesse werden von netfiles im Hintergrund abgewickelt. Der Daten-Schlüssel kann in Zukunft auch für mehrere unterschiedliche Datenräume genutzt werden und muss nur beim erstmaligen Anlegen/Betreten erstellt werden.
Ablauf für Administratoren: Wenn der Administrator erstmalig ein netfiles Data Vault anlegt, generiert netfiles ein RSA-Schlüsselpaar mit einer Länge von 4096 Bit. Der originale, private RSA-Schlüssel dieses Paares wird mit dem Daten-Schlüssel des Administrators geschützt, welcher hierfür vom Administrator festgelegt werden muss.
Ablauf für Benutzer: Wenn ein Benutzer erstmalig zu netfiles Data Vault eingeladen wird, generiert netfiles ein RSA-Schlüsselpaar mit einer Länge von 4096 Bit. Der originale, private RSA-Schlüssel dieses Paares wird mit dem Daten-Schlüssel des Benutzers geschützt, welcher hierfür vom Benutzer festgelegt werden muss.
Wiederherstellungs-Code
Da netfiles zu keinem Zeitpunkt den persönlichen Daten-Schlüssel von Administrator oder Benutzern kennt, würde ein Verlust dieses Daten-Schlüssels auch die Daten unwiederbringlich verschließen. Als Sicherheit wird deshalb bereits beim Anlegen der Verschlüsselung ein Wiederherstellungsschlüssel für den Nutzer angelegt.
Dazu wird bei der Ableitung eine zufällige Folge aus 64 Hex-Zeichen („Wiederherstellungs-Code“) generiert. Daraus wird ein AES-256-Schlüssel („Wiederherstellungs-Schlüssel“) erzeugt. Der private Schlüssel des Administrators oder Benutzers wird mit diesem Wiederherstellungs-Schlüssel verschlüsselt und gespeichert. Der Wiederherstellungs-Code muss unbedingt sicher aufbewahrt werden.
AES-Datenraumschlüssel
Für die Verschlüsselung der Daten in einem Datenraum generiert netfiles einen zufälligen Seed („Datenraum-Schlüssel-Seed“) und generiert wiederum daraus den AES-256-Schlüssel zur Ver- und Entschlüsselung von Datenrauminhalten („Datenraum-Schlüssel“).
netfiles verschlüsselt den Datenraum-Schlüssel-Seed mit dem öffentlichen Schlüssel des Administrators oder eines eingeladenen Benutzers und speichert ihn in dessen Benutzerkonto für diesen Datenraum. Anschließend löscht netfiles den ursprünglichen, unverschlüsselten Datenraum-Schlüssel-Seed. Für jede Sitzung wird (lokal im Browser) ein für den Zeitraum dieser Sitzung gültiger Datenraum-Schlüssel erzeugt. Alle Inhalte, Kommentare und Anmerkungen werden damit automatisch im Browser des Administrators oder eingeladener Benutzer verschlüsselt, bevor sie an den Server gesendet werden. Um einen Inhalt, Kommentar oder Anmerkung zu öffnen oder herunterzuladen, werden diese ebenfalls im Browser entschlüsselt, nachdem sie vom Server abgerufen wurden.
Der gesamte Prozess der Ver- und Entschlüsselung ist für den Nutzer nahtlos und geschieht – nach Eingabe des persönlichen Daten-Schlüssels bei Betreten des Datenraumes – vollständig im Hintergrund.
Schlüsselaustausch: Einladung und Freigabe von Benutzern in einem netfiles Data Vault
Jeder Benutzer, der in einen verschlüsselten Datenraum eingeladen wird, benötigt ein RSA-Schlüsselpaar (Daten-Schlüssel) in seinem Benutzerkonto. Entsprechend gibt es zwei Ablaufmöglichkeiten einer Einladung:
Benutzer besitzt ein RSA-Schlüsselpaar (Daten-Schlüssel)
Der Administrator lädt einen Benutzer in den Datenraum ein. In seinem Browser ist der Datenraum-Schlüssel-Seed lokal verfügbar. netfiles ruft den öffentlichen Schlüssel der eingeladenen Person ab und verschlüsselt damit den Datenraum-Schlüssel-Seed. Anschließend wird dieser verschlüsselte Datenraum-Schlüssel-Seed im Konto des eingeladenen Benutzers für diesen Datenraum gespeichert.
Nachdem der Benutzer die Einladung angenommen hat, muss er seinen Daten-Schlüssel eingeben. Dadurch wird (lokal im Browser) der Datenraum-Schlüssel-Seed entschlüsselt, ein Datenraum-Schlüssel aus dem Datenraum-Schlüssel-Seed erzeugt und der Benutzer kann dem Datenraum direkt beitreten.
Benutzer besitzt noch kein RSA-Schlüsselpaar (Daten-Schlüssel)
Wenn ein eingeladener Benutzer noch keinen Daten-Schlüssel besitzt, ist im Einladungs-Prozess ein zusätzlicher Freigabe-Schritt durch den Administrator für den Schlüsselaustausch erforderlich:
1. Der Administrator lädt den Benutzer in einen Datenraum ein.
2. netfiles fordert den eingeladenen Benutzer auf, einen Daten-Schlüssel festzulegen und erzeugt ein RSA-Schlüsselpaar (der Ablauf erfolgt wie oben beschrieben).
3. Nachdem die Benutzer-Schlüssel erzeugt sind, muss der Administrator den Benutzer freigeben. Anschließend führt netfiles den Prozess für Benutzer durch, die bereits einen Daten-Schlüssel besitzen (wie oben beschrieben).