У Keystone для вас отличная новость: компания клянётся, что ваши сид-фразы никто не трогал. Плохая: она потеряла мастер-ключ, которым доказывала, что её кошельки настоящие, слила взломщикам домашние адреса десятков тысяч своих клиентов — и теперь на полном серьёзе предлагает поверить ей на слово, что всё остальное у неё под надёжным замком.

26 октября Keystone опубликовала признание во взломе. По версии самой компании, 20 октября она заметила посторонних на своём официальном сайте: атакующий зашёл через дыру в стороннем инструменте мониторинга данных, поднял себе привилегии и вынес два трофея — клиентскую базу с адресами доставки и криптографический ключ WebAuth, которым Keystone удостоверяет подлинность всех своих кошельков.

Кто именно зашёл в гости, какую стороннюю софтину пробили и сколько недель или месяцев взломщики хозяйничали внутри до 20 октября, в отчёте не уточняется. Зато компания с гордостью рапортует, сколько собственных устройств теперь придётся пустить под промышленный пресс: 18 835 штук. Отгрузку со склада остановили, но тут же открыли приём предзаказов на будущую партию с «новым ключом» — подождать просят всего четыре–шесть недель. Разумеется, с повторным вводом вашего домашнего адреса.

Отдельного восхищения здесь заслуживает сама инженерная ирония. Keystone годами продавала себя как эталон «100% air-gapped» безопасности: никакого Bluetooth, никакого Wi-Fi, никакой передачи данных по USB — только камера и QR-коды, чтобы кошелёк ни в коем случае не соприкасался с интернетом. Они героически отрезали от устройства провод, но прикрутили к своему сайту стороннюю следилку, через которую хакер с улицы дотянулся до главного секрета заводской проверки. Видимо, очень важную метрику мониторили.

1. Что это за «мастер-ключ» и почему весь склад едет в шредер

Проверка подлинности у Keystone устроена просто. При первом включении вы заходите на официальную страницу верификации, сайт показывает QR-код, вы сканируете его камерой кошелька, кошелёк выдаёт ответный набор цифр, вы вбиваете его обратно на сайт. Совпало — экран поздравляет вас с тем, что устройство «подлинное».

Открываем исходный код прошивки Keystone 3 и смотрим, что происходит за кулисами. В QR-код зашито проверочное значение, зашифрованное алгоритмом RSA и подписанное ключом Keystone. Кошелёк проверяет подпись и расшифровывает вызов закрытым RSA-ключом. Этот ключ на заводе прожигается в однократно записываемую память (OTP) — перезаписать его поверх штатная прошивка не позволяет.

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

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

Ещё интереснее деталь, которая всплыла из описания замены: на всех 18 835 складских кошельках прошит «старый» ключ, а в следующей партии будет «новый». Из этого следует прекрасный архитектурный вывод: вместо индивидуальных сертификатов на каждое устройство Keystone, судя по всему, штамповала один общий секрет на всю партию. Экономия на спичках вышла образцовой: стоило одному ключу утечь — и не нужно отзывать конкретные серийные номера, под нож в полном составе отправляется весь склад.

Причём для формирования проверочного QR-кода сайту хватило бы открытой части ключа. Но закрытая половина, без которой невозможно пройти проверку за устройство, судя по всему, уютно жила там, куда дотянулись через веб-сервер. Положить мастер-ключ от заводской пломбы под коврик интернет-магазина — это новое слово в криптографии.

2. Что теперь можно сделать с этим ключом

Главный сценарий атаки Keystone описывает сама: имея на руках утёкший секрет, злоумышленники могут клепать фальшивые кошельки, которые без сучка и задоринки пройдут официальную проверку подлинности на сайте, продавать их через реселлеров или с рук — и обнулять балансы покупателей. О пойманных в дикой природе подделках пока не сообщалось.

Чтобы обокрасть владельца, фальшивке не нужна ни оригинальная прошивка Keystone, ни заводской ключ подписи кода (который, как клянётся компания, не пострадал). Внутри похожего пластикового корпуса может стоять любая копеечная плата, которая при настройке выдаст вам заранее заготовленную ворами сид-фразу из 24 слов. Украденный секрет из OTP нужен этой обманке ровно для одного — правильно ответить на первый QR-код и успокоить бдительного покупателя надписью «Verification Successful».

Именно поэтому 18 835 готовых кошельков и везут на свалку. Память в них однократная — обновить ключ удалённо нельзя. Отличить через сайт родной кошелёк со «старым» ключом от кустарной реплики с тем же ключом теперь тоже невозможно. В итоге единственным предусмотренным конструкцией инструментом «смены ключей» оказался промышленный шредер. В Keystone пафосно называют уничтожение партии «дорогим, но правильным решением» — хотя на деле их собственная архитектура просто не оставила им другого выбора.

Одинаковые безымянные электронные устройства едут по конвейеру к валам промышленного шредера.
Иллюстрация · Blackwood

3. Человек с ножом у кровати: кто назначил взломанных гарантом?

