Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Леонид Каганов ([info]lleokaganov)
@ 2014-10-02 21:07:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:программирование

Олег Ховайко - уязвимость Биткоинов и остальных криптовалют?

Мой друг из далекой страны занимается всякими финансовыми разработками, в том числе криптовалютами. И обнаружил прелюбопытнейшую вещь. Вкратце оказывается:

1. Биткон устроен так, что в нем (в коде) изначально вшиты два фиксированных адреса для установления соединений, удивитесь: http://checkip.dyndns.org и http://www.showmyip.com (второй давно уже не работает). Образно говоря, вся система связей сети Биткоин держится на неком ржавом гвоздике в ведомстве одного сомнительного сайтика.

2. Таким образом, в «час икс» при отключении этого несчастного http://checkip.dyndns.org система Биткоин сразу конечно не умрет, но начнет деградировать в плане связности, и в течение от 3 дней до недели (по оценкам Олега) в ней начнутся ощутимые проблемы.

3. Кроме того, при каждом запуске электронного кошелька загадочный checkip.dyndns.org получает информацию о вашем IP и знает, что вы запустили кошелек Биткоинов (и собрались, видимо, делать транзакции). А этого уже при хорошей организации слежки на стороне провайдера достаточно, чтобы отследить все дальнейшие транзакции.

4. Крайне любопытно ведет себя при этом администрация Биткоинов: несмотря на то, что эта тема уже возникала, они всячески пытаются замести вопрос под ковер и убрать его из веток обсуждения.

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

6. И всё это относится не только к Биткоинам, а практически ко всем криптовалютам (их сегодня больше 300), которые практически все унаследовали от Биткоинов этот код со вшитым именем сайта.

В общем, почитайте статью Олега, там интересно.

© Олег Ховайко http://emc.cc.st/detective-stun.html

Детективно-загадочная история

В которой участвуют dyn.com, Lochkeed Martin, Bitcoin, SIP-телефония, EmerCoin и много других людей и организаций, как известных, так и к известности не стремящихся.

Доброго дня, Читатель!

Хочу поделиться информацией об интересной истории, которая разворачивается на наших глазах.

