RetroShare — инструмент для приватного общения и обмена данными +16



После года пребывания в статусе beta и release candidate, состоялся финальный релиз Retroshare версии 0.6.0.

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

Итак, Retroshare — криптографически защищенная децентрализованая платформа для анонимного общения и файлообмена. Система позволяет организовывать обособленные бессерверные Friend-to-Friend сети или одну глобальную сеть (что по факту и существует на сей день) с определённым кругом лиц — например, вашими друзьями, семьёй, коллегами или просто незнакомцами. Соединения устанавливаются напрямую только с теми участниками, которым вы дали разрешение. Это важная особенность, перемещающая подобные сети в рамки особого класса децентрализованных сетей, в которых несанкционированное подключение к вашему компьютеру запрещено без вашей на то доброй воли. Сети такого типа называются „Private p2p“, „Darknet“ или просто „Темная сеть“.

Темные сети наподобие RetroShare, среди прочего, обладают двумя важными характерными признаками:

1) затруднен мониторинг файлообменной и коммуникационной деятельности пользователя силами извне, то есть – со стороны потенциального противника, не подключенного к сети;
2) за пределами так называемого «ближнего» окружения сети RetroShare (и подобных – FreeNet, GNUnet) не представляется возможным достоверно определить даже факт подключения пользователя к такой сети.

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

Следует особо отметить, что даже в пределах так называемого «доверенного» окружения имеется возможность общаться и обмениваться данными через систему анонимных личностей, идентификатор которых не привязан к персональному сертификату пользователя. Количество создаваемых анонимных личностей не ограничивается; пользователь волен по мере необходимости и/или внешних факторов произвольно создавать и удалять свои личности.

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



Предоставляемые возможности:

— Мгновенные сообщения и почта
— Публичные и приватные чаты
— VoIP — Голосовая и видео связь
— Файлообмен
— Форумы
— Каналы

Несмотря на следствие p2p-природы, а также специфики сети, увязанной, в первую очередь, на анонимизацию пользователя — скорость файлообмена приближается к предельной пропускной способности вашего канала.

Обмен сообщениями возможен от имени анонимных личностей, так и непосредственно между сетевыми узлами. В первом случае доступна оффлайн доставка, применяется хранение сообщений на узлах общих друзей. Голосовая и видеосвязь доступна только для связи узлов из доверенного окружения. То есть – с теми узлами, с которыми ранее был осуществлен обмен сертификатами.

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

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

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

Файлообмен похож больше на emule и direct connect, чем на bittorrent. Можно сказать, что от всех перечисленных систем были взяты лучшие свойства. Файлы идентифицируются по отдельности, по SHA-хешу и, следовательно, остаются доступными независимо от переименования и/или перемещения в пределах папки с открытым доступом. Ссылки на файл представляют простой текстовый блок с названием и хешем, похожи на ed2k и magnet.

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

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

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

Поиск возможен не только на узлах друзей, но и по всей доступной сети, благодаря механизму туннелирования данных. В наличии множество параметров для конкретизации поиска, например, по расширению, хэшу и т.п. Закачка ведётся в несколько потоков со всех доступных „направлений“.

Соединения устанавливаются по TCP/UDP IPv4, в разработке IPv6-транспорт. Имеется возможность работы через анонимизирующие сети tor/i2p. Для облегчения связи в случае динамических адресов применяются uPnP, DynDNS, DHT и система обмена контактными данными между общими друзьями. При необходимости все отключаемо.

Традиционный вопрос: а зачем нужна еще одна криптосистема?

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

Двум людям достаточно один раз обменяться публичными ключами (любым удобным способом) – и после установления связи все возможности будут доступны.

Никаких Условий, звездочек и мелкого шрифта. Все это доступно бесплатно, без регистрации и смс. Open Source. Хозяин – Вы.

В рамках объективности рассмотрения предмета: в бочке меда… безусловно, имеются проблемы, изъяны и недостатки. Например:

— VOiP еще не отлажен, качество хромает и не сравнимо со скайпом и аналогами.
— Не хватает некоторых функций, которые стали привычными в других системах, таких как стриминг — воспроизведение в процессе загрузки медиафайла
— Интерфейс кажется перегруженным немалому числу пользователей — следствие обилия функций.

