Рейтинг:2

Node.js uuid.v4 против crypto.randomUUID.Какая реализация более криптографически безопасна?

флаг cn

В течение долгого времени я использовал пакет uuid npm для своих нужд v4 uuid. Кажется, в последних версиях узла они представили встроенный модуль шифрования с методом randomUUID.

Некоторый ориентиры было сделано, чтобы показать крипто.randomUUID намного быстрее, чем uuid.v4 (примерно 3x+).

Однако я не могу найти никакой информации о том, чем реализации отличаются (если вообще) с точки зрения того, как они выбирают случайные числа для своего выходного UUID. Можно ли использовать более безопасный ГСЧ?

Модуль узла UUID

Документы Node.js для crypto.randomUUID

JAAAY avatar
флаг us
Оба они реализуют один и тот же RFC.
fgrieu avatar
флаг ng
Это настолько зависит от реализации и с небольшим количеством криптографии (ключа нет, а неотличимость от случайного не является сутью вопроса), что кажется не по теме. Как насчет того, чтобы спросить об этом на [security-SE] (https://security.stackexchange.com/) или [SO] (https://stackoverflow.com/)?
Alexander D'Attore avatar
флаг cn
Это точно зависит от реализации. Суть моего вопроса заключается в том, какая реализация обеспечивает наилучшую неотличимость от случайной.
SAI Peregrinus avatar
флаг si
Даже «случайные» UUID по дизайну отличимы от случайных байтов. Но оба должны иметь по существу одинаковую энтропию для тех частей UUID, которые выбираются случайным образом в режиме случайного UUID (вместо режима, основанного на времени, или одного из других режимов, указанных в RFC).
Maarten Bodewes avatar
флаг in
К сожалению, трехкратная разница в скорости ни о чем не говорит. Менее безопасный генератор случайных чисел, как правило, *намного* быстрее, чем в 3 раза быстрее. Разница, вероятно, связана с различиями в реализации или тем, как извлекаются случайные числа (например, побайтно или слово в слово). [Этот пост] (https://www.nearform.com/blog/new-crypto-capabilities-in-node-js/), похоже, немного глубже раскрывает различия.

Ответить или комментировать

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