Посмотрим на официальные рекомендации Keystone для тех, кто уже купил кошелёк:

  • Получили устройство до 20 октября и оно проходит проверку — пользуйтесь спокойно, переводить крипту на другие кошельки не нужно.
  • Получили после 20 октября устройство со старым ключом — не пользуйтесь им, пока поддержка (support@keyst.one) вручную не подтвердит подлинность. Компания сама расписывается в бессилии: даже если такой кошелёк проходит проверку на сайте, исключить подделку она больше не может. Правда, как именно покупатель должен понять, «старый» или «новый» ключ зашит внутри его кошелька, в Keystone, по данным The Hacker News на 27 октября, объяснить забыли. Чем техподдержка заменит скомпрометированную криптографию, тоже тайна — видимо, будут гадать по фотографии коробки.
  • Отзыва устройств нет. Возвращать ничего не просят, а любые письма и звонки про «замену кошелька» или «спасение средств» объявляют мошенничеством.

Вся эта спасительная инструкция держится на дате 20 октября. В ответах под своим постом представители Keystone уверенно пишут, что ключ утёк 20 октября. Вот только в самом пресс-релизе 20 октября названо днём, когда вторжение обнаружили, а дата, когда взломщик впервые получил доступ к системе, скромно опущена. Всем, кто получил посылку 19-го числа, предлагают верить в чудесное совпадение: будто хакер проломил защиту, выкачал базу с ключом и попался с поличным в один и тот же день.

Но фундаментальный вопрос здесь ещё жёстче: а откуда сама Keystone вообще знает, что именно у неё украли, а что — нет?

Посмотрите, кто выступает перед вами в роли эксперта. Все эти мантры — «ключ подписи прошивок в безопасности», «старые устройства не затронуты», «через месяц выпустим новую защищённую партию» — произносит компания, которую только что обчистили через сторонний плагин на её собственном сайте. Ещё вчера эти люди понятия не имели, что у них из-под носа выносят корневой секрет проверки железа. Два года подряд они в упор не замечали, что у них не работает скрипт удаления клиентских адресов. А сегодня те же самые люди на голубом глазу выписывают вам индульгенцию и берутся гарантировать, в какие папки хакер заглянул, а мимо каких благородно прошёл.

Тот, кто допустил утечку, больше не является гарантом. Если они вчера не знали про этот взлом, откуда они завтра узнают про новый? Где гарантия, что «новый ключ», ради которого они сейчас собирают предзаказы, не уедет через очередную дыру ещё до того, как конвейер отштампует первую тысячу коробок?

4. Два года вранья про удаление и 13 тысяч человек, которые даже ничего не купили

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

В руки атакующих уплыли 25 964 записи покупателей официального магазина Keystone на Shopify за 2024–2026 годы: полные имена, телефоны, почта, точные домашние адреса доставки, состав и сумма каждого заказа. А вместе с ними — ещё 12 873 неоплаченных черновика заказов с именами, телефонами и адресами. То есть почти тринадцать тысяч человек даже не купили этот злосчастный кошелёк — они просто зашли на сайт, вбили свой адрес, чтобы прицениться к доставке, передумали и закрыли вкладку. И всё равно попали в слитый список владельцев криптовалюты.

Но главное днище этой истории — в том, что большинства этих записей в базе вообще не должно было существовать. Keystone официально обещала клиентам удалять данные о доставке через 180 дней. Люди заказывали аппаратные кошельки на домашний адрес, рассчитывая, что через полгода след исчезнет. Когда же базу вынесли хакеры, внезапно выяснилось, что инструмент массового удаления в Shopify всё это время выдавал ошибки, а в компании никто даже не проверял, стирается ли хоть одна строчка. Теперь Keystone виновато разводит руками, обещает сократить срок хранения до 90 дней и торжественно клянётся удалить старые архивы к 3 ноября — аккурат после того, как их уже скачали взломщики.

Если компания два года клялась, что удаляет ваши данные, а на деле складывала их в копилку для хакеров, то уровень доверия к её словам равен абсолютному нулю. Представьте, что вы просыпаетесь посреди ночи и видите над своей кроватью близкого человека с ножом в руке. А он вам спокойно говорит: «Ты не волнуйся, я просто решил тут с ножом постоять. Может, и хотел тебя кольнуть, но ты переворачивайся на бочок и спи дальше — я этот инцидент запомнил, проработал, и конкретно он больше никогда не повторится». Примерно так сегодня звучат обещания Keystone стирать адреса за 90 дней вместо 180 и бережнее хранить следующий мастер-ключ.

Чем грозит слитая база на практике, объяснять не нужно. Это готовый адресный реестр людей, у которых дома гарантированно есть чем поживиться — с ФИО, телефоном и номером квартиры. Для телефонных мошенников это звонок с реальными данными заказа: один из покупателей уже отписался в ветке Keystone, что ему позвонили разводилы и назвали по настоящему имени. А для наводчиков и любителей выбивать сид-фразу паяльником — готовая карта маршрутов. Чтобы заработать на украденном WebAuth-ключе, нужно паять поддельные платы и налаживать сбыт. Чтобы заработать на слитой базе Shopify, достаточно монтировки и билета на электричку.

5. Итог: цена «заводской пломбы»

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

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

Keystone пускает под промышленный пресс почти 19 тысяч своих устройств просто потому, что больше не способна отличить собственную продукцию от подделки. Заодно 38 837 человек получили вечную прописку в базах криминала с точными домашними адресами. Отличный урок для всех, кто до сих пор верит, что красивая зелёная галочка на сайте производителя и надпись «Air-Gapped» на коробке способны заменить настоящую безопасность.