ubuntuusers.de

Tox

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./tox_logo.png

./qtox.png
qTox

Tox 🇬🇧 ist eine Peer-to-Peer-Messaging-Software, die sich momentan noch in der Entwicklung befindet. Die Arbeit an diesem Projekt begann im Jahr 2013 als Reaktion auf die globale Massenüberwachung durch Geheimdienste mit dem Ziel, eine freie und quelloffene Skype-Alternative zu schaffen.

Im Gegensatz zu anderen Messaging-Diensten bietet Tox standardmäßig eine Ende-zu-Ende-Verschlüsselung, die auch nicht abgeschaltet werden kann. Tox ist so konstruiert, eine möglichst sichere und dennoch einfach zu nutzende Kommunikationsinfrastruktur zu bieten.

Wenn die Entwicklung abgeschlossen ist, soll Tox u. a. folgende Funktionen bieten:

Achtung!

Tox und Clientprogramme befinden sich in der Entwicklung. Aus diesem Grund muss mit Programmfehlern und Sicherheitslücken gerechnet werden.

Architektur

Core

Streng genommen ist die Tox-Software, auch libtoxcore genannt, nur eine Bibliothek, die ihre Funktionen (Nachrichtenversand, Verschlüsselung, etc.) sogenannten Clients zur Verfügung stellt. Somit könnte Tox theoretisch beispielsweise auch mit dem Instant-Messaging-Programm Pidgin genutzt werden.

Da die Entwicklung der Library stagnierte, wurde der ursprüngliche Kern irungentoo/toxcore 🇬🇧 im Jahr 2016 „geforkt“. Die aktuelle Entwicklung kann jetzt auf TokTok/c-toxcore 🇬🇧 weiter verfolgt werden.

Clients

Allerdings gibt es speziell für Tox entwickelte grafische Oberflächen, die perfekt auf die Funktionsweise von Tox ausgerichtet sind und genutzt werden sollten. Sie unterscheiden sich hauptsächlich hinsichtlich der unterstützten Tox-Features, des Designs und für welche Betriebssysteme sie geeignet sind.

Verbreitete und aktiv in der Entwicklung befindende Tox-Clients
Name Betriebssystem Programmiersprache Beschreibung
qTox 🇬🇧 Windows, OS X, Linux, BSD C++ Aktuell der am weitesten entwickelte Tox-Client, der auch die meisten Features unterstützt.
µTox 🇬🇧 Windows, OS X, Linux, BSD C Leichtgewichtiger als qTox, aber mit weniger Features.
Toxic 🇬🇧 OS X, Linux, BSD C Toxic ist ein spezieller Client für die Kommandozeile.
Antidote 🇬🇧 Apple iOS 8.0+ Swift Für das mobile Betriebssystem der Apple-Geräte.
Antox 🇬🇧 Android 4+ Scala Client für das Smartphone-Betriebssystem Android.

Im Tox-Wiki findet man eine genaue Auflistung 🇬🇧, welche Features von welchem Client momentan unterstützt werden.

Installation

./qtox_icon.png Da es viele unterschiedliche Tox-Clients und Installationsmöglichkeiten gibt, beschränken sich die Hinweise zur Installation auf den am weitesten verbreiteten Client qTox 🇬🇧.

Aus den Paketquellen

Ab Ubuntu 19.04 kann qTox einfach aus den Paketquellen installiert werden[1]:

  • qTox (universe, ab 19.04)

Paketliste zum Kopieren:

sudo apt-get install qTox 

Oder mit apturl installieren, Link: apt://qTox

qTox selbst kompilieren

Hinweis!

Fremdsoftware kann das System gefährden.

Für Ubuntu 18.04 muss man qTox selbst kompilieren[3]. Dafür gibt es eine umfangreiche Anleitung 🇬🇧 der Entwickler auf GitHub.

Um qTox kompilieren zu können, werden einige zusätzliche Pakete benötigt. Wenn man dieser Anleitung folgt, werden alle benötigten Pakete automatisch installiert.

  • build-essential

  • cmake

  • libavcodec-dev

  • libavdevice-dev

  • libavfilter-dev

  • libavutil-dev

  • libexif-dev

  • libgdk-pixbuf2.0-dev

  • libglib2.0-dev

  • libgtk2.0-dev

  • libopenal-dev

  • libopus-dev

  • libqrencode-dev

  • libqt5opengl5-dev

  • libqt5svg5-dev

  • libsodium-dev

  • libsqlcipher-dev

  • libswresample-dev

  • libswscale-dev

  • libvpx-dev

  • libxss-dev

  • qrencode

  • qt5-default

  • qttools5-dev-tools

  • qttools5-dev

