Signal: Desktop-Version des Messengers legt Encryption-Keys lokal im Klartext ab
Sichere Messenger, gerade in den Kommentarspalten zu WhatsApp-Beiträgen werden sie von eifrigen Nutzern vehement beworben, oftmals fällt da der Name Signal. Signal ist in der Tat als sicherer Messenger zu bezeichnen. Nicht nur Texte werden verschlüsselt übertragen, auch andere Funktionen werden immer mit Fokus auf Sicherheit implementiert oder im Zweifelsfall eben auch weggelassen.
Ein Fehler in der Desktop-Anwendung sorgt allerdings dafür, dass Signal gar nicht so sicher ist, denn der Key zum entschlüsseln der Kommunikation kann angeblich sehr einfach ausgelesen werden. Er liegt unverschlüsselt in einer Datei. Ruft man dann die Datenbank auf, in der die Nachrichten gespeichert sind, gibt man noch den Schlüssel ein und kann alles lesen.
Angreifer hätten es in diesem Fall sehr leicht, sich die Signal-Kommunikation zu schnappen, Zugriff auf den verwendeten Rechner vorausgesetzt. Laut Bleeping Computer liegt das an den automatisch generierten Keys bei der Installation der Software. Müsste der Nutzer ein Passwort für die Verschlüsselung des Keys eingeben, wäre dies direkt weniger problematisch.
Unabhängig davon, gibt es bei Signal eine weitere Schwachstelle, nämlich dann, wenn man von der Chrome-Erweiterung auf die Desktop-Variante wechselt. Hier werden dann unverschlüsselte Nachrichten in einer einfachen Textdatei abgelegt.
Wieder mal ein sehr gutes Beispiel für „eine Software ist so lange sicher, bis eine Schwachstelle entdeckt wird.“ Das sollte man aber bei allem, was man so nutzt, bedenken.
Wer Zugriff auf den PC hat, kann auch einen Keylogger installieren. Sehe das daher nicht als echten Bug.
Ein Keylogger kann aber nur Nachrichten ab dem Zeitpunkt der Infektion mitschneiden. Alles vergangene sollte einem Angreifer also verborgen bleiben (solange perfect forward secrecy beim Protokoll berücksichtigt wurde).
Grade dieser Aspekt ist bei solchen sicheren messengern meiner Meinung nach wichtig.
Wenn die Datenbank verschlüsselt wäre, loggst Du einfach das Passwort mit und kannst dann die Datenbank entschlüsseln. Diese wird sicherlich nicht mit Perfect Forward Secrecy verschlüsselt sein, da der Nutzer sie ja sonst selbst nicht entschlüsseln könnte. PFS wird bei der Transportverschlüsselung verwendet, die hier nicht relevant ist. Ich bleibe dabei: kein Bug.
Es gibt hier aber kein Passwort, dass per Keylogger mitgeschnitten werden kann. Den key wird der Nutzer niemals von Hand eingeben… Das ganze ist definitiv ein Bug und etwas schade für eine Software deren einziges Nutzungsargument die Sicherheit ist.
Wozu noch einen Keylogger installieren, wenn Du eh schon Windows nutzt?
Windows und Chrome neigen dazu den PC zu scannen das bedeutet der Messenger ist unsicher auch ohne physikalischen Zugriff!
Quellen zu Microsoft und Google?
wenn man „Zugriff auf den verwendeten Rechner“ hat, ist die Schwachstelle sogar um einiges größer. Ich sehe die Nachrichten hier komplett unverschlüsselt auf dem Bildschirm! (und wer mir über die Schulter schaut, auch!!!)
Gibt es überhaupt ein kryptographisch sicheres Verfahren, mit dem die Daten nur für das Programm lesbar abgespeichert werden können? Im Zweifel ließe sich das doch reverse engineeren um an die entsprechenden Schlüssel zu kommen.
Klar könnte man den User zwingen, ein eigenes Passwort beim Start einzugeben, was sich dann aber wieder negativ auf die Nutzererfahrung auswirkt.
Vollkommen richtig. Aber es gibt durchaus Möglichkeiten, Daten immerhin nicht im Klartext abzulegen, so dass ein zufälliger Finder damit nichts anfangen kann, man ist dabei auch nicht auf feste Schlüssel im Programmcode oder manuelle Passworteingabe des Nutzers angewiesen, wobei immerhin eine Möglichkeit zum Festlegen eines Passworts nett wäre.
Also, wenn man physikalisch Zugang zu meinem Rechner hat, hat man erstmal gar keine Zugriff, man kann maximal ein Passwort eingeben oder ihn kaputt machen. Wer das Passwort kennt, kommt auch an die Daten, richtig. Das ist doch aber beim Handy nichts anderes: Wer mein Telefon entsperrt bekommt, kann Nachrichten lesen. Noch viel schlimmer: Er kann Nachrichten schicken und so lange ich es nicht bemerke denkt auch noch jeder, die Nachricht käme von mir, ist ja verschlüsselt und signiert. Das Trifft übrigens auf WhatsApp uneingeschränkt auch zu.
Threema erlaubt immerhin das Programm mittels Passwort abzuschließen, dort reicht also das Entsperren des Geräts noch nicht aus, um Nachrichten zu lesen geschweige denn zu senden. Wie das an deren Web-Client ist, weiß ich nicht.
Tatsächlich wäre die Möglichkeit, den Zugriff auf die Daten mittels Nutzerpasswort (Fingerabdruck, was weiß ich) zu versperren, für einen Messenger wie Signal, der so großen Wert auf Sicherheit legt, wichtig. Insbesondere so Ungetümen wie einem Staatlichem Trojanischen Pferd würde man damit die Arbeit erschweren. Von einem Fehler kann ich da aber nicht sprechen, dadurch, dass ich den Zugriff auf die Nachrichten nicht sperren kann, ging ich als Anwender doch auch nie davon aus, dass die Nachrichten im Falle eines physikalischen Zugriffs auf ein entsperrtes Gerät sicher wären.
Der Zugriff auf Signal kann gesperrt werden (Passwort, Fingerabdruck).
Bei Threema habe ich folgendes im Whitepaper (ganz unten auf https://threema.ch/ verlinkt) gefunden:
> To be able to securely store this information in the browser, users must provide a password if they want to be able to restore the session at a later point in time. The public permanent key of the app as well as the private permanent key of the web client are then encrypted with the provided user password using authenticated NaCl secret key encryption (XSalsa20 + Poly1305) and stored in local browser storage.
Da NaCl Keys meines Wissens exakt 32 Byte lang sein müssen, gehe ich davon aus, dass das Passwort nicht direkt als Key verwendet wird, sondern dass davon ein entsprechender Schlüssel abgeleitet wird.
Wenn man nicht will, dass jede beliebige Software auf dem Computer zugriff auf die Nachrichten hat, sollte man sie erst gar nie speichern, oder aber mit einem Passwort oder mit einem externen Hardware-Token absichern. Bei allem anderen kann man sich die Verschlüsselung gleich komplett sparen, das ist dann nur noch Security by Obscurity und Marketing („stored encrypted“ klingt halt gut).
> Zugriff auf den verwendeten Rechner vorausgesetzt
Wenn ich Zugriff auf den verwendeten Rechner hab, löte ich dir auch einen Keylogger ein.
Was ist das denn für ein threat model? 😀
Das das Gerät selbst nicht kompromittiert sein darf ist eine Binsenweisheit.
Malware hat man sich schnell eingefangen. Wenn Malware mal aktiv ist, ist es für den User durchaus relevant, ob diese Malware die ganze Nachrichtendatenbank unverschlüsselt an einen Server senden kann, oder ob diese mit einem Passwort abgesichert ist.
Security ist nicht schwarzweiss, sondern eine Kombination aus verschiedenen Massnahmen. Unter Android wäre es ja auch ein Skandal, wenn andere Apps auf die unverschlüsselte Signal-Datenbank zugreifen könnte 🙂
Da Signal ein zentrales Messengersystem ist, wirken sich solche Schwachstellen auf *alle* Nutzer aus. Das ist bei freien, dezentralen Messengern nicht der Fall: Man kann bei solchen Problemen auf einen anderen Client *des selben Systems* wechseln und mit diesem „weitertexten“.
Leider werden bei der Nennung von Alternativen i.d.R. nur prominente, zentrale Insellösungen („walled garden“) berücksichtigt, die entsprechende Budgets für das Marketing haben. Hier hilft deshalb nur Aufklärung, was die Seite
-> http://www.freie-messenger.de
macht.
Mehr Informationen:
-> http://www.freie-messenger.de/warum/warumnicht
-> http://www.freie-messenger.de/systemvergleich
Zur „Sicherheit“:
-> http://www.freie-messenger.de/einfuehrung/#sicherheit