Глава безопасности Kraken: уязвимость Coldcard показала пробел в тестировании кошельков

Глава безопасности Kraken: уязвимость Coldcard показала пробел в тестировании кошельков

Производитель аппаратных кошельков Coldcard компания Coinkite раскрыла программную ошибку, которая присутствовала в устройствах с марта 2021 года. Из-за неё при создании кошелька использовался более слабый генератор случайных чисел, чем предполагалось.

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

На воскресенье, по данным источника, было затронуто более 4500 адресов, с которых выведено около $90 млн в биткоинах. Coinkite подтвердила, что остановила отгрузку устройств и уничтожила остатки с уязвимой прошивкой.

Глава службы безопасности Kraken Ник Перкоко назвал инцидент тревожным сигналом для производителей. Он отметил, что проверки кода подтверждали наличие нужного генератора, но не проверяли, используется ли он в реальной прошивке.

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

По его словам, необходимо внедрить стандарты, аналогичные NIST SP 800-90B или BSI AIS-31, которые требуют проверки фактического использования валидированного источника случайности. Производители должны обеспечить независимую верификацию.

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

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