Рейтинг:2

Как работает атака дня рождения на аутентификацию сообщений?

флаг in
Tim

В Криптографическая инженерия:

2.7.1 Атаки на дни рождения

Атаки дня рождения названы в честь парадокса дня рождения. Если у вас 23 людей в комнате, вероятность того, что у двоих из них будет одинаковая день рождения превышает 50%. Это удивительно большая вероятность, учитывая что существует 365 возможных дней рождения.

Так что же такое атака на день рождения? Это атака, которая зависит от факта что повторяющиеся значения, также называемые коллизиями, появляются намного быстрее, чем вы ожидаете. Предположим, система для безопасных финансовых транзакций использует новый 64-битный ключ аутентификации для каждой транзакции. (За простоты, мы предполагаем, что шифрование не используется.) $2^{64}$ ($=18\cdot 10^{18}$ , или восемнадцать миллиардов миллиардов) возможных ключевых значений, так что это должно быть довольно трудно сломать, не так ли? Неправильный! Увидев о $2^{32}$ ($=4\cdot 10^9$ , или четыре миллиарда) транзакций, злоумышленник может ожидать что две транзакции используют один и тот же ключ. Предположим, первый аутентифицированное сообщение всегда одно и то же: «Готовы ли вы получить транзакция?" сообщение. Если две транзакции используют одну и ту же аутентификацию ключ, то значения MAC в их первых сообщениях также будут то же самое, что легко обнаружить злоумышленнику. Зная, что два ключа одинаковы, злоумышленник теперь может вставлять сообщения из старая транзакция в более новую транзакцию, пока она выполняется. Поскольку они аутентифицируются правильным ключом, эти поддельные сообщения будет принят, что является явным разрывом финансовой операции система.

Чем это плохо:

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

?

Предположим, что у двух транзакций один и тот же MAC-адрес, что подразумевает один и тот же ключ аутентификации.

Разве сообщение из старой транзакции не совпадает с сообщением из новой транзакции? Так замена ничего не меняет?

Рейтинг:5
флаг in

В этом контексте транзакция $t_i$ содержит много сообщений $m_i^t$ где каждое сообщение имеет MAC-адрес с ключом транзакции $k_i$.

Теперь предположим, что MAC-ключ каждой транзакции генерируется. равномерно случайно[1]. Затем после примерно $2^{32}$ транзакций, мы ожидаем, что ключ появится снова с вероятностью 50% в соответствии с парадоксом дня рождения. Это часть столкновения. Предполагать $t_i$ и $t_j$ иметь одинаковый MAC-ключ $k_i$.

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

Злоумышленник хранит