Paketliste zum Kopieren:

sudo apt-get install  build-essential     cmake     libavcodec-dev     libavdevice-dev     libavfilter-dev     libavutil-dev     libexif-dev     libgdk-pixbuf2.0-dev     libglib2.0-dev     libgtk2.0-dev     libopenal-dev     libopus-dev     libqrencode-dev     libqt5opengl5-dev     libqt5svg5-dev     libsodium-dev     libsqlcipher-dev     libswresample-dev     libswscale-dev     libvpx-dev     libxss-dev     qrencode     qt5-default     qttools5-dev-tools     qttools5-dev 

Oder mit apturl installieren, Link: build-essential, cmake, libavcodec-dev, libavdevice-dev, libavfilter-dev, libavutil-dev, libexif-dev, libgdk-pixbuf2.0-dev, libglib2.0-dev, libgtk2.0-dev, libopenal-dev, libopus-dev, libqrencode-dev, libqt5opengl5-dev, libqt5svg5-dev, libsodium-dev, libsqlcipher-dev, libswresample-dev, libswscale-dev, libvpx-dev, libxss-dev, qrencode, qt5-default, qttools5-dev-tools, qttools5-dev

Zuerst öffnet[2] man ein Terminal seiner Wahl. Jetzt klont[4] man mit Git die aktuelle qTox-Version von GitHub in das Homeverzeichnis und wechselt anschließend in den neu erstellten Ordner qTox.

git clone https://github.com/qTox/qTox.git qTox
cd /home/$USER/qTox

Anschließend führt man erst das Skript simple_make.sh und dann ./bootstrap.sh aus. Da hierbei die benötigten Abhängigkeiten installiert werden, benötigen beide Skripte Root-Rechte.

./simple_make.sh
./bootstrap.sh

Zum Abschluss kompiliert man qTox mit folgenden Befehlen:

cmake .
make -j$(nproc) 

Jetzt kann man qTox mit

./qtox

starten oder einen Starter auf dem Desktop anlegen.

qTox aus der Fremdquelle installieren

Die Fremdquelle[5] bietet für Ubuntu nur Pakte bis einschließlich Ubuntu 17.10.

Um aus der Fremdquelle zu installieren, muss man unabhängig von der Ubuntu-Version folgenden Befehl ausführen:

echo "deb http://download.opensuse.org/repositories/home:/qTox/xUbuntu_$(lsb_release -rs)/ /" | sudo tee /etc/apt/sources.list.d/qtox.list 

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Anmerkung: Die Fremdquelle bietet Pakte für 16.04 und 17.10. Für 14.04 sind zwar ebenfalls Dateien vorhanden, eine Installation funktioniert jedoch nicht, siehe Diskussion.

Um die Fremdquelle zu authentifizieren, muss man den Signierungsschlüssel mit Hilfe des folgenden Befehls herunterladen und in der Paketverwaltung hinzufügen:

wget -qO - http://download.opensuse.org/repositories/home:/qTox/xUbuntu_$(lsb_release -rs)/Release.key | sudo apt-key add - 

Nach dem Aktualisieren der Paketquellen lässt sich das folgende Paket über die Paketverwaltung installieren:

  • qtox (Fremdquelle)

Paketliste zum Kopieren:

sudo apt-get install qtox 

Oder mit apturl installieren, Link: apt://qtox

Wenn man qTox selbst kompilieren oder andere Clients verwenden möchte, findet man weitere Informationen zur Installation auf den jeweiligen GitHub-Seiten oder auf der offiziellen Webseite 🇬🇧.

Technische Details

Da Tox ein Peer-to-Peer-Messaging-Programm ist, werden direkte Verbindungen mit den Gesprächspartnern aufgebaut. Durch diese Konzeption ist man unabhängig von fremden Anbietern und Metadaten können nicht so leicht gesammelt werden, da keine zentralen Server eingesetzt werden. Portweiterleitungen sind in der Regel nicht nötig, da das Hole Punching-Verfahren eingesetzt wird.

Verschlüsselung

