Trusted devices – Conversations geht neue Wege

Fast alle heute aktuellen Messenger haben sich sichere Kommunikation auf die Fahnen geschrieben. Standardmäßige Verschlüsselung ist inzwischen sogar bei WhatsApp angekommen.

Sicherheit ist ein wichtiges Thema. Es zeigte sich aber: Viel Sicherheit ist anstrengend. Es muss versucht werden den schmalen Grat zu gehen, dem User die Sicherheitsrelevanten Infos und Abfragen anzuzeigen, die nötig sind, aber nicht so viele dass er irgendwann blind alles bestätigt was er sieht (Ich erinnere an Windows Vista: Wollen Sie dieses Programm wirklich ausführen?).

Conversations hat den Focus schon immer auf sichere, benutzbare Kommunikation gelegt. Verschlüsselung ist inzwischen der Standard. Es gibt jedoch ein Problem, welches die Conversations Entwickler nie vernachlässigen wollten:

Vertrauen von Geräten

Verschlüsselung sichert die Kommunikationspartner davor, dass ihre Nachrichten auf dem Weg von einem Gerät zum Anderen mitgelesen werden können. Sie garantiert aber nicht, dass derjenige, der die Nachricht empfängt und entschlüsselt, auch derjenige ist, für den sie bestimmt ist.

Halb so wild, könnte man meinen. Nun ist es aber so dass Messenger vermehrt, und gerade Conversations, für die Verwendung auf mehreren Geräten konzipiert sind. Ich nutze Conversations auf dem Handy, dem Tablet, und auf dem Laptop läuft noch ein Gajim, welches inzwischen auch OMEMO verschlüsselte Nachrichten senden und empfangen kann. Hat die Nachricht bereits drei Empfänger welche sie entschlüsseln. Angenommen mein Server ist bösartig und wollte meine Kommunikation belauschen. Er würde in die Kommunikation einfach ein viertes gerät einschleusen. Ohne weitere Mechanismen würde der gutgläubige Client meines Gesprächsparters die Nachrichten auf für dieses bösartige, virtuelle Gerät verschlüsseln. Unsere Kommunikation wäre dann zwar verschlüsselt, könnte aber mitgelesen werden.

Deswegen setzen Verschlüsselungsmechanismen auf ein Vertrauensmodell. Geräte werden anhand eines eindeutigen, unfälschbaren Fingerabdrucks eindeutig identifiziert. Ein solcher Fingerabdruck kann zum Beispiel so aussehen:

8A36C15B CC7EC7AF 05E37107 8F4E56D4 6C3BA272 81E9B2D2 EF21580F 07761F57

Das Vertrauen von Geräten ist zunächst recht einfach: Der Benutzer bestätigt, dass der Fingerabdruck tatsächlich zu dem Gerät gehört, an welches er Nachrichten schreiben möchte. Dies ist der Fingerabdruck von meinem Gajim hier auf dem Notebook. Er gehört zu dem Account kahlb@netbk.de. Ihr könntet diesen jetzt als vertrauenswürdig hinzufügen. Das Problem: Hier haben wir wieder einen Angriffspunkt. Potentielle Spione könnten jetzt mein WordPress hacken und diesen Fingerabdruck durch einen ihrer Geräte ersetzen. Zugegeben, das ist paranoid. Aber eben möglich. Völlige und totale Sicherheit hat man eigentlich nur, wenn man sich persönlich in der echten Welt trifft und die Fingerabdrücke auf den Geräten vergleicht. Ich denke ihr versteht jetzt was ich eingangs schrieb: Je mehr Sicherheit man wünscht, desto anstrengender.

Whatsapp und co gehen daher den „Trust everything“ Weg. Es wird zwar gewarnt wenn sich der Fingerabdruck ändert, aber die Warnung werden die wenigsten Nutzer verstehen, und es entsteht der Vista-Effekt.

Conversations alter Weg

