OTR – 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.

]]>
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)
]]>