22 сентября 2013 в 22:36

Открытый интернет-мессенджер Tox

На фоне всеобщей истерии с АНБ всё большее число людей чувствует необходимость в защищенной связи. Разработчики Tox обещают все, сразу и «из коробки».
Предупреждаю сразу: проект только начал развиваться и пока обещает намного больше, чем готов дать.
image

В Рунете информации по Tox крайне мало (фактически единственное упоминание было на opennet.ru). Давайте познакомимся с проектом ближе.

Первое впечатление


Разработчики позиционируют Tox как альтернативу Skype.
Вот характеристика проекта с официального сайта:
"Tox создан для того, чтобы позволить вам оставаться на связи с близкими без нарушений приватности. Использование сервисов — лидеров рынка требует платы, тогда как Tox — свободно распространяемая и бесплатная программа. Это значит, вы можете делать с Tox все, что вам угодно".

На этой же странице заинтересованный пользователь в разделе «Что умеет программа?» может увидеть информацию об аудио- и видеозвонках и скриншот несуществующего пока интерфейса со свистелками (см. изображение ниже). На фоне нерабочей кнопки «Загрузить» и реального состояния проекта смотрится такая реклама неубедительно.
image

Отнесемся к излишней горячности с пониманием и выясним, что работает на данный момент.

Tox в работе


Шифрование

Для шифрования используется NaCl. Для шифрования создаются открытый и закрытый ключи длиной 32 байта каждый. Поиск собеседника производится по предоставленному им открытому ключу. Описание процесса шифрования при добавлении собеседника и обмене сообщениями доступно здесь.

Адресация пользователей

С целью адресации используется протокол DHT: при первом запуске клиента происходит его идентификация с DHT-сервером из заданного в настройках клиента списка.

Критика анонимности

Согласно мнению одного из пользователей, на данный момент концепция проекта подразумевает уязвимость для флуд- и спам-атак:
«Наблюдение за сетью позволяет определить, кто ты, с кем ты говоришь и кому ты отправляешь запрос на авторизацию. Спамеры или хакеры могут запускать ботов и отправлять случайным пользователям спам или запросы на авторизацию».

Протокол обмена сообщениями

Действие протокола поверх шифрования с помощью NaCl должно предотвратить возможность распознавания третьей стороной типа передаваемых данных.
Зашифрованное соединение происходит поверх сетевого протокола Lossless UDP: обещано отсутствие потерь данных. Аудио- и видеоданные будут передаваться по другому протоколу.

Установка и использование

Отдельно разрабатывается ProjectTox-Core и отдельно GUI для него. Проект кроссплатформенный (GUI в большинстве своем для одной-двух платформ).

На странице проекта в Github приведены ссылки на текстовые и видеомануалы по установке для различных платформ (отдельно еще необходимо собрать libsodium).

