В поисках способа освободить биткоины на сумму $300 000 из старого файла ZIP

Автор оригинала: Lily Hay Newman
  • Перевод

Между человеком и его криптовалютой стояло несколько квинтиллионов вариантов ключей расшифровки




В октябре Майкл Стэй получил с LinkedIn странное сообщение. Некий незнакомец потерял доступ к приватным ключам своей криптовалюты и попросил у Стэя помощь в возвращении доступа к его $300 000.

Было не так уж и удивительно, что «Чувак», как называет его Стэй, нашёл бывшего специалиста по безопасности из компании Google. Девятнадцать лет назад Стэй опубликовал работу с детальным описанием технологии взлома зашифрованных ZIP-файлов. Чувак купил в январе 2016 года биткоинов на сумму порядка $10 000, задолго до бума криптовалют. Он зашифровал приватные ключи в ZIP-файле и забыл пароль. И теперь он надеялся, что Стэй может помочь ему взломать его.

На прошедшей недавно конференции Defcon Стэй описал свои эпичные попытки сделать это.

ZIP – популярный формат файлов, используемый для сжатия больших файлов без потерь – как небольшой чехол с тесьмой может вместить ваш спальный мешок. Известно, что многие варианты реализации формата ZIP имеют проблемы с безопасностью – до того, что прошлым летом даже один американский сенатор обратился в Национальный институт стандартов и технологий с целью исследования этого вопроса. «Если мы успешно отыщем этот пароль, я вас отблагодарю», — написал Чувак со смайликом в конце. Проведя первичный анализ, Стэй оценил что взлом файла обойдётся в $100 000. Чувак принял предложение – всё-таки прибыль должна получиться большой.

«Давно я так не развлекался. Каждое утро я с радостью шёл на работу и боролся с этой проблемой», — говорит Стэй, в настоящее время работающий техническим директором фирмы Pyrofex, занимающейся технологиями блокчейна. «Шифрование ZIP несколько десятилетий назад разработал криптограф-непрофессионал – поэтому то, что оно так долго продержалось, довольно примечательно». Однако если некоторые ZIP-файлы можно взломать при помощи готовых утилит, то Чуваку удача не улыбнулась.

В частности поэтому за работу попросили так много. Новые поколения программ ZIP используют авторитетный и надёжный криптостандарт AES, а старые версии, одну из которых использовал Чувак — Zip 2.0 Legacy, который часто можно взломать. Степень сложности, однако, зависит от его реализации. «Одно дело – сказать, что стандарт поломанный, но реально его взломать – это совершенно другой вопрос», — говорит криптограф Мэтью Грин из университета Джонса Хопкинса.

Помочь Стэю с его подходом могло лишь небольшое количество подсказок. У Чувака до сих пор был ноутбук, который он использовал для создания зашифрованного ZIP – что подтверждало его право на владение этими биткоинами, а также давало Стэю информацию о том, какую именно программу ZIP и какой версии использовали для шифрования. Ему также было известно время создания файла, которое ПО Info-ZIP использует для своей криптографической схемы. Огромное количество возможных паролей и ключей шифрования Стэй смог уменьшить до нескольких квинтиллионов.

Для проведения атаки такого масштаба нужно было арендовать облачные мощности для обработки графики. Стэй обратился к Нэшу Фостеру, директору Pyrofex, чтобы тот написал код для криптоанализа и запустил его на GPU общего назначения от Nvidia Tesla. По мере углубления в проект Стэй сумел уточнить атаку и уменьшить время работы программы, требовавшееся для достижения результата.

«Изначально мы предполагали, что пару месяцев будем разрабатывать программу, а потом она будет работать ещё несколько месяцев, — рассказал Фостер журналу Wired. – В итоге Майк сумел более эффективно провести криптоанализ, и мы больше времени потратили на разработку атаки, а на работу у программы ушла всего неделя. Это сэкономило Чуваку уйму денег на аренде инфраструктуры. Лет десять назад это было бы невозможно сделать без сборки специального оборудования, а стоимость проекта, вероятно, превысила бы стоимость его биткоинов».

Однако вопрос того, сработает ли это перемалывание цифр на GPU, всё ещё оставался открытым. После нескольких месяцев труда над этой задачей Стэн, наконец, был готов попробовать. Чувак не предоставил Стэю и Фостеру весь файл целиком – он, вероятно, не доверял им, считая, что они могут украсть его криптовалюту, взломав ключи. Благодаря особенностям реализации шифрования в ZIP он мог предоставить Стэю и Фостеру только зашифрованные заголовки – информационные записи, касающиеся содержимого файла – не передавая его основное содержимое. К февралю, через 4 месяца после первого сообщения с LinkedIn, они подготовили программу и начали атаку.

Она проработала 10 дней и не справилась. Позднее Стэй писал, что «был убит горем».

«До этого мы встречались с разными багами, но на всех тестах, что я прогонял у себя на ноутбуке, всё работало отлично, — говорит он. – Если это и была ошибка, она должна была быть какой-то очень уж хитрой, и я беспокоился, что на её поиски у нас уйдёт много времени». Не помогал и тот факт, что в феврале стоимость биткоинов начала падать, а вместе с ней – и стоимость файла. Чувак очень беспокоился.

