ChatSecure statt WhatsApp

(Update 1 am 09.2.18: Hintergrundaktualisierung erg├Ąnzt)
(Update 2 am 13.2.18: Details erg├Ąnzt / erl├Ąutert u. bessere Strukturierung erg├Ąnzt)
(Update 3 am 15.2.18: Angeheftete Server-Zertifikate erg├Ąnzt)
(Update 4 am 27.1.19: Auswahltipps f├╝r XMPP-Server eingef├╝gt)

Leider sind den meisten Nutzern von Messenger-Apps wie WhatsApp die technischen Grundlagen nicht klar. Welche Verletzungen der eigenen Datenschutzinteressen sie damit (un)wissend in Kauf nehmen, und dies auch stellvertretend und stillschweigend f├╝r all ihre Kontakte festlegen, ist ihnen somit (meist) auch nicht klar.Diejenigen die sich aber mit diesem Thema besch├Ąftigen, weichen dann oft auf alternative Messenger wie Threema, Signal oder Telegram aus. Leider sind auch alternativen Messenger in den meisten F├Ąllen auch gleich problematisch (siehe dazu z.B. den allgemeinen Teil dieses Beitrags im Blog v. Mike Kuketz).

Eine schon lange existierende Alternative ist das Instant-Messaging auf Basis von XMPP (fr├╝her Jabber). Es ben├Âtigt im Gegensatz zu den meisten der j├╝ngeren Alternativen keine Telefonnummern, und vor allem auch keinen zentralen Server ├╝ber den die gesamte Kommunikation abgewickelt wird. Statt dessen werden dezentrale XMPP-Server verwendet, die sich bei Bedarf untereinander vernetzen um Nachrichten server├╝bergreifend auszuliefern. Solche Server betreiben neben Firmen oft auch Privatpersonen, die ihre Server teilweise sogar zur freien Registrierung eines XMPP-Kontos und zur freien Nutzung f├╝r alle anbieten – z.B. dismail.de, honigdachse.de (hier sogar direkt aus dem Client heraus), simplewire.de, trashserver.net oder wiuwiu.de.

Bei der sorgf├Ąltig zu treffenden Auswahl eines Serverbetreibers kann als Anhaltspunkt z.B. dessen Datenschutzerkl├Ąrung, aber auch seine Website herangezogen werden. Sind in der Website Tracker, Google-Fonts oder -API eingebaut, ist es dort sicher auch sonst beim Datenschutz nicht so weit her. Die Auswahl also sorgf├Ąltig treffen – und vor allem auch ein Passwort verwenden das sonst nirgends verwendet wird.

Um einmal einen kleinen Eindruck ├╝ber die Verbreitung zu bekommen, kann man sich die Serverliste beim XMPP-Compliance-Tester von Daniel Gultsch anschauen. Hier k├Ânnen Serverbetreiber die Einhaltung diverser Standards f├╝r XMPP-Server kontrollieren lassen. Die Liste ist nur ein Ausschnitt der betriebenen XMPP-Server, denn Serverbetreiber m├╝ssen sich hier selbst eintragen und das machen bei weitem nicht alle.

Hier soll es nun darum gehen die iOS-App ChatSecure in Betrieb zu nehmen. Dazu wurde vorab auf einem der frei verf├╝gbaren XMPP-Server (siehe obige Liste) ein pers├Ânliches, kostenfreies Konto angelegt. Verwendet wurde hier trashserver.net, wobei das sinngem├Ą├č mit den anderen Servern ziemlich gleich abl├Ąuft. Nach der Auswahl eines Benutzernamens, eines Passworts, und dem L├Âsen einer trivialen Rechenaufgabe ist man registrierter Benutzer und hat eine XMPP-ID (fr├╝her Jabber-ID).

Unter Apples iOS ist die kostenfreie, quelloffene App ChatSecure zu empfehlen. Aktuell ist sie unter iOS die einzige App die auch die OMEMO-Verschl├╝sselung unterst├╝tzt. Voraussetzung f├╝r die nachfolgende Anleitung ist eine bereits vorab registrierte XMPP-ID (siehe oben).

Hintergrundaktualisierung

Da man f├╝r den iOS-XMPP-Client ChatSecure einen Push-Dienst ben├Âtigt, muss sicher gestellt sein, dass die Hintergrundaktualisierung generell, und f├╝r ChatSecure speziell, aktiviert ist. Zur Kontrolle, bzw. Korrektur, in den iOS-„Einstellungen“ (App mit Zahnrad-Icon) den Bereich „Allgemein“ -> „Hintergrundaktualisierung“ -> „Hintergrundaktualisierung“ (ja … 2-mal) ansteuern. Dort einstellen ob die Hintergrundaktualisierung aktiv ist, und festlegen ob das nur bei WLAN-Verbindung oder auch bei mobiler Datenverbindung geschehen darf. Im nachfolgenden Beispiel sind beide Varianten erlaubt.

