^
Аппаратники относятся к (как я их называю) "нательным" устройствам, что означает владелец должен предпринять все меры для того, чтобы они не попали в чужие руки.
Тем не менее производители кошельков просто обязаны предусмотривать такие случаи при разработке архитектуры безопасности своих устройств.
Кошельки с такой архитектурой существуют и думаю, что у нас ещё будет время поговорить о них.
Сейчас бы хотелось начать с самого "сердца" аппаратного кошелька, и даже не всего сердца а его важнейшей части - образно "пучка Гиса этого сердца" - генератора случайных чисел, который определяет степень уязвимости генереруемой SEED фразы.
Меня всё время беспокоит такой вопрос. Наскольно случайно то изначальное число, из которого была создана SEED фраза моего Ledger. Даже незначительный её детерминизм делает кошелёк уязвимым к несанкционированному выводу средств.
Надо сказать, что даже зная это число ( в моём случае оно 256 битное и из него генерируется фраза из 24 слов) ответить на этот вопрос очень сложно, или даже невозможно. Приведу простейший пример. Одно-битное число 0, выбранное устройством, случайное или нет? Ответ вроде простой. - Если оно выбрано случайным образом, то оно случайное. Но как узнать что оно выбрано случайным образом? - Только выбирая его огромное число раз. Если после окончания испытания и подсчета верояности окажется, что вероятность его выборки равна 1/2 ( или как говорят его энтропия равна 1 биту) , то оно случайное. Если получим другой результат, то в выборке имеется некоторая детерминированность, степень которой зависит от того, насколько сильно результат отличается от 1/2).
В случае с 256 битном числом тоже самое. Для того чтобы определить случайное оно или нет надо провести огромное число испытаний, значительно превышающее 2
256 и подсчитать энтропию числа. Если она окажется равной 256 бит то число случайное.
На практике устройства генерирующие "случайные числа" проходят различные тесты (например
тест на следующий бит) и получают соответствующие сертификаты от уполномоченых назовём их так лабораторий, которые испытывают их согласно разработaнным и зарекомендовавашим себя методикам.
Далее я приведу голые факты , касающие только генераторов случайных чисел в кошельках Ledger и Passport. Я намеренно не публикую здесь свои умозаключения относительно этих генераторов, Пусть каждый сделает их сам для себя. Только найденные мною голые факты, причём взятые из официальных источников, а не из "жёлтой прессы".
Леджер использует RNG (Random Number Generator), который сертифицирован по методике AIS-31.
Этот RNG относится к классу ТRNG( Тrue RNG), что подтверждается ANSSI (Французским Национальным Агенством по Безопасности Информационных систем)
Как видно он соответствует PTG2 уровеню AIS31, что означает что генератор имеет дополнительный стохастический источник энтропии и его стохастичность была протестирована по методике, разработанной Федеральным Офисом по Информационной Безопасности Германии (BSI).
Какой основной источник и какой дополнительный источник мне найти не удалось. Вот что говорит сам Леджер по этому поводу
И тут же следует следующее
после чего, по крайней мере у меня возникают вопросы.
Кстати Foundation не скрывает источник энтропии, который использует ТRNG в Пасспорт кошельке
И напоследок.
Если у вас есть сомнения относительно случайности случайного числа, из которого содаётся СИД вашего аппаратника используйте мультиsig адреса, требующие для своего управления коопреативное использование приватных ключей, генерируемых кошельками от разных производителей.