Какова модель угроз биткойн HSM/аппаратного кошелька?

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

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

Ответы (1)


какова модель угроз, от которых они защищают и к которым уязвимы?

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

введите описание изображения здесь

В модели безопасности аппаратного кошелька пользователь взаимодействует со своим ненадежным хост-устройством для создания транзакции с выплатой суммы на адрес, затем транзакция отправляется в аппаратный кошелек для сборки транзакции, включая криптографические подписи. Ожидается, что пользователь проверит отображаемую информацию (а именно сумму) и подтвердит транзакцию на своем устройстве. Каждая транзакция требует явного подтверждения на аппаратном устройстве, и хост не может выполнять транзакции без такого подтверждения.

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


Насколько общеизвестные методы использования этих устройств повышают безопасность хранения биткойнов с их помощью?

Многие из советов по безопасности, данных об использовании аппаратных кошельков, обеспечивают очень небольшую дополнительную безопасность или создают лишь иллюзию безопасности вместо действительно эффективных мер.

введите описание изображения здесь

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


Насколько безопасны эти устройства для хранения биткойнов

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

Бэкдоры

Бэкдоры в биткойн-транзакциях, в частности, из-за некоторых особенностей EDCSA, тривиальны в производстве и чрезвычайно трудно обнаружить, особенно если они применяются время от времени. Подписи ECDSA содержат число, которое сгенерировано из предположительно случайного источника, однако, если это число создано для содержания значений третьей стороны, оно, несомненно, может привести к утечке секретного закрытого ключа или другой информации, а также быть действительным. Современные программные реализации ECDSA используют [детерминированную генерацию] [5] для значения секретного одноразового номера, но это невозможно проверить без использования закрытого ключа для проверки.

Качество кода

Все устройства сегодня показали серьезные проблемы с реализацией криптографии ECDSA с открытым исходным кодом, или просто их реализация полностью закрыта, чтобы избежать анализа.

  1. Первоначально Bitcoin Trezor поставлялся с реализацией ECDSA, основанной на библиотеке Python, транслитерированной в файлы c. Этот код был смехотворно медленным и подвергал [атаку с очень большим временем побочного канала][6]. Находясь физически близко к устройству, когда оно подписывало транзакцию, во время выполнения было раскрыто достаточно информации, чтобы раскрыть материал закрытого ключа. В остальном у Trezor было значительное количество уязвимостей загрузчика, временного анализа, анализа питания и аппаратных уязвимостей.

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

  3. Серия оборудования CoinKite использует micro-ecc , заброшенную «ECDSA для arduino», которая не содержит абсолютно никаких тестов и уязвима как минимум для одной временной атаки.


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

Существуют частные или настраиваемые hsm, которые можно использовать, например, github.com/square/subzero , у них есть приложение, загруженное в ОС, которое нельзя изменить, а мультиподпись в разных местах обеспечивает большую безопасность.