Список существующих GUI приведен здесь (GUI существуют под Linux, Windows, MacOS X и iOS).
В комплекте с ProjectTox-Core доступен CLI-интерфейс nTox (существует альтернативный CLI: Toxik.

Qt GUI

Единственным на данный момент GUI под Linux является Qt GUI. Для сборки необходим Qt версии 5.0 или выше.
Скачать собранный Qt GUI (x32) можно здесь.

Для работы ему необходимы библиотеки Qt (добавляем путь к библиотекам в переменную LD_LIBRARY_PATH и выполняем export $LD_LIBRARY_PATH).
Также ссылки на различные бинарники (в т.ч. и для Windows) доступны здесь.

Интерфейс клиента (смотрите изображение в начале статьи) достаточно скуп: задаем имя пользователя, нажатием кнопки генерируем для него открытый ключ и копируем его в буфер обмена, после чего ключ можно передавать товарищу и общаться. В настройках доступно редактирование списка DHT-серверов. Клиент поддерживает десяток встроенных смайликов и четыре статуса доступности.

Tox Protocol Plugin For Pidgin

Для пользователей мессенджера Pidgin доступен плагин (официальный сайт, GitHub).
Плагин согласно костыльной инструкции собрался, однако заставить Pidgin версии 2.7.3 его увидеть я не смог.
Можете скачать этот архив (x32), распаковать его в свой домашний каталог и попробовать со своим Pidgin.
Скриншоты интерфейса плагина можете посмотреть здесь.

Заключение


Моей главной целью было информировать русскоязычное сообщество о проекте Tox. Проект на данный момент крайне сырой и нерабочий (скажем прямо: на данный момент пользоваться в повседневном общении Tox нельзя), однако объявленные идеи кажутся интересными.
Обещаны аудио- и видеозвонки, текстовые сообщения, передача файлов — все это с шифрованием, без необходимости начальной настройки, с красивым GUI, открыто и свободно.
Если вам нравится концепция, то вы можете помочь разработчикам, к примеру, переводом документации или тестированием продукта.
Необходимость в открытой альтернативе Skype назрела давно.

Ссылки


IRC
Блог разработчика
TODO на ближайшее время
Планы на будущее
Планы касательно аудио- и видеофункционала
Reddit

P.S.


Данные опроса разработчиками потенциальных пользователей насчет Tox доступны здесь.
Можете в комментариях ответить на те же вопросы:

1. Что необходимо реализовать, чтобы вы перешли со Skype на Tox?
2. Чего вы ждете от проекта Tox?
3. Идентификатор вашего аккаунта будет представлять случайную строку из 32-х символов. Как вы к этому отнесетесь?
4. Что вы думаете о предложенном макете GUI?
5. Что бы вы хотели добавить или предложить?
Понравилась ли вам концепция проекта?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Проголосовало 1463 человека. Воздержалось 235 человек.

+24
45337
136
kedobear 12,0

Комментарии (44)

+1
nazarpc, #
А я уже слышал о нем, как-то в моих новостях во вконтактике пролетала новость об этой разработке.
Готов переключиться на него с глючного Skype (Linux), который к тому же тянет огромный вагон 32-битных библиотек, прямо сейчас если будет текст и передача файлов + желательно но не обязательно аудиосвязь. Но при этом нужен приятный GUI, плагин для Pidgin или Empathy устроит вполне.
Кто-то подскажет, есть ли у них прием пожертвований (круто было бы с голосами за фичи)? А то на сайте не нашел.
+2
AndrewShmig, #
Еще одна ссылочка полезная. По-правде я сам недавно рассматривал проект в качестве варианта помощи opensource (на iOS версия называется Toxicity), но кол-во вопросов, которые возникли к той самой безопасности сего мессенджера, крайне напрягли.

Предпочел бы, чтобы силы были вложены в что-то более допиленное вроде i2p, tor, bitmessage и тд.
0
kedobear, #
Добавил.
+1
AndrewShmig, #
Забыли и про Privacy and security issues упомянуть. Вопрос не менее важный.

Отрывок:
I think there are some serious design flaws in the current prototype.

At the moment, Tox is extremely vulnerable to flood and spam attacks. You can easily compile a list of all active Tox client IDs on the network by watching DHT ping requests and friend requests.

I haven't read much of the code or documentation, but it seems like too much is public, by design. Observers may not be able to read what you are saying, but watching the network can reveal:

who you are
who you are talking to
who you are sending a friend request
Privacy issues aside, spammers or hackers could run bots on the network and send random users unsolicited messages and/or friend requests. Blocking individual IP addresses is not a good solution, IMO. Without any sort of central authority, blocking malicious users is not an easy task.
0
kedobear, #
Добавил, спасибо.
–26
Ugputu, #
тогда как Tox — свободно распространяемая и бесплатная программа. Это значит, вы можете делать с Tox все, что вам угодно


следует читать как: «тогда как Tox — свободно распространяемая и бесплатная программа. Это значит, Tox может делать с Вашим компьютером все, что угодно»

P.S. всегда настораживали бесплатные приложения, которые обещают все радости жизни. За все надо платить.
0
kedobear, #
Поймите, когда весь код открыт и приложение массово используется, его сразу начинают шерстить десятки человек. С бэкдорами тут на самом деле достаточно сложно.
+2
AndrewShmig, #
Да бросьте, как специальные константы подбираются для уменьшения криптостойкости ключей, так и здесь могут быть не менее скрытые «ходы».
0
Ugputu, #
Вот что пишет википедия.
В 2010 году группе учёных из Швейцарии, Японии, Франции, Нидерландов, Германии и США удалось успешно вычислить данные, зашифрованные при помощи криптографического ключа стандарта RSA длиной 768 бит. Нахождение простых сомножителей осуществлялось общим методом решета числового поля. По словам исследователей, после их работы в качестве надежной системы шифрования можно рассматривать только RSA-ключи длиной 1024 бита и более. Причём от шифрования ключом длиной в 1024 бит стоит отказаться в ближайшие три-четыре года… С 31 декабря 2013 года браузеры Mozilla перестанут поддерживать сертификаты удостоверяющих центров с ключами RSA меньше 2048 бит.


А тут у нас значит 32 байта, т.е. 256 бит… Т.е. совсем не стойкое шифрование.

И я так понимаю, что есть какой-то основной сервак, через который передаются все сообщения… Так что я не могу быть на 100% уверен в отсутствии MITM.
+3
miolini, #
Это скорее всего алгоритмы на эллиптических кругах. У них стойкость на бит ключа выше.
0
lol2Fast4U, #
Да, NaCl использует Curve25519. nacl.cr.yp.to/valid.html

Вообще, очень хорошая библиотека.
–9
kedobear, #
И чем тебе так мой топик не понравился, что ты молча вдарил?
+2
Ugputu, #
Я не «вдарял». Исключительно оставил два коммента, которые в своей сути должны призвать не использовать сырую разработку, с низкой степенью защиты для сокрытия тайн личной переписки. Видимо минусующие не вполне осведомлены о том, что такое криптозащита. И какие ключи (длина ключей) являются криптостойкими. И так-же я призываю не использовать централизованные сервисы в качестве основного IM. Что в купе с «шифрованием», подрывает доверие к данному продукту.

P.S. Вот не соовсем понятно, за что минусуют. Могли бы озвучить свое авторитетное мнение.
–1
kedobear, #
Я свое озвучил. Ваш пост выглядит очень странно и, по сути, отвергает всю идею опенсорса.
+1
Ugputu, #
Я не отвергаю идею. Но если сделать криптование с соответствующей степенью надежности и позволить ставить свой серв (по аналогии с jabber), то тогда бы это выглядело действительно отлично. Но увы это не так.
–9
anreyyyy, #
Меня, как простого пользователя, вполне устраивает скайп, аська, мейл-агент, viber, соцсети.
+3
AndrewShmig, #
Так никто и не навязывает Вам что-то другое. Это просто будущие варианты альтернатив.
+21
Tranced, #
мейл-агент

В IT-сфере, на мой взгляд, это приравнивается к каминг-ауту.
+3
DenimTornado, #
Не всё то IT, что ХабраЮзер.
0
anreyyyy, #
У вас, судя по всему, богатая «нетрадиционная» фантазия )))
0
Tranced, #
А то!
+1
Boba_Fett, #
Для сборки необходим QtCreator версии 5.0 или выше.

