Bitmessage – Р2Р криптомессенджер


Программа для P2P-обмена зашифрованными сообщениями между двумя и более пользователями.
Техническое описани (PDF, eng[link1])
PyBitmessage (исходники на Питоне[link2])
Пошаговая инструкция по сборке исходников (Linux, Windows[link3])
У кого косячит под Дебианом, таки да – есть небольшой баг[link4], решается все предельно просто: файле pyelliptic/openssl.py прописываем полный путь к libcrypto.sylib: /usr/local/opt/openssl/lib/libcrypto.dylib
Запускал на Питоне 2.7.3., запускал вот так: /usr/local/opt/python/bin/python2.7 bitmessagemain.py
К ресурсам прожорлив в первые пять минут сожрал полностью одно ядро, ну в лучшем случае это подтверждает наличие "тяжелой" криптографии, ну а в худшем – кривизну реализации.
Хотелось бы услышать мнения завсегдатаев.
На вскидку я не увидел ничего такого, что заставило бы отказаться от легковесного mcabber с сгенеренным под него длинным GPG-ключем.
Спасибо за внимание.

Комментарии
Гость (25/03/2013 02:07)   
BitMessage[link5] – система обмена сообщениями, по мотивам BitCoin.
Гость (25/03/2013 11:46)   

В whitepaper по ссылке ругают PGP и Tor из-за их далёкости от народа, но в итоге предлагается то же самое. Как номер кошелька надо получить по аутентифицированному протоколу, так и id в bitmessage, поэтому от PGP отказаться не получится.

Далее, сам по себе bitcoin-протокол не даёт анонимности. Скорее, наоборот: там такое нагромождение взаимоподвтерждений, что это больше напоминает сеть доверия PGP, где все друг друга подписывают. Т.е. Tor всё равно понадобится. Затем, если есть Tor и PGP, то зачем что-то ещё? Странно, что авторы не упомянули ничего о возможностях разворачивания IM поверх скрытых сервисов Tor.

Наконец, есть и вопрос практичности. БД полноценного bitcoin'а сейчас весит 7.5 Гб, а успешный IM-протокол будет пухнуть ещё быстрее.

По ссылке[link6] есть красноречивый коммент:
I understand you’re promoting Bitmessage, but why don’t you list a GPG key anywhere on your site for people who want to contact you via the traditional email address you list?
Боюсь поинтересоваться, как обстоят дела с подписыванием софта.
Гость (26/03/2013 10:25, исправлен 26/03/2013 13:28)   

ID в bitmessage это хэш открытого ключа – PGP не нужно.


С анонимностью, как и в Bitcoin, к сожелению, не очень:

An active attacker who sends many messages to a particular address in a particular way may be able to determine whether or not the address is owned by a user at that particular Internet connection. Sergio has been finding similar vulnerabilities in Bitcoin and at present, no developers support the notion that Bitcoin (or Bitmessage) are truly anonymous without using Tor.

I believe, however, that users are safe from passive attackers like government intelligence agencies who eavesdrop on Internet backbones. The other five goals of the project are still met:


Decentralized
Trustless
Messages well‐encrypted and secure
Messages authenticated
Not require users to exchange and manage keys

тут[link7]


Для борьбы с распуханием там предлагается хранение базы в виде дерева, ограничение по времени – типа два дня, и принудительные затраты процессорного времени при генерации нового (или регенерации просроченного) сообщения пропорциональные его длине – в существующем варианте порядка 4 минут на типичном процессоре для типичного сообщения.


А как вообще на житьхабе[link2]с подписыванием софта? Требуется?

Гость (26/03/2013 12:06)   

Два дня немного не про это:
If a node is offline for more than two days, the sending node will notice that it never received an acknowledgement and rebroadcasts the message after an additional two days. It will continue to rebroadcast the message, with exponential backoff, forever. In the worst case, if a user is offline for n days, he must go back online and stay connected for n days (or connect once every two days for n days) in order to receive all of his messages.
Гость (26/03/2013 12:19)   
Хотя может и об этом...
We propose that nodes store all objects for two days and then delete them.
Гость (26/03/2013 14:09)   
ID в bitmessage это хэш открытого ключа – PGP не нужно.
Если вы расскажете, как получить достоверный хэш без использования цифровой подписи (читайте, PGP), получите премию за крупный прорыв в криптографии. Отпечаток PGP-ключа — тоже хэш, обмениваются именно им. Вас это не смущает?
Гость (26/03/2013 18:55)   
Например по телефону голосом продиктовать. Что тут должно смущать? В клиент bitmessage вшита ассиметричная криптография – ECC, только пользователь об этом может и не знать.
Гость (27/03/2013 02:06)   
Например по телефону голосом продиктовать. Что тут должно смущать?
То, что после этого ключ достатётся всего одной командой
$ gpg --keyserver subkeys.pgp.net --recv-keys 0xXXXXXXXX
Можно написать гуйню под это дело. Слышал, что в почтовых клиентах для людей поиск ключа на сервере — штатная опция. Я бы собрал дистр, куда включено и автоматически настроено Tor, PGP и Jabber. Это куда проще и более интегрируемо в современную инфраструктуру, чем новый протокол под такой чих, как IM. Опционально jabber-сервер можно сделать на скртых сервисах. Тогда оно будет даже лучше биткоина. Или просто end2end-IM наподобие того, как работает torchat. Вот реально, зачем изобретать в 10 раз худший велосипед, когда можно попытаться довести до ума torchat или написать его аналог?
Гость (27/03/2013 08:43)   
Я бы собрал дистр
Вот соберите и выложите.
Гость (27/03/2013 08:54)   
зачем изобретать в 10 раз худший велосипед, когда можно попытаться довести до ума torchat или написать его аналог?
Я думаю изначально понадеялись на анонимность Bitcoin-протокола. Была бы полностью децентрализованная система, не зависящая от нескольких корневых серверов-директорий. Ну и от спама защищённая к тому же.
— sentaus (28/03/2013 00:00, исправлен 28/03/2013 00:01)   

