Атака Флюрера, Мантина и Шамира - Fluhrer, Mantin and Shamir attack
В криптография, то Атака Флюрера, Мантина и Шамира это атака потокового шифрования на широко используемых RC4 потоковый шифр. Атака позволяет злоумышленнику восстановить ключ в зашифрованном потоке RC4 из большого количества сообщений в этом потоке.
Атака Флюрера, Мантина и Шамира применима к определенным методам получения ключей, но не применяется в целом к основанным на RC4 SSL (TLS), поскольку SSL генерирует ключи шифрования, которые он использует для RC4, путем хеширования, что означает, что разные сеансы SSL не имеют связанных ключей.[1] Однако тесно связанные атака бар-мицвы, основанное на том же исследовании и выявленное в 2015 году, действительно использует те случаи, когда слабые ключи генерируются процессом ключей SSL.
Задний план
В Флюрер, Мантин и Шамир (FMS), опубликованные в их статье 2001 г. «Слабые стороны алгоритма планирования ключей RC4»,[2] использует слабость RC4 планирование ключей алгоритм восстановления ключа из зашифрованных сообщений. Атака FMS приобрела популярность в инструментах сетевых атак, включая AirSnort, Weplab, и трещина, которые используют его для восстановления ключа, используемого WEP защищенные беспроводные сети.
В этом обсуждении будет использоваться приведенный ниже алгоритм планирования ключей RC4 (KSA).
begin ksa (с int keylength, с байтовым ключом [keylength]) для i от 0 до 255 S [i]: = i endfor j: = 0 для i от 0 до 255 j: = (j + S [i] + key [i mod keylength]) mod 256 swap (S [i], S [j]) endforend
Также будет использоваться следующий алгоритм псевдослучайной генерации (PRGA).
begin prga (с байтом S [256]) i: = 0 j: = 0 при GeneratingOutput: i: = (i + 1) mod 256 j: = (j + S [i]) mod 256 swap (S [i] , S [j]) вывод S [(S [i] + S [j]) mod 256] end whileend
Атака
В основе атаки FMS лежит использование слабых векторы инициализации (IV) используется с RC4. RC4 шифрует по одному байту с помощью ключевой поток выход из прга (); RC4 использует ключ для инициализации Государственный аппарат через ksa (), а затем непрерывно изменяет состояние и генерирует новый байт ключевого потока из нового состояния. Теоретически ключевой поток функционирует как случайный одноразовый блокнот, как генератор псевдослучайных чисел контролирует вывод на каждом шаге.
С некоторыми IV злоумышленник зная первый байт ключевого потока и первый м байты ключа могут выводить (м + 1) -й байт ключа из-за слабости в ГПСЧ используется для генерации ключевого потока. Поскольку первый байт открытого текста поступает из WEP ЩЕЛЧОК заголовок, злоумышленник может предположить, что он может получить первый байт ключевого потока из B ⊕ 0xAA (заголовок SNAP почти всегда 0xAA). Оттуда ему нужен только IV в форме (а + 3, п − 1, Икс) для ключевого индекса а origin 0, пространство значений элемента п (256, так как 8 бит составляют байт) и любые Икс. Для начала злоумышленнику нужны IV из (3, 255,Икс). WEP использует 24-битные IV, делая каждое значение длиной в один байт.
Для начала злоумышленник использует IV как первые 3 элемента в K []. Он заполняет S-блок S [] последовательными значениями от 0 до п как это делает RC4 при инициализации S-блока из известного K []. Затем он выполняет первые 3 итерации ksa (), чтобы начать инициализацию S-блока.
После третьего шага злоумышленник может, но не определенно, получить четвертый байт ключа, используя вывод ключевого потока. О путем вычисления (O -j − S[я]) модп = K[я] со значением я = 3 на этом шаге.
На этом этапе у злоумышленника еще нет четвертого байта ключа. Этот алгоритм не восстанавливает следующий байт ключа; он генерирует возможное значение ключа. Собирая несколько сообщений - например, WEP-пакетов - и повторяя эти шаги, злоумышленник сгенерирует ряд различных возможных значений. Правильное значение появляется значительно чаще, чем любое другое; злоумышленник может определить значение ключа, распознав это значение и выбрав его в качестве следующего байта. В этот момент он может снова начать атаку с пятого байта ключа.
Хотя злоумышленник не может атаковать слова ключа не по порядку, он может сохранять сообщения для последующей последовательной атаки на более поздние слова, как только он узнает более ранние слова. Опять же, ему нужны только сообщения со слабым IV, и он может отбрасывать другие. Благодаря этому процессу он может собрать большое количество сообщений для атаки на весь ключ; на самом деле, он может сохранить только короткую часть начала этих сообщений, ровно столько, чтобы провести атаку настолько, насколько слово ключа IV позволит ему атаковать.
использованная литература
- ^ «Ответ безопасности RSA на слабые места в алгоритме планирования ключей RC4». RSA Laboratories. 9 сентября 2001 г.
- ^ Флюрер С., Мантин И. и Шамир А. "Слабые стороны ключевого алгоритма планирования RC4 ", Selected Areas of Cryptography: SAC 2001, Lecture Notes in Computer Science Vol. 2259, pp 1-24, 2001.