Gajim – BarFooS https://barfoos.blackblogs.org meine Erfahrungen mit Linux Tue, 23 Aug 2016 14:52:19 +0000 de-DE hourly 1 https://wordpress.org/?v=5.7.1 Gajim mit OMEMO-Verschlüsselung https://barfoos.blackblogs.org/2016/08/23/gajim-mit-omemo-verschluesselung/ Tue, 23 Aug 2016 14:52:19 +0000 http://barfoos.blogsport.eu/?p=491 Continue reading Gajim mit OMEMO-Verschlüsselung ]]> Seit Snowden wissen wir, dass zumindest im Jahr 2012 OTR eine der wenigen Verschlüsselungen war, gegen die selbst die allmächtig scheinende NSA kaum Mittel in der Hand hatte. Von vielen wird es unter anderem deswegen nach wie vor als der Standard zum sicheren Kommunizieren über Jabber / XMPP verwendet. Leider hat OTR design-bedingt ein paar Schwächen. So ist es zum Beispiel nicht möglich, mit mehr als einer Person OTR-verschlüsselt in Chaträumen (MUC) zu kommunizieren. Aus der selben Design-Schwäche heraus ist OTR auch nicht in der Lage, verschlüsselte Nachrichten auf mehrere Geräte (zB. Smartphone & Laptop) eines Users synchron zuzustellen.

Dies will OMEMO lösen. Zu dem Protokoll wurde vor ein paar ein neuer Audit veröffentlicht, der ein durch die Bank positives Fazit gezogen hat. Da mich die Schwächen von OTR ziemlich nerven, habe ich beschlossen mich näher mit OMEMO zu beschäftigen. Ich habe mich vor einer Weile wegen libpurple von Pidgin verabschiedet und nutze seit dem gajim.

Installation / Update von Gajim

Da OMEMO brandneue Software ist wird auch ein relativ neuer Gajim-Unterbau benötigt. Die gute Nachricht: Gajim betreibt ein eigenes PPA in der die neuste Version Ubuntu-unabhängig zur Verfügung gestellt wird.

Zunächst solltet ihr euch dort den aktuellen Schlüssel besorgen, um das PPA bei euch einzubinden. Ladet dazu gajim-dev-keyring_2016.03.29_all.deb herunter und installiert es bei euch auf dem System. Ich nutze dafür gdebi.

Nachdem dieser Schritt getan ist, müsst ihr das PPA zu euren Archiven hinzufügen. Auch hier gibt es verschiedene Wege, dies zu erreichen. Da wir im weiteren Verlauf um das Terminal eh nicht herum kommen, empfehle ich ein beherztes

sudo add-apt-repository 'deb ftp://ftp.gajim.org/debian unstable main'

gefolgt von der Aktualisierung der Paketquellen

sudo apt-get update

und dem Einspielen der Updates, unter denen sich jetzt auch gajim befinden sollte.

sudo apt-get upgrade

Wenn die Installation abgeschlossen ist, dann sollte

dpkg -l gajim

unter Version 0.16.5-1 anzeigen.

Abhängigkeiten erfüllen

Den ersten Teil der Vorraussetzungen zur Nutzung von OMEMO ist damit erfüllt. Nun müssen wir noch ein paar Abhängigkeiten installieren, bevor wir das eigentliche Plugin laden können. Um zu funktionieren braucht das Plugin das Paket python-axolotl, dass je nachdem welche Ubuntu-Version ihr benutzt, nicht als .deb vorliegt.

Unter Ubuntu 16.04 LTS liegen die benötigten Pakete als .deb vor und können so direkt installiert werden:

sudo apt install python-axolotl python-protobuf

Unter Ubuntu 14.04.5 LTS werden wir es über Pythons Installations-Skript PIP installieren. Damit das funktioniert, braucht wiederum python ein paar zusätzliche Pakete:

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

Nun geht es an die Installation von python-axolotl und python-protobuf:

