Desktop, Messenger

Gajim: OMEMO für den Desktop

Dieser Beitrag wurde am 28. Januar 2018 das letzte Mal aktualisiert.

Um die geschlossene Plattform WhatsApp endgültig mit einem offenen Chatprotokoll zu ersetzen, haben wir für euch die OMEMO-Artikelreihe ins Leben gerufen. Es geht uns dabei aber nicht nur um eine weitere mobile Chat-Software, sondern um eine umfassende Alternative für all eure Geräte. WhatsApp bietet für den Desktop zwar einen Webclient (WhatsApp Web) an, der ist aber allenfalls eine unpraktische Notlösung. Er benötigt zwei Geräte im Netz, frisst extra Akku und ist anfällig für typische Probleme und Risiken von Webbrowsern. Dedizierte Clients wie Gajim sind da klar die bessere Option und bieten darüber hinaus auch mehr Komfort.

Seit der offiziellen Einführung der XMPP-Erweiterung OMEMO im Dezember 2016 wird in vielen Projekten an der sauberen Implementierung gearbeitet. Aktuell gibt es vier Clients, die das Verschlüsselungsprotokoll unterstützen, davon jeweils zwei Desktop- und zwei mobile Clients. Laut der Webseite Are we OMEMO yet? werdet ihr aber bald  noch mehr Auswahl haben. Bis dahin empfehlen wir euch für Linux- und Windows-Rechner Gajim.

Gajim installieren

Linux

Hinweis: Bei Ubuntu sind die Software-Quellen veraltet.  Um alle Funktionen fehlerfrei nutzen zu können, solltet ihr immer die aktuellste Version nutzen. Mit dieser Anleitung und dem neuesten Gajim-Release könnt ihr euch das Paket relativ einfach selbst kompilieren.

OMEMO installieren: Um später das OMEMO-Plugin installieren und aktivieren zu können, müsst ihr möglicherweise zusätzliche Pakete installieren. Installiert die benötigten Pakete für eure Distro wie auf der Gajim-Plugin-Site für OMEMO beschrieben.

Windows

  • Besucht den Download-Bereich von Gajim und klickt auf Windows.
  • Ladet euch den Gajim-Installer herunter.
  • Installiert Gajim. Es gibt nichts Spezielles zu beachten.

Einrichtung

Plugins

  • Um in Gajim die Plugins-Verwaltung zu öffnen, klickt ihr auf Ändern und Plugins.
  • Klickt auf Verfügbar und wählt die Plugins OMEMO, Http-Upload, URL-Image-Preview und optional für moderne Emojis Emoticons-Pack aus. Klickt danach auf Install/Upgrade.
  • Wechselt auf Installiert und setzt einen Haken für jedes Plugin um es zu aktivieren.
  • Optional: Wechselt auf Emoticons und setzt den Haken bei Twemoji-resized. Klickt danach auf Install/Upgrade.

Einstellungen

  • Um in Gajim die Einstellungen zu öffnen, klickt ihr auf Ändern und Einstellungen.
  • Optional: Im Reiter Allgemein wählt ihr unter Emoticons Twemoji-resized.
  • Optional: Ebenfalls bei Allgemein könnt ihr Kontaktliste beim Start anzeigen auf Nie stellen, um Gajim im Tray minimiert starten zu lassen.
  • Im Reiter Erweitert entfernt ihr unter Privatsphäre alle Haken.

Account hinzufügen

  • Um in Gajim die Kontenverwaltung zu öffnen, klickt ihr auf Ändern und Konten. Wählt aus, ob ihr
    • ein bestehendes Konto hinzufügen
      • Gebt eure Jabber-ID und euer Passwort ein.
      • Den Haken bei Passwort speichern solltet ihr drin lassen, sonst müsst ihr jedes mal, wenn ihr Gajim startet, euer Passwort eingeben.
      • Klickt auf Vor und Beenden.
    • oder ein neues Konto erstellen wollt.
      • Wählt einen Server aus unserer Server-Liste aus. Gebt die Domain ein (Beispiel: datenschutzhelden.org) und klickt Vor.
        Hinweis: Erhaltet ihr eine Fehlermeldung, müsst ihr das Konto direkt auf der Site erstellen. Danach fügt ihr das bestehende Konto wie oben beschrieben hinzu.
      • Gebt euren Benutzernamen (Beispiel: thorsten) und ein einzigartiges Passwort ein und löst gegebenenfalls das Captcha.
      • Klickt auf Vor und Beenden.

