После года пребывания в статусе 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
    11.03.2016 13:30

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


  1. nikitasius
    11.03.2016 13:33

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


    1. wrewolf
      11.03.2016 14:30

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


      1. nikitasius
        11.03.2016 14:35

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


  1. savostin
    11.03.2016 14:19
    +5

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


    1. wrewolf
      11.03.2016 14:29
      +1

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


      1. savostin
        11.03.2016 15:49

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


        1. wrewolf
          11.03.2016 15:51

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


    1. GamePad64
      11.03.2016 17:18

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


    1. svosin
      12.03.2016 12:45

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


  1. alkresin
    11.03.2016 15:30

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


    1. wrewolf
      11.03.2016 15:52

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


    1. svosin
      11.03.2016 23:21

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


      1. alkresin
        12.03.2016 10:58

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


        1. svosin
          12.03.2016 12:44

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


    1. retro_user
      13.03.2016 12:03

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


  1. sulnedinfind
    11.03.2016 15:30

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

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


  1. PavelMSTU
    11.03.2016 16:03

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


    1. shifttstas
      11.03.2016 17:30
      +1

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


      1. PavelMSTU
        12.03.2016 01:51

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


    1. robux
      12.03.2016 20:50
      +1

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


    1. retro_user
      13.03.2016 12:12
      +1

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


  1. PavelMSTU
    11.03.2016 16:11

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


    1. svosin
      11.03.2016 23:19
      +2

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


      1. PavelMSTU
        12.03.2016 01:52
        +1

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


        1. svosin
          12.03.2016 07:18
          +2

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


        1. retro_user
          13.03.2016 12:32

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


    1. retro_user
      13.03.2016 12:18

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


  1. ComodoHacker
    12.03.2016 11:44
    +2

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


  1. Foxcool
    12.03.2016 22:15
    +2

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


  1. retro_user
    13.03.2016 11:55

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