sudo pip install cryptography --upgrade
sudo pip install python-axolotl
sudo pip install protobuf==2.6.1 python-axolotl

Plugin installieren

Jetzt sind tatsächlich alle Vorraussetzungen erfüllt um Gajim um das Plugin OMEMO zu erweitern. Da je nachdem wie viele Konten ihr bei Gajim eingerichtet habt, die Aktivierung des Plugins eine Weile dauern kann, empfehle ich Gajim zunächst aus der Konsole heraus zu starten und um folgende Debug-Ausgabe zu erweitern:

gajim -l gajim.plugin_system.omemo=DEBUG

Über Ändern -> Plugins und die Registerkarte „Available“ könnt ihr das OMEMO-Plugin auswählen und installieren. Nach dem Klick auf „Active“ sollte im im Hintergrund liegenden Terminal-Fenster erste Status-Meldungen einfliegen. Da OMEMO nun eine Menge Schlüssel für eure einzelnen Konten erzeugt, kann dieser Vorgang durchaus einige Minuten dauern. Solange im Terminal neue Status-Meldungen einfliegen, ist alles gut.

Eine entsprechend ausgerüstet Gegenstelle (zB Smartphones mit Conversations) vorausgesetzt, steht der Kommunikation mittels OMEMO jetzt nichts mehr im Wege. Viel Spaß damit.

Danke an @nobse für den Hinweis, der die Installation unter 16.04 deutlich vereinfacht.

]]>
Gajim 0.16.1 auf Ubuntu 14.04 LTS https://barfoos.blackblogs.org/2015/08/04/gajim-0-16-1-auf-ubuntu-14-04-lts/ Tue, 04 Aug 2015 11:04:22 +0000 http://barfoos.blogsport.eu/?p=373 Continue reading Gajim 0.16.1 auf Ubuntu 14.04 LTS ]]> Der Vorteil der LTS-Versionen von Ubuntu ist, dass das System lange ohne ein grundsätzliches Update und das damit meist verbundene Neuinstallieren des kompletten Betriebssystems auskommt. Einer der großen Nachteile ist, dass die Software (von einigen Ausnahmen wie Webbrowsern abgesehen) an einem Bestimmten stand eingefroren wird und lediglich Sicherheitsupdates weitergereicht werden. Für viel genutzte Software wie LibreOffice oder VLC-Videoplayer lässt sich dies mit zusätzlichen PPAs verändern. Dort liegt dann die für das eigene System kompilierte aktuelle Version der Software vor.

Für Gajim, meinen XMPP-Messenger, fiel diese Möglichkeit leider aus, denn das vom Gajim-Team angebotene PPA ist deutlich älter als die unter 14.04 bereits ausgelieferte Version des Programms und hilft demzufolge nicht weiter. Nun wird die Aktualität des Messengers von mir als relativ wichtig eingestuft und ich musste mit einigem erstaunen feststellen, dass die Version die ich verwendete bereits im Mai 2013 freigegeben wurde. Sie ist also mittlerweile mehr als zwei Jahre alt!

In der Zwischenzeit wurden einige Bugs gefixt und eine Menge neuer Features hinzugefügt, auf die ich nicht verzichten möchte. Ich hatte nun im wesentlichen zwei Möglichkeiten, denn Gajim bietet nicht wie andere Sofware aktuelle bereits fertig kompilierte Binaries zum Download an, sondern verweist dazu auf die Distributionen.

Möglichkeit 1 – Selbst kompilieren

Prinzipiell lässt sich der Quellcode von der Download-Seite des Projektes herunter laden und selbst kompilieren. Meine Erfahrungen unter Ubuntu sind damit aber eher mau und meist habe ich früher oder später aufgegeben, weil beim selbst kompilieren Fehlermeldungen auftauchten.

Möglichkeit 2 – Portierung

