Weak cipher algorithm

Алгоритм шифрования, сопоставленный с контекстом шифра, слаб

Описание

Этот дефект происходит, когда вы сопоставляете слабый алгоритм шифрования с контекстом шифра.

Риск

Некоторые алгоритмы шифрования знали дефекты. Хотя библиотека OpenSSL все еще поддерживает алгоритмы, необходимо избегать использования их.

Если ваш алгоритм шифра слаб, атакующий может дешифровать ваши данные путем использования известного дефекта или атак грубой силой.

Фиксация

Используйте алгоритмы, которые хорошо изучены и широко подтверждены как безопасные.

Например, Усовершенствованный стандарт шифрования (AES) является широко принятым алгоритмом шифра.

Примеры

развернуть все


#include <openssl/evp.h>
#include <stdlib.h>

void func(unsigned char *key, unsigned char *iv) {
    EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
    EVP_CIPHER_CTX_init(ctx);
    const EVP_CIPHER * ciph = EVP_des_cbc();        
    EVP_EncryptInit_ex(ctx, ciph, NULL, key, iv);   
}

В этом примере, стандартном EVP_des_cbc() вызывает алгоритм Стандарта шифрования данных (DES), который теперь рассматривается как незащищенный и относительно медленный.

Коррекция — алгоритм AES использования

Одна возможная коррекция должна использовать более быстрый и более безопасный алгоритм Усовершенствованного стандарта шифрования (AES) вместо этого.


#include <openssl/evp.h>
#include <stdlib.h>

void func(unsigned char *key, unsigned char *iv) {
    EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
    EVP_CIPHER_CTX_init(ctx);
    const EVP_CIPHER * ciph = EVP_aes_128_cbc();        
    EVP_EncryptInit_ex(ctx, ciph, NULL, key, iv);   
}

Информация о результате

Группа: криптография
Язык: C | C++
Значение по умолчанию: 'off'
Синтаксис командной строки: CRYPTO_CIPHER_WEAK_CIPHER
Удар: носитель
ID CWE: 310, 326, 327

Введенный в R2017a