Контекст, используемый в шифровании или дешифровании, сопоставлен с вектором инициализации NULL или не сопоставлен с вектором инициализации
Этот дефект происходит, когда вы шифруете или дешифруете данные с помощью вектора инициализации (IV) NULL.
Можно инициализировать контекст шифра вектором инициализации (IV) NULL. Однако, если ваш алгоритм требует IV перед шагом шифрования или дешифрования, необходимо сопоставить контекст шифра с непустым IV.
Много режимов блочного шифра используют вектор инициализации (IV), чтобы предотвратить атаки с подбором по словарю. Если вы используете IV NULL, ваши зашифрованные данные уязвимо для таких нападений.
Блочные шифры повреждают ваши данные в блоки фиксированного размера. Режимы блочного шифра, такие как CBC (Сцепление блоков шифра) защищают от атак с подбором по словарю XOR-лугом каждый блок с зашифрованным выходом от предыдущего блока. Чтобы защитить первый блок, эти режимы используют случайный вектор инициализации (IV). Если вы используете IV NULL, вы получаете тот же шифрованный текст при шифровании того же простого текста. Ваши данные становятся уязвимыми для атак с подбором по словарю.
Перед вашими шагами шифрования или дешифрования
ret = EVP_EncryptUpdate(&ctx, out_buf, &out_len, src, len)
ctx
с непустым вектором инициализации.ret = EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv)
Группа: криптография |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки: CRYPTO_CIPHER_NO_IV |
Удар: носитель |
ID CWE: 310, 326, 329 |