Da im Rahmen der aktuellen Releases von Ubuntu Vivid auch von Gajim bereits vor-kompilierte Binaries bereit stehen, entschloss ich mich kurzerhand diese auf 14.04 zu installieren. Im konkreten Fall geht das relativ einfach. In den tiefen von Launchpad findet sich die Seite auf der sich die fertigen Binaries von Gajim 0.16.1 herunterladen lassen. Dort muss je nach Prozessor-Architektur das i386- oder das amd64-Paket gewählt und herunter geladen werden.

Bis auf eine Ausnahme werden von 14.04 LTS bereits alle Abhängigkeiten erfüllt. Die Ausnahme bildet das Paket python-nbxmpp, dass erst mit Ubuntu 15.04 Vivid in die Paketquellen von Ubuntu einbezogen wurde. Den Links folgend lässt sich das Installations-Paket python-nbxmpp_0.5.1-2_all.deb auf der Seite herunter laden.

Nun wird zuerst python-nbxmpp_0.5.1-2_all.deb und im Anschluss gajim_0.16-1_all.deb installiert. Das Programm GDebi, das ich für solche Aufgaben verwende, weil mir das Softwarecenter zu träge ist, weißt freundlich darauf hin, dass für Gajim auch eine ältere Version über die Paketquellen angeboten wird. Der Fakt ist klar und Anlass für diese manuelle Installation gewesen. Der Hinweis kann demzufolge ignoriert werden.

Beim nächsten Start von Gajim aktualisieren sich einige Plugins selbstständig. Gajim ist nun auf dem Stand von Februar 2015 und bietet folgende beeindruckende Liste neuer Features (Auszug):

Fix sending Zeroconf messages
Support XEP-0313 MAM
Improve File transfer support by adding Jingle file transfer
Improve security
Improve audio / Video calls and add screensharing feature
Support systemd-logind
Support XEP-0308 Last message correction
Support XEP-0224 Attention
Support XEP-0191 Blocking command
Support XEP-0249 Direct Invitation
Better RTL languages support
use host command to resolve SRV records if it is available

Fazit

Als generellen Weg aktuelle Software auf dem System zu haben, ist der oben beschriebene Weg eher ungeeignet. Mit der manuellen Installation des Paketes bin ich fortan von Sicherheitsupdates ausgeschlossen und muss mich nun allein darum kümmern, immer mal wieder zu prüfen, ob kritische Bugs behoben werden und diese Updates entsprechend manuell einflegen. Im konkreten Fall ist es mir den Aufwand Wert. Generell ist es nicht zu empfehlen.

]]>
Nie wieder libpurple! https://barfoos.blackblogs.org/2014/05/21/nie-wieder-libpurple/ Wed, 21 May 2014 10:28:42 +0000 http://barfoos.blogsport.de/?p=55 Continue reading Nie wieder libpurple! ]]> Nachdem ich nun seit fast 10 Jahren Pidgin und damit die zugrunde liegende Bibliothek libpurple verwendet habe, ist seit heute Schluss damit. Schon zu meiner Zeit im Team von ubuntuusers wurde ich von verschiedenen Seiten immer wieder auf die Schwächen dieser Bibliothek hingewiesen. Heute morgen las ich dann einen Text von Quinn Norton, der Anlass genug zum Wechseln bot. Kurzzusammenfassung:

Was nutzt Verschlüsselung (zB via OTR) wenn die Software mit der du chatest so unsicher ist, dass eine interessierte Person ohne großen Aufwand auf den geschriebenen Text zugreifen kann, bevor er verschlüsselt wird.

In einer Zeit vor 2013 hätte ich gelächelt. #nachSnowden bleibt mir dieses Lächeln im Hals stecken.

Lange Rede, kurzer Sinn: etwas neues muss her!

