Brainflayer: взломщик мозговых паролей

41
ПОДЕЛИТЬСЯ

Human head MRI dot matrix, artwork

Для фанатов Биткойна, понятие “мозговой кошелек” давно ассоциируется с идеальным методом хранения криптовалюты: необходимо просто запомнить сложную фразу, и вы уже можете держать ключ от криптовалютного кошелька, содержащего миллионы долларов, у себя в голове. При этом нет никакой необходимости в дополнительных записях на компьютере.

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

Райан Кастеллуччи планирует обнародовать своё творение в следующем месяце на хакерской конференции DefCon. Он называет свою программу Brainflayer (дословно – свежевальщик мозгов). Её функционал позволяет взламывать мозговые кошельки. На самом деле, мудрым биткойнерам уже давно известно, что мозговые кошельки, несмотря на хранение криптобогатств в глубинах пользовательского мозга, часто бывают небезопасны. Кастеллуччи говорит, что его программа-взломщик предназначена для проведения публичной демонстрации этой уязвимости для тех, кто еще не в курсе сложившейся ситуации, а также для того, чтобы положить конец этой порочной практике.

“Люди по-прежнему хотят пользоваться мозговыми кошельками, так как им нравится идея ключа, хранимого в голове… Они отрицают всю плачевность ситуации, и некоторые из них бывают наказаны за свою халатность”, – говорит Кастеллуччи, работающий исследователем в компании White Ops, специализирующейся на кибер безопасности. Он также заявляет, что его программное обеспечение, которое он планирует опубликовать на сайте в момент своего выступления в следующем месяце, призвано послужить предупреждением: “Пожалуйста, переместите свои биткойны в место, где им ничего не будет угрожать. Вот доказательство, что такой способ хранения небезопасен”.

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

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

Кастеллуччи впервые написал взломщик мозговых паролей от кошельков (которому и суждено позднее было стать Brainflayer-ом) еще в 2013, вскоре после того, как он прочитал о самой технологии таких кошельков. Он оставил свою программу работать, сканируя уязвимые биткойн-адреса, а сам на несколько часов отправился на пикник. К тому времени, когда он вернулся, программа уже нашла кошелек, содержащий 250 биткойнов на сумму $ 66,000 по сегодняшнему курсу, уязвимый для кражи. Кастеллуччи в конце концов удалось связаться с владельцем того биткойн-адреса и убедить его переместить свои биткойны в более безопасное место. Вообще, есть много инцидентов, связанных с кражами из мозговых кошельков. Одна из жертв, пользователь форума Reddit под ником “thonbrocket”, описывает, как он использовал фразу из малоизвестного стихотворения на языке африканс в качестве ключевой фразы, и был потрясен, обнаружив, что кто-то разгадал эту фразу, украв у него 4 биткойна.

Кастеллучи не сообщает какова скорость подбора фраз его программой с помощью обычного компьютера. Все детали он раскроет на конференции DefCon. Однако, он намекает, что, если его программу запустить на подконтрольной сети зараженных вирусами компьютеров (бот-нет), вполне можно достичь скорости перебора в сто миллиардов ключевых фраз в секунду. По его словам, это больше, чем скорости перебора доступные с помощью других взломщиков паролей: программа специально оптимизирована для выполнения задач быстрой генерации биткойн-ключей и сканирования блокчейна на их валидность. Он применил метод, известный как фильтр Блума, для наиболее эффективного нахождения уязвимых ключей в блокчейне. Его результаты не столь высоки, как триллионы паролей в секунду, о которых предостерегал Сноуден, указывая на АНБ. Тем не менее, это может удивить многих людей, которые считают, что их парольные фразы являются безопасными.

Нет причин думать, что Brainflayer является каким-то особо мощным взломщиком парольных фраз в сравнении с другими подобными программами, находящимися в руках злоумышленников. Но в том то и дело, говорит Дэн Камински, основатель компании White Ops, в которой работает Кастеллучи и известный исследователь в компьютерной безопасности, в чей круг интересов также входит и Биткойн. Brainflayer создан для выравнивания шансов в игре: он должен доказать, что небезопасная фраза может быть взломана. “Райан далеко не первый человек, написавший взломщик мозговых паролей”, – говорит Камински. “Но если бы он хотел оставить всё как есть, то он был бы последним человеком, который бы должен был написать такую программу, ведь каждый хочет её заполучить”.

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

“Они считают это наиболее безопасным вариантом хранения денег под матрасом. В реальности же, места под матрасом предостаточно, но его не хватает в вашей голове”.

Источник: wired

