[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme_kompilieren: Programme selbst kompilieren] [:Git: Programme mit Git klonen] [:Paketquellen_freischalten:] }}} [[Inhaltsverzeichnis()]] [[Bild(./tox_logo.png, 48, align=left)]] [[Vorlage(Bildunterschrift, ./qtox.png, 200 "qTox" right,)]] [https://tox.chat/ Tox] {en} ist eine [wikipedia: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 [wikipedia: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: * Text-Nachrichten * Audio- & Video-Chatting * Dateiversand * Gruppenchats * Offline-Messaging * Multi-Device-Support {{{#!vorlage Warnung 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 [github:irungentoo/toxcore:irungentoo/toxcore] {en} im Jahr 2016 „geforkt“. Die aktuelle Entwicklung kann jetzt auf [github:toktok/c-toxcore:TokTok/c-toxcore] {en} 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. {{{#!vorlage Tabelle Verbreitete und aktiv in der Entwicklung befindende Tox-Clients +++ Name Betriebssystem Programmiersprache Beschreibung +++ [github:qTox/qTox:qTox] {en} Windows, OS X, Linux, BSD C++ Aktuell der am weitesten entwickelte Tox-Client, der auch die meisten Features unterstützt. +++ [github:uTox/uTox:µTox] {en} Windows, OS X, Linux, BSD C Leichtgewichtiger als qTox, aber mit weniger Features. +++ [github:JFreegman/toxic:Toxic] {en} OS X, Linux, BSD C Toxic ist ein spezieller Client für die Kommandozeile. +++ [github:Antidote-for-Tox/Antidote:Antidote] {en} Apple iOS 8.0+ Swift Für das mobile Betriebssystem der Apple-Geräte. +++ [github:Antox/Antox:Antox] {en} Android 4+ Scala Client für das Smartphone-Betriebssystem Android. }}} Im Tox-Wiki findet man eine [https://wiki.tox.chat/clients#features genaue Auflistung] {en}, welche Features von welchem Client momentan unterstützt werden. = Installation = [[Bild(./qtox_icon.png, 100, align=right)]] Da es viele unterschiedliche Tox-Clients und Installationsmöglichkeiten gibt, beschränken sich die Hinweise zur Installation auf den am weitesten verbreiteten Client [https://qtox.github.io/ qTox] {en}. == Aus den Paketquellen == Ab [:19.04:Ubuntu 19.04] kann qTox einfach aus den Paketquellen installiert werden[1]: {{{#!vorlage Paketinstallation qtox, universe, ab [:19.04:] }}} == qTox selbst kompilieren == [[Vorlage(Fremd, Software)]] Man kann qTox selbst [:kompilieren:][3]. Dafür lese man als Anleitung der Entwickler die Datei INSTALL.md aus dem Tarball auf [github:qTox/qTox/blob/master:GitHub] {en} 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. {{{#!vorlage Paketinstallation 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:qTox/qTox/: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 [:.desktop-Dateien/#Programmstarter-erstellen:Starter auf dem Desktop] anlegen. ##(Das Anlegen des Desktop-Starters funktioniert bei mir nicht, kann das bitte mal jemand testen?). [Beforge, 11.07.2018] = Technische Details = Da Tox ein [wikipedia: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. [:Portweiterleitung:Portweiterleitungen] sind in der Regel nicht nötig, da das [wikipedia: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 [wikipedia:Curve25519:] (Schlüsselaustausch), [wikipedia:Salsa20:] (Verschlüsselung) und [wikipedia_en: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. [[Vorlage(Bildunterschrift, ./qtox-tor.png, 600 "Anonym kommunizieren mit qTox via Tor", ,)]] Am Beispiel von qTox ist dies folgendermaßen zu erreichen: 1. [:Tor/Installation:Tor installieren] und starten 1. Die qTox-Einstellungen öffnen 1. ''"Allgemeines -> Verbindungseinstellungen"'' 1. Sicherstellen, dass UDP deaktiviert ist 1. Sicherstellen, dass IPv6 deaktiviert ist 1. Als Proxy-Typ ''"SOCKS5"'' auswählen 1. Als IP-Adresse `127.0.0.1` und Port `9050` verwenden 1. Auf ''"Erneut verbinden"'' klicken {{{#!vorlage 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 [https://wiki.tox.chat/users/tox_over_tor_tot Tox-Wiki] {en} 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. [[Vorlage(Bildunterschrift,./tox-id.png, 600 "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 [:Sicherheit#Anonymitaet: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 [https://wiki.tox.chat/users/import_export Tox-Wiki] {en} 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. = Links = * [https://tox.chat/ Projektseite] {en} * [https://blog.tox.chat Blog] {en} * [https://wiki.tox.chat Wiki] {en} * [https://github.com/qTox/qTox/blob/master/INSTALL.md Installation von qTox] {en} Anleitung für die manuelle Installation von qTox (via [:Git:]) * [:Bitmessage:] - alternatives Nachrichtensystem #tag: Netzwerk, Internet, Sicherheit, Kommunikation, P2P