Мы разрабатываем и развиваем криптовалюту EmerCoin (http://emercoin.com/). Валюта существует довольно долго, но мы не стремимся к дешёвой шумихе и надуванию спекулятивного пузыря, поэтому наш продукт малоизвестен в широких массах. Хотя EMC и на бирже торгуется, и имеется обменник, и участие в ряде проектов. Детали тут: http://emercoin.com/emercoin-services/

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

Началась же история с простого и банального факта. Анализируя исходный код, унаследованный нами от PeerCoin-a (а им в свою очередь от BitCoin-a) мы обнаружили часть кода, где происходит получение внешнего IP адреса. Код написан был явно впопыхах, и для получения внешнего IP обращается к двум серверам, адреса которых «вшиты» в исходный код программы-кошелька:

http://checkip.dyndns.org

http://www.showmyip.com

Мы удивились, и решили проверить, как современный BitCoin справляется с этой задачей. И удивились ещё больше когда увидели, что старый код от Сатоши продолжает использоваться до сих пор, без каких бы то ни было изменений. Смотрите: https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp, function GetMyExternalIP()

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

Небольшое исследование выяснило, что сервер http://www.showmyip.com в настоящее время недоступен, и все запросы кошельков за IP обрабатываются единственным оставшимся сервером http://checkip.dyndns.org.

Осознав этот факт, мы были просто шокированы. Подумать только! Новая экономика, декларируемая децентрализованность, полная независимость от правительств, многомиллиардные капиталы, одни правительства не знают, что с этим делать, другие — принимают какие-то законы.. А весь сетевой протокол этой новой экономики висит на одном-единственном ржавом гвозде по имени http://checkip.dyndns.org, скромно торчащем из карты штата New Hampshire!

Естественно, мы стали исследовать, обращал ли кто-либо внимание на этот вопиющий факт зависимости всей сети от единственного сервиса, предоставляемого какой-то небольшой и малоизвестной американской компанией, не входящей в SP500. И обнаружили ряд дискуссий и запросов на устранение этой уязвимости, например:

www.reddit.com/r/Bitcoin/comments/29zx7z/bitcoin_core_uses_showmyip_as_a_centralized_hard/

https://github.com/bitcoin/bitcoin/pull/3461

Однако, ответы разработчиков биткоина сводились к банальному: «Не обращайте внимания, и так работает, и даже если сервис будет недоступен для кого-то, ничего страшного не случится. Ну какие-то клиенты не смогут установить прямое соединение.. Но это же мелочи!» При этом игнорировались два факта:

Если сервер выйдет из строя, то сеть не рухнет, но прямые связи будут устанавливаться с пониженной вероятностью, что снизит связность сети, и, как следствие, надёжность. Это неприятно, но может быть, и не критично.

Каждый раз, когда кошелёк запрашивает свой внешний IP у http://checkip.dyndns.org, он, естественно, рапортует своей сигнатурой: «Эй! На этом IP-address запустился биткоин-кошелёк!». А это уже серьёзно. Ибо люди обычно запускают кошельки, когда им надо куда-то что-то заплатить или посмотреть приход. И связать время транзакций (которые все публичны) с временем запуска кошелька, тем самым получив IP кошелька, не так уж сложно. Ну а по IP можно узнать много интересного о подписчике, да..

Вы еще не до конца поняли, что это значит? А значит это то, что:

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

Этот таинственный админ знает каждого владельца каждого кошелька.

Мы осознали, какую серьёзную угрозу анонимности и прочим заявленным свойствам биткоина несёт эта централизация, и решили избавиться от неё в нашем проекте. Вместо единственного WEB-сайта мы использовали список из 263 STUN-серверов, которые помогают пройти через NAT-ы другой пиринговой сети — SIP-телефонии (ибо каждый SIP-телефон является и клиентом, и сервером). Для получения внешнего IP наш клиент обращается к случайным STUN-серверам, разбросанным по всему миру. Поэтому накопление истории запросов в любом из них уже не имеет смысла, так как в лучшем случае, сервер сможет собрать менее полпроцента случайных адресов, что делает собранный список практически бесполезным. Кроме того, мы приняли меры для того, чтоб избавиться от явной или постоянной сигнатуры запроса, и запрос EmerCoin-а сложно отличить от запроса любого SIP-аппарата или телефонного коммутатора. Таким образом, мы достигли своих целей: Избавились от централизованного сервера, в сотни раз увеличили надёжность сети, и удалили механизм, докладывающий на dyndns о местоположении кошельков.

После этого сделали анонс технического решения и обновлённого Emercoin-а как в нашей ветке форума, так и на форумах биткоина. В анонсе мы описали недостатки текущей системы, и наше решение. Анонсы здесь:

Русскоязычные:

https://forum.btcsec.com/index.php?/topic/3408-emercoin/page-45#entry189327

https://forum.btcsec.com/index.php?/blog/38/entry-258-stun-protokol-dlia-kriptovaliuty/

Англоязычные:

https://bitcointalk.org/index.php?topic=736721

https://bitcointalk.org/index.php?topic=362513.msg8359826#msg8359826

https://bitcointalk.org/index.php?topic=134731.0

О пункте 5: Кто-то когда-то тоже спрашивал «А не добавить ли STUN», но и его разработчики биткоина просто проигнорировали.

И тут начались настоящие чудеса:

Сообщение [3] было оперативно перенесено администраторами из широко читаемого технического форума в форума альтернативных валют, которые мало кому интересны. Хотя сообщение как раз имеет прямое указание на техническую уязвимость биткоина. На сообщение же [5] разработчики биткоина нам прямо указали, что не стоит поднимать эту старую тему: Also, your post is barely on topic and you've bumped a pretty old thread. Please don't do that. То есть налицо видна тенденция к замиинанию темы биткоинщиками. Интересно также отношение различных комментаторов к нашему нововведению. Разработчики биткоина недовольны, и считают это глупостью ( Thats a really foolish method ). Зато другие люди, не связанные напрямую с разработкой и поддержкой биткоина, рассматривают наше нововведение как полезное и нужное. Вот парадокс!

Мы заинтересовались причиной такой негативной реакции строго очерченной группы людей, и начали выяснять, что ж такого интересного представляет собою так любимый ими dyndns.org, с которым они никак не хотят расставаться.

Давным-давно это была небольшая компания, предоставлявшая динамический DNS мелким пользователям бесплатно или за небольшую сумму. И если эта мелкая компания в 2010-м покупала мелкие бизнесы «из одного программиста и одного сервера» своей направленности (динамический DNS, и т.п.), то потом, после паузы, в 2013м фирма резко выросла, и стала скупать компании, владеющие собственными технологиями:

http://en.wikipedia.org/wiki/Dyn_%28company%29#Acquisitions

Заметим — технологиями мониторинга интернета, к динамическому DNS отношения не имеющими. А в начале 2014го, примерно как раз, когда были слушания в конгрессе США, и биткоин держался свыше $1000, компания закрыла поддержку бесплатных акаунтов:

http://dyn.com/blog/why-we-decided-to-stop-offering-free-accounts

А на платные взвинтила цену так, что по сравнимой цене можно арендовать статический IP. Таким образом, по сути, компания закрыла свой изначальный бизнес... Весь.. Кроме http://checkip.dyndns.org, который так любят разработчики биткоина. И который, по сути — технология мониторинга активности пользователей биткоин-кошельков. Возникает законное любопытство — откуда у компании появилось сразу столько денег, что она закрывает основной бизнес и бросает клиентскую базу, и при том в течение года скупает 3 компании с технологиями мониторинга сети, в добавок к «на халяву доставшейся от Сатоши»? Но понятно, что на этот вопрос вряд ли кто нам даст вразумительный ответ.

И, напоследок, мы решили выяснить, что же случилось с другим адресом, который использовал когда-то Сатоши — http://www.showmyip.com, и который сейчас почему-то не работает. И выяснилось, что он принадлежит некому Уэсли Кензи (Wesley Kenzie aka Securikai) из Канады, что подтверждается данными whois. Чем он занмался — http://safezone.cc/threads/tajpskvotter-vymogatel-popal-na-million-dollarov.18030/ Но когда он перебежал дорогу Lochkeed Martin на почве киберсквоттинга, то был окорочен. Как раз вовремя. Только его твиттер и остался: https://twitter.com/securikai

Вот какие интересные совпадения бывают, не правда ли?



это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2014/10/02_emercoin.html