41 КОММЕНТАРИИ

  1. Добрый день! У меня есть одна проблема, возможно вы знаете решение.
    Суть проблемы: я регистрировалась на mew, там давали UTC-файл, чтобы я могла если что восстановить доступ. Далее по инструкции нужно было установить расширение MetaMask, с помощью которого я могу входить в аккаунт, не прикрепляя каждый раз этот файл. Зарегистрировалась там, перечислила деньги, купила токены. Расширение удалилось, и я пошла восстанавливать доступ. НО оказалось, что метамаск зарегал совсем другой кошелек, и там надо было сохранять seed phraseдля восстановления. В итоге: токены сегодня начислились, в кошелек я зайти не могу. На кошельке осталось 0,2 эфира, которые я не обменяла на токены. Могу ли я как-то вернуть доступ? Взамен готова отдать 0,2 эфира( Там просто были последние деньги.((

  2. Здраствуйте!! Скажите пожайлуста я тепер в запутаности!! Я использую апаратный кошелек LEDGER, я помню он сгенерировал 24 слова ( вроде) для востановление, так вот он тоже мозговой?! И безопасной ли ВАБЩЕ?!?!

    • 24 случайных слова – вполне надежный уровень безопасности. Речь идет о фразах и тем более цитатах, где уровень энтропии существенно меньше.

        • Если оригинальный набор слов лежит в надежном месте, а не записан на бумажке у всех на виду, то не стоит.

        • нет конечно, а вы не знаете примерно из скольких слов (случайных) генерируется MNEMONIC

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

  4. Проблема в том, что сложную парольную фразу использовать опасно: можешь сам её забыть через некоторое время. Если же записать её на бумажку то это уже не мозговой кошелёк.

    • На бумажку или на флэшку можно записать числовой ключ, по которому вы можете восстановить сложную фразу, составленную из случайно выбранных слов ( см. ниже ответ Анону ). В случае забывания фразы ее можно будет восстановить в течение нескольких минут.

  5. И все-таки, случайно сгенерированные парольные фразы, как в Electrum, будут хорошо сгенерированным случайным числом, или нет?

    • Если использовать даже небольшой словарь на 10 тысяч слов, фраза из 10 случайно (!) выбранных из него слов будет невзламываемой. На перебор всех вариантов – а их в данном случае будет 10^40 – не хватит времени существования Вселенной, даже если производить взлом на самом мощном суперкомпьютере планеты.

      Проблема с запоминанием может быть решена с помощью книги или журнала. Из домашней библиотеки выбирается любая книга, открывается на произвольной странице, и человек, не глядя, тыкает пальцем в произвольное место. Записывается три числа: номер страницы, номер строки, номер слова. Процедура повторяется 10 раз. Получившийся ряд из 30 чисел можно хранить где угодно. Взломать этот ряд, не зная алгоритма его получения, невозможно. Даже зная алгоритм, взломать было бы нереально, ибо для взлома потребовалась бы база всех книг и журналов мира. Юзеру же даже не обязательно запоминать фразу. Достаточно надежно запомнить одну-единственную книгу или журнал. Это сможет сделать даже ребенок.

      • “Базу всех книг и журналов…” Скажем прямо, достаточно обрабатывать только популярные книги и журналы, потому что компромисс между безопасностью и юзабилити никто не отменял. А арендовать в Hadoop выч. мощность уже не проблема.

        А я вот подумал, почему бы не использовать фразу, состоящую из пары-тройки “подфраз”, взятых из разных книг на разных языках? (желательно довольно редких) Кто что думает по этому поводу?

        • Вообще-то, недостаточно просто иметь базу книг и журналов. Многие книги пережили массу переизданий, и каждое из них может отличаться количеством страниц и версткой. Получается, надо иметь не просто базу всех популярных книг, а базу со всеми изданиями таких книг. Причем не в PDF, DjVu или fb2, а в Ворде или в другом текстовом формате. Это представляется малореальным. Кто и зачем будет хранить у себя мегатонны книжно-журнального мусора со всего мира, да еще и в Ворде? Но главное даже не это, а то, что потенциальный взломщик должен хотя бы ПРЕДПОЛАГАТЬ, что найденный на компе числовой ряд является фразой, закодированной именно с помощью книги или журнала. Ведь найденные числа могут быть чем угодно. Если же держать числовой ряд не на компе, а дома на бумаге, то потенциальный взломщик не сможет даже увидеть этих чисел.

        • Кто будет хранить? Google! Amazon! А в мире тотального наблюдения (с дронами-стрекозами, тараканами и прочими прелестями) спрятать бумажку с числовым рядом будет не так уж и просто. Но это уже футурология, так что спорить не собираюсь. 🙂

      • Поясню комментарий от 21:18. Ваш способ плох тем, что это уже будет не brain wallet. А вот заучить несколько стишков, афоризмов или произвольных фрагментов текста на разных языках вполне несложно, и не надо ничего хранить “вне головы”, так сказать.

        • Вероятность просто забыть сложный brain wallet ( даже не весь, а любую его часть ) во много-много раз больше, чем вероятность взлома составленного по книге числового ряда. Никто не будет создавать ни базы с вордовскими текстами, ни соответствующую программу для брутфорса, пока число “кодировщиков по книге” не станет исчисляться миллионами. А такое вряд ли вообще когда-либо случится. Люди ленивы, и в подавляющей своей массе на такой гемор никогда не пойдут. Подобные заковыристые ручные методы всегда будут уделом горстки параноиков. Именно из-за этого такие методы, при правильной реализации, чрезвычайно безопасны. Правда, если дело дойдет до терморектального криптоанализа, то тут уж ничего не спасет – ни книга, ни журнал, ни тот же brain wallet ))

        • Вполне возможно, что такие базы будут созданы в рамках каких-нибудь проектов по Natural Language Processing. Программу для брутфорса в кластере Hadoop уже сейчас написать можно за день максимум. А над защитой от терморектального криптоанализа (это называется “rubber hose attack”) тоже уже работают:

      • Может я чего то не понял… Нужно помнить 10 мест в некоторой книге? Это же сложно. Через пол года начнешь путаться. Если 30 чисел хранить, то помнить места в книге не нужно. Но тогда проще сгенерировать эти числа генератором случайных чисел. Если же не хранить 30 чисел, то нужно хранить книгу. Всегда возить её с собой. Брать на пляж. Это будет забавно и необычно.

        • Эти числа нельзя генерировать генератором, чтобы далее использовать их хэш как пароль, иначе утечка этих чисел в злые руки будет для юзера фатальной. Числа нужно получать самому, вручную. А книгу нужно хранить, да. На пляж и в другие места ее брать не обязательно. Такой невзламываемый способ имеет смысл использовать для кошелька, на котором лежат серьезные суммы. А для повседневной текучки надо использовать другой кошелек, который можно закрывать паролем, как бог на душу положит. Даже если его и ломанут, то будет потерян бюджет 1-3 дней. Это не критично.

      • Электум не позволяет ввести свою фразу, работают только те которые сгенерировал кошелек, что как бы намекает

        • Это очень плохо. Значит, этой штукой лучше не пользоваться. “Случайные” фразы могут быть не совсем случайными. Вообще, генерацию пароля доступа к своим деньгам ни в коем случае нельзя отдавать на откуп третьей стороне.

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

          Ссылка по теме:
          Electrum seed phrases
          https://electrum.orain.org/wiki/Electrum_seed_phrases

        • Неслучайность “случайных” паролей – это всегда удар по безопасности. Энтропия пароля при этом падает просто катастрофически. Например, энтропия пароля из 13 случайных букв – 62 бита ( 4 миллиарда миллиардов вариантов ), а энтропия 13-буквенного осмысленного слова – всего-навсего 9 бит ( 590 вариантов ).

          Открытый исходный код – это, конечно, гуд. Но это всё же не гарантия. Хватает случаев, когда в полностью открытом коде находили опасные дыры лишь спустя много лет после его появления. Если есть выбор, генерить пароль самому, или довериться в этом критически важном вопросе стороннему дяде, я бы рекомендовал выбирать решения, где юзер сам контролирует собственную безопасность.

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

        • Вопрос Анонимусу от 16:19
          А почему 9-битная энтропия эквивалентна 590 вариантам, а не 2^9 = 512?

        • ))) Хороший вопрос. 590 – это количество осмысленных 13-буквенных слов в английском языке. Определяя энтропию 13-буквенного слова, мы берем ближайшее число, целиком помещающееся в 590. Это 512, то есть 9 бит.

        • Ну так надо на немецкий переходить! У них 13-буквенных слов выше крыши!

        • “590 – это количество осмысленных 13-буквенных слов в английском языке. ”

          Кхм, а откуда такая эксклюзивная информация???

        • )))))) Еще один хороший вопрос. По запросу в Гугле “количество слов из 13 букв в английском языке” – первая же ссылка ведет на страницу Викисловаря с полной раскладкой количества слов по количеству букв ( от 1 до аж 85 ). Вот оттуда и взято сакральное число “590” )))

        • Коммент не туда запостился. Дублирую.

          Ну так надо на немецкий переходить! У них 13-буквенных слов выше крыши!

        • Блять!
          Слова из 13 букв/ru‎ (12041 с.)
          Слова из 15 букв/ru‎ (6082 с.)
          Слова из 16 букв/ru‎ (4275 с.)
          Слова из 17 букв/ru‎ (2775 с.)
          Слова из 18 букв/ru‎ (1854 с.)
          Слова из 19 букв/ru‎ (1148 с.)

        • Нет-нет, не надо ни на что переходить! Ведь создавая пароль, мы стремимся достичь как можно более высокой энтропии. А использование в качестве пароля осмысленного слова эту энтропию понижает со страшной силой) Поэтому слово брать нельзя ни в коем случае, ибо какой бы оно ни было длины, брутфорс по словарю расколет такой пароль за считанные секунды. Невзламываемый пароль должен состоять только из случайных компонентов.

        • ОК, буду пьяный ебашить по клаве, как всегда и делаю. 🙂

        • ОК, буду пьяный ебашить по клаве, как всегда и делаю.

          Какие интересные авторы пишут статьи на этом сайте…

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here