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