Почему использование Non-Random IV с CBC Mode является уязвимостью? - PullRequest
40 голосов
/ 09 июня 2010

Я понимаю цель IV.В частности, в режиме CBC это гарантирует, что первый блок из 2 сообщений, зашифрованных одним и тем же ключом, никогда не будет идентичным.Но почему это уязвимость, если IV являются последовательными?Согласно CWE-329 NON-Random IV допускают возможность атаки по словарю.Я знаю, что на практике протоколы, такие как WEP, не прилагают усилий, чтобы скрыть IV.Если у злоумышленника есть текстовое сообщение IV и шифр, то это открывает дверь для словарной атаки на ключ.Я не вижу, как случайный iv меняет это.(Я знаю, что атаки на wep более сложны, чем эта.)

Какое преимущество в безопасности имеет рандомизированное iv?Это все еще проблема с «Идеальным блочным шифром»?(Совершенно безопасный блочный шифр без возможных недостатков.)

Ответы [ 3 ]

94 голосов
/ 09 июня 2010

Предсказуемые IV могут быть использованы выбранным простым текстом.

Представь, что Ева - администратор страховой компании. Компания собирает медицинские истории от бенефициаров, которые включают в себя множество флажков «истинно / ложно» о состоянии здоровья. Эта компания также происходит с собственным поставщиком медицинского страхования. Ева понимает, что Алису можно шантажировать, если она обнаружит, что Алиса имеет особенно неловкое состояние здоровья. Однако значение в каждом из этих полей зашифровано, поэтому, несмотря на то, что Ева является администратором базы данных, она имеет доступ только к зашифрованному тексту.

В CBC IV кодируется XOR (отмечен "⊕" ниже) с простым текстом, затем проходит через блочный шифр: C 1 = E k (IV ⊕ Р 1 ).

Поскольку Ева является бенефициаром страховой компании, она может выбрать простой текст для своей медицинской карты, а поскольку она является администратором базы данных, она может проверить любой зашифрованный текст. В дополнение к использованию предсказуемых IV, неаккуратный разработчик приложений проделал плохую работу по проверке входных данных приложения. Если Ева может заранее предсказать IV, которые будут применены к ней (IV eve ) и записи Алисы (IV alice ) заранее, она может выбрать простой текст для своей собственной записи, например так : P Ева = IV Ева ⊕ IV Алиса ⊕ "ложь"

Приложение шифрует этот простой текст следующим образом:

C канун = E k (IV канун ⊕ P канун ) = E k (IV Ева ⊕ (IV Ева ⊕ IV Алиса ⊕ "ложь"))

IV канун ⊕ IV канун отменяется, что означает, что C канун = E k (IV Алиса false "ложь")

Теперь Ева может сравнивать C eve и C alice . Если они отличаются, она знает, что Алиса должна была ввести «true» для этого заболевания.

Создание IV непредсказуемым образом мешает этой атаке, и простой способ сделать их непредсказуемыми - выбирать их случайным образом после предоставления простого текста.

7 голосов
/ 01 марта 2013

Другие ответы хороши, но сугубо технически.

Почему использование неслучайного IV в режиме CBC является уязвимостью?

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

CBC (цепочка блоков шифрования) решает эту проблему с помощью XORing зашифрованные данные из предыдущего блока с данными, которые должны быть зашифрованы.Это означает, что блоки с одинаковыми данными будут отличаться, если зашифрованные данные из предыдущего блока отличаются, даже если ключи одинаковы.

Проблема с CBC состоит в том, что делать с первым блоком, посколькунет предыдущего блока для получения зашифрованных данных.Вместо этого данные обрабатываются XOR блоком случайных битов, который называется IV (вектор инициализации).

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

7 голосов
/ 09 июня 2010

Я хочу объяснить ваш вопрос с помощью WEP, который уязвим, и теперь используются другие протоколы, такие как WPA2.

простое правило IEEE гласит:

Основное правило - никогда не использовать клавишу + IV дважды, никогда

Одной из причин взлома WEP является причина генерации IV.

alt text

Как видно на рисунке, когда WEP впервые появился, длина IV составляла 24 бита (позже он увеличился на 48 бит), если атакующий знает, как генерируется IV, или в этой ситуации IV достаточно малы для атакующего. использовать сообщения.

Если кто-то знает о генерации IV или его перекрытии (поскольку IV являются 24-битными, это означает 2 ^ 24 IV) во время передачи пакетов, атакующий, который анализирует трафик, может: если IV являются последовательными, это означает, что существует вероятность того, что через некоторое время IV будут перекрываться.

предположим,

passphrase key Kp

initialization vector Ivi

plaintext data D1, D2 (for separateblocks)

Traffic Key:Kti=Kp||Ivi

Ciphertext: E(Kti,Di)=RC4(Kti) xor Di

и предположим, что

IV1=IV2  (created sequentially and from 0 to 2^24 again returns back)

Атакующий имеет,

(RC4(Kt1) xor D1) Xor  (RC4(Kt1) xor D2) = D1 XOR D2

Это можно сломать, используя Aircrack-NG с использованием сетевых трассировок. Идея, которую я показал, - это базовое, более сложное предположение, которое можно сделать, опять же, никогда не используйте тот же IV, который будет перекрываться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...