RetroShare

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
RetroShare
Тип Анонимные сети, Даркнет, Чат, VOIP, Friend-to-friend, IM, Newsgroups
Разработчик RetroShare Team
Написана на C++
Операционная система Microsoft Windows, GNU/Linux, FreeBSD, macOS, Haiku
Языки интерфейса английский, русский, немецкий, испанский, французский и др.
Состояние активное
Лицензия GNU GPL, LGPL

RetroShare — свободное кроссплатформенное программное обеспечение для бессерверного обмена письмами, мгновенными сообщениями и файлами с помощью шифрованной F2F-/P2P-сети, построенной на основе алгоритмов GPG.

Криптоплатформа RetroShare относится к классу darknet-сетей, топология которых подразумевает осуществление соединений и обмен данными лишь с определёнными участниками сети и исключает как внешние контакты, так и непосредственные контакты с другими участниками, не входящими в окружение пользователя. IP-адреса участников криптосети недоступны друг другу, за исключением ограниченного круга участников. Для передачи данных используется собственный протокол передачи, где элементом адресации пакета является не IP-адрес, а 128-битное случайное число — анонимный идентификатор. За пределами личного окружения установить IP-адреса участников принципиально невозможно, в связи с чем даже простой подсчёт количества участников тёмной сети представляет собой нетривиальную задачу. Любая файлообменная и коммуникационная деятельность анонимна, в том числе если обмен пакетами ведётся с участником из ближнего окружения. В связи с применением сквозного шифрования данных, промежуточные узлы не имеют возможности определить характер и содержание передаваемого трафика. Все соединения с удалёнными участниками (пирами), не входящими в ближнее окружение, осуществляются посредством одной или нескольких независимых цепочек анонимных туннелей, прокладываемых между узлами сети. Соединение между участниками устанавливается путём обмена GPG-сертификатами, содержащими 2048-, 3072- или 4096-битный публичный ключ. Указанная топология сети вкупе с сильным шифрованием обеспечивает децентрализацию и анонимизацию обмена данными между участниками.[1]

Аутентификация и соединение

Поиск в сети RetroShare

После установки пользователь или генерирует пару GPG-ключей с помощью RetroShare, или выбирает существующую. После проверки подлинности и обмена асимметричным ключом, устанавливается шифрованное соединение. Для шифрования используется OpenSSL.

В RetroShare все узлы по отношению к пользователю делятся на три класса:

  1. доверенное окружение;
  2. ближнее окружение;
  3. удалённые пользователи.

В доверенное окружение входят сетевые узлы, с которыми пользователь осуществил обмен личным сертификатом. Термин «доверенный» не подразумевает и не требует личного доверия пользователя к тому или иному узлу [источник не указан 2214 дней], так как IP-адреса не используются непосредственно в файлообменной или коммуникационной деятельности и, следовательно, не являются деанонимизирующим фактором. Совокупность доверенных окружений физически формирует многочисленные каналы передачи информации между двумя произвольными пользователями сети. Ближнее окружение включает в себя доверенное окружение, а также доверенные окружения каждого доверенного участника, что составляет 2 сетевых «скачка». Ближним окружением ограничивается прямая видимость участников тёмной сети. Ближнее окружение — это своего рода «горизонт видимости» в RetroShare. Пользователи, находящиеся за пределами ближнего окружения входят в группу удалённых узлов. Система анонимного туннелирования (GXS — General eXchange System) позволяет осуществлять обмен данными с такими узлами, но произвольный участник сети не может указать ни их количества, ни каких бы то ни было характеристик, им присущих.

Файлообмен

Определённым группам либо сразу всему доверенному окружению можно открывать доступ к папкам для скачивания. Также можно включить анонимный доступ к файлам в папке. В этом случае файлы могут быть найдены только через поиск, а скачивающий не будет иметь информации об источнике информации. Доступ настраивается для каждой папки отдельно.

Передача файлов идёт сегментированно через несколько точек (multi-hop swarming). Данные передаются по цепочке узлов; путь от отправителя до конечного получателя конкретного сегмента может идти через несколько участников. Функция анонимного поиска по нескольким точкам (multi-hop search) является ещё одним способом находить файлы по сети.

