Подтвердить что ты не робот

Почему при использовании функции Non-Random IV с режимом CBC существует уязвимость?

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

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

4b9b3361

Ответ 1

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

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

В CBC IV является XORed (обозначается "⊕" ниже) простым текстом, затем пробегает блок-шифр: C 1= E k ( IV ⊕ P 1).

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

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

C eve= E k (IV eve ⊕ P eve) = E k (IV eve ⊕ (IV eve ⊕ IV alice ⊕ "false" ))

IV eve ⊕ IV eve отменяется, что означает, что C eve= E k (IV alice ⊕ "false" )

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

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

Ответ 2

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

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

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

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

alt text

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

Если кто-то знает о генерации IV или его перекрытий (поскольку IVs - 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, который будет перекрываться.

Ответ 3

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

Почему используется уязвимость Non-Random IV с режимом CBC?

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

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

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

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