Рейтинг:0

Может ли одноразовый открытый ключ HMAC быть безопасным?

флаг cn

Представьте себе аутентификацию, например $hmac = H(одноразовый номер, зашифрованный текст)$. $одноразовый номер$ является действительно случайным и выбирается (случайным образом и БЕЗ замены) из заданного набора $N$. Так ${одноразовый номер} \in N$ и однажды использованный не может быть повторно использован когда-либо снова. И $N$ является общеизвестным. Между ними нет алгоритмической связи. $одноразовый номер$ и $зашифрованный текст$.

Является ли HMAC безопасным $N$ является общедоступным?

Morrolan avatar
флаг ng
Учитывая, что одноразовый номер выбирается случайным образом, я полагаю, что он каким-то образом будет передан - в обычном виде - как часть кортежа сообщения / MAC? Тогда, конечно, злоумышленник, способный перехватить это сообщение, может просто подставить свое собственное сообщение и пересчитать MAC, используя переданный одноразовый номер.
Paul Uszak avatar
флаг cn
@Морролан Хия. Конечно могут. Но $N$ — это предопределенное фиксированное множество. _" переданный одноразовый номер"_ должен быть членом $N$. И его можно использовать только один раз, а $|nonce|$ очень большой.
Manish Adhikari avatar
флаг us
Да, этот вопрос трудно понять без надлежащего описания протокола взаимодействия, например, кто выбирает одноразовый номер, что это за набор N, кто вычисляет hmac и как он передается.
Morrolan avatar
флаг ng
@PaulUszak В этом случае кажется, что он полностью ломается - будучи из известного набора и возможностью использования только один раз, он не защищает от противника, способного перехватить сообщение. Они изменят его, пересчитают MAC и отправят измененное сообщение. Если одноразовый номер был выбран каким-то детерминированным, но секретным способом (например, PRF), то вы могли бы заставить его работать. Но, конечно, тогда вам нужен общий секретный ключ для PRF. Возможно, мы упускаем какой-то момент - возможно, стоит перефразировать/предоставить дополнительные детали. :)
Paul Uszak avatar
флаг cn
@Morrolan Morrolan Я ищу одноразовый MAC. Извинения.
Paul Uszak avatar
флаг cn
@ManishAdhikari Я ищу одноразовый MAC. Извинения.
Morrolan avatar
флаг ng
@PaulUszak рассмотрите следующий сценарий: A хочет отправить сообщение $m$. Выбирает одноразовый номер $n \leftarrow N$ и вычисляет MAC $h := HMAC(n, m)$. Отправляет $(n, h, m)$ пользователю B. E перехватывает $(n, h, m)$ (сообщение не доходит до B!). Выбирает произвольное сообщение $m'$, вычисляет $h' = HMAC(n, m')$. Отправляет $(n, h', m')$ Бобу. B проверяет, что $n$ ранее никогда не использовалось и что $HMAC(n, m') = h'$. Обе проверки проходят => Подделка. Вы согласны с тем, что это проблема? Или сделать, например. у ваших сторон есть безопасный внеполосный механизм, с помощью которого они передают одноразовый номер?
Paul Uszak avatar
флаг cn
@Morrolan Да, одноразовый номер предопределен вне диапазона из фиксированного и неизменного набора $N$. Таким образом, $n$ всегда уникален, порядка 160 действительно случайных битов.
Morrolan avatar
флаг ng
Я понимаю! В этом случае это похоже на то, как обычно используется HMAC, а именно с секретным ключом. За исключением того, что в вашем случае ключ эфемерен и используется только для одного сообщения. Предполагая достаточно большое пространство ключей (которое составляет 160 бит), я лично не вижу в этом проблем. (Возможно, добавьте этот лакомый кусочек к вопросу, хотя для будущих посетителей. Как есть, это не очень ясно - по крайней мере, для меня)
Рейтинг:2
флаг in

Если одноразовый номер известен, то HMAC превращается в хеш-функцию, и злоумышленник может провести активную атаку, просто заменив тег аутентификации. $t$ с $t' = H_{k=одноразовый номер}(зашифрованный текст')$.

Если большой $N$ известно или нет не имеет значения; если одноразовый номер остается секретным, то $N$ это просто домен, из которого берется секрет; то есть в этом случае вы описали функцию генерации секретного ключа, для которой $N$ общеизвестно (например, это $2^{256}$ для HMAC-SHA-256, в целом описывается как функция $\text{Общество}$ с выходом $1^{256}$ или же $\{0, 1\}^{256}$).

Конечно, если значение тега $t$ не может быть изменен злоумышленником, то конструкция безопасна, если предположить, что $t$ достаточно велик. В конце концов, это эквивалентно статическому хеш-значению для конкретного сообщения, которое нельзя изменить, подобно хэш-значению файла на исходном сайте, который можно загрузить с зеркала.

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

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

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