Разумеется над всем этим ведутся работы. Однако, как и в любом другом проекте, в основе которого лежит серьезная криптография, разработчики в первую очередь решают проблемы совершенствования ядра платформы, а значит – проблемы безопасности.

Также следует учитывать особенности распределенных и криптографических систем:

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

Клиент с открытым исходным кодом, написан на Qt/C++, имеются сборки под все распространенные десктоп-операционки, есть опыт успешного запуска на Android. Имеется поддержка плагинов для расширения функциональности.

Имеется возможность работы в no-gui режиме, в наличии web-интерфейс.

В ближайшей перспективе разработка системы так называемых кругов, для разграничения доступа к ресурсам по группам друзей. В разработке распределенные wiki-сайты, в планах Стена (по аналогии с facebook), и еще масса полезностей, полный список которых доступен по ссылке. Несмотря на незначительное количество разработчиков, ведется активная работа по совершенствованию программы.

Ссылки:

Официальный сайт: retroshare.sf.net
Блог разработчиков: retroshareteam.wordpress.com
Исходный код: github.com/RetroShare
Русскоязычный ресурс: adorabilis.wordpress.com
Инструкция по подключению: ru.retroshare.net
Серверы для доступа к публичным чатам: retroshare.rocks
См. также: Теория шести рукопожатий

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (31):

  1. ivan386
    /#8801793

    А как проверяются части файлов? Почему выбрали sha (и какой версии) а не tiger tree?

  2. nikitasius
    /#8801811

    Народ с чана, который тусуется в токсе использует ретро для обмена листовками, организации митингов и вообще шары запрещенной литературы (которая ранее была разрешена).
    Ранее на мегу вываливали.

    • wrewolf
      /#8801921

      Они свой локальный круг образовали или цепляются как все через чат-сервер?

      • nikitasius
        /#8801933

        хз, я к ним не лазил. Просто уши грел на канале.

  3. savostin
    /#8801893 / +5

    Да что ж оно на Qt большинство программ так криво выглядят-то?

    • wrewolf
      /#8801917 / +1

      Задача не сделать красиво, а сделать работает.
      А так напишите свой gui. Просто Qt минимум кода поддерживающего все платформы

      • savostin
        /#8802131

        Да чето и работает не стабильно, если честно — уже 3 раза вылетало.

        • wrewolf
          /#8802139

          начиная с 0.6.0 у меня перестало вылетать, аптайм ноды от ребута до ребута месяц, а вот 0.5.5 стабильно вылетала.

    • GamePad64
      /#8802333

      Криво. Но на Qt можно и красиво сделать, просто никто не заморачивается.

    • svosin
      /#8803097

      Там темы есть, некоторые, ИМХО, очень даже ничего.

  4. alkresin
    /#8802069

    Т.е., любые Иванов, Петров и Сидоров могут, установив себе программу, создать свою маленькую "темную сеть"?
    А как Иванов может включить Петрова, по IP? Как быть в таком случае тем, у кого динамический IP ?

    • wrewolf
      /#8802141

      IP не важен, просто есть опция использовать белый список IP для определенных пиров, если точно известны все точки выхода в сеть.

    • svosin
      /#8802749

      При создании сертификата в него пишется IP.
      Для динамического IP у них есть DHT: при подключении к сети новый IP анонсируется узлам, и друзья узнают, куда подключаться.

      • alkresin
        /#8802975

        Значит, для того, чтобы Иванову, Петрову и Сидорову создать свою приватную сеть, им надо подключиться к существующей глобальной RetroShare сети, и дальнейшее их общение возможно только при использовании ресурсов этой глобальной сети?
        Т.е., сеть не является одноранговой в полном смысле этого слова — должны существовать супер-ноды со статическими IP, где хранятся каталоги, индексы и соответствующее ПО ?

        • svosin
          /#8803095

          Нет, DHT в BitTorrent работает без всего этого, тут то же самое. Ресурсы сети используются только для обнаружения дружеских нод и помощи в скачивании файлов.

    • retro_user
      /#8803905

      Именно для этого система и предназначена.
      Про динамические адреса в статье рассказано. Кроме этого следует учитывать возможные проблемы из-за серых адресов — два пира не могут подключиться напрямую, если оба не имеют внешнего адреса (скрыты за NAT). Для обхода этого препятствия существует механизм ретрансляции, который позволяет пропускать трафик через другие узлы. Включается в настройках: Relays > Use relay servers (правая галка). Работает через dht.

  5. sulnedinfind
    /#8802073

    Нет возможности удалить отправленные сообщения и посты.

    Вместо постов хранить события "запостил", "исправил", "удалил"?

  6. PavelMSTU
    /#8802165

    Чем хуже / лучше ZeroNet?

    • shifttstas
      /#8802365 / +1

      Разные цели, Zero это платформа

      • PavelMSTU
        /#8802829

        Т.е. поверх Zero создается RetroShare?

    • robux
      /#8803487 / +1

      ZeroNet только сайты (веб, html) поддерживает и ему нужен браузер, а RetroShare поддерживает гораздо больше чего: чаты, файлообмен и т.д. (см. статью), но веб не поддерживает, и браузер не нужен — это отдельная программа.

    • retro_user
      /#8803911 / +1

      Cравнивать в лоб сложно.
      zeronet — распределенные сайты через torrent — публичные, нешифрованые, опционально анонимные.
      retroshare — приватные сети. Похожего у них разве что форумы в RS, и то лишь по смыслу, но не реализации.

  7. PavelMSTU
    /#8802179

    По поводу файлообмена — там есть аналог рутрекера?

    • svosin
      /#8802747 / +2

      В этом плане RS больше на DirectConnect похож. Но есть функция поиска, вроде бы позволяющая тянуть файлы с узлов, не являющихся друзьями.

      • PavelMSTU
        /#8802831 / +1

        Получается нужно взять RetroShare (или что-то аналогичное) и можно делиться файлами не боясь Роскомнадзора?..
        Есть подводные камни?

        • svosin
          /#8802879 / +2

          Смотря чего хотите: если надо скрыть сам факт использования RetroShare, то придется отключать DHT и прописывать IP узлов вручную, ибо с включенным DHT светится IP. Если нужно, чтобы третья сторона не знала, что за файлы передаются, то RS с этим справляется (т.е. получается как в I2P: виден факт использования, но неизвестны передаваемые файлы).

        • retro_user
          /#8803921

          Подводные камни возможны если не придерживаться правильной модели использования системы (Friend-to-Friend) и добавлять неизвестных людей. В некоторых случаях это может быть чревато https://tinyurl.com/zt53hx5

    • retro_user
      /#8803915

      Есть несколько созданных и поддерживаемых пользователями форумов и каналов с релизами.

  8. ComodoHacker
    /#8803017 / +2

    Я сам давно хотел написать про RetroShare. Хорошо, что вы это сделали.

  9. Foxcool
    /#8803599 / +2

    Никто уже не открыл альтернативный хабрафорум? (:

  10. retro_user
    /#8803901

    Вспомогательные чатсерверы не всегда работают стабильно. Статус указываемый на retroshare.roks не очень соответствует действительности.
    Сhatasaurus — основной чатсервер, единственный, предоставляющий приватный (distant) чат — в последнее время испытывает аппаратные проблемы из-за хостинга. Иногда бывает недоступен, как в данный момент.
    Pirateparty — оффлайн уже больше недели
    Telecomix — живой и самый надежный из имеющихся
    Есть альтернативный чатсервер — http://sss.chaoslab.ru/rs/ — доступен большую часть времени
    Для более стабильного подключения рекомендуется добавлять несколько сразу.
    Следует помнить, что чатсерверы удаляют старые связи — вам будет отказано в подключении после того как на чатсервер будут добавлены 100 новых пользователей.
    При наличии достаточного количества связей с живыми пирами чатсерверы становятся не нужны (Разумеется, при условии, что ваши друзья подключены ко всем интересующим вас комнатам).