Die Tox-Verschlüsselung bietet, wie auch OTR, folgende Eigenschaften:

  • Verschlüsselung (Encryption) - niemand sonst kann die Mitteilungen mitlesen

  • Beglaubigung (Authentication) - man kann sich sicher sein, dass der Empfänger derjenige ist, für den man ihn hält

  • Abstreitbarkeit (Deniability) - verschlüsselte Nachrichten enthalten keine digitale Unterschrift, die Rückschlüsse auf die Identität ermöglichen. Jeder kann Mitteilungen im Nachhinein so manipulieren, dass sie so aussehen, als würden sie von jemand anderem stammen. Dennoch kann man während eines Gespräches sicher sein, dass die Mitteilungen beglaubigt und unverändert sind.

  • Folgenlosigkeit (Perfect Forward Secrecy) - wenn man die Kontrolle über einen privaten Schlüssel verliert, können keine bisher getätigte Gespräche kompromittiert werden

Laut Angaben im Tox-Wiki werden hierfür Curve25519 (Schlüsselaustausch), Salsa20 (Verschlüsselung) und Poly1305-AES (MAC) verwendet.

Anonymität

Das Tox-Protokoll bietet standardmäßig keine Verschleierung der IP-Adressen, demzufolge ist keine Anonymität gewährleistet. Allerdings kann auf Software wie z. B. Tor zurückgegriffen werden, um anonym kommunizieren zu können.

./qtox-tor.png
Anonym kommunizieren mit qTox via Tor

Am Beispiel von qTox ist dies folgendermaßen zu erreichen:

  1. Tor installieren und starten

  2. Die qTox-Einstellungen öffnen

    1. "Allgemeines → Verbindungseinstellungen"

    2. Sicherstellen, dass UDP deaktiviert ist

    3. Sicherstellen, dass IPv6 deaktiviert ist

    4. Als Proxy-Typ "SOCKS5" auswählen

    5. Als IP-Adresse 127.0.0.1 und Port 9050 verwenden

  3. Auf "Erneut verbinden" klicken

Hinweis:

Aufgrund der Funktionsweise von Tor kann es sein, dass es bei Audio-/Videoanrufen sowie beim Versand von großen Dateien zu extrem großen Verzögerungen kommt. Benutzt man einen anderen Client, findet man im Tox-Wiki 🇬🇧 Anleitungen zur Verwendung von Tor.

Tox-IDs

Wenn man Tox verwendet, gibt es keinen Benutzernamen, wie man es von anderen Programmen kennt. Als Ersatz gibt es die Tox-ID. Sie wird automatisch beim ersten Programmstart generiert und besteht aus insgesamt 76 hexadezimalen Zeichen.

./tox-id.png
Bestandteile einer Tox-ID

Möchte man also mit jemandem via Tox kommunizieren, muss man dessen Tox-ID kennen und eine Freundschaftsanfrage an diese senden. Um mögliches Spam-Aufkommen zu vermeiden, beinhaltet die Tox-ID einen NoSpam-Wert, der auf Wunsch verändert werden kann. Dadurch sind Freundschaftsanfragen an die dann alte Tox-ID nicht mehr möglich.

Fragen und Antworten

  • Wann wird Tox fertig sein?
    Es gibt keinen Zeitplan, wann Tox als Stable-Version erscheinen wird.

  • Kann man Tox bereits verwenden, wenn man auf sichere Kommunikation angewiesen ist?
    Tox ist teilweise zwar schon relativ gut benutzbar, die Software befindet sich allerdings noch in der Entwicklung. Demzufolge gibt es noch genügend Fehler, die korrigiert werden müssen. Auch kritische Sicherheitslücken können nicht ausgeschlossen werden. Aus diesem Grund sollte man auf bewährte alternative Kommunikationsprogramme zurückgreifen, wenn man auf Sicherheit und Datenschutz angewiesen ist.

  • Kann man Tox auf verschiedenen Geräten gleichzeitig verwenden?
    Momentan noch nicht. Es ist allerdings geplant, diese Funktion zu implementieren. Man kann aber bereits das eigene Tox-Profil auf andere Geräte exportieren und auch dort benutzen. Wie dies funktioniert, ist im Tox-Wiki 🇬🇧 beschrieben.

  • Was passiert, wenn man einen Kontakt aus seiner Liste löscht?
    Derjenige Benutzer wird davon in der Regel nichts mitbekommen. Es sieht für ihn so aus, als wenn man Tox schließt und offline geht. Um wieder kommunizieren zu können, muss der Kontakt allerdings wieder hinzugefügt werden.

Diese Revision wurde am 26. März 2020 21:38 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Kommunikation, Netzwerk, P2P, Sicherheit