Приём файла в RetroShare

Файлы представляются в виде своих SHA1-хэшей. HTTP совместимые ссылки на них могут экспортироваться, копироваться и вставляться из/в RetroShare, чтобы опубликовать их виртуальное расположение в сети.

Обмен сообщениями и связь

RetroShare предоставляет несколько подходов к обмену сообщениями. Каждый из подходов имеет свои особенности и реализует строго определённую целевую функцию. Объединяющим фактором для всех вариантов коммуникаций является то, что все входящие и исходящие сообщения шифруются и несанкционированный доступ к ним затруднителен, если вообще возможен.

Отдача контента новым доверенным пирам в RetoShare

Прямой приватный чат с одним из участников

Возможен в том случае, если с участником сети произведён обмен сертификатами и установлено прямое соединение. Используется при необходимости переговоров tête-à-tête с участником тёмной сети. Статус чата: шифрованный, псевдонимный. IP-адреса участников доступны друг другу. Чат инициализируется выбором пункта «Чат» в контекстном меню контакта во вкладке «Сеть».

Доверенное окружение в криптоплатформе RetroShare

Прямой широковещательный чат со всеми соединёнными узлами

Обеспечивает простой доступ к рассылке сообщений всем подключённым в данный момент узлам. Сообщения, посылаемые в сеть, являются широковещательными, то есть их получат все подключённые узлы — доверенное окружение. Другие пользователи криптоплатформы RetroShare их увидеть и прочитать не смогут.

Из особенностей построения сети и замысла прямого широковещательного чата следует одна очевидная особенность. Так как у каждого пользователя криптоплатформы свой собственный круг контактов и во многих случаях эти круги некоррелированы, то есть общих контактов может быть не так много, то видимые в широковещательном чате сообщения могут быть вне контекста обсуждения и порой приводить пользователя в недоумение. Иначе говоря, пусть пользователь «П1» имеет окружение «О1», пользователь «П2» имеет окружение «О2». Общими для обоих пользователей является лишь один доверенный участник — «П3». Если пользователи П1 и П2 одновременно инициируют два широковещательных чата, то лишь пользователь П3 будет видеть сообщения обоих кругов, понимать о чём идёт речь, а значит, полноценно поддерживать беседу. Но в этом случае его собственные сообщения могут быть не понятны, вырваны из контекста, для одной из групп в зависимости от того, к которой из них он обращается.

Столь обширное объяснение особенностей широковещательного чата призвано пояснить, что пользоваться им следует дозированно и в строго определённых случаях, например, когда требуется сделать какое-то срочное глобальное объявление. Использовать же данный вид коммуникаций для длительного общения на второстепенные темы воспитанный пользователь RetroShare не будет.

Чат инициируется во вкладке «Широковещательный чат» (Broadcast) базового раздела «Сеть».

Удалённый приватный чат с одним из пользователей сети

Очень ценный и уникальный для darknet-сетей способ общения, позволяющий приватно связаться с лицом из ближнего круга, не являющимся в настоящее время доверенным. Участниками из ближнего круга называются пользователи, имеющиеся в списке под названием «Массив ключей» базового раздела «Сеть».

Чат полезен в случае, если требуется наладить временный приватный контакт с человеком или произвести обмен сертификатами, когда передача сертификатов через общие чат-комнаты нежелательна. Удалённый контакт реализуется через систему анонимных туннелей и возможен лишь в том случае, когда оба участника уже вошли в криптосеть RetroShare.

Приглашение в приватный удалённый чат RetroShare

Установление удалённого приватного контакта осуществляется через «Параметры → Чат → Удалённый чат (Distant chat)». В контекстном меню выбирается позиция «Create a chat invitation» (Создать приглашение в чат) и указывается один из контактов окружения. В качестве дополнительного параметра удалённого чата можно указать время действия сессионного ключа. После выполнения процедуры можно скопировать приглашение в общий чат.

Воспользоваться данным приглашением может лишь тот участник сети, ID которого указан в ссылке. Статус установленного соединения: приватный, анонимный, шифрованный.

Почтовая служба RetroShare

Наиболее мощный и ценный сервис криптоплатформы RetroShare, так как его функциональность аналогична широко известным сервисам доставки электронной почты в открытых сетях. Однако имеются и существенные различия.