| (m10,MAC(m10) |(m11,MAC(m11) | ... | (m1N1,MAC(m1N1)|
| (m20,MAC(m20) |(m21,MAC(m21) | ... | (m2N1,MAC(m2N2)|
....
| (mi0,MAC(mi0) |(mi1,MAC(mi1) | ... | (miNi,MAC(miNi)|
....
| (mj0,MAC(mj0) |(mj1,MAC(mj1) | ... | (mjNi,MAC(mjNi)|

и наблюдает: MAC(mi0) = MAC(mj0)
и может отправить

| (mj0,MAC(mj0) |(mi1,MAC(mi1) | ... | (miNi,MAC(miNi)|

Теперь они просто принимают сообщения $m_i^t$ от $t_i$и вставьте их в текущую транзакцию, использующую тот же ключ. Таким образом, новая транзакция содержит $m_j^t$ сообщения и вставка $m_i^t$ сообщения о преимуществе атакующего. Злоумышленник может удалить все $m_j^t$ сообщения о транзакции и может отправлять $m_i^t$х тоже в зависимости от их преимущества.

В результате замены изменяются сообщения о транзакции.


[1] Это важная часть столкновений и безопасности.

Tim avatar
флаг in
Tim
Спасибо. (1) Что означают $m_i^t$ и $t_i$ в фразе «они просто берут сообщения $m_i^t$ из $t_i$»? Я не вижу их в части после "Атакующие магазины". (2) в части после «Злоумышленник хранит», «наблюдает: MAC (mi0) = MAC (mj0)», атакующий также наблюдает «mi0 = mj0»? (3) Верно ли также и для других k больше 0, но не больше Ni, что MAC(mik) = MAC(mjk)", и "mik = mjk"? (4) Последнее сообщение (mjNi,MAC( mjNi) в транзакции j означает, что имеется N сообщений, как и в транзакции i?
kelalaka avatar
флаг in
Транзакция с именем $t_i$ и транзакция могут содержать много сообщений, каждое из которых имеет имя $m_i^t$, где верхний индекс $t$ может находиться в диапазоне от $1$ до $m1N1$. Как только они заметили, что MAC-адрес первого сообщения повторяется для транзакции, это означает, что ключ MAC-адреса тот же. Поскольку они сохранили все предыдущие транзакции, теперь активные злоумышленники могут воспроизвести текущую выполняющуюся транзакцию в зависимости от своих возможностей.
kelalaka avatar
флаг in
Ну, количество сообщений в каждой транзакции может быть разным или нет, это зависит от схемы. Текстовый рисунок, хотя, кажется, указывает, что они одинаковы, последние индексы не обязательно одинаковы. 2) Злоумышленник всегда наблюдает за сообщениями, и предполагается, что первое сообщение одинаково для всех транзакций. Поэтому, если вы видите начало транзакции, возможно, вам не нужно проверять первые массы, однако это легко проверить. 3) Непонятно - надеюсь, что понятно из последнего комментария. 4) Да.
kelalaka avatar
флаг in
и, **обратите внимание, что:** хотя безопасность MAC не зависит от того, зашифровано сообщение или нет, эта атака предполагает, что сообщения не зашифрованы.Это реалистичное предположение; учтите, что вы можете отправлять публичные сообщения, однако вам нужен MAC для защиты от подделок.
Рейтинг:2
флаг ar

Как отмечает kelalaka, кажется, существует неявное предположение, что «транзакция» содержит несколько сообщений, прошедших отдельную проверку подлинности, и что эти сообщения не прикованный любым способом (например, путем включения маркера MAC предыдущего сообщения во входные данные для расчета MAC следующего сообщения).

Стоит отметить, что такая схема не защищает целостность транзакций в любом случае — злоумышленник MITM может изменить порядок, удалить или воспроизвести сообщения в рамках одной транзакции, не будучи перехваченным MAC. Атака дня рождения, как описано, только дает злоумышленнику дополнительную свободу воспроизведения сообщений от одной транзакции к другой с использованием того же ключа MAC, что не является большим расширением (и без того довольно плохой) уязвимости к атакам MITM, которые схема могла бы иметь даже с более длинными ключами MAC.


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

Например, предположим, что $я$-е сообщение в транзакции $t$ аутентифицируется тегом $$\tau_{i,t} = \operatorname{MAC}_{K_t}(\tau_{i-1,t} \mathbin\| i \mathbin\| m_{i,t}),$$ куда $K_t$ является MAC-ключом для каждой транзакции, $\tau_{i-1,t}$ это тег MAC для предыдущего сообщения в транзакции, $я$ - это номер сообщения (дополненный до фиксированной длины или иным образом однозначно отделенный от других входных данных MAC) и $m_{i,t}$ это сообщение, которое должно быть аутентифицировано.

Затем, чтобы иметь возможность заменить помеченное сообщение $(m_{i,t}, \tau_{i,t})$ с ранее перехваченным $(m_{i',t'}, \tau_{i',t'})$ из другой сделки $t'$ и пройти проверку MAC-адреса, злоумышленнику нужно не просто $K_t = K_{t'}$, но и $я = я'$ и $\tau_{i-1,t} = \tau_{i-1,t'}$. Этот мог произойти случайно, если общая длина ключа, тега и (типичные значения) счетчика сообщений была достаточно низкой, но это намного менее вероятно, чем просто столкновение двух ключей. На практике также потребуется, чтобы тег (или ключ!) был достаточно коротким, чтобы он был непосредственно уязвим для атак с подделкой методом грубой силы даже без использования эффекта дня рождения.

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

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

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