Qt 5.0. Последний Creator версии 2.8, если не ошибаюсь.

По опросу: сам я Skype вынужден использовать для текстового общения с пользователями, которых не получилось/невозможно пересадить на другие средства текстовой связи, для остального хватает электронной почты/джаббера, голосом говорю по мобильнику и Mumble/TS. Соответственно, если Tox станет сравним со Скайпом по удобству для таких пользователей и по популярности, то буду использовать, а иначе в нём нет смысла. А если вспомнить судьбу похожей программы — Secure Shuttle Transport, то начнёт казаться, что Скайп Токсу не догнать.
+1
bvn13, #
От них ушел один из главных разработчиков. Думаете, Тох сможет выплыть?
Пруф.
0
vlad7rpk, #
Почему бы им не сделать проект на Kickstarter/indiegogo? Я думаю, нашлось бы множество желающих поддержать их начинания финансово.
–3
CRImier, #
Блин. жалко, разработка не на Питоне идёт. Да, нубское сожаление — но к разработке бы присоединился бы =)
0
Xazzzi, #
KenAshcorp в чате? Они с разработчиком знакомы или это чисто рекламный скриншот?
+2
amarao, #
Почему не xmpp?
+1
shifttstas, #
Потому, что оно децентрализовано и нет единого сервера. Давить на обладателя сервера проще намного
0
amarao, #
Проснулись. В xmpp нет централизованного сервера. Есть куча серверов. Как с email. Хочешь — на большой публичный, хочешь — на свой личный с тремя аккаунтами: себя, своего компьютера и своей собаки.
+2
shifttstas, #
В вашем вопросе содержится ответ, в xmpp есть сервера тут — нет
+1
amarao, #
Почему для связи клиент-клиент не используется s2s xmpp? Я не понимаю, почему надо городить ещё одну низкоуровневую инфраструктуру протоколов.
–1
shifttstas, #
Может потому, что xmpp был изначально сделан как клиент-серверный протокол?
+2
amarao, #
Он ещё и сервер-серверный протокол, а то, что описывается выше, это чистой воды s2s.
+1
bak, #
Сперва проект показался мне довольно интересным (сам давно планировал сделать свободную альтернативу скайп). Но я посмотрел на функциональность, пообщался с разработчиками и понял:
— пока что нет возможности авторизовываться по логину и паролю (сейчас надо таскать файл с ключом). И, судя по их ответам, такая возможность вряд ли будет реализована правильным способом (а именно — используя dht сеть). Вместо этого они разрабатывают концепцию авторизационных серверов, которые будут хранить файл с ключом пользователя. В этом случае, на мой взгляд, теряется весь профит от использования dht.
— процесс разработки не очень организован. Например, хотел я пару месяцев назад впилить им передачу файлов. Отправил комит с небольшим рефакторингом (предварительно получив в irc добро на него, в комите — поправил всё согласно код-стилю, разбил ядро на несколько частей — ибо втыкать передачу файлов и прочую новую функциональность в один .c файл — не прикольно). Комит висит до сих пор — не заацептили и даже не написали почему.
0
shifttstas, #
Авторизация по логину и паролю как я понимаю будет реализована с помощью размазывания данных на супер-ноды? т.е на ноды которые обладают свободные вычислительные мощности и свободный канал?
0
bak, #
Не знаю что они решили сейчас, но пару месяцев назад они планировали использовать отдельный сервера, даже не супер-ноды а вообще что-то внешнее.
0
J_Fobos, #
Отвечая на вопрос «Что необходимо реализовать, чтобы вы перешли со Skype на Tox?» хочу скачать, что большой переход пользователей будет, если организовать транспорт сервис, который позволял бы пользователям Тох общаться с пользователями скайпа (и наоборот). ИМХО многие не бросят скайп из за того что их знакомые сидят именно в скайпе.
+1
d1p, #
Хм, пока одни предлагают в будущем, другие уже используют — RetroShare.

