Вектор инициализации является постоянным вместо рандомизированного
Этот дефект возникает, когда вы используете константу для вектора инициализации (IV) во время шифрования.
Использование константы IV эквивалентно отказу от использования IV. Ваши зашифрованные данные уязвимы для атак словаря.
Блочные шифры разбивают ваши данные на блоки фиксированного размера. Режимы блочного шифрования, такие как CBC (Cipher Block Chaining), защищают от атак словаря XOR-ing каждый блок с зашифрованным выходом из предыдущего блока. Чтобы защитить первый блок, эти режимы используют вектор случайной инициализации (IV). Если вы используете константу IV для шифрования нескольких потоков данных, имеющих общее начало, ваши данные становятся уязвимыми для атак словаря.
Произведите случайный IV при помощи сильного генератора случайных чисел.
Список генераторов случайных чисел, которые являются криптографически слабыми, см. Vulnerable pseudo-random
number generator
.
Группа: Криптография |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: CRYPTO_CIPHER_CONSTANT_IV |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE : 310, 326, 329 |