Sicherheits- und Datenschutz-Einstellungen

  • Um in Gajim die Kontenverwaltung zu öffnen, klickt ihr auf Ändern und Konten.
    • Im Reiter Allgemein entfernt ihr die Haken bei Unterhaltungsverlauf für alle Kontakte dieses Kontos speichern
      und
      Verlauf mit Server synchronisieren
      .
  • Um in Gajim die Einstellungen zu öffnen, klickt ihr auf Ändern und Einstellungen.
    • Im Reiter Erweitert klickt ihr bei Erweiterter Konfigurationseditor auf Öffnen.
    • Gebt bei Filter tls_version ein und gebt bei Wert 1.2 ein.
    • Gebt bei Filter cipher_list ein und gebt bei Wert
      ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384
      ein.

Optional: Verbindung über Tor

Gajims Verbindung über Tor ist leider nicht sicher, weil es zu DNS-Leaks kommt. Wenn ihr es trotzdem versuchen wollt, verwendet am besten die Anleitung aus dem Privacy-Handbuch.

Verwendung

Kontakt hinzufügen

  • Klickt auf Aktionen und wählt Kontakt hinzufügen.
  • Gebt die Jabber-ID eures Kontakts ein.
  • Im Feld Spitzname könnt ihr eurem Kontakt einen benutzerdefinierten Namen zuweisen. Das ist sinnvoll, weil ansonsten der oft nicht einfach zuzuordnende Benutzername der Jabber-ID verwendet wird.
  • Im Feld Gruppe könnt ihr eine bestehende auswählen, oder eine neue generieren. Durch die Zuweisung könnt ihr eure Kontaktliste sortieren.
  • Wichtig: Wenn ihr OMEMO nutzen wollt, müsst ihr dem Kontakt erlauben euren Status zu sehen.
  • Tipp: Schreibt in eurer Kontaktanfrage eine eindeutige Nachricht, sodass euer Kontakt erkennt dass ihr es seid.
  • Klickt auf Hinzufügen.
    Euer Kontakt erhält nun eure Abonnement-Anfrage. Nimmt er euch an, erhaltet ihr eine Bestätigung.

OMEMO aktivieren

Hinweis: Wenn ihr gerade einen neuen Kontakt zu euer Kontaktliste hinzugefügt habt, kann es vorkommen, dass OMEMO nicht eingeschaltet werden kann. In diesem Fall solltet ihr Gajim neustarten.

Im Chatfenster sollte jetzt die Nachricht OMEMO encryption enabled zu lesen sein. Sobald ihr die erste Nachricht sendet, poppt ein Fenster auf und bitte euch um die Verifizierung des OMEMO-Fingerabdrucks. Damit stellt ihr sicher, dass ihr eine Verbindung zwischen eurem Gerät und dem Gerät eures Kontakts aufgebaut habt. Am besten ruft ihr euren Chatpartner an und lasst euch den Fingerabdruck vorlesen. Klickt auf Trust/Revoke Fingerprint und auf Ja um ihm zu vertrauen. Danach könnt ihr das Fenster wieder schließen.

Wenn ihr Fingerabdrücken leichtfertig vertraut, riskiert ihr, Opfer eines Man-in-the-Middle-Angriffs zu werden. Wie das funktioniert, erklären wir euch im Artikel Asymmetrische Verschlüsselung im Bild des Vorhängeschlosses.

OMEMO im Multiple-Client-Betrieb

