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