Ну для instant messaging эта штука в нынешнем виде точно не годится. Концепция "все получают всё" непригодна для этого. Научить бы эту штуку находить адресата, скажем, за O(log(n)) пересылок... :)

Гость (28/03/2013 01:11)   
Обязательно надо было открыть новый топик, когда обсуждение уже сто лет в обед идёт в другом месте[link8]? Закапывайте.
Гость (29/03/2013 16:54)   
Наоборот, надо оттуда сюда перенести, там всё-таки несколько другая тема.
— SATtva (29/03/2013 17:21)   
Комментарии перенесены сюда, там им действительно не место.
— ressa (29/03/2013 23:57)   
Я бы собрал дистр, куда включено и автоматически настроено Tor, PGP и Jabber

Ты бы лучше, если можешь и есть время – скрипт для голого Дебиана накатал с установкой, настройкой указанных приложений + какой-нибудь Privoxy или правило для iptables. Действительно полезно было бы, для быстрого разворачивания "блок-поста")
Гость (30/03/2013 04:48)   

Специалист по Debian'у — unknown, но он своё мнение уже озвучил[link9]. И, вообще[link10]:
я критически оценил свои возможности, решил, что не потяну.
Более развёрнуто на эти просьбы один Гость высказался[link11]. Его ответ, пожалуй, многие бы тут поддержали из тех, кто что-то собрать может (и я в том числе).

По поводу
скрипт для голого Дебиана накатал с установкой, настройкой указанных приложений + какой-нибудь Privoxy или правило для iptables:
Правила для iptables есть и на сайте Tor и у нас[link12]. Опять же, их лучше адаптировать с умом, предварительно поняв, как они работают. Никто не поручится, что на любом свежеинсталлированном дебиане и на любой его версии всё это заработает. А создавать проект, который это будет отслеживать и оперативно обновлять его — много затрат и мало толка, да и неинтересно. Как установить Tor в Debian описано в соответствующих инструкциях довольно подробно. Как установить тот же Psi/gajim — тоже. Дальше остаётся в их настройках включить элементарные опции. Редко кому надо каждый день настраивать новую систему с нуля, потому скриптованием всех производимых настроек мало кто занимается. Даже если и написать такой скрипт, нет гарантий, что он окажется полезным через год-два, когда будет обновлена ОС.
— unknown (30/03/2013 11:19)   
Помимо перечисленного. Есть разница: делать live-сборку для себя или для других.

Гораздо проще собрать что-то вроде такого live-USB для себя. Т.к. например я знаю, как я подключаюсь к сети. И если понадобиться подключиться по другому, то поправлю всё что надо под свой случай.

А теперь представим, что надо поддерживать пользователей за роутерами со статикой, напрямую с локалками и модемами DHCP, PPtP, с беспроводными модемами-свистками 3G-4G, с Wi-Fi и всё это сконфигурить, сделать автовыбор из коробки, разрулить файрволлом.
Прикрутить внятные диалоги-менюшки для настройки, парсеры конфигов и пр.

Проще неуниверсальный вариант для себя вручную сконфигурить и не ставить (выкинуть) ненужное. И безопаснее и поддерживать проще: не надо вникать в присланные сообщения об ошибках на чужом незнакомом железе, проще готовить обновления и тестировать под свой неуниверсальный вариант и пр.
Гость (30/03/2013 16:14)   
unknown, а Вы где скилы по дебиану прокачивали? Или админом работаете просто?
— unknown (30/03/2013 20:43)   
Ну можете считать, что это профнавык, вам то это чем поможет? Единственный способ по-настоящему "прокачаться" это оставить какую-то систему единственной рабочей на всё время, хотя бы у себя на домашних компах, без дуалбута.
— unkonwn (30/03/2013 22:33)   
Или админом работаете просто?
Хуже. В библиотеке[link13].
— ressa (30/03/2013 23:16)   
Хуже. В библиотеке.