Anschlie├čend wieder eine Ebene zur├╝ck. Hier kann pro App festgelegt werden ob die generell aktivierte Hintergrundaktualisierung f├╝r diese App greift, oder nicht. Das muss sp├Ąter, nach der ChatSecure-Installation, f├╝r diese App aktiv sein – Thema: Push-Dienst v. ChatSecure.

ChatSecure-Installation und Vermeiden der ersten Stolperfalle

Der eigentliche Start ist dann die Installation der zugeh├Ârigen App aus dem Apple App Store.

Nach der erfolgreichen Installation kann ChatSecure gestartet werden, und pr├Ąsentiert sich dabei mit dem folgenden Dialog. Es geht dabei darum, der Software ein XMPP-Konto zu hinterlegen ├╝ber das Kommunikation abgewickelt werden soll. Dabei nun im allgemeinen kein neues Konto erstellen, sondern ein vorab angelegtes Konto zu hinterlegen. Wenn man ├╝ber diesen Dialog ein neues Konto erstellt, wird es beim Anbieter Zom erstellt. Um dies zu vermeiden, und mit einem XMPP-Provider der eigenen Wahl zu arbeiten, hier nichtNeues Konto erstellen“ antippen!

Bestehendes XMPP-Konto verwenden

Dieser Beitrag geht davon aus, dass man sich vorab, bei einem Anbieter der eigenen Wahl, ein Konto mit XMPP-ID registriert hat, oder dies eben sogar auf einem eigenen Server betreibt. In diesem Fall ist hier auf jeden Fall „Bestehendes Konto hinzuf├╝gen“ anzutippen.

Es wird daraufhin der nachfolgende Dialog angezeigt.

Hier sind 3 Angaben erforderlich:

  • Ein selbst zu w├Ąhlender Spitznamen. Dieser Spitznamen wird bei sp├Ąteren Kontakten in deren Kommunikation als Namen angezeigt. Man kann hier aber nat├╝rlich auch den echte Namen hinterlegen.
  • Einen Benutzernamen, was in diesem Artikel bislang als XMPP-ID bezeichnet wurde.
  • Das zur XMPP-ID geh├Ârige Passwort.

Sp├Ątere Kontakte k├Ânnen ggf. noch sehen mit welcher Software oder Ger├Ąt man online ist. Dies ist die sogenannte „Ressource„. Wer m├Âchte kann also auch noch diese Angabe (oben steht dort vorausgef├╝llt chatsecure19754) anpassen. Damit sieht der Dialog dann so aus – sofern man alle vier Angaben angepasst hat:

Tippen Sie oben rechts, das H├Ąkchen an um das Konto mit diesen Einstellungen bei ChatSecure zu hinterlegen.

Im dann folgenden Dialog sollte auf jeden Fall „Push aktivieren“ angetippt werden. Ein solcher Dienst ist bei iOS, im Gegensatz zu Android, erforderlich. iOS erlaubt es einer App normalerweise nicht, dauerhaft eine Netzwerkverbindung offen zu halten (schont u.a. den Akku). Tippen Sie also hier auf „Push aktivieren„.

Der darauf folgende Dialog zeigt eigentlich das Ende der Einrichtung an. Man k├Ânnte nun u.a. gleich Kontakte hinzuf├╝gen, was aber sp├Ąter gezeigt werden soll. Die „Push Warnung“ ist derzeit leider normal und etwas verwirrend. Wie nachfolgend gezeigt, kann diese Warnung aber erst einmal ignoriert werden. Tippen Sie deshalb das H├Ąkchen oben rechts an.

Damit ist die Grundeinrichtung abgeschlossen. Die normale ChatSecure-Oberfl├Ąche wird angezeigt. Die linke Spalte zeigt die verf├╝gbaren Kommunikationspartner an, ist derzeit aber nat├╝rlich noch leer.

Hier steht „nat├╝rlich“ deshalb, weil im Gegensatz zu WhatsApp & Co. nicht sofort alle Telefonnummern mit dem Server synchronisiert werden. Anwender entscheiden hier selbst mit wem sie Kontakt haben wollen.

Probleme mit Push-Dienst beheben

Bevor wir nun Kommunikationspartner (Kontakte) hinzuf├╝gen, k├╝mmern wir uns zuerst noch um das Problem mit dem Push-Dienst. Dazu tippen Sie auf das Zahnrad-Icon um die ChatSecure-Einstellungen aufzurufen.