Der große Vorteil von OMEMO ist der Multiple-Client-Betrieb. Nutzt ihr euer XMPP-Account beispielsweise auf dem Handy und dem Laptop, haben die Geräte jeweils ein eigenes Schlüsselpaar, bestehend aus öffentlichen und privatem Schlüssel. Aus dem öffentlichen Schlüssel wird der einzigartige Fingerabdruck erzeugt.

Damit der Multiple-Client-Betrieb reibungslos funktioniert, müsst ihr folgendes beachten:

  • Wenn ihr auf beiden Geräten Nachrichten empfangen wollt, muss euer Gesprächspartner beiden Fingerabdrücken vertrauen.
  • Wenn ihr eure Antworten auf das jeweils andere Gerät synchronisieren möchtet, müsst ihr ebenfalls euren eigenen Fingerabdrücken vertrauen.

QR-Code generieren: Mit der Android-App Conversations gestaltet sich die Authentifizierung besonders einfach. Wenn der Fingerabdruck in Form eines QR-Codes  vorliegt, könnt ihr ihn über die App einscannen. Um in Gajim den QR-Code anzuzeigen, geht ihr wie folgt vor:

  • Klickt auf Ändern und Plugins, um die Plugins-Verwaltung zu öffnen.
  • Im Reiter Installiert klickt ihr auf OMEMO und Konfigurieren.
  • Im Reiter Account Data findet ihr den QR-Code. Unter Linux müsst ihr gegebenenfalls noch python-qrcode installieren und Gajim neustarten.

Dateien versenden


Hinweis: Zum jetzigen Zeitpunkt könnt ihr in Gajim nur über das Http-Upload-Plugin Dateien OMEMO-verschlüsselt versenden. Es gibt noch andere Möglichkeiten, Dateien zu versenden, vom unverschlüsselten Versand raten wir allerdings ab.

In der unteren Leiste des Chatfensters findet ihr ganz rechts den OMEMO-Fisch, links daneben ist das Symbol für Bildversand via Http-Upload. Wollt ihr etwas anderes versendet, findet ihr direkt daneben das Symbol für Dateiversand via Http-Upload.

Empfangt ihr ein Bild, so wird es mithilfe von URL-Image-Preview direkt im Chatfenster angezeigt. Bei anderen Dateien erhaltet ihr lediglich einen Link, über den ihr die Datei runterladen könnt.

