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