Вектор инициализации генерируется из генератора слабых случайных чисел
Этот дефект возникает, когда вы используете генератор слабых случайных чисел для вектора инициализации блочного шифра.
Если вы используете генератор слабых случайных чисел для вектора инициации, ваши данные уязвимы для атак словаря.
Блочные шифры разбивают ваши данные на блоки фиксированного размера. Режимы блочного шифрования, такие как CBC (Cipher Block Chaining), защищают от атак словаря XOR-ing каждый блок с зашифрованным выходом из предыдущего блока. Чтобы защитить первый блок, эти режимы используют вектор случайной инициализации (IV). Если вы используете слабый генератор случайных чисел для вашего IV, ваши данные становятся уязвимыми для атак словаря.
Используйте сильный генератор псевдослучайных чисел (PRNG) для вектора инициализации. Для образца используйте:
PRNG уровня ОС, такой как /dev/random
в UNIX® или CryptGenRandom()
в Windows®
PRNG прикладного уровня, такой как Advanced Encryption Standard (AES) в режиме счетчика (CTR), HMAC-SHA1 и т.д.
Список генераторов случайных чисел, которые являются криптографически слабыми, см. Vulnerable pseudo-random
number generator
.
Группа: Криптография |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: CRYPTO_CIPHER_PREDICTABLE_IV |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE : 310, 329, 330, 338 |