Рейтинг:0

Сохранение 4-символьного префикса для 32-битного шестнадцатеричного токена после сохранения дайджеста HMAC

флаг us

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

Мой вопрос: безопасно ли хранить такой префикс?

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

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

Заранее спасибо.

Maarten Bodewes avatar
флаг in
32-битный случайный *hex*? Шестнадцатеричные числа — это схема нумерации с основанием 16, часто используемая для представления байтов. Биты — это *двоичные цифры*, то есть основание 2.
Рейтинг:0
флаг in

В криптографии мы всегда делаем все вычисления в битах. HMAC имеет тот же размер, что и используемый хэш. Предполагая безопасную хэш-функцию, такую ​​​​как SHA-256, вы получите 256 битов на выходе, как это отражено в имени.

Из них 32 бита хранятся в вашей схеме. Теперь для хеша и HMAC все биты зависят от ввода, но в принципе вы ничего не можете сказать о неизвестных битах из выходных битов. Это означает, что осталось 224 бита. Злоумышленник в среднем возьмет $2^{223}$ предполагает, чтобы получить полное значение HMAC.

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

Maarten Bodewes avatar
флаг in
Помните, что этот ответ не дает никаких указаний на безопасность вашего решения; это не глубокий анализ, и такой анализ считается не относящимся к теме этого сайта вопросов и ответов.

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

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