Для тех, кто не знаком, расскажу в двух словах. Это такой защищенный мессенджер, который уже умеет общаться голосом, раздавать файлы через dht, вести некоторое подобие форумов/конференций только с заранее определенной группой лиц (есть возможность открыть для всех).

Функций очень много. Есть клиенты под linux|win|mac. Интерфейс, конечно, не очень простой, но зато защита и прочая, прочая.
0
pieceofsummer, #
Эмм… библиотека под GPLv3, и тут же клиент под iOS на официальной странице?
Что-то изменилось в юридическом плане относительно статической линковки, или они официально клали?
0
Volmontovich, #
Код открытый. Но с лицензиями у них действительно бардак, т.к. клиент под лицензией Apache 2.0.
0
Volmontovich, #
Поизучал их сайт, и пришел к выводу, что пока они доверия особого не заслуживают. На своей вики они заявляют, что используют библиотеку NaCl для шифрования. В описании библиотеки ничего не сказано про эллиптическую криптографию, только RSA. А значит Ugputu прав, ключ в 256 бит — это недопустимо мало. Вообще, есть ощущение, что у разработчиков достаточно поверхностные знания о криптографии, поэтому доверия разработка не вызывает. Еще несколько смущает, что публичный ключ отправителя отсылается вместе с каждым сообщением — после обмена ключами это представляется излишним. Не могу утверждать с полной уверенностью, но тут представляется возможность для MItM-атак. Похоже, с MItM они вообще никак не борются.

Что касается децентрализации, похоже они используют свои сервера только для бутстраппинга после первой установки. В принципе, компрометация этих узлов может, но это неизбежное зло.

1. Что необходимо реализовать, чтобы вы перешли со Skype на Tox?

Из функционала, естественно, голос. Желательно, для групповых разговоров тоже. Однако, это необходимо подкрепить внятной спецификацией протокола, включая его криптографические аспекты.
2. Чего вы ждете от проекта Tox?

Пока — не жду ничего, но если они достигнут своей цели, это будет здорово.
3. Идентификатор вашего аккаунта будет представлять случайную строку из 32-х символов. Как вы к этому отнесетесь?

Естественно, негативно. Тот факт, что я не смогу его запомнить, чтобы сообщить при личной встрече сильно огорчает. Как вариант — сделать нечто вроде DHT для символьных имен, пусть и с возможностью дублирования имен. Запомнить свой ник+несколько символов ключа гораздо легче, чем целый ключ.
4. Что вы думаете о предложенном макете GUI?

Не в восторге. Лично я бы предпочел максимально нативный внешний вид для своей платформы.
5. Что бы вы хотели добавить или предложить?

Для начала — написать качественную спецификацию протокола и описать детально используемую криптографию.

Надеюсь, мой фидбек будет полезен проекту.
0
pieceofsummer, #
В описании библиотеки сказано, что она основана на Curve25519 (и Ed25519), и больше 256 бит алгоритм просто не поддерживает.
0
Volmontovich, #
Вы правы. Curve25519 — это вариант алгоритма Диффи-Хеллмана для генерации общего секрета на основе эллиптических ключей. Тогда 256 бит действительно вполне достаточно.
0
tox, #
Ощутил нехилый диссонанc и икоту

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.