Вектор инициализации генерируется из слабого генератора случайных чисел
Этот дефект возникает при использовании слабого генератора случайных чисел для вектора инициализации блочного шифра.
Если для вектора инициации используется слабый генератор случайных чисел, данные уязвимы для словарных атак.
Блочные шифры разбивают данные на блоки фиксированного размера. Блочные режимы шифрования, такие как 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++ |
| По умолчанию: Откл. |
Синтаксис командной строки: CRYPTO_CIPHER_PREDICTABLE_IV |
| Воздействие: среднее |
| CWE ID: 310, 329, 330, 338 |