Hier sieht man, neben dem Konto von „Hans Mustermann“, erneut das Problem in Form eines gelben Warnhinweises (Ausrufezeichen). Tippen Sie hier auf das direkt daneben stehende Informatios-Icon „i“. Sie gelangen damit in die Konten-Einstellungen der betreffenden XMPP-ID, in der ├╝ber das i-Warn-Icon auch hier ein Problem angezeigt wird.

Hier bitte einmal mit zwei Fingertipps beim XMPP-Server abmelden …

… und direkt danach wieder anmelden.

Nach kurzer Wartezeit, sollten man a) wieder mit dem XMPP-Server verbunden sein und b) das i-Warn-Icon verschwinden. Bei Interesse kann man sich noch die „Serverinformation“ anzeigen lassen, was aber nicht erforderlich ist.

Verl├Ąsst man die diversen Dialoge, ist man wieder in den Einstellungen, wobei das i-Warn-Icon am Konto nun nicht mehr angezeigt wird. Wir haben ChatSecure damit betriebsfertig eingerichtet.

Verlassen Sie die Einstellungen ├╝ber „Unterhaltungen„. Sie gelangen wieder in die noch leere Normalansicht von ChatSecure.

Kontakt hinzuf├╝gen

F├╝r eine Kontaktaufnahme ist es, wie bei E-Mail auch, erforderlich die XMPP-ID des zuk├╝nftigen Kommunikationspartners zu kennen – ├╝brigens ein weiterer Vorteil dieser Technik! Ein zentrales Verzeichnis solcher XMPP-IDs gibt es, wie bei E-Mail, nicht! Sie m├╝ssen also die XMPP-ID von Kommunikationspartnern erst in Erfahrung bringen.

Wenn Sie die XMPP-ID eines zuk├╝nftigen Kontakts kennen, tippen Sie in dieser Ansicht oben links auf das Icon „Blatt mit Stift“.

Hier dann auf „Freund hinzuf├╝gen„. Im angezeigten Dialog tragen Sie nun im Feld Benutzernamen die XMPP-ID des Kontakts ein (hier andreas@grupp-web.de). Bei Name geben Sie gleich noch an wie dieser Kontakt sp├Ąter bei Ihnen benannt sein soll. Das ├╝bersteuert den vom Kommunikationspartner ├╝bermittelten Spitznamen.

Tippen Sie abschlie├čend das +-Icon an.

Der erste Kontakt ist nun im linken Bereich von ChatSecure zu sehen. Im Hintergrund hat ChatSecure dabei schon mit dem XMPP-Servers des neuen Kommunikationspartners den notwendigen Kontakt aufgenommen, und um Autorisierung der Kontaktanfrage ersucht.

Diese sieht der neue, potentielle Kontakt allerdings nur wenn er online ist. Gegebenenfalls m├╝ssen Sie also noch eine Weile auf die Autorisierung warten. Ist diese aber erfolgt, sieht der Kontakt in ChatSecure so aus:

Ein der beiden Seiten, Sie oder der neue Kommunikationspartner, k├Ânnen nun Nachrichten austauschen.

Das war es! Einer grunds├Ątzlichen Kommunikation steht nichts mehr im Wege!

Verbindlich die OMEMO-Verschl├╝sselung aktivieren

Wir, bzw. ich, wollen es aber in Hinblick auf eine Ende-zu-Ende-Verschl├╝sselung ganz sicher haben – auch dann wenn unser Kontakt offline ist. In dem Fall landen Nachrichten n├Ąmlich ggf. unverschl├╝sselt auf dem XMPP-Server unseres Kontakts. Um das zu verhindern, m├╝ssen im Profil unseres Kontakts noch ├änderungen an der Verschl├╝sselungseinstellung vorgenommen werden. Das muss, sofern die Gegenseite das auch kann, bei jedem Kontakt einzeln eingestellt werden.

Um die notwendige Einstellung vorzunehmen, tippen Sie erst den betreffenden Kontakt an, um dann dessen Profil durch eine Fingertipp auf des i-Icon ganz oben rechts in der ChatSecure-Oberfl├Ąche anzuzeigen (im nachfolgenden Dialog im Hintergrund, oben rechts, zu sehen). Als Ergebnis sieht man in einem Dialog das Profil, mit den f├╝r die Verschl├╝sselung genutzten Schl├╝sseln (hier drei OMEMO-Schl├╝ssel).

Werden keine OMEMO-Schl├╝ssel angezeigt, unterst├╝tzt die Client-Software des Kommunikationspartners eventuell OMEMO nicht. In diesem Fall w├Ąre es sinnvoll sich zuerst auf eine Software zu verst├Ąndigen die das unterst├╝tzt. Als Fallback-L├Âsung w├Ąre notfalls noch OTR m├Âglich. Ohne Ende-zu-Ende-Verschl├╝sselung zu arbeiten ist abzulehnen.