– Eure Datenschutzhelden





  1. Anonymous

    Gibt auch noch andere Desktop clients die OMEMO können, z.B. Pidgin (mit Plugin) und Dino (https://github.com/dino/dino). So richtig viel Spaß macht es allerdings mit keinem bisher. So fehlt z.B. Pidgin MAM Support, so dass wenn man mehrere Clients verwendet, diese nicht besonders gut synchronisiert werden. Aber immerhin ist eine sich verbessernde Entwicklung zu erkennen.

    • Thorsten

      Hallo,

      danke für deinen Hinweis. Dino sieht echt interessant aus. Den probiere ich definitv, sobald der OMEMO-Support besser funktioniert. Ich nehme an OMEMO ist noch in der Beta, da es auf https://omemo.top/ noch nicht als vollständig implementiert markiert ist.
      Pidgin wollten wir eventuell für MacOS empfehlen, wir zögern damit aber genau aus diesem Grund (Bugs).
      An MAM liegt das Problem mit dem Synchronisieren -zumindest bei OMEMO-Nachrichten- aber nicht, dort übernimmt die Nachrichtensynchronisation das XEP-0280: Message Carbons.

      – Thorsten

      • Anonymous

        Da wird auch noch ne Menge geschehen in nächster Zeit, denn laut dem letzten Eintrag des OMEMO Tickets bei Movim, läuft der Standardisierungsprozess noch und die Implementationen von Gajim und Conversations sind mit dem derzeitigen Entwurf nicht kompatibel.

        • Simon F.

          In diesem Thema ist definitv noch viel Potential drin!

          Da der OMEMO Entwickler auch gleichzeitig der Entwickler von Conversations ist, können wir davon ausgehen das zumindest Conversations mit dem Entwurf sehr frühzeitig kompatibel sein wird.

          • Anonymous

            “Da der OMEMO Entwickler auch gleichzeitig der Entwickler von Conversations ist”

            Wär mir neu

          • Simon F.

            Daniel Gultsch (der Entwickler von Conversations) wird in dem offizellen OMEMO XEP als Mentor während der Entstehung des Protokolls benannt (https://conversations.im/omemo/xep-omemo.html#ack)
            BR,
            Simon

          • Anonymous

            Das heißt die Idee ist von Daniel Gultsch und der Hauptentwickler ist Andreas Straub.

  2. Hugo

    Klasse Seite. Überfällig. Nutze Jabber schon seit 2013 auf Android (CM und jetzt LineageOS). Jetzt auch per Gajim auf Linux Mint. Multible Client geht auch, aber etwas macht mir Kopfschmerzen. Bekomme ich eine Nachricht, wird diese in Gajim wie folgt angezeigt: “The following message received from xxx@jabber.de/conversations was *not encrypted*”. So, wie ich das verstehe, ist diese Nachricht in/zu Gajim unverschlüsselt übertragen worden – in Conversations wird die Nachricht allerdings als OMEMO-Verschlüsselt angezeigt. Die Fingerprints sind in Gajim bestätigt…. Habt ihr ne Ahnung, was ich übersehen habe…?

    • Thorsten

      Hallo Hugo,

      danke für das Lob. Da bist du ja schon ein alter Profi was XMPP angeht. Ich habe es immer mal wieder verwendet, aber vor allem mit dem mobilen Client ChatSecure hatte ich mit der OTR-Verschlüsselung Probleme. Deswegen bin ich froh, dass mit OEMEMO endlich vieles klappt, was vorher nicht ging.

      Kleiner Probleme gibt es manchmal mit den Clients, aber das was du beschreibst ist mir noch nicht aufgefallen. Ich kann mir nicht vorstellen, dass sobald in Conversations OMEMO eingeschaltet ist, eine Nachricht unverschlüsselt gesendet wird. Aus meiner Erfahrung liegen die Probleme meist wo anders. Ich kann dir leider nur grundlegende Tipps geben:
      Um das Problem etwas einzugrenzen solltest du überprüfen, ob du die aktuelle Version der Clients verwendest. Gerade bei Gajim habe ich Probleme festgestellt, wenn nicht die Neueste (aktuell 0.16.8) verwendet wird. Die Plugins geben zwar normalerweise Bescheid, wenn es einen Aktualisierung gibt, aber auch das solltest du vorsichtshalber überprüfen.

      Sollte das alles nicht helfen, würde ich dir empfehlen dein Problem im Gajim-MUC zu melden (leider nur in englisch). MUC: gajim@conference.gajim.org

      Ich wünsche dir viel Erfolg. Wenn du das Problem gefunden hast, berichte doch bitte nochmal woran es lag.

      Viele Grüße,
      Thorsten

      • Hugo

        Hi Thorsten, ich danke dir für deine Antwort… Ich habe den Fehler nun gefunden. Es lag nicht daran, dass ich nicht die 0.16.8 drauf hatte (habe ich allerdings jetzt installiert), sondern daran, dass ich zusätzlich zu OMEMO noch das OTR-Plugin aktiviert hatte… Nachdem ich das rausgeschmissen hatte, war das von mir geschildere Problem (*not encrypted*) nicht mehr existent. Jetzt läuft alles sauber. Ich bin begeistert.

Einen Kommentar abgeben

Achtung! Alle Daten, die ihr in das Kommentarfeld eingebt, werden bei uns auf dem Server gespeichert. Eine Weitergabe eurer Daten an Dritte findet nicht statt.

Es ist möglich, ohne die Angabe einer Email-Adresse zu kommentieren.

Die Kommentare werden moderiert und wir versuchen, schnellstmöglich auf eure Fragen einzugehen. Bitte habt Nachsicht mit uns, wenn das auch mal ein paar Tagen dauern kann.

CC-BY-NC-SA
Alle Texte auf Datenschutzhelden.org stehen, sofern nicht anders publiziert, unter Creative Commons Attribution 4.0 International License.