Bitmessage — программа для P2P-обмена зашифрованными сообщениям

Совсем недавно состоялся выпуск бета версии новой программы для P2P-обмена зашифрованными сообщениями между двумя пользователями или группой пользователей. Выпуск бета версии Bitmessage состоялся 21 марта В ней используется сильная криптография, которая надёжно защищает абонентов от прослушивания на уровне интернет-провайдера (СОРМ) или на сервере, как в случае Skype и других, которые пропускают трафик через себя.



Дальнейшее описание с исходниками под катом.

Система криптографии практиески в точности копирует схему, которая используется в P2P-системе Bitcoin. Более подробно ее можно изучить в техническом описании(pdf, на английском языке).

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

Так же доступны исходные тексты утилиты (код на github).
Клиент под Windows
Пошаговая инструкция по компиляции исходников под Linux и Windows
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 92

    +17
    Каждый подобный пост вызывает непродолжительное обострение паранойи.
    Заодно можно и успокоить её тут.
    • UFO just landed and posted this here
      • UFO just landed and posted this here
        +1
        Давайте потестим с кем-нибудь, что ли)?
        BM-BbkPSZbzPwpVcYZpU4yHwf9ZPEapN5Zx
          0
          о, чьё-то пришло =)
            0
            Я, ежели что, спать утопал — завтра поотвечаю всем.
              +3
              А теперь докажите что Вы — это именно Вы,
              например, в предположении, что заинтересованный в прослушивании Ваших сообщений «специалист» имеет возможность модифицировать получаемые и отправляемые Вами или Вашими абонентами страницы на Хабр.
                0
                Да, неприятный момент.
                Но с другими IM/почтами — та же беда (ну кроме скайпа и voip over jabber по понятным причинам). Так что парольная фраза, содержащую в себе дату, передаваемая в виде md5 с солью между живыми людьми в начале беседы всё равно рулит.
                  +2
                  Странные у вас методы. Вообще, как раз для этого было придумано асимметричное шифрование и Key Signing Party.
                    0
                    Ключи крадутся.
                      0
                      А фразы подделываются :)
                      Вообще, люди, у которых можно украсть ключ, как правило не слишком озабочены собственной безопасностью. Так что, тут в большей степени будет влиять уже не техническая сторона вопроса, а социальная.
                        0
                        Если алгоритм создания фразы в голове — то украсть его несколько сложнее, чем файлик с диска (пусть даже и запароленный).
                          +10
                          Дорогой, для того, чтобы подтвердить что это ты: Возьми дату нашей свадьбы в формате d-m-Y добавь к ней день нашего знакомства в том же формате, потом добавь к этому цвет моего платья в котором я была на свадьбе Маши и Пети маленькими буквами без оттенков (т.е. один из семи цветов радуги), далее добавь даты рождения троих наших детей в том же формате.
                          Полученную строку в UTF-8 пропусти через md5, и напиши мне количество символов которое у тебя получилось.
                            0
                            Аха, вроде того.
                            Только там ещё текущее время/дата фигурировать должны.
                              +16
                              32 ;)
                                0
                                Вот-вот. Пример как раз подразумевал показать два слабых места такого подхода — фиг ты вспомнишь цвет платья, а если сделать меньше моментов которые надо вспоминать, то можно и подобрать/угадать.
                                Ну и второе, да то как можно испортить самую непроходимую авторизацию :)
                +1
                Очень уж оно для параноиков, видно. Ядро i7 при отправке сообщения стабильно кушает.
                  +7
                  Скоро прикрутят использование GPU и будет в мессенджере системные требования GPU: Radeon HD 7970 :)
                    +7
                    СОРМ скоро будет отапливать квартиры не хуже ТЭС.
                    +3
                    Это потому что на питоне. \кэп
                    0
                    Как насчет законности сильной криптографии для физических и юридических лиц в этой стране?
                      +12
                      Очевидно, это софт для тех, кого защита конфиденциальных данных интересует больше законности.
                        +8
                        Всё равно не накажут.
                        +2
                        Использование своими силами допустимо без лицензирования вроде как. Предоставление услуг, поддержка, разработка и т. п (включая все формы аутсорса) — лицензия нужна, начиная с каких-то длин ключей.
                          0
                          Вроде как только при работе с гос. структурами. Если же вы с ними контрактов не заключаете, то можете делать что хотите.
                        0
                        BM-omyJaPvLb2S7a5dGcvnRXbukJd2FvmegH
                        Тестируем-с.
                          +1
                          А чем плох OTR (http://ru.wikipedia.org/wiki/Off-the-Record_Messaging) поверх чего угодно?
                          • UFO just landed and posted this here
                            +5
                            А звонить ещё не умеет? Я бы со скайпа перешёл.

                            Кто-нибудь запустил по MacOS? У меня ругается на отсутствие OpenSSL, который точно стоит.

                            Тут был похожий баг под Debian-ом — github.com/Bitmessage/PyBitmessage/pull/48, но я пока не осилил эту магию.

                            Если кто подскажет «заклинание» — буду рад.

                              +1
                              Я открыл баг и там же описал workaround: github.com/Bitmessage/PyBitmessage/issues/76

                              OpenSSL поставил через brew, а в файле pyelliptic/openssl.py прописал полный путь к libcrypto.sylib: /usr/local/opt/openssl/lib/libcrypto.dylib

                              Но это не всё: теперь ему не нравится версия SQLite, поищу где свою сборку надо прописать.
                                +1
                                Ок, справился с SQLite: поставил python 2.7.3 через brew.

                                И запускал так:

                                /usr/local/opt/python/bin/python2.7 bitmessagemain.py
                                


                                Заработало!
                                  +1
                                  Мда, на моём макбуке теперь можно жарить яичницу =)
                                +1
                                Три минуты с лишним стабильно жрало 100% одного ядра, держа сообщение в статусе «doing some work required to send message». Не выдержал и снёс. Это всё очень здорово, но по-моему, можно просто сгенерить подлиннее PGP ключ и использовать какой-нибудь уже имеющийся PGP клиент (mcabber).
                                Если возьмут за чуствительное место вашего собеседника, вашу переписку так или иначе всё равно прочтут.
                                • UFO just landed and posted this here
                                    0
                                    Для почты подобное существует уже пару десятков лет.

                                    Мне по роду деятельности сейчас приходится бороться со спамом, и на моём хилом ноутбуке разбор сообщения и его классификация занимает доли секунды.
                                    • UFO just landed and posted this here
                                • UFO just landed and posted this here
                                    0
                                    сильная криптография
                                    Сильно))
                                      +1
                                      Еще бы добавить возможность обмена голосом и видео и скайп можно удалять с компьютера.
                                      • UFO just landed and posted this here
                                          +1
                                          Или заточенный для Bitmessage ASIC-VIDEO for Bitmessage.
                                            0
                                            Ну на самом деле текущий движок bitmessage можно использовать для рукопожатия с обменом ключами сессии. А дальше уже вести связь просто р2р. Так что не так уж оно и маловероятно.
                                            0
                                            Обмен голосом: записать файл, закодировать его в MIME, например, и отправить по Bitmessage.
                                            С видео тоже так можно.

                                            А вот если нужна конференция в реальном времени — надо думать над другими методами. С другой стороны, не думаю, что всё упрётся именно в мощность компьютера. По-моему, при такой схеме передачи данных, канал будет съедаться значительно быстрее вычислительной мощности.
                                          • UFO just landed and posted this here
                                              +2
                                              Этой штуке определённо не хватает мультиюзерчатов.
                                              • UFO just landed and posted this here
                                                  +2
                                                  Да, тут можно много наворотить, были б энтузиасты. Текущая версия очень напоминает макет программы, а не саму программу.
                                                • UFO just landed and posted this here
                                                    0
                                                    Есть рассылка подписчикам. Нужно N людям всем друг на друга подписаться и писать бродкастом. И только один список, хех. Плюс процедура добавления нового участника…

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

                                                      Мне кажется должен быть админ, у которого есть ключ соответствующего ID. Этот админ может выдавать модераторские права, и добавлять/удалять пользователей в чат. Модератор только добавляет/удаляет. Добавление пользователя осуществляется выдачей ему ключа по письму на адрес чата. Сообщения на адрес чата от неучастников получают только админы/модеры, все остальные сообщение на адрес чата получают все.
                                                      • UFO just landed and posted this here
                                                          0
                                                          Можете показать реальный пример использования?
                                                          Вот как мне сделать такой «чатрум»?
                                                          • UFO just landed and posted this here
                                                              0
                                                              Спасибо, интересно.
                                                              А как оно ведет себя когда хозяин чата оффлайн?
                                                              И вообще как оно работает.
                                                              Попробую создать, посмотрим.
                                                              • UFO just landed and posted this here
                                                                  0
                                                                  Так как я описал это конечно слабовато, второй вариант был бы лучше, ну да ладно.

                                                                  Создал: BM-BbtSwdV95YLwjRVytmPygHygL4LGEER6
                                                                  А как оно список подписчиков создаст? Все кто писал, тем будет слать? Или как-то иначе?
                                                                  UPD: правильно я понял, что подписка идет автоматически при добавлении в подписку у пользователя, и мне собственно не известно кто подписан на мой чат?
                                                                  • UFO just landed and posted this here
                                                                      0
                                                                      В чат пришло два тестовых сообщения от разных отправителей.
                                                                      Получили ли вы их?
                                                                      К необходимости быть онлайн добавилась еще одна сложность — я не могу отправить сообщение сам себе. Выбирал любые акки отправителя — не работает.
                                                                      Предлагают запустить другую копию программы на другом компьютере.
                                                                      Администрирование чата по идее возможно путем ченобелых списков. Раз уж для чата требуется отдельный экземпляр базы, то это не критично.

                                                                      Вопрос: можно ли запускать несколько экземпляров программы на разных компах с одним ключем — одновременно? Если они будут только ретрансляторами, то по большому счету не важно, если сообщения будут доходить только до одного из них — первого кто попадется. Но не будет ли конфликтов каких?
                                                                        0
                                                                        Похоже, что получают сообщения только те, кто подписались на чат.
                                                                        (т.е. добавить ИД в Subscriptions).

                                                                        ПЫСЫ: Господа, вы бы назывались хоть как-то чтоль :)
                                                                        А то адресная книга с записями «Аноним № 16» меня уже смущает.
                                                                        • UFO just landed and posted this here
                                                                          0
                                                                          Из чата попросили выложить ссылку на русскоязычный раздел официального форума.
                                                                          Выкладываю: bitmessage.org/forum/index.php/board,3.0.html
                                                        • UFO just landed and posted this here
                                                        0
                                                        Можно сгенерировать и раздать один ключ всем участникам и писать сообщения на него. В клиенте не реализовано, но протокол позволяет.
                                                          0
                                                          Бан одного участника подразумевает замену ключа, т.е. фактически создание нового чата.
                                                            0
                                                            Да. Но это тонкости реализации, которые в программе могут быть скрыты «под капотом».
                                                        0
                                                        Мдымс. В оффлайн сообщения не долетают.
                                                          +1
                                                          Лично мне не интересно. Несколько лет уже есть i2p-bote (распределенный «e-mail») и i2p-messenger (распределенный IM). И без неадекватных нагрузок (не более, чем кушает сам роутер).

                                                          Подробнее про i2p-bote: www.wikireality.ru/wiki/I2P-Bote
                                                          • UFO just landed and posted this here
                                                            0
                                                            Интересно как это повлияет на индустрию вирусов если взлетит?

                                                            ПЫСЫ: Мой тестовый адрес: BM-BbgC8db6upPtEXvHeYghab2SDuTxTd5q
                                                              0
                                                              UPD: На пинги больше не отвечаю, нет времени.
                                                              Советую пинговать эхобота на BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb
                                                              –2
                                                              А чем это решение лучше собственного Jabber сервера?
                                                                0
                                                                Децентрализованностью
                                                                  0
                                                                  Я ставлю себе локальный Jabber сервер, Вася ставит себе локальный Jabber сервер. Где централизованность?
                                                                    0
                                                                    И как вы друг о друге узнаете? Доменная система она не просто в воздухе висит, она существует, и является «централизованной».
                                                                    Домены можно банить, айпишники куда оно резолвится вычислять и т.п.
                                                                    • UFO just landed and posted this here
                                                                        0
                                                                        Если действительно позарез нужна сильная криптография, то домен, IP и скилы проблемой не будут.
                                                                        • UFO just landed and posted this here
                                                                        0
                                                                        Помимо описаного ниже при смене Вашего IP Ваши оппоненты теряют связь с Вами. Плюс отсутствует возможность полноценных оффлайн сообщений. Доставлены они будут только тогда, когда оба сервера в сети.
                                                                    +4
                                                                    Дальнейшее описание с исходниками под катом.

                                                                    Зашел под кат, увидел четыре ссылки и фразу «Система криптографии практиески в точности копирует схему, которая используется в P2P-системе Bitcoin»

                                                                    Познавательный пост, спасибо
                                                                      +1
                                                                      И да, забыл совсем, есть еще Cables Communication
                                                                        0
                                                                        По ссылке и исходникам не понял, как обстоят дела с пробитием NAT.
                                                                          0
                                                                          Я за двумя NAT-ами. Светофор желтый. (там внизу есть кружочек, кликабельный).
                                                                          Т.е. я сообщения получаю, но сети от меня одни расходы.
                                                                            0
                                                                            Пробивать ничего не надо, клиент соединяется с кем-нибудь и скачивает/закачивает нужную информацию. Сижу за НАТом, всё работает.
                                                                              0
                                                                              Речь о ситуации, когда NAT с двух сторон и ни одного участника, через которого можно проложить маршрут, нет.
                                                                              • UFO just landed and posted this here
                                                                                  0
                                                                                  Понятно, спасибо :)
                                                                                  (Прошу прощения за минус к комментарию, мисклик, возместил в карму)
                                                                                  0
                                                                                  Корреспондентам не нужно соединяться напрямую. Им достаточно иметь соединение хотя бы с одним узлом сети, чтобы сообщение попало в сеть и дошло адресату. Если никого нет онлайн, то ничего не выйдет. Но даже сейчас я соединён с 8-ю узлами, когда сеть станет популярнее, проблем не будет вообще.

                                                                                  Да и то, я подозреваю, 8 это максимальное число соединений, а реально онлайн сидит больше людей.
                                                                                    0
                                                                                    Ну а как узлы узнают друг о друге? Раз узнали через кого-то, значит и связь через них можно держать.
                                                                                    Сеть не предназначена на работу в условиях когда слишком мало узлов.
                                                                                      0
                                                                                      Сеть не предназначена на работу в условиях когда слишком мало узлов.
                                                                                      Именно этот вариант меня и интересовал, спасибо :)
                                                                                • UFO just landed and posted this here
                                                                                    0
                                                                                    Не обязательно если рассматривать это как единую сеть, но мешает использовать технологию для создания собственной подсистемы на основе — при малом количестве участников и частом NAT будет уйма проблем. Интересуюсь, потому что приходил заказ на создание чего-то похожего для бизнес-коммуникаций, интересно, можно ли использовать в своих целях.
                                                                                  +1
                                                                                  Нужна помощь питонистов сделать работу с этой системой немного более юзерфрендли.
                                                                                  Я пытался сам, но реально «Чужая среда — потемки».
                                                                                  Сыплюсь на элементарном.
                                                                                  Топик с вопросами на официальном форуме здесь.
                                                                                  Спасибо.

                                                                                  Only users with full accounts can post comments. Log in, please.