Как мужчина чуть не лишился биткоинов на $30 тысяч из-за забытого PIN-кода
Редактор Wired Марк Фрауэнфельдер поделился феерической историей о том, как из-за утерянных нескольких цифр PIN-кода он чуть не потерял $30 тысяч в биткоинах.
Trezor: 4 января 2016 года: 7,4 BTC = 3 000 долларов
В январе 2016 года я потратил 3 000 долларов на покупку 7,4 биткойна. В то время это казалось вполне достойным занятием. Недавно я стал руководителем научно-исследовательских работ в Blockchain Futures Lab Института будущего и хотел узнать все о биткойнах, криптовалюте, использующей блокчейн для записи транзакций в сети. Я не мог и представить, что данная операция выльется в напряженную борьбу за то, чтобы не потерять достаточно крупную сумму денег.
Мои эксперименты с биткойнами были увлекательны, а покупать вещи за криптовалюту — удивительно легко. Я использовал приложение airBitz для пополнения баланса в Starbucks, а Purse.io — для покупки беспроводного дверного звонка с камерой видеонаблюдения на Amazon. Еще за биткойны я купил комиксы в лос-анджелесском магазине Meltdown Comics.
К ноябрю стоимость биткойна практически удвоилась с начала года и продолжала расти чуть ли не ежедневно. Моя криптовалютная заначка стала превращаться в реальные деньги. Я хранил свои биткойн-ключи в онлайн-кошельке, но думал переместить их в более безопасное место. Многие интернет-сервисы сохраняют личные ключи клиентов, вследствие чего аккаунты становятся уязвимы для хакеров и мошенников (в 2014 году Mt. Gox потеряла 850 000 биткойнов со счетов своих клиентов) или правительства (например, когда в августе домен российской биткойн-биржи BTC-e был конфискован по решению окружного суда США в Нью-Джерси, а активы пользователей — заморожены).
Я опросил несколько экспертов по биткойнам, и все они сказали, что самым безопасным способом защиты кэша является использование так называемого аппаратного кошелька. Это маленькое устройство представляет собой усовершенствованный USB-накопитель, который хранит ваши личные биткойн-ключи и позволяет подтверждать операции, не обнаруживая их в сети интернет, где их могут перехватить ненадежные люди. Я остановил свой выбор на аппаратном кошельке под названием Trezor («сейф» в переводе с чешского), позиционировавшемся как «сверхнадежный». Я купил его 22 ноября за 100 долларов на Amazon (опять же через приложение purse.io).
Получив прибор на руки, я подключил его к компьютеру и зашел на официальный сайт Trezor, чтобы настроить его. Маленький монохромный экран гаджета (размером с два моих ногтя на больших пальцах) загорелся и показал значок замкá. Согласно указаниям на сайте, я записал 24 слова, случайно сгенерированных Trezor одно за другим. Слова были типа «осознавать», «двигаться», «мода» и «горький». Я записал их на оранжевой бумажке. Затем мне было предложено придумать ПИН-код. Его я записал на той же бумажке (выбрав пару коротких комбинаций, которые смог бы легко вспомнить).
На сайте Trezor я узнал, что эти 24 слова могут быть использованы для восстановления доступа, а также для генерации главного ключа к кошельку. В случае утери Trezor или выхода его из строя я мог бы восстановить свой кошелек, введя эти слова в новый аппарат или любой из многих других аппаратных и онлайн-кошельков, использующих тот же стандартный алгоритм генерации ключей. Мне было важно спрятать бумажку в надежное место, поскольку с ее помощью любой мог бы украсть мои 7,4 биткойна. Я перевел валюту с веб-кошелька на Trezor и закинул его вместе с оранжевой бумажкой в ящик стола в своем кабинете дома. Сразу после праздников я собирался выгравировать эти 24 слова на полоске алюминия и хранить в более безопасном месте.
Ошибка: 16 марта 2017 года: 7,4 BTC = 8 799 долларов
Было 6:30 утра. Моя 14-летняя дочь Джейн была в Лондоне с классом, а старшая дочь Сарина — на учебе в одном из колледжей Колорадо. Мы с женой Карлой собирались в аэропорт, так как нам предстоял отпуск в Токио. Роясь в ящике стола в поисках зарядного устройства для телефона, я наткнулся на оранжевую бумажку с кодом восстановления и ПИНом. Что было с ней делать? Если бы наш самолет упал в океан, мне бы хотелось, чтобы дочери смогли получить эти биткойны. На тот момент последние уже почти утроились в цене, и я воображал, как однажды они будут стоить 50 000 долларов. Я взял ручку и написал на бумажке: «Джейн, если что-нибудь случится, покажи этот листочек Кори. Он знает, что с ним делать. Люблю, папа». Я имел ввиду Кори Доктороу, моего друга и бизнес-партнера. Биткойнами он не увлекается, но, уверен, смог бы разобраться, как получить с помощью набора слов главный ключ.
Я отнес бумажку в спальню Джейн и положил под подушку, а затем вызвал такси до международного аэропорта Лос-Анджелеса.
Мусор: 4 апреля 2017 года: 7,4 BTC = 8 384 доллара
Из Токио мы вернулись 24 марта, и только 4 апреля я вспомнил об оранжевой бумажке и ее местоположении. Я еще подумал: забавно, дочь вернулась домой уже больше недели назад, но ничего об этом не сказала.
Я пошел к ней в комнату и заглянул под подушку. Листка там не было. Я посмотрел под кроватью, двигая контейнеры для хранения и светя телефоном как фонариком.
— Карла?— позвал я. — Ты не видела оранжевый листочек с моим биткойн-паролем? Не могу найти его в комнате Джейн.
— Может, Джейн положила его в ящик стола, — ответила жена. Джейн была в тот момент в школе, и я послал ей вопрос по СМС. Она сказала, что никакой оранжевой бумажкии никогда не видела.
— Погоди, — сказала Карла. — Пока нас не было, дом убирали. Сейчас позвоню им.
Карла позвонила в клининговую службу, к услугам которой мы обращались, и ее соединили с той женщиной, которая убирала наш дом. Та сказала, что помнит, как нашла оранжевый листок.
— Где он?— спросила Карла.
— Выбросила.
Я знал, что мусор уже увезли, но надел перчатки и прошелся по всем уличным бакам. Ничего, кроме контейнеров от яиц, кофейной гущи и коробок с Amazon. Оранжевая бумажка давно разлагалась на одной из свалок Лос-Анджелеса.
Карла спросила, большую ли проблему представляет собой потеря листка.
«Все не так плохо, — сказал я. — Хлопотно, но не более того. Мне придется перевести все биткойны с Trezor на онлайн-кошелек, повторно инициализировать Trezor, сгенерировать новый набор слов и вернуть биткойны. Плохо было бы в случае утери ПИН-кода, но я его помню: 551445».
Забывчивость: 4 апреля 2017 года: 7,4 BTC = 8 384 доллара
Я подключил Trezor к ноутбуку и ввел 551445.
Неверный ПИН-код.
Должно быть, ошибся, подумал я. Я снова попробовал 551445, следя за правильностью набора.
Неверный ПИН-код.
Ой-ой. Я изменил одну цифру: 554445
Неверный ПИН-код.
Просто смешно, подумал я. Я же знал свой ПИН. За последние несколько месяцев я вводил его как минимум раз десять, не подглядывая в бумажку. Ну хорошо, пусть будет 554145.
Неверный ПИН-код.
Я посмотрел на крошечный монохромный дисплей биткойн-кошелька и заметил, что появился таймер обратного отсчета. Пришлось ждать несколько секунд, прежде чем попробовать снова. Сердце билось неровно. Я зашел на сайт производителя аппаратного кошелька и прочел плохие новости: время на таймере удваивалось при каждом неверном вводе. На сайте было сказано: «количество неверных попыток ввода ПИН-кода хранится в памяти Trezor. Вследствие чего перезагрузка Trezor таймер волшебным образом не обнулит. Этим вы добьетесь не более чем запуска таймера по новой. Вору придется вводить ПИН-код до конца своих дней. Между тем, у вас достаточно времени на то, чтобы перевести средства на новое устройство или кошелек из резервной копии».
Проблема была в том, что вором был я, пытаясь украсть собственные биткойны со своего же Trezor. Мне стало тошно. После шестой неудачной попытки ввода ПИН-кода тревога переросла в панику, а сердце бешено забилось — я мог навеки распрощаться со своими 7,4 биткойна.
Я попытался угадать еще несколько раз, но с каждой неудачей ощущение нереальности происходящего росло пропорционально цифрам на таймере, которые составляли на тот момент 2 048 секунд или около 34 минут. Я достал из ящика стола калькулятор и быстро понял, что не доживу и до 31-й попытки (34 года). Сто попыток заняли бы более 80 триллионов лет.
Я поделился новостями с Карлой. Сказал, что не могу вспомнить ПИН-код и что при каждом неверном вводе время на таймере растет. Она спросила, сохранил ли я ПИН-код в приложении 1Password (безопасный менеджер паролей). Я ответил, что нет, а на вопрос «почему?» ответа у меня не было.
Я знал, что не стоит тратить драгоценную попытку в столь возбужденном состоянии. Мой мозг засорился беспорядочными сочетаниями паролей. Я пошел на кухню нарезать овощи для карри на ужин, но не мог думать ни о чем, кроме ПИН-кода. Нарезая картофель кубиками, я мысленно перебирал в голове цифры, как если бы играл в «Эрудита». Через некоторое время мне пришел в голову новый номер 55144545. Ну наконец-то! Я пошел в кабинет. На дисплее Trezor еще оставалось несколько сотен секунд, и я решил потратить это время на отправку электронных писем. Затем набрал 55144545.
Неверный ПИН-код. Чтобы продолжить, подождите, пожалуйста, 4 096 секунд…
Той ночью я почти не сомкнул глаз, а тот краткий промежуток времени, когда сон все же накрыл меня, был полон кошмаров с комбинациями цифр 1, 4 и 5. Меня беспокоили не столько 8 000 долларов, сколько осознание собственной глупости и стыд за потерю бумажки и забытый ПИН-код. Мне была противна мысль о том, что биткойн может возрасти в цене, а доступа к деньгам у меня не будет. Если бы я не смог вспомнить пароль, Trezor дразнил бы меня всю оставшуюся жизнь.
Поиски: 5 апреля 2017 года: 7,4 BTC = 8 325 долларов
В то утро я стал спросонья искать способы вернуть свои биткойны без ПИН-кода и пароля восстановления доступа. Если бы я потерял ПИН-код от дебетовой карты, то мог бы связаться с банком и в конечном счете восстановить доступ к средствам. С биткойнами дело обстоит иначе. Сетью биткойн-транзакций не владеет никто, а программное обеспечение запускают тысячи компьютеров по всему миру. Кто угодно может установить биткойн-ПО на свой компьютер и стать частью этого процесса. Децентрализованная природа биткойн-сети имеет свои последствия, главное из которых заключается в том, что если вы где-то напортачите, виноваты будете сами.
Я зашел на Reddit и написал: «Можете надо мной смеяться — я это заслужил. Я записал ПИН-код и пароль восстановления на одном и том же листочке. Хотел выгравировать слова на металлической пластине и спрятать ее, но клининговая служба опередила меня и выбросила листок. Теперь я не могу вспомнить пароль; пытался угадать его около 13 раз, а чтобы попробовать снова, нужно ждать больше часа. Очень скоро часы перерастут в годы. Я могу что-то сделать или можно попрощаться со своими биткойнами?».
Большинство ответов выражали сочувствие, но пользы не принесли. Один человек сказал, чтобы я связался со службой Wallet Recovery Services, которая дешифрует зашифрованные биткойн-кошельки. Я написал им электронное письмо с просьбой о помощи. Ответ пришел на следующий день: «Я бы и рад помочь… но решения вашей проблемы не вижу. Вам нужно либо правильно угадать ПИН, либо найти пароль восстановления».
На форуме Reddit меня заинтриговал ответ от пользователя под ником zero404cool: «…вся ваша информация до сих пор хранится в Trezor, и кое-кто знает, что делать, чтобы ваш кошелек заработал. Мне довелось такое наблюдать».
В другом посте он добавил: «Берегите свой Trezor. Ничего с ним не делайте. Экспериментировать с ПИН-кодами нет нужды. Вы можете вернуть все свои биткойны».
Другие пользователи форума считали, что с этим zero404cool что-то не так. Один обвинил его в мошенничестве, другой — в распространении страха, неуверенности и сомнений относительно безопасности Trezor. Я был склонен согласиться с ними, особенно когда прочел о всех тех мерах, что были предприняты производителем Trezor для защиты устройства от хакеров. Производитель с уверенностью утверждал, что Trezor выдержит любые попытки несанкционированного доступа. Как говорилось на сайте, наиболее очевидный способ взломать его путем установки неофициальной прошивки с целью разблокировки ПИН-кода и слов доступа приведет лишь к очистке памяти устройства.
Чтобы удостовериться, я послал письмо в Trezor и объяснил свою проблему. Представительница службы поддержки клиентов прислала имейл со ссылкой на «руководство при возникновении чрезвычайных ситуаций», но ни один из описанных случаев мне не подошел. Тогда она написала: «Во всех этих ситуациях подразумевается наличие либо ПИН-кода, либо пароля восстановления доступа к средствам. К сожалению, без указания хотя бы одного из них доступ к данному конкретному счету с хранящимися на нем средствами получить не сможет никто. Я могу еще чем-нибудь помочь вам, Марк?».
Ситуация начинала казаться безвыходной. Но тут zero404cool с Reddit прислал мне личное сообщение с предложением о помощи: «Могу помочь, если вы готовы принять мою помощь. Разумеется, в интернете вы подобной информации не найдете. А выполнение потребует определенных технических навыков. Профессионал может извлечь все данные всего за 10 секунд. В открытом доступе этого нет и никогда не будет. Проблема в том, что я вас не знаю, равно как и не уверен в правдивости вашей истории. Я даже не знаю, действительно ли у вас есть Trezor. А спрашивать об этом можете с целью взлома чужого устройства. Допустить такое я не могу. Итак, сперва нам стоит заручиться доверием друг друга».
В ответ я предложил zero404cool загуглить мое имя, и тогда он увидел бы, что я был одним из первых редакторов Wired и работал там с 1993 года. Я учредил популярный сайт BoingBoing, который ежемесячно читают 5 миллионов человек. Я был главным редактором журнала Make, посвященного проектам «сделай сам». Через некоторое время zero404cool ответил: «Привет Марк, вы, похоже, не боитесь паяльных работ и консольных программ. Думаю, мы можем приступить к восстановлению доступа. В данный момент я немного занят, вы не очень спешите?».
Я ответил, что не спешу. После этого я от него ничего не получал.
Гипнотизер: 25 мая 2017 года: 7,4 BTC = 12 861 долларов
«Гипноз позволяет открывать все каналы, всю информацию», — сказала Мишель Гузи. Я сидел, накрытый одеялом, в ее лос-анджелесском офисе, сосредоточившись на ее успокаивающем голосе. Моя жена, журналист и редактор, несколько лет назад брала у Мишель интервью для статьи о технике гипноза в кино, а я так отчаянно хотел вспомнить ПИН-код, что записался к ней на прием.
Ранее на сеансе Мишель заставила меня воспроизвести написание ПИН-кода на оранжевом листке бумаги. Она положила его в ящик стола, заставила меня сесть за него, открыть ящик и взглянуть на бумажку. Она объяснила, что мы станем пробовать разные способы стимуляции моей памяти.
Ничего полезного в результате не произошло, но Мишель сказала, что мы таким образом подготовили мое подсознание к предстоящей кульминации визита — гипнозу. Она приглушила свет и приятным шепотом произнесла нараспев несколько фраз. Она попросила меня представить, как я спускаюсь по длинному эскалатору, дабы как можно глубже погрузить меня в транс. «Поездка» заняла минут 15. Я чувствовал умиротворение, но в состояние гипноза не впал. Я решил, что стоит расслабиться, ведь, кто знает, это могло в конце концов сработать.
Проведя в ее кабинете около четырех часов, я решил, что мой ПИН-код 5514455.
Лишь через несколько дней я собрался с духом, чтобы попробовать снова. Всякий раз, когда я думал о Trezor, в висках начинала пульсировать кровь, и меня бросало в пот. Я ввел код, но он оказался неверным, а таймер показал 16 384 секунды, то есть около четырех с половиной часов до следующей попытки.
Последняя попытка: 12 августа 2017 года: 7,4 BTC = 28 749 долларов
Я пытался не думать о биткойнах, но не мог. Что еще хуже, на протяжении лета его цена стремительно росла и останавливаться не собиралась. В июле эксцентричный предприниматель Джон Макафи написал в Твиттере, что через 3 года один биткойн будет стоить более 500 000 долларов — «а если нет, я съем свой член на национальном телевидении», — заявил он. Это усилило мое беспокойство, хоть я и не верил, что курс вырастет так сильно (и что Макафи выполнит обещание).
Я не мог избавиться от мысли о том, что между мной и огромной суммой денег стоит одно лишь шестизначное число, которое я не раз использовал, а теперь оно спряталось так глубоко в моем сознании, что вытащить его не способен ни гипноз, ни медитация, ни самобичевание. Я чувствовал себя беспомощным. Дочери пытались подкрадываться и быстро спрашивать «а ну, какой ПИН?», но и это не работало. Иногда, лежа перед сном в постели, я просил мозг найти мой ПИН-код, но просыпался ни с чем. Каждая возможная вариация кода, какую я только мог представить, казалась не лучше и не хуже остальных. Биткойн рос в цене и еще больше отдалялся от меня. Я представлял его в виде сундука с сокровищами, исчезающего за тускло рдеющим горизонтом. Я бы умер, так и не вспомнив его.
Вечером мы с Карлой складывали белье, и в комнату вошла приехавшая на лето из колледжа Сарина. «Я знаю твой биткойн-пароль! — сказала она. — 5445!».
— С чего ты взяла? — спросил я.
— Ну, ты иногда используешь в качестве пароля 5054, но у «Трезора» нуля нет, и ты просто пропустил его. Не стал бы писать 5154, а просто 554 и добавил бы к этому 45. (Я иногда добавляю в свои пароли важное для меня число 45).
Карла посмотрела на меня и сказала: «У тебя глаза загорелись. Может, это оно и есть?». А ведь она могла быть права.
— Если это не 55445, то тогда 554455, потому что иногда ты в конце добавляешь 455, — сказала Сарина.
— Может быть, — сказал я. — Подумаю об этом перед сном, а завтра, возможно, рискну.
Утром я все же решил попробовать. Комбинация казалась правильнее остальных. Я подключил Trezor, ждать нужно было 16 384 секунды или около 4,5 часов, но поскольку было воскресенье, я стал заниматься домашними делами.
Как только таймер обнулился, я попросил Карлу, Сарину и Джейн подойти и встать рядом, чтобы оказать мне моральную поддержку, убедиться в правильности набора ПИН-кода и разделить мою радость в случае успеха.
Я сидел в кресле, а Джейн, Сарина и Карла стояли рядом. Мое сердце колотилось так сильно, что я слышал пульсацию в висках. Я пытался дышать спокойно. Я медленно ввел ПИН-код. Вводя очередную цифру, я ждал подтверждения от одного из членов семьи.
Закончив, я навел курсор на кнопку входа на сайт Trezor.
«Готовы?», — спросил я. Все сказали «да», и я кликнул мышкой.
Неверный ПИН-код. Чтобы продолжить, подождите, пожалуйста, 32 768 секунд…
— Вот дьявол, — сказал я.
— Ничего, папа, сказала Сарина. — Когда попробуем 554455?
Я открыл калькулятор.
— Через десять часов.
Карла положила руку мне на плечо. «Если еще пару раз не получится, сломай его», — сказала она. Это казалось правильным выходом, ведь альтернативой было держать Trezor подключенным к компьютеру месяцами (при отключении обратный отсчет начинается заново), а затем годами и десятилетиями. С тех пор, как мы 10 лет назад переехали в этот дом, электричество отключалось минимум раз в год вследствие коротких замыканий, дождя или профилактических работ управляющей компании. Я мог бы купить бесперебойный источник питания, чтобы держать устройство включенным в течение многих лет, но хотел поскорее со всем этим покончить, а сделать это можно было, лишь уничтожив Trezor.
На следующее утро после завтрака я пошел в кабинет один и ввел 554455.
Неверный ПИН-код. Чтобы продолжить, подождите, пожалуйста, 65 536 секунд…
Электронное письмо: 16 августа 2017 года: 7,4 BTC = 32 390 долларов
Мысли о забытом ПИН-коде стали чем-то наподобие шума в ушах — нескончаемого, назойливого, раздражающего. Что произошло с моим мозгом? Забыл бы я ПИН-код, будь мне 20 лет или 30? Я все жалел и жалел себя, пока не увидел на почте имейл от Satoshi Labs, производителя Trezor.
Тема гласила: «Обновление прошивки TREZOR до версии 1.5.2.»
В сообщении говорилось, что обновление призвано устранить «проблемы безопасности на всех устройствах, чья версия прошивки ниже 1.5.2». Далее говорилось вот что:
«Злоумышленники могут воспользоваться данным недочетом для взлома устройства и его перепрошивки. Если ваше устройство не повреждено, а пароль знаете только вы, следует как можно скорее обновить прошивку до версии 1.5.2, дабы ликвидировать вероятность атаки и обеспечить безопасность вашего устройства».
Какова вероятность наличия бреши в сверхнадежной защите Trezor, которой я мог бы воспользоваться? Я зашел разузнать об этом на форуме. Первое, на что я наткнулся, была ссылка на пост в Medium, где говорилось, что Trezor можно взломать с помощью той самой бреши, что упоминалась в электронном письме. Пост назывался «Trezor — глюки защиты обнаруживают ваши личные ключи.»
Автор приложил фотографии разобранного Trezor и скрин файл-дампа с 24 ключевыми словами и ПИН-кодом, а также ссылку на пользовательскую прошивку Trezor, но без инструкций. Я прочел статью пару раз, а затем обратил внимание на имя автора: Doshay Zero404Cool. Тот же человек, с которым я переписывался 5 месяцев назад на Reddit. Я зашел в нашу с ним переписку и обнаружил непрочитанное сообщение, полученное через пару месяцев после последнего разговора: «Привет, вспомнили ПИН-код? Если нет, то и восстанавливать не стоит, учитывая небольшой размер суммы. По сегодняшним расценкам я мог бы сделать это за 50%…».
Я хотел было принять предложение zero404cool, но решил сначала обратиться к эксперту в области биткойнов по имени Андреас Антонопулос, автору книги «Интернет денег». Я несколько раз брал у Андреаса интервью от лица BoingBoing и Института будущего, так как он является весьма уважаемым в мире биткойна консультантом по вопросам безопасности.
Он знал о биткойнах больше других моих знакомых. 20 августа я послал ему электронное письмо и сообщил, что не могу получить доступ к своим хранящимся на Trezor 30 000 долларам в биткойнах. Я спросил, возможно ли вернуть биткойны с помощью бреши в прошивке.
«Описанная в статье уязвимость действительно реальна и может быть использована для восстановления пароля, так как вы, предполагаю, не обновляли прошивку до версии 1.5.2, которая эту брешь устраняет», — ответил он.
Мне повезло, что я не обновлял Trezor, потому что в таком случае стерлись бы все данные о пароле и ПИН-коде.
Андреас также сказал, что знает парнишку-«гения кодирования, который работает с Trezor и соответствующим программным обеспечением». Паренька зовут Рашид Салим, ему 15, живет в Великобритании. Андреас никогда не встречался с ним лично, но много переписывался в корпоративном мессенджере Slack. В Satoshi Labs, компании-производителе Trezor, о Салиме знали и даже выделили ему для экспериментов пару устройств. Андреас предложил создать чат с Салимом в приложении Telegram.
Через несколько минут Андреас познакомил меня с Салимом: «Марк — обладатель заблокированного Trezor в ожидании чуда».
Андреас изложил свой план: Салим инициализировал бы одно из своих устройств с прошивкой, идентичной моей, попытался бы взломать его и в случае успеха отправил бы мне через Telegram программу для использования бреши в системе безопасности. Я купил бы второй Trezor и тренировался в ее установке и запуске, пока не выучил бы весь процесс наизусть. И затем я бы перешел к взлому целевого устройства (того, что с 7,4 биткойна).
Но прежде чем продолжить, Андреас сказал: «Лучше всего начать с уточнения ожиданий и условий. Вероятность неудачи как-никак выше вероятности успеха».
Я попросил Салима о пошаговой видео-инструкции и предложил ему аванс в размере 0,05 BTC (200 долларов) и еще 0,2 BTC (800 долларов) в случае успеха и возврата мне моих биткойнов. Салима такие условия устроили. Я добавил: «Если тебе потребуется больше времени на подготовку инструкций, дай знать, и мы увеличим сумму вознаграждения».
Я заказал на Amazon второй Trezor, а Салим сказал, что мне понадобится операционная система с открытым исходным кодом Ubuntu Linux. Я установил ее на свой старый MacBook Air.
Гонорар: 24 августа 2017 года: 7,4 BTC = 32 387 долларов
У нас с Салимом состоялся следующий диалог:
— Привет, Марк. Видео готово, но я просил бы немного увеличить оплату, и вот почему.
1. Сделать видео было сущим адом (у меня нет подходящей для этого камеры, так что пришлось прибегнуть к сложной программе монтажа, установка и настройка которой заняли кучу времени).
2. Пришлось написать код для использования бреши в прошивке (что, полагаю, тоже стоит учитывать при оплате).
— Справедливо.
— Таким образом, могу я получить 0,35 BTC за видео и программу и 0,5 BTC в случае успеха? Итого 0,85 BTC. Знаю, что много, но думаю, это честно с учетом всей проделанной работы.
Салим просил по сути 3 700 долларов, что почти в 4 раза больше первоначальной договоренности, но я решил, что это того стоило (и было намного выгоднее, чем предлагал zero404cool). Если бы я только мог снова увидеть мой ПИН-код — тот, что в Trezor, Wallet Recovery Services, среди пользователей Reddit и всех остальных считался утерянным безвозвратно, — то с радостью заплатил бы Салиму всю запрошенную сумму. Это было бы чудо, как говорил Андреас. Как тут вообще можно торговаться?
— Ты испытывал это на Trezor с той же прошивкой, что и у меня?
— В видео я устанавливаю 1.4.0 на Trezor, настраиваю его, а затем несколько раз ввожу неверный ПИН-код (так что он в таком же состоянии, что и твой).
— Хорошо, тогда по рукам.
Салим дал мне свой биткойн-адрес, и я послал ему 0,35 биткойна из созданного пару месяцев назад онлайн-кошелька. Минутой позже он загрузил два файла, один под названием exploit. bin, другой — десятиминутное видео. На нем был виден монитор компьютера Салима и строковые команды Linux, которые он вводил в окно терминала. Звука не было. В нижней правой части в формате «картинка-в-картинке» был виден примотанный скотчем к столу Trezor.
Я немного знал о строковых командах Linux, поэтому мало что понимал. Первая часть видео представляла собой лишь инструкции по инициализации пробного Trezor и установке более низкой версии прошивки, чтобы я мог попрактиковаться на втором устройстве. Лишь последние 3 минуты видео содержали фактические инструкции по установке и использованию бреши в прошивке.
Я попросил Салима объяснить, как работает хак. Он сказал, что когда Trezor включен, его прошивка (по сути, операционная система) копирует ПИН и 24 слова в статическую оперативную память (SRAM) в незашифрованном виде. При осуществлении так называемой «мягкой перезагрузки» устройства — путем деликатного замыкания двух контактов на печатной плате — можно воспользоваться багом прошивки, не прибегая к очистке памяти SRAM. Это позволит увидеть ПИН-код и пароль восстановления.
Второй Trezor мне доставили в пятницу. Я был готов начать, но пришлось ждать до субботы ввиду большого количества работы. Правда, в пятницу я все же вскрыл корпус тренировочного Trezor и снял печатную плату. Ножом с отламываемым лезвием я медленно и осторожно водил по шву, пока не получилось разобрать устройство. И хотя оно было учебным, я весь вспотел, а руки дрожали. За последние 5 месяцев мои отношения с Trezor были столь ужасны, что мыслить рационально я не мог. Я боялся поцарапать плату. Как только устройство открылось, я подключил его к компьютеру и убедился, что все работает.
Брешь: 26 августа 2017 года: 7,4 BTC = 32 208 долларов
В ночь с пятницы на субботу я спал на удивление хорошо. Карлы и Сарины дома не было. Джейн практиковалась в игре на укулеле и учила японский в спальне. Я освободил столик в своем кабинете, поставил на него MacBook Air с установленным Linux и подключил к нему по USB тренировочный Trezor. Я приклеил его к столу скотчем, совсем как Салим.
Я снова посмотрел видео Салима, записывая использованные им команды Linux в текстовый файл, чтобы потом скопировать и вставить их в окно терминала. В какой-то момент Салим перезапустил Trezor замыканием двух контактов на печатной плате с помощью пинцета и одновременным нажатием двух кнопок на устройстве.
Следуя инструкциям, мне удалось установить прошивку более ранней версии 1.4.0. Я придумал для учебного «Трезора» ПИН-код (2468) и записал сгенерированный им пароль из 24 слов. Затем я установил прошивку с брешью, ввел около дюжины различных команд Linux, нажал кнопки для мягкой перезагрузки и ввел еще несколько команд. Сработало! Устройство было успешно взломано, и я мог видеть на дисплее слова восстановления и ПИН-код. Я повторил процесс еще 6 раз, потратив на это все утро и бóльшую часть дня. Опомнился я уже в 15:45, пропустив обед и традиционный послеобеденный эспрессо. Да не особо и хотелось.
Я был готов попробовать на оригинальном Trezor и позвал Джейн, чтобы она пришла и сняла видео возврата мной биткойнов.
Единственное, что заставляло меня нервничать в последние несколько дней, была неуверенность в том, добавлял ли я к ПИН-коду кодовую фразу в качестве дополнительной защиты. Прошло 5 месяцев с момента последнего использования, и я не был уверен, устанавливал ли его. Салим и Андреас говорили, что если фраза есть, пиши пропало — разблокировать Trezor не удастся никогда. Мои сомнения по этому пункту — а думал я об этом часто — заставляли внутренности предательски сжиматься.
Я подключил Trezor к ноутбуку и ввел: sudo trezorctl get_features
На экране отобразилась информация о состоянии устройства. Я лихорадочно искал глазами одну лишь фразу, и вот прочел: passphrase_protection: false.
Да! То, что надо! Теперь меня ничто не остановит!
Когда пришло время нажимать на кнопки на Trezor, пальцы перестали слушаться. «Меня жутко трясет», — сказал я Джейн. Нужно было прерваться и выдохнуть. Я попробовал снова и не смог. С третьей попытки мне удалось нажать все три кнопки разом. Trezor перезагрузился, и я смог установить файл exploit. bin.
Чтобы загрузить пользовательскую прошивку Салима, я набрал следующую команду: sudo trezorctl firmware_update —f exploit. bin.
Она стерла существующую прошивку и установила версию Салима. На дисплее высветилось: Новая прошивка успешно загружена. Теперь вы можете отключить Trezor.
Я знал, что отключать его сейчас ни в коем случае нельзя. (Я вспомнил предупреждение Андреаса: «Отключение электропитания во время загрузки прошивки — это катастрофа, потеряете все данные».) И я нажал на маленькую кнопку, присоединенную к печатной плате для мягкой перезагрузки устройства. На дисплее появился восклицательный знак в треугольной иконке и фраза: “ВНИМАНИЕ. Обнаружено неофициальное программное обеспечение”.
Спасибо за предупреждение, подумал я. Именно это я и пытался сделать: запустить на проклятом гаджете неофициальное ПО. Я нажал одну из кнопок Trezor, чтобы подтвердить, что хочу продолжить, и на экране появилось слово «ЭКСПЛОЙТ», что означало установку на устройство программного обеспечения Салима. Пути назад не было. Либо сработает, либо все данные навсегда исчезнут вместе с моими биткойнами, даже если я вдруг когда-нибудь вспомню ПИН. Теперь нужно было ввести еще несколько команд, дабы прочитать содержимое статической оперативной памяти Trezor (где до момента его отключения будут храниться слова пароля и ПИН-код).
«Все, — сказал я Джейн, введя команду, — сейчас появится пароль восстановления».
Я склонился над клавиатурой и нажал Enter, а затем откинулся на спинку стула и тихо сказал: «О боже, сработало».
24 слова, которые я написал на оранжевой бумажке в декабре и потерял в марте, вернулись из-за криптографических рубежей сверхнадежного Trezor и светились на мониторе моего компьютера. При желании можно было остановиться здесь. Слов пароля было достаточно для возврата моих 7,4 биткойна. Нужно было просто провести повторную инициализацию устройства и ввести слова. Но нужно было сделать еще кое-что, и это было даже важнее денег. Я хотел заставить чертов Trezor выдать мой ПИН-код.
Следуя инструкциям Салима, я скопировал строку текста из окна терминала и добавил ее в предоставленную парнем команду Linux. ПИН-код высветился моментально.
45455544
Многомесячный груз упал с моих плеч подобно огромным комьям грязи. Я встал, поднял руки и засмеялся. Я победил Trezor и его жутко надоедливую функцию задержки ввода ПИНа и перехитрил ту часть мозга, которая полагала, что не выдаст код владельцу. К черту вас обоих, подумал я. Я победил.
Перевод текста подготовило издание Inosmi.
Читайте также на ForumDaily:
Крах биткоина, приход в США к власти демократов и другие «шокирующие предсказания» на 2018 год
Сверхинтеллект и бессмертные люди: 13-летний гений озвучил прогноз до конца XXI века
7 сайтов, которые помогут заработать без лишних усилий
Подписывайтесь на ForumDaily в Google NewsХотите больше важных и интересных новостей о жизни в США и иммиграции в Америку? — Поддержите нас донатом! А еще подписывайтесь на нашу страницу в Facebook. Выбирайте опцию «Приоритет в показе» — и читайте нас первыми. Кроме того, не забудьте оформить подписку на наш канал в Telegram и в Instagram— там много интересного. И присоединяйтесь к тысячам читателей ForumDaily New York — там вас ждет масса интересной и позитивной информации о жизни в мегаполисе.