Tox

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

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Ein Terminal öffnen

  3. ⚓︎ Programme selbst kompilieren

  4. ⚓︎ Programme mit Git klonen

  5. ⚓︎ Paketquellen freischalten

Inhaltsverzeichnis
  1. Architektur
    1. Core
    2. Clients
  2. Installation
    1. Aus den Paketquellen
    2. qTox selbst kompilieren
  3. Technische Details
    1. Verschlüsselung
    2. Anonymität
    3. Tox-IDs
  4. Fragen und Antworten
  5. Links

./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!

Die Entwicklung und Pflege dieser Software wurde am 12.02.2023 eingestellt. Die letzte verfügbare (stabile?) Version ist v1.17-dev vom 06.03.2022.

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

Befehl zum Installieren der Pakete:

sudo apt-get install qtox 

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

qTox selbst kompilieren

Hinweis!

Fremdsoftware kann das System gefährden.

Man kann qTox selbst kompilieren[3]. Dafür lese man als Anleitung der Entwickler die Datei INSTALL.md aus dem Tarball 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.

Befehl zum Installieren der Pakete:

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.

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:

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