Zum Inhalt springen
Sebastian Wagner
2025 bis heuteKonzeption und Umsetzungin aktiver Entwicklung

Ende-zu-Ende-Verschlüsselung mit Symfony

Eine Anwendung, bei der die Verschlüsselung vollständig im Browser passiert. Der Server transportiert und speichert ausschließlich Chiffrat und kann die Inhalte selbst nicht lesen.

PHPSymfonyTwigJavaScriptAES-256-GCMRSAWeb Crypto API
Startseite der Anwendung mit der Überschrift "Anonymous Encrypted Messaging" und drei Kacheln zu Verschlüsselung, Zero-Knowledge-Architektur und automatischem Löschen.

Ergebnis

Der Server speichert ausschließlich Chiffrat und kann die Inhalte nicht entschlüsseln. Das ist eine Eigenschaft der Architektur und keine Einstellung, die sich umlegen ließe.

Worum es eigentlich geht

Die interessante Frage bei verschlüsselter Kommunikation ist nicht, welchen Algorithmus man wählt. AES und RSA sind seit Jahrzehnten gut verstanden, und die Auswahl ist selten die Stelle, an der etwas schiefgeht.

Die interessante Frage ist, wo die Schlüssel liegen. Sobald der Server sie kennt oder auch nur kurz sehen könnte, ist die Verschlüsselung eine Formalie: Sie schützt gegen einen Angreifer auf der Leitung, aber nicht gegen den Betreiber und nicht gegen jemanden, der sich Zugang zum Server verschafft.

Diese Anwendung ist der Versuch, das konsequent anders zu bauen.

Sicherheitsarchitektur

Verschlüsselung im Browser. Inhalte werden mit AES-256-GCM verschlüsselt, bevor sie das Gerät verlassen. Auf dem Transportweg und in der Datenbank liegt ausschließlich Chiffrat.

Schlüsselaustausch über RSA. Der symmetrische Schlüssel wird mit dem öffentlichen Schlüssel des Empfängers verschlüsselt übertragen. Der private Schlüssel verlässt das Gerät nicht.

Server ohne Leseberechtigung. Es gibt bewusst keinen Weg, über den Server oder Betreiber Inhalte im Klartext einsehen könnten. Das ist eine Architekturentscheidung und keine Einstellung.

Begrenzte Aufbewahrung. Nachrichten laufen automatisch ab, statt sich unbegrenzt anzusammeln. Was nicht gespeichert ist, kann auch nicht abfließen.

Warum das Projekt hier steht

Der praktische Nutzen liegt weniger in der Anwendung selbst als in dem, was man beim Bauen lernt: Wie verwaltet man Schlüssel, ohne dem Nutzer die Verantwortung für eine Datei zu übertragen, die er verlieren kann? Was passiert, wenn ein Schlüssel weg ist, und wie erklärt man, dass die Daten dann tatsächlich weg sind? Wo hört clientseitige Verschlüsselung auf, sinnvoll zu sein?

Diese Fragen tauchen in Kundenprojekten immer dann auf, wenn wirklich sensible Daten verarbeitet werden. Sie einmal in Ruhe an einem eigenen Projekt durchgespielt zu haben, ist deutlich angenehmer, als sie zum ersten Mal unter Termindruck zu beantworten.

Die Oberfläche der Anwendung ist englisch. Das ist der tatsächliche Stand und hier bewusst nicht schöngeredet.

Klingt das nach Ihrem Fall?

Schildern Sie kurz die Ausgangslage. Sie bekommen eine ehrliche Einschätzung, auch wenn sie lautet, dass ich nicht der Richtige bin.