Стэй прошерстил всю программу, беспокоясь о наличии в ней какого-либо неверного предположения или скрытых ошибок. Но затем ему в голову пришла новая идея о том, с какого случайного начального значения [seed] можно начать работу генератора случайных чисел, используемого в их программе. Чувак тоже просмотрел тестовые данные и заметил ошибку, которая возникала, если GPU не обрабатывал правильный пароль при первом проходе. Стэй и Фостер исправили ошибку. Сделав два этих исправления в программе, они были готовы начать заново.

«Бах! И из файла выскочила куча биткоинов», — говорит Фостер. «Мы вздохнули с облегчением», — добавляет Стэй.

В итоге стоимость аренды инфраструктуры составила $6000 — $7000 вместо изначально предполагавшихся $100 000, говорит Фостер. Чувак заплатил вчетверо меньше, чем ожидал.

«Сделка для него получилась отличной, — говорит Фостер. – Такого рода проекты встречаются редко. Если бы у него была немного другая ситуация, если бы он использовал более свежую версию ZIP, это было бы невозможно сделать. Но в данном конкретном случае мы могли что-то сделать».

Стэй говорит, что после публикации технического описания проекта в апреле к нему обратилось несколько людей с просьбами восстановить пароли к их биткоин-кошелькам. К сожалению, это распространённая проблема. Даже в редакции Wired с этим сталкивались. Но атака на ZIP не имеет ничего общего с кошельками для криптовалют — у них иногда могут быть взламываемые недостатки, но они созданы при помощи надёжного современного шифрования.

И всё же факт распространённости ZIP говорит о том, что у исследования Стэя и Фостера есть далеко идущие последствия.

«С точки зрения возни с криптографией это очень крутой проект, — говорит Грин. – Это одна из древних атак на устаревшую схему, и никто бы не подумал, что она ещё актуальна. Но, как ни удивительно, вся эта рухлядь ещё повсеместно распространена, поэтому эта тема очень актуальна. А то, что в конце их ожидала куча денег – это вообще круто».