Conversations ist zunächst die 100% Lösung gegangen: Erst musste man dem Gerät vertrauen, dann konnten Nachrichten ausgetauscht werden.

Das ist die sicherste Lösung. Aber für den Durchschnittsnutzer unpraktikabel. Zunächst ist es noch ein weiterer Schritt bis man endlich die ersten verschlüsselten Nachrichten miteinander austauschen konnte. Besonders ärgerlich wurde es aber, wenn der Gesprächspartner ein neues Gerät hatte, zum Beispiel das Handy gewechselt hat. Dann kam es vor, dass Nachrichten gesendet wurden, einwandfrei „rausgingen“. Verschlüsselt waren sie aber nur für das alte Gerät, welches schon gar nicht mehr in Benutzung war. Auf dem Neuen kamen sie nie an, da sie nicht entschlüsselt werden konnten.

Das frustriert, und weniger technisch versierte Benutzer erkennen das Problem entweder überhaupt nicht und die Nachrichten sind im Nirvana, oder erkennen dass es ein Problem gibt, wissen aber nicht warum.

Conversations neuer Weg

Dieses Problem hat der Conversations Hauptentwickler Daniel Gultsch erkannt und ein Modell eingeführt welches er „Blind Trust Before Verification“, also „Blind vertrauen vor dem Bestätigen (des Fingerabdrucks)“ nennt.

Hierbei wird Geräten zunächst einmal vertraut, verschlüsselte Kommunikation findet statt. Solange dem Gerät jedoch nicht vertraut ist, wird jede Nachricht von diesem Gerät mit einem roten (statt farblosen) Schloss gekennzeichnet.

Hier hat der User also die Wahl: Er wird konsequent darauf aufmerksam gemacht, dass der Fingerabdruck des Gerätes nicht bestätigt ist. Das hat erstmal keine Nachteile, man kann ganz normal Nachrichten austauschen. User, die Wert auf sichere Kommunikation legen oder legen müssen, haben jedoch einen eindeutigen Indikator, wenn ein Gerät am Gespräch beteiligt ist welchem nicht vertraut wurde.

Das Vertrauen von Geräten wurde übrigens insofern vereinfacht, als dass Conversations nun auf QR Codes setzt. In seinen Kontoeinstellungen kann man sich den QR Code anzeigen lassen, der Gesprächspartner braucht ihn dann lediglich mit seinem Gerät scannen (Auf das „+“ für neue Unterhaltung klicken, dann die Menütaste, dann Barcode Scannen*). Im Barcode ist übrigens auch die eigene Jabber ID intergriert. Wenn ihr also jemanden trefft der noch nicht in eurem Roster („Kontaktliste“) ist, könnt ihr ihn gleich mit dem Barcode hinzufügen.

Ihr könnt übrigens auch die Barcodes von euren anderen Geräten scannen. Dann sind die einerseits gleich als vertrauenswürdig bestätigt, andererseits wird deren Fingerabdruck dann gleich in eurem Barcode integriert. Eure Kontakte müssen also nur noch einen Code scannen, nicht mehr von jedem Gerät.

*Hierfür ist ein QR Code Scanner nötig. Barcode Scanner ist open Source und im Play Store sowie in F-Droid kostenlos.

Viel Input, ich weiß. Aber ich finde es ist ein wichtiges Thema, welches behandelt werden muss. Ich finde Die Entwickler von Conversations, allen voran Daniel Gultsch, haben sich Gedanken gemacht und ein Prinzip entwickelt, auf dem man aufbauen kann. Danke dafür!

 

Daniel Gultsch hat übrigens ein Essay geschrieben, welches hier auch grob als Quelle dient. Es ist etwas technischer und auf englisch, aber wer Interesse hat sollte es sich auf jeden Fall durchlesen, es ist nicht besonders lang: Klick!

Hier der QR Code meines Accounts
Hier der QR Code meines Accounts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.