Децентрализованные мессенджеры Торчат и Торсион а.к.а. Рикошет В сети очень популярны дискуссии на тему анонимных и безопасных мессенджеров. Обсуждают всё - начиная от полного мейнстрима типа Telegram и заканчивая малоизвестыми разработками a ля Tox. Однако в подавляющем большинстве случаев диалоги о безопасности и анонимности ведут те, кому эти самые безопасность и анонимность абсолютно не нужны, а знания о предмете диалога ограничиваются просмотром пятиминутного ролика на PR канале в Тытрубе. Вполне закономерно, что диалоги эти наполнены бредом чуть менее чем полностью, ведь дилетанты играющие в экспертов и/или киберпреступников, не знакомы даже с базовыми принципами таких определений как анонимное и безопасное программное обеспечение. Однако практики. особенно те, кто на дарксайде прекрасно понимают все уязвимые элементы стандартных мессенджеров: 1. Большинство из них - проприетарны, весь код либо отдельные его элементы зашифрованы разработчиками и недоступны для аудита. Мотивируется это как правило нелепыми отмазками типа ноу-хау или же в целях безопасности клиетов. При этом как то замалчивается что есть сотни реально безопасных и анонимных продуктов с открытым кодом, которые не стали менее безопасными от этого. 2. Большинство из них - централизованы, то есть во время переписки пакеты с данными идут не на прямую от абонента к абоненту а через центральные узлы - серверы. Рассмотрим несколько примеров: XMPP - один из популярных и относительно безопасных протоколов обмена сообщениями в быту чаще называемый jabber. Каждый аккаунт регистрируется на определенном сервере и имеет формат: Ссылка доступна только зарегистрированным пользователям (произносится как вартек эт бидиэф.эмэс то есть значок @ (at или эт) обозначает что аккаунт вартек находится на сервере бидиэф.эмэс). Предположим что нам кто то написал с аккаунта Ссылка доступна только зарегистрированным пользователям. В данном случае наши пакеты будут идти по следующей схеме: wartech ------> bdf.ms ------> xmpp.jp --------> noob То есть между двумя абонентами два центральных узла (сервера). Что в этом плохого спросит читатель? Ну, для кухонного эксперта или мамкиного программиста может и ничего. А для тех кому анонимность и безопасность действительно нужны - минусов как минимум два: 1. Если один из серверов выйдет из строя - связаться с абонентом будет невозможно. 2. На каждом сервере в логах останутся тайминги сеанса и скрорее всего вся история переписки. Именно из за второго минуса так популярен плагин Off-The-Record Messaging он же OTR - при его использовании сообщения на обоих серверах будут хранится в зашифрованом виде, а не тупо в txt файлах. Ситуация немного улучшается если оба абонента на уме и используют один и тот же более менее проверенный сервер, например securejabber.me, который заявляет в прайваси полиси что не хранит историю сообщений, но с оговоркой что оффлайн сообщения таки хранятся до момента их доставки, равно как и хранятся списки контактов для каждого аккаунта (еще один из плюсов их сервиса возможность удаления аккаунта с сервера самим абонентом). Пакеты в этом примере будут передаваться вот так: wartech -----> securejabber.me -----> broshka 3. Большинство из них незащищенны от перехвата трафика - и это проблема не сколько шифрования, сколько публичности - то есть имея аккаунт на сервере xmpp.jp и размещая его на паблике ты какгбенамекаешь где брать нужную про тебя инфу. Вполне логично, что рано или поздно кто то попытается создать мессенджер не имеющий этих недостатков. И впервые это случилось задолго до появления рикошета - в ноябре 2007 года, когда был анонсирован Torchat. Торчат. Торчат создавался с учетом этих уязвимостей и в нем впервые удалось успешно реализовать абсолютно новые на то время технологии защиты: 1. Децентрализация была реализовна через перенос серверной части на машины самих абонентов. То есть каждый торчат работает и как клиентская часть (чатик) и как серверная (hidden service) который запускается локально. Аналогичный принцип лежит и в основе даркнета i2p о котором я писал в Ссылка доступна только зарегистрированным пользователям и в Ссылка доступна только зарегистрированным пользователям обзорах. Децентрализация всей оверлейной сети реализована в перенос серверной части в каждый роутер, а вместо днс серверов там используются адресные книги, которыми непрерывно обмениваются все роутеры, включая в состав почти каждого чеснока дольки с книгами.В такой схеме пакеты у нас передаются следующим образом: (torchat1->hiddenservice1) -----> (hiddenservice2->torchat2) такое решение обеспечило защиту аболютно от всех перечисленных минусов 1. между машинами абонентов нет промежуточных узлов. 2. шифрование end-to-end затрудняет перехват трафика (напомню что даже при проксификации через тор xmpp не обеспечивает такого уровня так как отрезок от выходной ноды до сервера xmpp не будет шифроваться тором) 3. еще больше затрудняет перехват трафика то, что адреса этих хидден сервисов не известны никому, кроме владельцев. ведь для того чтобы что то перехватывать нужно знать сначала ГДЕ это перехватывать, а уже потом КАК. Давайте посмотрим на этого первенца стелс технологий: Выглядит он по сегодняшним меркам довольно примитивно: Абсолютный минимализм в настройках (что на мой взгляд я вляется скорее плюсом чем минусом): Айди каждого торчата (6drh6jovqsicacn6) - ни что иное как адрес хидден сервиса - если сделать его формата Ссылка доступна только зарегистрированным пользователям - то получится вполне себе приемлемый тор-линк. Для своего времени это был просто прорыв года однако сейчас он уже не так впечатляет как раньше. Однако даже этот старикан просто за пояс затыкает все эти новомодные свистелки и перделки для неумных типа вайбера. Рикошет Рикошет - более современная версия торчата. Вообще изначально он разрабатывался под кодовым названием Торсион - (у разработчиков стелс программ мания обыгрывать слово тор - TORchat TORsion SelekTOR и даже всем известный orbot и orfox это урезанные версии слов TORbot и TORfox. Но в 2014 ему зачем то фраернули погоняло и он стал рикошетом - ну да ладно. Посмотрим чем он отличается от прародителя. На запуске вполне знакомый диалог а-ля торбраузер: И такой же привычный прогресс-бар: Сам клиент такой же спартанский - но в плане настроек чуточку получше дела обстоят. Есть даже самый настоящий лог тора, куда можно втыкать с умным видом: На данный момент рикошет занимает некое промежуточное место между торчатом, разработчики которого давным давно забили на него болт и тор мессенжером который пока еще на стадии бета тестирования. Важный момент - добавлять ID нужно вместе со словом рикошет - а то одна мадемуазель меня минут терроризировала, что добавить не получается: Если нажмем конфигурировать то попадем в окно куда можно засунуть... МОСТЫ! Вот это реально годная тема. Нет, не потому что кое кто написал, а потом кое кто украл текст про то, что он обходит цензуру бла бла бла. Более важный момент мостов - обфускация. Если запустить у себя мидл ноду для ретрансяции трафика, при этом обфусцировав его с помоью транспортов - мы не только скроем трафик но и тайминги сессий. Ведь даже не анализируя трафик можно получить немало данных - твои привычные тайминги, распорядок дня и т.п. Пре ретрансляции же трафик через машину идет неприрывным потоком, а учитывая что он обфусцирован сторонний наблюдатель не может понять ни что это за трафик, ни чей он. Рикошет полностью вписывается в эту концепцию. Заключение. Не лишним будет напомнить читателю, что последний раз программа обновлялась в конце 2016 года. Это давно, если кто не в курсе. Так же на официальном сайте стоит предупреждение о том, что это экспериментальное программное обеспечение которое НЕ одобрено торпроджектом, так же как не одобрена поделка от пивных бюргеров из немеции -WHONIX. Список одобренных программ можно чекнуть на сайте torproject.org Лично я его использую, но я, это я - я эксперт-практик по сетевой безопасности и использую его сидя в танке где броня четыре пальца. Простому пользователю под окошками который не понимает чем тор отличается от торбраузера я бы посоветовал дождаться релиза тор мессенджера. --------------------------------- Статья написана эксклюзивно для форума BDF При написании статьи использовалась информация из Википедии - Свободной энциклопедии (даты разработок программ) Учитывая что я 100% практик почти все вышеизложенное - отражение моего опыта. Если вы нашли неточность или несоответствие прошу сообщить мне об этом, что бы я внес соответствующие поправки. Отдельное спасибо выражаю Модератору и Плагиатору за то что форсировали написание статьи которая давно уже лежала в закромах памяти, а так же за возможность сделать этот мир чуточку лучше и справедливее.