Всем бы нам так везло.

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

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

    –2
    видимо он использовал генератор паролей) а листочек с паролем потерял…
    З.Ы. Не думал что взлом архива займет столько времени у такой компании.
      +4
      Что же тут удивительного? Криптографию и создавали с целью того, чтобы никто никогда ничем не смог расшифровать зашифрованные данные.

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

        не зная пароль. А то и хэширование подойдет.

      +14
        –6
        Но оригиналы статей всё таки разные, как и даты публикации
        0
        попросил у Стэя помощь в возвращении доступа к его $300 000
        Вряд ли есть смысл мысленно переводить крипту в доллары. Даже если забыть про волатильность, нельзя просто так взять и перевести хоть сколь-нибудь крупные суммы из крипты в баксы. Любой банк заблокирует ваш счёт, если на него неизвестно откуда свалится $300 000.
          +2
          А выводить сразу всю сумму в фиат и не требуется, достаточно продать биткоины в какой-нибудь USDT, а потом уже не спеша делать с ними все что хочется.
            0
            А собственно зачем? Можно сразу менять по чуть чуть на фиат, USDT выпущено примерно вдвое больше чем обеспечено и держать их на биржах куда более рисковано чем в BTC кошельке.
              0
              Все зависит от ситуации с ценой биткоина на рынке, и то как быстро вы можете вывести $300к, а это может занять месяцы если нет опыта в подобных делах. Поэтому зафиксироваться с стейблкоинах это правильный выбор (можно ж не только в USDT).
                0
                Ну смотрите, если биток растет, то растет и весь рынок, значит храня в USDT вы теряете. Если биток обваливается, вывод USDT становится либо дорогим, либо невозможным. Пока нет стейблкоинов которые гарантируются крупными государствами или корпорациями, хранение сбережений в них весьма рискованно. Я бы сказал, что более рискованно чем в биткоинах.
                  0
                  Если биток обваливается — вы теряете деньги, иногда очень много денег. Мы сейчас не говорим о хранении сбережений, а о том как не потерять $300к на падающем рынке, потому что пока вы будете искать как такую сумму обналичить, у вас может внезапно остаться половина.
                    0
                    Это так. Нельзя продавать на падающем рынке, надо держать или покупать. С выводом USDT могут приключиться «технические трудности», совпадающие как раз с падением рынка.
                      0
                      Так никто и не заставляет сразу выводить USDT, можно например их придержать до стабилизации рынка, затем купить тот же биток (или что угодно) и обналичить.
          +2
          Недавно была похожая история со взломом пароля к невыпущенному альбому Kanye West.
          Ссылка на хронологию
          Архивированный тред
            0

            У меня в чём-то похожая ситуация) Есть кошелёк (файл wallet.dat) с остатками битков. Не сильно много, но с учётом роста курса терять не хочется.Пароль знаю. Но последнюю транзакцию делал ещё с полновесного оф.клиента до форков биткоина. Хотелось бы как-то вытащить из файла ключи, импортировать в каждый клиент каждого форка и продать отдельно Bitcoin Gold, Bitcoin Cash и т.д. Ещё и 300 Гб история транзакций напрягает, это изнасилование HDD/SSD) Вот бы почитать, как грамотно это сделать.

              0

              Тонкий клиент. При формировании транзакции он найдет блок, в котором была последняя операция, не скачивая весь блокчейн.

                0
                Попробуйте импортировать private key в Electrum Wallet.
                  0
                  импортировать private key в Electrum Wallet

                  это безопасно?

                  импортировать в каждый клиент каждого форка и продать отдельно Bitcoin Gold, Bitcoin Cash и т.д.

                  и много в совокупности получится «добавки»?
                0
                Не, похожая у меня: тоже есть wallet.dat, только вот ключа не помню :) Вроде есть брутфорсеры, да и примерно ключ помню, но пока ради 1.5 биткойнов напрягаться времени нет.
                  0
                  Я думаю, что за долю кто-нибудь найдется запросто.
                0

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

                  0
                  Жаль, что не реализовали. Был бы отличный кейс. Главное определить нужный ноутбук, но это можно по модели. А диск, если это был обычный HDD, скорее всего подвергся бы коррозии, т.е. еще восстановление данных с него было бы трудоемким и под вопросом.
                  +6
                  У меня стойкое ощущение, что именно эту историю я уже читал, причем детализация истории была выше…
                  А, вот оно: habr.com/ru/company/dcmiran/blog/497146
                  упс, выше уже написали про дубль…
                    0

                    угу
                    лежит у меня кошелёк с некоторым кол-вом битков, сколько даже точно непомню. а вот пароль незнаю, kdbx потерял с ним… если бы кто помог я бы поделился, но кто же тут поможет, да и как тут довериться...

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

                        В расширенной версии статьи (где добавлено и любопытных технических деталей, ссылка есть в комментариях) говорится, что «Чувак» — русский.
                        0
                        Да, была история тоже. Намайнил когда-то это только все шептали (ну то есть сложность была мала и не нужны были датацентры для выхлопа положительного). Потом слил на ноут и забыл. Потом отдал ноут, переставил на нем винду, потом знакомый еще раз 7 его форматировал переставляя, и ноут снова попал ко мне. Копаясь в остатках файла, заметил знакомое и вспомнил. Короче неделя без еды и туалета была у знакомого админа, чтоб востановить все файлы без потерь. В общем 300 битков канули в никуда из-за глупости и забывчивости.

                        (извините за такой стиль текста, от усталости пальцы не слушаются.)
                          0
                          Да, тоже вспоминаю, как контент сайта оплачивал по 6-10 биткоинов ежемесячно… Пропустил бы один платеж, стал бы сильно богаче. Но нет, на кошельках ничего не нашлось.
                          +2
                          Прямо «нигерийское письмо», по завязке сюжета.
                          Может и среди них были реальные истории, а мы их в спам не читая. Шутка, конечно.
                            0
                            Меня даже больше удивляет как люди могут быть настолько безалаберными, и иметь при этом столько свободных денег на руках, ибо одно дело купить битков на сто баксов просто чтобы было, но этот самый «Чувак» уже вкладывался серьезно в них «задолго до бума криптовалют», а значит еще никто не знал взлетит ли он или нет, но он почему-то решил броситься на амбразуру и по сути выкинуть довольно кругленькую сумму даже по меркам американцев.

                            Не знаю, если я бы столько вложил бы — я бы пароль на бумажке записал бы и хранил бы его в какой-нибудь коробке с зарядниками, которая никуда не потеряется и не выбросится, а тут «Чувак» забыл пароль как-будто бы там десять тысяч рублей (типа ну и пофиг, будет мне уроком), я фигею просто если честно…

                            Еще и со Стеем этим повезло ни на шутку, планировал 100 штук заплатить, а вышло 7, красота.
                              0
                              Могла сложиться ситуация, когда эти свободные средства могли были под угрозой экспроприации. Тогда логичным выглядит и их вкладывание в сомнительную покупку, и уничтожение пароля. А покупка кроме сохранения средств внезапно их приумножила.
                                0
                                Уничтожение пароля означает уничтожение средств. Не вижу в этом смысла, когда можно было бы просто хорошенько его спрятать, да и пытать никто никого не будет, не те деньги, так что я все же склоняюсь к тому, что чел просто безалаберный, при этом родился в рубашке.
                                  0
                                  Кошельков, зашифрованных тем же паролем, могло быть больше одного.
                                    0
                                    Ну это да
                              +1
                              Недавно была новость про запароленный кошелек с 69370 BTC на борту
                              cointelegraph.com/news/no-a-quantum-computer-won-t-instantly-reward-you-with-69-000-bitcoins-yet
                              Его одно время продавали на площадке allprivatekeys.com/wallet.dat

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

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