In diesem Dialog tippen Sie nun auf „Erweiterte Verschl├╝sselungseinstellungen„. Die dort zu findenden Einstellung ist standardm├Ą├čig auf „Beste verf├╝gbare“ eingestellt.

Stellen Sie das durch einen Fingertipp fest auf „OMEMO“ um …

… und schlie├čen Sie den Dialog ├╝ber „Fertig„. Dieser Schritt ist leider bei jedem neuem Kontakt erneut durchzuf├╝hren.

Angeheftete Server-Zertifikate

Ein weiterer, kleiner Fallstrick kann in ChatSecure eine integrierte Sicherheits-F├Ąhigkeit sein die andere XMPP-Clients gar nicht ber├╝cksichtigen. Es geht um die TLS-Serverzertifikate (fr├╝her SSL-Serverzertifikate) die als Basis f├╝r eine sichere Transportverschl├╝sselung und als Ausweis f├╝r den Server dienen. ChatSecure speichert das Serverzertifikat eines akzeptierten XMPP-Servers n├Ąmlich lokal ab. ├ändert sich das Serverzertifikat, warnt ChatSecure vor einem ge├Ąnderten Serverzertifikat und bittet den Benutzer um manuelle Best├Ątigung, dass ein neues Zertifikat akzeptiert werden soll. Der Benutzer ist nun in der Pflicht den Zertifikatswechsel zu kontrollieren und dann manuell zu best├Ątigen. Lehnt der Benutzer das neue Zertifikat ab, ist keine Kommunikation ├╝ber den XMPP-Server mehr m├Âglich!

Hintergrund: ChatSecure ist unter Verwendung dieser F├Ąhigkeit in der Lage einen Man-in-the-middle-Angriff auf die Transportverschl├╝sselung zu erkennen. Das Feature d├╝rfte nach meiner Erfahrung die meisten Anwender aber ├╝berfordern.

Generelles Fazit und L├Âsungsansatz: Sofern Sie als Anwender mit dieser Anfrage von ChatSecure ├╝berfordert sind, entscheiden Sie auf Basis ihres aktuellen WLANs, ob Sie hier zustimmen. Taucht diese R├╝ckfrage n├Ąmlich just in dem Augenblick auf in dem Sie sich in einem fremden WLAN aufhalten, kann es in der Tat sein, dass ein Man-in-the-middle-Angriff vorliegt. Warten Sie in dem Fall ab bis Sie wieder in „sicheren Gefilden“ (also z.B. in Ihrem eigenen WLAN) sind und kontrollieren Sie dann ob die Warnung immer noch kommt. In einem WLAN bei dem Sie von einem solchen Angriff nicht ausgehen, w├Ąre dann eine Akzeptanz des neuen Zertifikats eher angesagt. Absolut sicher k├Ânnen Sie sich aber nur sein, wenn der Serverbetreiber Ihnen den Zertifikatswechsel best├Ątigt und dabei den neuen Fingerabdruck mitteilt – etwas was leider eher nicht ├╝blich ist.

L├Âsung falls Kommunikation bereits gestoppt und nicht mehr m├Âglich ist (z.B. weil ein Zertifikatswechsel abgelehnt wurde, das aktuell g├╝ltige Serverzertifikat gel├Âscht wurde, …): Bei ├Ąlteren Versionen von ChatSecure geschah dies leider auch automatisch wenn das Zertifikat auf dem Server gewechselt wurde. Ohne Warnung wird dann die Verbindung abgebaut. In den aktuellen Versionen erscheint in dieser Situation nun ein Dialog – bei dem man aber eventuell das neue Zertifikat abgewiesen hat. In beiden F├Ąllen ├Ąu├čert sich das, neben der nicht funktionierenden Kommunikation, in dieser Ansicht des betreffenden Kontos in den Einstellungen:

Beachte das rote Kreuzchen beim Konto

In diesem Fall das i-Icon, rechts neben dem Konto, antippen. Sie gelangen dann in die Kontenansicht. Da es dort den Link „Anmelden“ gibt, ist eine nicht bestehende Server-Verbindung erkennbar.

Tippen Sie nun „Anmelden“ an. ChatSecure baut nun eine Verbindung zum Server auf und Sie erhalten die M├Âglichkeit das Serverzertifikat zu akzeptieren.

Dabei ist der Name des Servers, sowie die SHA-Pr├╝fsumme des Zertifikats (auch als „Fingerabdruck“ bezeichnet) erkennbar. Durch Antippen von „Speichern“ k├Ânnen Sie das Zertifikat nun akzeptieren und damit in ChatSecure speichern. Eine Kommunikation sollte anschlie├čend wieder m├Âglich sein.

 

 

Schreibe einen Kommentar

Anti-Spam *