Der XMPP Client Gajim ist NICHT für die Kombination mit dem Anonymisierungsdienst Tor Onion Router geeignet. Es ist eine Proxy Konfiguration für Tor vorbereitet, aber Gajim enthält Bugs, welche die Anonymität und Sicherheit bei der Verwendung von Tor gefährden.
  1. DNS-Leaks: Gajim überlässt die Auflösung von Hostnamen in IP-Adressen nicht dem SOCKS5 Proxy, sondern macht es selbst und umgeht dabei die Proxy Einstellungen. Diese DNS-Leaks sind ein Security Bug und können die Anonymität gefährden. Im TorProject Wiki findet man folgende Empfehlung, das Problem zu umgehen:
    To prevent this you have to take the hostname of your jabber-server you want to connect to and resolve its IP,e.g. with tor-resolve and paste the IP adress into Account -> Connection -> Custom Hostname and Port. Now you're safe (probably)
    Vor einigen Jahren war diese Empfehlung vielleicht ok, nur die IP-Adresse (oder die Tor Hidden Service Adresse) des XMPP Servers fest einzutragen. Neumodisch aufgemotzte Jabber Server bieten aber mehrere Services unter unterschiedlichen Hostnamen. Wenn man mit dem Account verbunden ist, kann man sie unter "Aktionen - Dienste durchsuchen" abrufen.

    Der Jabber Server von conversations.im bietet z.B. folgende Dienste:
    Gajim Dienste abrufen
    Man müsste also auch die IP-Adressen der Services "conference.conversations.im", "proxy.conversations.im" usw. ermitteln und lokal auf dem Rechner fest vorgeben, um DNS-Leaks für diese Hostnamen ebenfalls zu vermeiden (könnte man unter Linux in "/etc/hosts" machen). Aber die Services können sich jederzeit ändern, der Admin könnte neue Services hinzugefügt und automatisch an die Clients verteilen... Man müsste es ständig beobachten und bei Bedarf anpassen. Unsicher.

    Außerdem treten DNS-Leaks auf, wenn bei einem Dateitransfer ein Dateitransfer Proxy genutzt wird, der vom Kommunikationspartner angeboten wird. Die Nutzung von Datei­transfer Proxies muss man in der Account Konfiguration komplett deaktivieren.
  2. Gajim (Linux) enthält eine Implementierung der libjingle für Audio- und Videochats. Wenn ein Angreifer eine Einladung zu einem Audio Chat schickt, dann versucht das Interactive Connectivity Establishment (ICE) der libjingle auf unterschiedlichen Wegen, irgendwie eine Verbindung für einen Audio Channel herzustellen und umgeht dabei auch die Proxy Einstellungen. Auch wenn man Tor als Proxy konfiguriert hat, versucht ICE mit oder ohne Tor irgendwie die Verbindung zum Angreifer herzu­stellen. Das kann den Nutzer deanonymisieren. (Dieses Verhalten ist kein Bug sondern ein Feature, dass in der ICE Spezifikation so vorgeschrieben ist.)

    Unter anderem schickt Gajim bespielsweise eine SSDP Discovery Message ins LAN, um einen UPnP-fähigen Router zu finden, der die externe IP-Adresse liefern könnte: M-SEARCH * HTTP/1.1\r\n
    Host: 239.255.255.250:1900\r\n
    Man: "ssdp:discover"\r\n
    ST: urn:schemas-upnp-org:service:WANIPConnection:1\r\n
    MX: 3\r\n
    User-Agent: gajim GSSDP/0.14.14\r\n
    Wenn der Angreifer innerhalb des gleichen lokalen Netz sitzt (innerhalb des Firmen­netzwerk, bei Starbucks o.ä.), dann hat man damit verloren. Wenn der Angreifer diese SSDP Discovery Message unmittelbar als nach einer Einladung zu einem Audio Chat sieht, dann weiß er, an welchem Rechner das anonyme Gegenüber sitzt.

    Wenn Gajim zufällig einen UPnP-fähigen Router findet, dann ist man auch gegenüber einem Angreifer aus dem Internet deanonymisiert. Bei vielen Heimroutern ist UPnP standardmäßig aktiviert, um die Usability zu verbessern.
Wir haben Gajim 0.16.5 unter Ubuntu 16.04 kurz getestet (Stand: Nov. 2016). Gajim für Windows verhält sich möglicherweise etwas anders. Evtl. ist die libjingle nicht enthalten? Vielleicht kann man sich wie bei Pidgin einen Tor-safe Gajim für Linux selbst bauen?

Unser Test ist nicht gründlich und ist nicht abschließend. Wir haben ein bisschen rumgespielt und mit Wireshark den Datenverkehr beobachtet, das ist kein Security Audit! Insbesondere haben wir keine Zeit gehabt, wirklich im Code nach­zu­schauen. Wir haben genug Probleme gefunden, um vor der Kombination Gajim+Tor zu warnen.

Die beschriebenen Probleme könnte der geübte Nerd umgehen, einige Möglichkeiten wurden im Text bereits angedeutet. Aber wirklich "sicher" ist eine solche Bastellösung auch nicht, ein ungutes Gefühl bleibt.