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