Технические подробности о защищённом P2P-чате BitTorrent



    Компания BitTorrent сообщила технические подробности реализации криптографически защищённого P2P-сервиса BitTorrent Chat, который сейчас находится в закрытом альфа-тестировании. Его главным преимуществом является отсутствие центрального сервера, так что сообщения передаются напрямую с устройства отправителя на устройство абонента без посредников.

    Только поиск адресата осуществляется через сеть DHT. Для сравнения, в традиционных IM-сервисах и поиск адресата, и содержимое сообщения передаются через центральный сервер.



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

    Для защиты приватности пользователя BitTorrent Chat будет использовать асимметричную криптографию. При этом понятие «имени пользователя» вообще не используется, в системе нет процедуры авторизации в классическом смысле, с именем пользователя и паролем. Вместо этого каждый пользователь генерирует уникальную пару секретного и открытого ключа. Для всех пользователей сети BitTorrent Chat вы и есть ваш открытый ключ. Другими словами, можно использовать чат абсолютно анонимно. Двум пользователям требуется лишь обменяться открытыми ключами, чтобы установить защищённый канал связи.

    Использование асимметричной криптографии в P2P-чате даёт ряд преимуществ. Главное — надёжный и удобный способ шифрования сообщений с помощью закрытого ключа. Проблема в том, что если кто-то добудет ваш закрытый ключ, то сможет расшифровать архив старых (и будущих) сообщений. К счастью, компания BitTorrent реализовала систему упреждающей секретности (forward secrecy). В начале каждого разговора генерируется временный криптографический ключ. Он создаётся на базе вашего секретного и открытого ключа, а после разговора удаляется навсегда.

    Ключевой технологий BitTorrent Chat является DHT (distributed hash table) — распределённая хэш-таблица для трансляции открытых ключей пользователей в IP-адреса. Здесь она работает так же, как в популярных торрент-клиентах вроде µTorrent. Последние версии DHT поддерживают шифрование, чтобы защитить конфиденциальную информацию, которая передаётся в сеть. Подробнее о DHT см. здесь.
    Поддержать автора
    Поделиться публикацией

    Комментарии 47

      +1
      Может кто-то на пальцах объяснить, как вообще клиенты подключаются к сети DHT? Как они определяют, где находится хоть какой-то узел, чтобы интегрироваться в DHT?
        +2
        Нужно знать хотя бы одного пира, который уже в DHT (которых можно найти с помощью трекера, например) или обратиться к bootstrap-серверу.
          +1
          Таки способ централизации требуется — тот же трекер или bootstrap сервер. А есть ли алгоритм абсолютно полностью автоматического подключения к децентрализованному сервису? Без использования подобных «вспомогательных» вещей?
            +1
            В конце концов, пирам все-таки надо где-то узнать друг о друге. Думаю, теоретически можно посылать широковещательные запросы или стучаться на случайные адреса на случайные порты, но у этого подхода очевидные недостатки.
            Думаю, проще наплодить много независимых bootstrap-серверов и рассматривать их как обычных пиров, которые всегда в сети.
              +1
              Я просто думал об ещё одном варианте в своё время. Хост ищет пиров подключаясь к любому ИПшнику. Вообще к любому, к которому подключаются любые другие программы. Скажем, из его ИП адреса вычисляется порт, по которому будет стучаться, или просто статичный порт (правда статичный проще заблочить будет).
              И формирует где-то у себя базу пиров. Потом при реконнекте сначала опрашивает их — и если нет ни единого живого снова ищет при подключениях к любому ИПшнику…

              Глупо наверное?
                +1
                dht-ноды необходимо сохранять между запусками.
                как следствие — коннект к бутстрапу делается только 1 раз либо если все dht-ноды которые мы знали сдохли (шансов мало, учитывая рандомность всех нод).
                +1
                Сейчас не вспомню, но есть исследования на эту тему. Что-то вроде случайного бутстрапа. Т. е. по какому-то хитрому распределению высчитываются потенциальные участники DHT, и им вслепую шлётся запрос на установление связи. Подсчитывали, что-то около тысячи запросов всего нужно, чтобы найти участника, от него получить несколько сотен других участников, при выходе сохранить. А потом следующий вход будет выполняться по сохранённым пирам. Велика вероятность, что хотя бы один из них ответит.
          +16
          Звучит поинтересней, чем telegram…
            +9
            Как счастливый пользователь bittorrent и btsync с нетерпением жду релиза, интересно, что же они еще придумают на базе торрента.
              0
              Вообще конечно интересно. Но самая большая проблема всех распределенных чатов, это ИМХО отсутствие центрального хранения истории сообщений )
                +9
                + к безопасности :))
                  0
                  Ну… Вот bitcoin вроде достаточно безопасен, однако сам принцип сети подозревает что ты можешь просмотреть историю каждого коина от момента рождения. Что очень удобно ;)
                    +1
                    По вашей аналогии получается, что вы не против, если любую вашу переписку прочитает любой участник сети, с условием, что вы останетесь условно анонимным и никто не узнает, что это именно ваша переписка?
                      +2
                      Ну почему-же?

                      У всех может быть копия переписки каждого участника сети, но расшировать именно вашу можно только имея ключи.
                      Так в принципе биткоин и работает — все знают сколько на том, или ином кошельке монет, но перевести их оттуда не могут.
                        +1
                        Из комментария выше я этого не прочитал, а с вашим сообщением — согласен.
                          0
                          > У всех может быть копия переписки каждого участника сети

                          Ну нифига себе же. Ради какого-то мессенджера выделять кучу места на жёстком для хранения вообще для меня не нужной информации? Нет, спасибо.
                            0
                            Даже в биткоине не обязательно хранить всю историю. А у для мессенджера подавно — можно оставлять только ту часть, которая тебя касается.
                    +2
                    Это, напротив, их достоинство.
                      0
                      Возможно разработчики реализуют выбор варианта сохранения диалога — не сохранять/сохранять на диск/отправить на личный емайл/сохранить в облаке
                        0
                        Bitmessage. Алгоритм похожий на биткоин и хранение всей истории в блокчейне.
                        0
                        По моему у таких чатов самая большая проблема – это монструозные ID пользователя которыми очень трудно обмениваться вне виртуального мира, а не хранение истории (хотя авторы ещё в момент анонса сказали, что история будет синхронизироваться)
                          +2
                          Как только такая проблема на самом деле возникнет, немедленно появится куча сервисов сокращалок ключа, новых или на базе уже существующих для url. И вы сможете делиться красивой ссылкой типа t.co/mykey, которая будет резолвится в ключ.
                            –1
                            Хм… Как-то сразу не подумал, но всё равно костыль :)
                          0
                          Вот он — наш ответ Чемберлену
                            +6
                            Всё это хорошо, но почти то же было в скайпе, плюс можно говорить голосом и через вебкамеру, а не только писать. Технология закрыта и открывать её не собираются. Я объяснял, почему любая закрытая технология обречена прогнуться под натиском прослушки.

                            Более того, этот чат раскрывает IP-адрес собеседника (скайп это тоже делает, даже если разговор передается через супер-ноду). Зачем нам ещё один скайп, когда есть TorChat, лишенный всех этих недостатков, начиная с закрытого кода?
                              0
                              Простите меня, но 1 контрибьютор – это как-то не серьёзно, может продукт и хороший но до продакшена ему очень и очень далеко.
                                0
                                Во-первых, у таких вещей как линукс или буст тоже когда-то был один контрибутор… Во-вторых, контрибутор на самом деле не один. (Да, гитхаб показывает 1, но это вызвано тем, что автор публикует все изменения от своего имени. Плюс, есть независимые совместимые реализации, над которыми работает ещё дюжина людей.)

                                Для меня и многих пользователей было радостной новостью, что вполне рабочая версия TorChat включена в стабильный дебиан. А та технология, которая предлагается в статье, никогда туда не попадёт, в крайнем случае в раздел non-free, так как исходники они открывать не собираются. Для меня наличие программы в стабильном дебиане — это главный объективный критерий готовности к продакшену. Если Вам известны более адекватные критерии, готов их выслушать.
                                  0
                                  Для данной программы продакшен – это миллионы пользовательских машин аудитории ВК, а не репозитарий Debian.
                                  Да что же вы так прицепились то к открытым исходникам? Компания которая зарабатывает деньги программой, должна подчиняться законам государства в котором зарегистрирована.
                                  Если бы у Skype не было аудитории его бы никто не слушал.
                                    0
                                    Меня не интересует, что интересно компании. Если она хочет зарабатывать деньги и ради этого предаёт мои интересы — я не буду пользоваться её продуктами и не буду советовать другим.

                                    При чем тут ВК, если мы говорим про BitTorrent-chat и Skype? Да, ВК тоже городит свой велосипед с шифрованием, от которого толку будет не больше, чем от скайпа и BitTorrent-chat, раз они должны кому-то там подчиняться и сливать мою переписку. Посмотрите с точки зрения пользователя, а не производителя программ: есть программы — черные ящики, сливающие переписку из-за бестолковых законов, и есть торчат, простой как тапок, который в принципе ничего не может никому сливать, даже вашего местонахождения. Не представляю, чем должен руководствоваться пользователь, чтобы, зная это, выбрать первое. Так же и открытые исходники — это не абстрактный принцип, а жизненно важное требование для пользователя.
                                      0
                                      Так же и открытые исходники — это не абстрактный принцип, а жизненно важное требование для пользователя.

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

                                      и есть торчат, простой как тапок, который в принципе ничего не может никому сливать, даже вашего местонахождения

                                      Это пока он не представляет интереса для «органов»
                                        +1
                                        многие считают компьютер черным ящиком который живет своей жизнью.
                                        Это не значит, что такое отношение к компьютеру верно. Даже президент обращался к гражданам с призывом изучать программирование, потому что для людей выгоднее понимать, как работает машина, а не считать её чёрным ящиком. Именно гики должны задавать моду в айти.

                                        Это пока он не представляет интереса для «органов»
                                        Либо этим «органам» придётся запретить Tor, или они будут грызть ногти, так как иного сколько-нибудь эффективного способа помешать вести переговоры через торчат нет. Максимум, на что они когда-либо смогут надеяться — это выявление IP-адресов. Чтобы прочитать содержимое диалогов, им пришлось бы найти брешь в алгоритмах шифрования, проверенных годами.
                                          0
                                          Чтобы прочитать содержимое диалогов, им пришлось бы найти брешь в алгоритмах шифрования, проверенных годами.

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

                                            Более того, можно выбрать, какую версию у себя держать. Очень оправдан подход дебиана, когда багфиксы отправляются в старую версию кода, в которую ещё не успели принести новых багов вместе с фичами. К примеру, когда на линуксе ветки 3 обнаружили уязвимость, у меня ещё была версия 2.6, в которой этой уязвимости никогда и не было.
                                0
                                ru.wikipedia.org/wiki/RetroShare тогда уж.
                                Он заметно дольше развивается, и у него куча контрибьюторов, в том числе спецов именно по крипто.
                                А, ну и плагин для VoIP есть.
                                  +1
                                  Спасибо, не знал об этом проекте. Однако, как написано в википедии, по умолчанию оно не является настоящим даркнетом (то бишь IP-адреса вылезают наружу). Преимущество торчата в том, что в нем невозможно что-то перепутать с настройками и запустить его не в режиме даркнета или с отключённым шифрованием. Он был спроектирован, чтобы работать как даркнет. Поэтому он качественно превосходит варианты Jabber+OTR+Tor или Skype/X + VPN и тому подобные костыли, в которых инструмент из clearnet пытаются приспособить к даркнету. Ну и наконец, торчат есть в стабильном дебиане, а RetroShare нет.
                                  0
                                  Чем плох Bitmessage?
                                    +1
                                    Слишком долго нужно «раскочегаривать». Я честно пытался отправить с его помощью сообщение самому себе и дожидался его доставки целую вечность. TorChat активируется почти сразу и доставляет сообщения без серьезных задержек, позволяя использовать его именно как чат и сразу. А ещё Bitmessage нет в стабильном дебиане, а торчат есть.
                                  +1
                                  Дуров негодует )
                                    +2
                                    Не понятно зачем они изобретают заново закрытый аналог открытой системы Bitmessage ( ru.wikipedia.org/wiki/Bitmessage ) или у них есть хоть одно важное преимущество?
                                      0
                                      Так же можно вспомнить, что был ещё и TOX. Но видимо идея ещё не созрела или попросту не состоятельна.
                                      0
                                      Ну, может идея и интересна. Но взлетать это счастье будет долго, да и пока протокол откроют… Однако Ъ-децентрализация имеет кучу проблем.

                                      Имхо, федеративность (возможность существования и полноценной совместной работы разных инстансов) намного интереснее. Для примера можно взять такие вещи, как XMPP, GNU Social и StatusNet (федеративные социальные сети), SIP и подобные вещи.

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

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

                                      Самое читаемое