Dank der vorbildlichen Arbeit des Wikiteams von ubuntuusers.de gibt es einen tollen Übersichtsartikel über die Vielzahl der verfügbaren Chat-Clients. Nach einem kurzen Vergleich entschied ich mich für Gajim, denn momentan nutze ich fast ausschließlich XMPP/Jabber. Essentiell war für mich die Integration von OTR, die über ein Plugin leicht möglich ist. PGP-Verschlüsselung funktioniert sogar out-of-the-Box.

Die Installation gestaltet sich denkbar einfach, denn Gajim ist aus den Paketquellen beziehbar. Für eine Vielzahl anderer Systeme finden sich auf der Projektseite Binaries und Quellcode. Vorbildlich.

Schon direkt nach dem Start von Gajim ist zu bemerken, dass dieser viel besser auf die Anforderungen des XMPP-Protokolls ausgerichtet ist. So ist es, um nur ein Beispiel zu nennen, möglich, das Passwort auf dem Jabber-Server aus dem Client heraus zu ändern. Diese Funktion habe ich bei Pidgin immer vermisst. Auch Transporte scheinen wesentlich besser unterstützt zu werden. Alles in allem also ein sehr guter Eindruck.

Off-the-Record aktivieren

Leider hat Gajim keine eingebaute Unterstützung für OTR. Es gibt jedoch ein Plugin, dass es mir ermöglicht OTR zu benutzen. Das funktioniert (wie bereits von Pidgin gewohnt) sehr zuverlässig.

Gajim kommt mit einem eigenen Plugin-Installer. Dieser findet sich unter „Ändern -> Plugins“. Nachdem im auftauchenden Fenster der Eintrag „Plugin Installer“ aktiviert wurde, erscheint ein neuer Tab, der alle verfügbaren Plugins mit Versionsnummer und kurzer Beschreibung auflistet. Neben Plugins zur besseren Integration in den Desktop und der Erweiterung anderer Funktionen (zB LaTeX-kompatible Funktionsdarstellung), findet sich hier auch der Eintrag Off-the-Record Encryption. Nach dem Markieren lässt sich das Plugin mittels klick auch „Install/Upgrade“ installieren.

In dem benachbarten Tab „Installed“ lässt es sich jetzt konfigurieren und aktivieren.

Hinzufügen von Konten

Beim Hinzufügen von Konten sei angemerkt, dass Gajim bei neu hinzugefügten Konten automatisch das Protokollieren aller eingehender Nachrichten aktiviert. Unter Sicherheitsaspekten sollte dies besser unterbunden werden. Chelsea Manning fiel genau dieser Protokollfunktion zum Opfer, weil verschlüsselt gesendete Nachrichten im Klartext auf dem Rechner gespeichert blieben.

Um das zu verhindern, lässt es sich unter „Ändern -> Konten“ für jedes Konto seperat abschalten. Hier empfiehlt es sich darüber hinaus ein Häkchen bei „Konten zusammenfassen“ zu setzen. Dadurch kommt einem die Oberfläche gleich vertrauter vor.

Anpassungen der Darstellung

Von Pidgin kommend, fand ich die Darstellung sehr unübersichtlich. Diese lässt sich jedoch mit wenigen Veränderungen so anpassen, dass das Fenster mit allen Kontakten dem von Pidgin sehr nahe kommt.

Auf „Konten zusammenfassen“ habe ich oben bereits hingewiesen. Darüber hinaus lässt sich unter „Ändern -> Einstellungen -> Stil“ die Darstellung der Status-Symbole anpassen. Die Option „gota“ ist das, was für mich am besten funktioniert.

Schon kommt das Fenstern meiner Vorstellung von Übersichtlichkeit wesentlich näher. Auch darüber hinaus lohnt ein Blick in „Ändern -> Einstellungen“ und in den „erweiterte Konfigurationseditor“. Hier lässt sich noch so einiges den eigen Bedürfnissen anpassen.

Update: Liste mit Empfehlungen für den „erweiterten Konfigurationseditor“

  • sort_by_show_in_roster: deaktiviert (Sortierung der Kontaktliste alphabetisch und nicht statusabhängig)
]]>