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

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

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

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

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

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

Поскольку Ева является бенефициаром страховой компании, она может выбрать простой текст для своей собственной медицинской записи, а так как она является администратором баз данных, она может изучить любой шифрованный текст. В дополнение к использованию предсказуемых IV, разработчик неаккуратного приложения плохо выполнял проверку входов приложений. Если Ева может предсказать IV, которые будут применены к ней (IV) и Алиса (IV Алиса) заблаговременно, она может выбрать простой текст для своей собственной записи следующим образом: 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 еве ⊕ IV eve отменяет, что означает, что C eve = E k (IV alice ⊕ “false”)

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

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

Я хочу объяснить ваш вопрос, используя 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, который будет перекрываться.

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

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

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

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

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

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

  • Шифрование настроек приложения в web.config
  • Какая оптимальная длина для паролей пользователей?
  • Шифрование учетных данных в приложении WPF
  • Почему безопасность через неясность - плохая идея?
  • Как защитить общие настройки Android?
  • Давайте будем гением компьютера.