Представьте ситуацию: у вас есть аппаратный криптокошелёк Trezor с двумя миллионами долларов, но вы забыли пароль. Аппаратные кошельки защищают приватные ключи, необходимые для доступа к криптовалюте, но потеря пароля приводит к невозможности восстановления средств.

Инженер и хакер Джо Гранд получил запрос от владельцев такого устройства — Дэна и Джесси, которые потеряли PIN-код. Джо начал работу, которая длилась двенадцать недел, и включала тщательное изучение устройства, модификацию оборудования и проведение сложных атак с использованием инъекции сбоев (fault injection), чтобы обойти защиту микроконтроллера Trezor.

В процессе Джо обнаружил уязвимость в версии прошивки 1.6.0, связанную с копированием секретных данных из флеш-памяти в оперативную память, где их можно было считать через отладочный интерфейс. Используя специализированное оборудование — например, PhyWhisperer и Chip Whisperer — он многократно включал и выключал устройство, чтобы добиться сбоя в нужный момент и получить доступ к памяти.

После более трёх часов непрерывных попыток взлома удалось извлечь PIN и секретную фразу. Позже производитель устранил эту уязвимость, изменив архитектуру хранения ключей и PIN, однако фундаментальная проблема микроконтроллера STM32 остаётся нерешённой, поскольку производитель чипов не предоставляет поддержку для устранения таких атак.

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