Генерация мнемонической парольной фразы в кошельках / аппаратных кошельках - недостаток безопасности?

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

Мои мысли:

создатель кошелька может случайно или намеренно использовать детерминированные семена для создания мнемонической фразы-пароля

каково ваше мнение об этом?

Я использую мицелий — так что теоретически я мог бы проверить код сам — но также и с помощью Ledger Nanos — так что на самом деле нет способа проверить, что вышеуказанная угроза не реализована в кошельке HW, верно?

Ответы (1)

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

Нет, не было бы. Этот метод может быть даже небезопасным, если вы на самом деле делаете это вручную.

Мнемоника BIP 39, если она сгенерирована правильно, является безопасной. Это так же безопасно, если вы выбираете слова случайным образом. Это связано с тем, что для обоих методов требуется криптографически безопасный генератор случайных чисел. Для BIP 39 вы используете CSRNG для генерации 256-битного случайного числа и разбиваете его для создания мнемоники. Есть дополнительная контрольная сумма, благодаря которой мнемоника представляет 264-битное число.

В вашем методе вы генерируете 24 случайных 11-битных числа (поскольку в списке слов 2048 слов) и используете каждое число для выбора используемого слова. Хотя это более случайно, вы теряете контрольную сумму. Кроме того, это всего на 8 бит больше случайности, что ненамного больше случайности. В любом случае, мнемоника достаточно безопасна не из-за используемого метода, а из-за того, что для генерации чисел использовался CSRNG.

Однако, если вы на самом деле делаете это вручную, то это, вероятно, небезопасно. Если вы генерируете числа самостоятельно (т.е. без помощи CSRNG), то ваше семя не будет достаточно случайным. Люди, как известно, являются плохим источником энтропии, но вы хотите, чтобы ваша мнемоника имела хорошую энтропию. Так что делать это вручную не очень хорошая идея.

Хотя вы можете использовать 6-гранный кубик для случайной генерации чисел, это не обязательно может быть хорошим источником энтропии. Также потребуется несколько сотен рулонов, чтобы иметь достаточное количество бит.

создатель кошелька может случайно или намеренно использовать детерминированные семена для создания мнемонической фразы-пароля

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

но также и с помощью Ledger nano s — так что на самом деле нет способа проверить, что вышеуказанная угроза не реализована в кошельке HW, верно?

Не обязательно. Большая часть прошивки Ledger Nano S имеет открытый исходный код. И начальное число генерируется с использованием безопасного элемента , который имеет True RNG, соответствующий классу PTG.2 AIS-31. Вы можете проверить, что прошивка вызывает правильные функции в SDK Secure Element , чтобы использовать TRNG для создания начальных значений.

К сожалению, прошивка Secure Element имеет закрытый исходный код, однако я не думаю, что Ledger может модифицировать эту прошивку. Я полагаю, что они получают только двоичный файл для прошивки от производителя чипа, STMicroelectronics.