Почта RetroShare

Криптопочта RetroShare отличается от известных сервисов следующим:

  • Бессерверная служба; вся исходящая и входящая почта хранится только на локальных компьютерах участников обмена и только в шифрованном виде.
  • При отсутствии в сети пользователя-получателя сообщения никакие промежуточные сервера-хранилища не используются, а сообщение будет доставлено тогда, когда нужный пользователь войдёт в сеть.
  • Псевдонимный сервис; IP источника получателю неизвестен, отображается лишь ID и псевдоним; передача данных ведётся посредством анонимных туннелей, а значит, третьему лицу за обозримое время невозможно не только раскрыть содержимое передаваемой информации, но и связать источник письма с его получателем.
  • Отсылка почтовых сообщений возможна лишь участникам из ближнего окружения; спам исключается естественным образом, благодаря невозможности рассылки писем участникам вне ближнего круга.
  • Отсутствуют ограничения на объём прикрепляемых к письму файлов.
Ближнее окружение в криптоплатформе RetroShare

Публичные чат-комнаты

Самый простой и широко используемый способ общения в сети RetroShare, дающий анонимность, динамичность, быстроту соединения и не требующий заметных познаний в топологии и особенностях работы RetroShare. Для вхождения в публичные чаты достаточно обменяться сертификатом с роботом по одному из адресов:
https://retroshare.rocks/copyleft/key_add.php?lang=ru (недоступная ссылка);
https://retroshare.rocks/kopimi/key_add.php?lang=ru (недоступная ссылка);
https://web.archive.org/web/20160304083201/https://retrochat.piratenpartei.at/key_add.php?lang=ru.
Следует особо отметить, что взаимный обмен сертификатами с одним или обоими роботами лишь позволяет быстро загрузить основные публичные чаты и не даёт возможности пользоваться ресурсами сети. Это значит, что вы не сможете производить поиск и просмотр контента в криптосети RetroShare. Для этого пользователь должен найти как минимум одного участника сети, готового осуществить взаимный обмен сертификатами.

В целях безопасности роботы по указанным адресам деактивируют доверие к сертификату пользователя через 30 суток после подписания. Предполагается, что за это время потенциальный участник сети обменялся сертификатами с несколькими действительными участниками, тем самым установив взаимное доверие и осуществив подключение к криптосети. Как только пользователь подключился к сети необходимость подключения к указанным выше чат-серверам отпадает и весь обмен данными ведётся децентрализованно.

Публичные чаты не модерируются и не цензурируются. Это значит, что там отсутствует администрация в той или иной форме, а также возможность наложения запрета на доступ к чат-комнате — бана. Для защиты от спама имеется возможность на уровне клиента установить так называемый «немой режим» (mute) для нарушителя. В результате клиент будет игнорировать сообщения от одного или нескольких пользователей чата, занимающихся рассылкой спама.

Практика применения публичных чатов сети RetroShare показывает, что для установления подлинной анонимности в публичных чат-комнатах желательно, чтобы псевдоним в чате отличался от псевдонима, указанного в GPG-сертификате пользователя. В этом случае недоброжелатель будет неспособен сопоставить псевдоним, используемый в чате, с сертификатом конкретного пользователя.

Управление коллекцией в RetroShare

Приватные чат-комнаты

Аналогичны по своему замыслу публичным чатам за исключением следующего:

  • заходить в приватную чат-комнату можно лишь тем пользователям, которые получили приглашение от одного действительного участника данного чата;
  • имена приватных чат-комнат невидимы никому, за исключением участников приватного чата.

Приватные чаты полезны при обсуждении каких-либо важных тем со строго ограниченным кругом лиц.

VoIP-коммуникатор

Коммуникатор, обеспечивающий голосовую связь между двумя участниками криптоплатформы RetroShare и реализованный в виде отдельного плагина.

Перед применением VoIP-плагина рекомендуется запустить мастер настройки звука, который определит величину динамического диапазона голоса и установит некоторые базовые опции.

Форумы

Каналы RetroShare

В криптоплатформе RetroShare реализована система форумов, разрешающая как анонимные, так и аутентифицированные сообщения. Система форумов также используется для обмена сообщениями между друзьями.

