Bei SandboxAQ haben wir uns kürzlich mit Signal Desktop beschäftigt, um herauszufinden, wie die Schlüsselverwaltung durch den Einsatz von Sicherheitshardware verbessert werden kann. Unsere Analyse zeigt den Bedarf an robusten und konsistenten Schlüsselisolierungsdiensten für alle Desktop-Plattformen. In diesem Blogpost,
- Wir analysieren die Sicherheit der Schlüsselverwaltung von Signal Desktop in Anbetracht der jüngsten Berichte über Anschläge, und
- Wir zeigen, wie Sicherheitshardware die Schlüssel von Signal Desktop schützen kann mit einem Proof-of-Concept (PoC) - einem Fork von Signal Desktop - und untersuchen die Nachteile dieses Ansatzes.
Signal ist ein Open-Source-Messaging-Dienst, der eine Ende-zu-Ende-Verschlüsselung einsetzt. Seine Nutzer profitieren von erstklassigem Datenschutz bei der Online-Kommunikation.1 Dieses Maß an Privatsphäre wird durch das Signal-Protokoll ermöglicht, das als Goldstandard für verschlüsselte End-to-End-Nachrichten gilt. Sein Sicherheitsprotokoll basiert auf kryptografischen Schlüsseln, die auf dem Gerät verwaltet werden. Für mobile Geräte speichert Signal diese sicher an isolierten und kontrollierten Orten. Auf dem Desktop muss Signal jedoch (wie alle anderen auch) auf die vom Betriebssystem bereitgestellten Funktionen zur sicheren Schlüsselverwaltung verzichten.
Das Problem
Alles beginnt mit einem Twitter-Post, in dem erklärt wird, wie ein Angreifer mit Malware alle vertraulichen Daten von Signal Desktop extrahieren und einen Klon der Messaging-Anwendung des Opfers ausführen kann. Dieser Angriff war möglich, weil Signal zwar die lokale Datenbank mit vertraulichen Daten (einschließlich Nachrichten und Schlüsseln) verschlüsselt, aber die Entschlüsselungsschlüssel der Datenbank im Klartext speichert.
Angriffsszenario
- Der Angreifer verschafft sich Zugriff auf den Verschlüsselungsschlüssel der lokalen Signal-Datenbank. Dies kann erreicht werden durch (a) physischer Zugang auf die Festplatte im Ruhezustand, wobei die Festplattenverschlüsselung umgangen wird, oder (b) Malware die mit den Rechten des Opfers arbeiten, wie eine bösartige Anwendung.
- Der Angreifer entschlüsselt die Datenbank und extrahiert ihre Daten. Da die Datenbankverschlüsselung im Klartext gespeichert wurde, ist dieser Vorgang unkompliziert.2
- Der Angreifer gibt sich als das Opfer aus oder kompromittiert dessen Nachrichten. Die kompromittierte Datenbank enthält den Gesprächsverlauf des Opfers auf diesem Gerät und eine Reihe von Schlüsseln, die im Signal-Protokoll verwendet werden.
Hier ist eine visuelle Darstellung des Angriffsvektors.