похоже на неправду)
Ну точнее на сарказм;)
Гость (31/03/2013 09:53)   
Ну почему, библиотека – весьма неплохое место. Спокойное, безопасное, доступ к информации есть... Просто надо было спрашивать, где он раньше работал ;)
— SATtva (31/03/2013 10:43)   

И получили бы такой[link14] ответ.
Гость (31/03/2013 22:58)   
Просто надо было спрашивать, где он раньше работал
И получили бы такой ответ.
А может и какой-то такой[link15], кто его знает...
— SATtva (01/04/2013 18:30)   
А может и какой-то такой, кто его знает...

А spinore Google всё бы запомнил для грядущих поколений.
Гость (01/04/2013 23:33)   
SATtva, поменяйте ваш пароль. Кто-то его сбрутфорсил и теперь флудит[link16] от вашего лица в разных ветках.

Мы — гости, нам флудить можно, вы — администратор, официальное лицо ресурса, поэтому из-под вашего ника флудить нельзя.
Гость (25/08/2013 22:30)   
Новость на тему. «Опубликованы IP-адреса 500 пользователей Bitmessage»[link17]. Мораль: не ходите по непонятно каким ссылкам.

P.S. User agent'ы намекают на контингент пользователей bitmessage. Объём винды зашакаливает.
Гость (25/02/2014 04:08)   

Это не мессенджер совсем, это почта + рассылки + децентрализованные анонимные списки рассылок.
Была бы волшебная штуковина, если бы было хорошее решение этих проблем -
https://github.com/Bitmessage/PyBitmessage/issues/264
https://github.com/Bitmessage/PyBitmessage/issues/648
Гость (02/05/2015 16:21)   

I[link19]f I send my Address and a link to the software, can our future communications be uncovered?

No. Active attacker can always execute the MITM attack and your recepient won't get the correct Bitmessage address. You need to send the address via authentic channel: by personal meeting if you know the recepient, by phone call if you know the voice, etc. If you have PGP key which is already trusted by the recepient, then you can simply sign your address with it.

The same for software: since PyBitmessage isn't signed by Atheros you need to download the source and audit it by yourself. Then again, pass the source (or commit hash) via some sort of authentic channel.

[irony]
PGP-одпись на софте только вредит. Если софт не подписан, значит, за неимением альтернатив, найдётся больше желающих проверить код, а, следовательно, код таких проектов будет более безопасным.
[/irony]
Гость (03/05/2015 03:36)   

Только полный идиот может написать такое. Какой именно код проверить? Как проверить, что проверен именно тот код, который тобой скачан?
Гость (03/05/2015 03:55)   

Который скачан.


Это не нужно проверять. Достаточно знать, что в скачанном коде нет ошибок. Для себя лично этого хватит.
Гость (03/05/2015 19:36)   
Тогда к чему все эти разговоры о "многих желающих проверить код" которые сделают этот код более безопасным? Если единственный кто будет проверять используемый тобой код это ты сам.
Гость (03/05/2015 20:38)   
Замечание справедливое, но там сразу был тэг «irony». Если говорить о полном параллелизме, то автор предлагает после самостоятельной проверки кода публиковать хэш и обмениваться хэшами в рамках своего графа связи, можно даже через аутентифицированные каналы.

Tor-девы вот тоже понимают ущербность всецелого полагания под PGP-подпись, поэтому приветствуют детерминистичные сборки. Впрочем, чем они смогут помочь при ошибках в самом коде — вопрос.

Ссылки
[link1] https://bitmessage.org/bitmessage.pdf

[link2] https://github.com/Bitmessage/PyBitmessage

[link3] https://bitmessage.org/wiki/Compiling_instructions

[link4] https://github.com/Bitmessage/PyBitmessage/pull/48

[link5] https://bitmessage.org/wiki/Main_Page

[link6] http://cryptojunky.com/blog/2013/03/09/setting-up-and-using-bitmessage-an-encrypted-communications-platform-based-on-bitcoin/

[link7] https://bitmessage.org/forum/index.php/topic,1414.msg1460.html#msg1460

[link8] https://www.pgpru.com/comment62227

[link9] https://www.pgpru.com/comment61903

[link10] https://www.pgpru.com/comment59668

[link11] https://www.pgpru.com/comment60513

[link12] https://www.pgpru.com/biblioteka/rukovodstva/setevajaanonimnostj/prodvinutoeispoljzovanietorvunix/razdeljnoeispoljzovanietorbrowserssistemnymtoriprozrachnajatorifikacija

[link13] https://www.pgpru.com/comment24197

[link14] https://www.pgpru.com/comment7723

[link15] https://www.pgpru.com/comment16713

[link16] https://www.pgpru.com/comment62370

[link17] http://www.xakep.ru/post/61132/default.asp

[link18] https://www.pgpru.com/comment62240

[link19] https://www.reddit.com/r/bitmessage/comments/2x6zk0/what_is_the_best_way_to_invite_someone_to/