Каналы

Система каналов объявлений позволяет автоматически загружать файлы размещённые на конкретном канале каждому подписанному клиенту. Реализация, сущность, цели и задачи каналов RetroShare аналогичны торрент-порталам, где делаются объявления нового контента для скачивания. Ключевое отличие названных подходов состоит в том, что участник криптоплатформы является владельцем собственного канала и по умолчанию публикации в нём разрешены только создателю канала. Создатель канала имеет возможность делегировать права на публикацию контента произвольному количеству доверенных участников. Публикации на каналах объявлений всегда анонимны; извлечение информации о псевдониме пользователя, владеющего каналом, в программе не предусмотрена. Каналы могут быть как публичными, так и приватными.

Поиск контента в криптоплатформе RetroShare

В случае публикации материала, содержащего большое количество файлов, RetroShare даёт возможность создавать так называемые коллекции. Коллекция — это xml-файл, содержащий структуру папок, имена файлов и их хэши. Никаких ограничений на количество файлов в коллекции не налагается. По скачиванию коллекции пользователь имеет возможность выбрать для скачивания все или только те файлы, которые ему необходимы.

Интерфейс пользователя

Ядро RetroShare основано на базовой библиотеке, к которой подсоединяются два модуля пользовательского интерфейса: модуль командной строки, который не дает почти никакого контроля, и модуль графического интерфейса на Qt, более приятный большинству пользователей. В дополнение к популярным функциям другого ПО обмена файлами, таким как вкладки поиска и визуализация закачек, RetroShare дает возможность управлять своей сетью путём сбора дополнительной информации об узлах из доверенного окружения и отображения её в виде матрицы доверия или в виде динамического графа сети.

Анонимность

Внутренняя логика работы RetroShare

F2F-структура RetroShare сети затрудняет вторжение и делает почти невозможным мониторинг сети извне. Степень анонимности может быть улучшена деактивацией DHT и сервисов обмена IP-сертификатами, превращая таким образом сеть RetroShare в даркнет согласно её классическому пониманию. Большая часть пользователей сети не соединены непосредственно друг с другом. Тем не менее, возможность анонимного обмена файлами существует, если она включена пользователем. Поиск, доступ, загрузка и скачивание таких файлов производится путём «маршрутизации» через ряд сетевых узлов. Это означает, что связь между источником данных (uploader) и получателем данных (downloader) является косвенной через промежуточные узлы. Узлы-посредники не могут определить как источник отправления и пункт назначения, так и осуществить мониторинг содержимого проходящих через них пакетов в силу того, что все пакеты подвергаются сильному шифрованию.

Особенности

  • Поиск друзей
  • Поиск файлов
  • Мгновенный обмен сообщениями
  • Групповой чат
  • Каналы наподобие IRC
  • Анонимные/аутенфицированные форумы
  • Поиск файлов через несколько точек (multi-hop)
  • NAT-перфорация
  • Сегментированная передача, как в BitTorrent
  • Кроссплатформенный UI на Qt
  • Локализация на 9 языках
  • Анонимный обмен файлами с друзьями
  • URL-схема общих файлов
  • Полная децентрализация
  • Дополнительная IP-локализация через Kademlia DHT
  • Поддержка переадресации UPnP / NAT-PMP портов
  • Обзор всех общих файлов
  • Несколько одновременных загрузок / закачек
  • Поддержка плагинов
  • Голосовой чат через VoIP плагин
  • Интеграция в панель задач
  • Возобновление прерванной загрузки после выхода
  • Добавление загрузок через веб-ссылки
  • Обзор внутренней статистики маршрутизатора
  • Мастер первоначальной настройки
  • Автоматическая настройка портов маршрутизатора
  • Открытый или анонимный обмен данными с друзьями

История версий и будущее разработки

Шестого апреля 2014 г. выпущена версия 0.5.5c (сборка 7249) криптоплатформы с существенно улучшенной поддержкой различных локализаций интерфейса, в том числе и русской.

Обнаруженная 7 апреля 2014 г. серьёзная уязвимость в протоколе SSL/TLS под названием HeartBleed потребовала обновления библиотеки libssl. В результате 10 апреля 2014 г. выпущена версия платформы 0.5.5c (сборка 7261), включающая обновлённую версию 1.0.1g SSL/TLS.

