Tox — новый протокол (разработка активно ведется с лета 2013 года) для обмена текстовыми сообщениями, голосовой и видеосвязи, созданный как альтернатива Skype и другим VoIP-сервисам. К слову, Skype с 2011 года находится под присмотром спецслужб разных стран. Как и Skype, Tox предлагает полный набор привычных функций: голосовую и видеосвязь, конференции с несколькими участниками, сетевые статусы, эмотиконы, обмен текстовыми сообщениями и передачу файлов. И никакой рекламы.
Немного истории
В наше неспокойное время, когда информация порой решает слишком многое, по-настоящему безопасное общение в Сети имеет очень большое значение. Несмотря на сравнительную молодость проекта, он стремительно развивается. К слову, пока писалась эта статья, ядро Tox успело обновиться четыре раза за неделю. Связь между пользователями организована с помощью надстройки над протоколом UDP. Каждому пользователю присваивается специальный публичный ключ, который также используется и для шифрования. Для установления коммуникаций требуется соединение к пиру (каждый клиент сети является пиром), который может быть определен вручную или найден автоматически. Доступна функция поиска пиров в локальной сети. Tox — это не просто мессенджер, это целый протокол обмена информацией, суть которого в работе пиринговой сети, похожей на BitTorrent Sync.
INFO
Основная проблема ВСЕХ IM — это контроль за ними со стороны ИТ-компаний.
Главное его достоинство — полная децентрализация и шифрование всего трафика. А это, в свою очередь, залог полной анонимности, столь востребованной в наше время. Нет единого центра идентификации пользователя. ID юзера создается и хранится локально. В Linux это папка ~/.config/tox
. Код Tox написан на языке си и распространяется под лицензией GPLv3. Большая часть создателей ни разу не видели друг друга вживую и обитают на 4chan. Самые важные преимущества Tox — это открытый исходный код, отсутствие выделенных серверов и, самое главное, никакого контроля со стороны какой-либо софтверной компании.
Для каждой из операционных систем отдельно разрабатывается свое клиентское приложение. При этом общая идея проекта остается неизменной. Разработчики пишут сразу несколько версий клиентов с разными наборами функций, но в качестве официальных предлагаются самые стабильные и доведенные до ума версии. Tox разрабатывается с помощью сервиса GitHub, откуда можно скачать исходники самой свежей версии. Соединение защищено с использованием прокси-серверов SOCKS. А это, в свою очередь, позволяет перенаправлять весь трафик через Tor. Функции шифрования реализуются с помощью библиотеки NaCl (читается как salt, «соль»), разработанной под руководством Дэниела Бернштайна (Daniel J. Bernstein) в университете штата Иллинойс в Чикаго.
Tox — не единственный сервис защищенной связи. Альтернативы разрабатываются и другими адептами СПО. К примеру, Briar, созданный командой разработчиков под руководством Майкла Роджерса (Michael Rogers) из Делфтского университета, или проект Invisible.im, основанный аналитиком Патриком Греем (Patrick Gray) и автором фреймворка Metasploit. Оба клиента являются защищенными аналогами WhatsApp, Viber и прочих мессенджеров. Есть также и коммерческие решения для шифрования обычных телефонных разговоров. Наиболее востребованными стали приложения Signal для iPhone и Silent Circle для Android. Но Tox может стать решением, которое полностью заменит приватные мессенджеры и программные криптофоны. «Сейчас Tox — это просто защищенный и безопасный туннель между узлами сети, — говорит один из участников проекта Дэвид Лоул (David Lohle) изданию Wired. — Что именно вы будете передавать по нему, ограничивается лишь вашим воображением».
Xakep #205. Взлом Single Sign-On
В обзоре будет рассмотрено несколько распространенных клиентов Tox для Linux. Сразу оговорюсь — клиенты Tox для Linux пока сыроваты, и требовательным пользователям понравится не все. Тестирование всех клиентов Tox проводилось на Ubuntu 15.10 с рабочим столом Mate.
Раскол в сообществе Tox
В начале июля 2015 года разработчики Tox заявили о разрыве отношений с Tox Foundation, созданной в свое время в качестве компании — представителя проекта. Дело в том, что некто Шон Куреши (также известный под никами Stqism, AlexStraunoff и NikolaiToryzin), бывший главой и единственным членом совета директоров Tox Foundation, «занял» часть денег фонда на личные цели. Неизвестно, сколько именно взял Куреши. По словам разработчиков, сумма составила несколько тысяч долларов. Большая часть денег были призовые, полученные Tox после участия в Google Summer of Code 2014, также какая-то часть — пожертвования от частных лиц.
После случившегося сайт проекта переехал на новый домен tox.chat. Дело в том, что Куреши не только предоставлял хостинг, но и владел старыми доменами. Разработчики решили продолжить работу над проектом, несмотря на случившееся. Код проекта не был скомпрометирован. Пользователей попросили оперативно сменить репозитории.
14 сентября 2015 года Куреши заявил, что не тратил деньги проекта на личные нужды, а пустил их на покрытие растущих издержек по обслуживанию инфраструктуры проекта. Также Куреши обещал представить доказательство своей невиновности в виде чеков и квитанций по оплате услуг хостинга, но до сих пор этого не сделал.
uTox
Первый в обзоре (но не первый в рейтинге) — uTox, официальный клиент Tox, рекомендованный разработчиками. На момент написания этой статьи пользователям Linux доступна альфа-версия 0.5.0. К сожалению, в репозиториях Ubuntu бинарного пакета uTox не нашлось: проект еще недостаточно стабилен. Установка uTox несложна для опытного пользователя. Процесс установки идентичен в Ubuntu и в Debian.
Все сводится к добавлению в файл /etc/apt/sources.list
репозитория Tox, ключа к нему и установке uTox через менеджер пакетов APT. Единственное, что нужно сделать, — это заменить $CODENAME
на release
. Это справедливо и для Ubuntu (начиная с 14.04), и для Debian:
$ echo "deb https://pkg.tox.chat/debian nightly $CODENAME" | sudo tee /etc/apt/sources.list.d/tox.list
$ wget -qO - https://pkg.tox.chat/debian/pkg.gpg.key | sudo apt-key add -
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
В виде бинарного пакета uTox доступен пользователям Gentoo и Arch Linux. При желании и умении можно собрать uTox из исходников. Вся инфа на английском тут. После установки uTox нужно настроить. Самое главное здесь — задать путь к своему профилю Tox, который хранится локально. Отдельного внимания заслуживает TOX ID. Это 76-значное шестнадцатеричное число. Случайно сгенерированный набор байтов, который уникален для каждого пользователя. Выглядит TOX ID, прямо скажем, устрашающе. Вряд ли кто-то в здравом уме сможет запомнить такое:
42E9CA1A838AB6CA8E825A7C48B90BAFE1E22B9FA467A7AD4BA2821F1344803BD71BCB00A535
Однако есть способ создать более удобный ID. Получить его можно на сайте uTox. Просто выбери себе подходящий ник и вставь из приложения свой TOX ID, и ты получишь удобный и красивый идентификатор вида nickname@utox.org.
При первом запуске uTox попросит тебя завести новую учетную запись или же ввести данные существующей. Интерфейс uTox напоминает Skype, только без рекламы. Пользоваться приложением просто и удобно. Настройки не изобилуют разнообразием, но логичны и понятны любому мало-мальски опытному пользователю. Несмотря на статус альфа-версии, uTox работает стабильно. За все время использования (больше недели) он падал лишь три раза. Обновления выходят чуть ли не каждый день.
Качество звука на уровне SIP. Чем-то даже лучше, особенно на узком интернет-канале. Но до уровня Skype не дотягивает. Не стоит забывать, что в отличие от Skype у Tox нет инфраструктуры серверов. Видеосвязь тоже работает стабильно, без разрывов и заиканий. Качество зависит от веб-камеры и скорости соединения. Передача небольших файлов (3–50 Мбайт) проходит без проблем. А вот попытка отправить видео размером 150 Мбайт закончилась неудачей. При последующих попытках uTox просто рушился. Но это в первую очередь мессенджер, а не средство пересылки больших файлов. Главное ощущение, которое не покидало меня за все время тестирования uTox, — это чувство недоделанности. Да, проект на стадии альфа. И это видно сразу. В целом, uTox производит впечатление практически готового решения для анонимного общения в Сети. И может практически полностью заменить Skype.
Рейтинг
- удобство: 7 баллов;
- функциональность: 10 баллов;
- простота настройки: 6 баллов;
- стабильность: 5 баллов.
Qtox
Следующий «официальный» клиент Tox — это qTox. Приложение написано на С++ с использованием фреймворка Qt 5. Последняя на данный момент версия — 1.2. Установка проходит так же, как и установка uTox. То есть, единожды добавив репозиторий uTox, ты сможешь установить из него и qTox. Размер сообщений в qTox ограничен 1372 байтами. Есть аудио- и видеосвязь, фильтр шума и подавление эха (полезно, если пользоваться встроенным микрофоном и колонками). Поддерживаются эмотиконы и прокси. Все как в Skype. Главное достоинство qTox — это высокая скорость работы. Пожалуй, это самый быстрый клиент Tox для Linux. Интерфейс во многом повторяет uTox. Разве что выглядит приложение более доработанным и удобным для пользователя. Вылетает программа гораздо реже: за все время qTox рухнул всего раз. Обновления появляются каждый день, даже в выходные. Звук и видео передаются, на мой взгляд, хуже, чем в uTox, но стабильно. Хотелось бы, чтобы в новых версиях приложение научилось менять шрифт в окне набора текста. Не помешает и возможность смены статуса через контекстное меню значка программы в системном лотке.
Важно! Все клиенты Tox используют общую папку профиля, где и хранят свои настройки. Но, как ни странно, контакт, добавленный в список в uTox, никак не отображается в qTox. И его приходится добавлять в список контактов заново. Возможно, это связано с тем, что у приложений разные файлы настроек.
qTox — готовое решение для протокола Tox. По всей видимости, его предпочтут пользователи KDE.
Рейтинг
- удобство: 9 баллов;
- функциональность: 10 баллов;
- простота настройки: 7 баллов;
- cтабильность: 9 баллов.
Toxic
Этот клиент Tox создан для настоящих линуксоидов. Он — консольный. Toxic написан на си с использованием псевдографической библиотеки ncurses и доступен только для Linux и FreeBSD. Кстати, вышел он одним из первых, еще во второй половине 2013 года, и является одним из самых старых клиентов Tox. Устанавливается из репозитория Tox, так же как и в случае с qTox и uTox. Любители сложностей могут попробовать собрать Toxic из исходников. Для BSD-систем имеются скомпилированные порты. Пользоваться Toxic довольно просто (насколько это возможно при работе в терминале). Запуск — команда toxic
, получить помощь — команда toxic –help
. Дополнительные настройки программы хранятся в конфигурационном файле ./config/tox/toxic.conf
. Пример файла можно найти на сайте Toxic.
Приятно удивила функция голосовых и даже видеоуведомлений на рабочем столе. Из стандартных возможностей можно отметить симуляцию статуса «офлайн», поддержку SOCKS5 и HTTP-прокси, блокировку неугодных контактов, защиту профиля паролем, шифрование профилей пользователей. И конечно, аудио- и видеосвязь. По удобству Toxic проигрывает uTox и qTox, но не стоит забывать, что это консольный клиент.
Рейтинг
- удобство: 4 балла;
- функциональность: 6 баллов;
- простота настройки: 4 балла;
- cтабильность: 9 баллов.
XwinTox
XwinTox — это экспериментальный клиент Tox, разработанный не столько для Linux, сколько для других BSD-систем, таких как Solaris или FreeBSD. Но при желании его можно собрать и в Linux из исходников. Код написан на С и С++, интерфейс реализован с помощью графического тулкита FLTK. Разработчики утверждают, что благодаря модульной конструкции XwinTox является самым быстрым и безопасным клиентом Tox. По их словам, из-за разделения на модули приложение использует меньше ресурсов компьютера и работает значительно быстрее остальных клиентов Tox. На деле в Linux XwinTox работает примерно так же, как и uTox. Хотя памяти потребляет чуть меньше. Иногда падает, особенно при попытке отправить файл от 150 Мбайт. Выглядит приложение в Linux, прямо скажем, некрасиво. Видимо, это издержки использования FLTK.
По сути, это тот же uTox, только написанный с использованием не GTK+ или Qt, а FLTK. Вообще, интерфейс практически всех десктопных клиентов Tox (неважно, Linux это, OS X или Windows) повторяет интерфейс uTox. И это хорошо. Поддерживаются обмен текстовыми сообщениями, аудио- и видеозвонки. Качество связи не вызывает претензий. Но это заслуга скорее ядра Tox, а не XwinTox. XwinTox лучше подойдет тем, кто использует Solaris и BSD-системы.
Рейтинг
- удобство: 9 баллов;
- функциональность: 8 баллов;
- простота настройки: 7 баллов;
- стабильность: 3 балла.
WARNING
Ни в коем случае не удаляй папку с настройками Tox
~/.config/tox
! Это может привести к потере приватного ключа Tox!Выводы
Если бы Skype не купила Microsoft, то, возможно, не появился бы протокол Tox. Самое ценное в Tox — это его по-настоящему полная анонимность. Особенность, которой не может похвастаться ни один из ныне существующих мессенджеров. Клиенты Tox в данный момент активно разрабатываются, постоянно обновляются, появляются новые. В этой статье рассмотрены самые популярные и распространенные приложения для работы с Tox в Linux. Разумеется, они не лишены недостатков, как и любые молодые проекты. Но основные функции, реализованные в протоколе Tox, в них работают исправно и без нареканий. Установка официальных клиентов несложна и сводится к вводу в консоли нескольких простых команд. Будем надеяться, что, когда Tox достигнет соответствующей стабильности, его и несколько клиентов включат в репозитории основных дистрибутивов Linux. Лучший пока, безусловно, qTox. Он быстр, падает меньше всех и выглядит лучше остальных.
Самое главное, неоспоримое преимущество Tox — это отсутствие какого-либо контроля со стороны софтверных компаний. Никто не имеет монополии на Tox. И это очень хорошо. Это полностью сглаживает все острые углы и нивелирует любые бывшие, имеющиеся и будущие недостатки Tox. Tox — это действительно безопасно и анонимно. То, чего все давно ждали.
Мобильные клиенты и клиент для Windows
За рамками этого обзора остались мобильные клиенты Tox и приложения для Windows. Приложения для двух основных мобильных платформ пока недостаточно стабильны и поддерживают не все функции Tox. Пользоваться ими можно в основном для приема и отправки текстовых сообщений и файлов.
Antox — клиент Tox для Android. Проект активно разрабатывается и находится в стадии бета-тестирования. В данный момент пользователю доступен только обмен текстовыми сообщениями и файлами, а также групповые чаты. Функции аудио- и видеосвязи находятся на стадии реализации. Antox можно установить из репозитория Google Play Beta, созданного Google специально для тестирования приложений, либо из стороннего репозитория полностью свободных приложений F-Droid. Приложение пока сырое, и говорить о полноценной замене десктопной версии рано.
Не забыты и пользователи iOS. Antidote — это клиент Tox для iOS. Поддерживает обмен текстовыми сообщениями и файлами, голосовое общение. Видеосвязь пока не реализована. Есть функция шумоподавления и фильтрации эха. Разработка ведется активно, обновления выходят очень часто, иногда несколько раз в сутки. Справедливо ожидать в ближайшем будущем все функции протокола Tox в этом приложении.
Особняком стоит Isotoxin — клиент Tox для Windows, написанный с нуля нашим соотечественником под ником Rotkaermota. Программа написана на С++. Isotoxin производит очень хорошее впечатление, и это неспроста. В нем реализована полная поддержка всех текущих возможностей протокола Tox, включая видеозвонки. Из других фич можно отметить собственный протокол для общения внутри локальной сети (создавался в основном для отладки системы плагинов, но вполне работоспособен: имеется все то же самое, что в Tox, кроме видео), поддержку одновременной работы нескольких протоколов (можно, например, иметь сразу два подключения к Tox с разных ID), продвинутые возможности, такие как метаконтакты, аудио- и видеозвонки, расшаривание десктопа, групповые чаты, поиск по сообщениям, передача файлов, поддержка «скинов» в интерфейсе. Приложение достаточно стабильно для того, чтобы рекомендовать его для повседневного использования.