Благодаря системе плагинов в криптоплатформе RetroShare имеется возможность задать дополнительную функциональность. На основе такого подхода могут быть реализованы бессерверная голосовая почта и видеочат, работа над которыми была инициирована в начале июля 2014 года. Ранее был реализован веб-интерфейс для удалённого управления программным обеспечением.

В сентябре 2014 г. ожидается выход новой версии 0.6 клиента, в основном призванной:

  1. добавить в систему новую функциональность, — например, круги (RetroShare circles), wiki-страницы и система рейтингов, — что сделает платформу защищённой, полностью децентрализованной социальной сетью нового типа;
  2. усовершенствовать структуру сертификата пользователя, увеличить длину публичного и приватного ключей по умолчанию;
  3. оптимизировать обмен кэшем (General eXchange System — GXS), что существенно снизит требования к пропускной способности канала передачи данных и сделает более удобной работу пользователей, имеющих «узкий» канал.

По состоянию на 30 мая 2014 г. внутри дарк-сети RetroShare для тестирования выложена альфа-версия 0.6 клиента (сборка 7377).

Пятого июня 2014 года была обнаружена ещё одна уязвимость в библиотеке OpenSSL, связанная с возможностью осуществления атаки типа «человек посередине». Это потребовало оперативно обновить версию клиента до 0.5.5c (сборка 7401) с версией SSL/TLS 1.0.1h. На 6 июня 2014 г. данная версия платформы опубликована в сети RetroShare.

Очередная альфа-версия 0.6 криптоплатформы (сборка 7411) доступна пользователям для тестирования с 21 июня 2014 г. На следующий день, 22 июня 2014 г., был представлен клиент той же версии для визуальной библиотеки Qt 5.3 (сборка 7413). Оба варианта ПО доступны внутри сети RetroShare и на момент публикации воспользоваться ими могли лишь действующие участники сети.

По состоянию на декабрь 2014 г. основная часть пользователей криптоплатформы мигрировала в сеть на основе RetroShare 0.6 beta. Актуальные версии обновлённой платформы можно найти на странице новостей.

Апрель 2015 — реализована оффлайн-доставка сообщений. Сделана первая версия web-интерфейса. Ведутся работы над поддержкой IPv6.

Восьмого июня 2015 г. выпущен релиз-кандидат анонимной криптографической платформы RetroShare 0.6.0-RC (rev. 8401). Реализован новый механизм обмена данными, создано несколько новых сервисов, стала возможной работа через сеть Tor, функционирует голосовая и видеосвязь. Полный список новых возможностей можно посмотреть в блоге разработчиков. Несмотря на огромное количество новых возможностей, работы над дальнейшим совершенствованием платформы ведутся безостановочно.

На 1 июля 2017 года в тёмной сети:

  • реализованы круги, обеспечивающие ограничение распространения контента внутри той или иной группы анонимных пользователей;
  • реализован файлообмен на основе сквозного шифрования данных;
  • создана система репутаций, предотвращающая случаи вандализма в форумах, каналах и сервисах публикаций;
  • оптимизирован механизм обмена контентом между соседствующими узлами: каждый узел имеет возможность самостоятельно устанавливать период времени, в течение которого хранятся и синхронизируются сообщения;
  • сервис электронной почты обеспечивает доставку сообщений любому анонимному пользователю, находящемуся в списке участников сети.

Отмечен большой приток пользователей из Китая. Пофайлово выложена гигантская fb2-библиотека: порядка 400 тыс. книг. Через поисковый сервис обнаруживается большой объём уникального контента.

Интересные факты

  • Автор идеи и главный разработчик RetroShare по основной работе является проектировщиком ветряных турбин (ветряков). Второй участник проекта, отвечающий за безопасность и совершенствование сетевого протокола, занимается исследованиями в области компьютерной графики.
  • Когда создатель проекта представил на суд своим друзьям начальную версию программы, на тот момент не имевшей названия, те сказали, что программа выглядит «очень ретро», то есть её функционал и структура очень строги и классичны.

Примечания

Ссылки