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

Одной из возможных коррекций является использование более быстрого и безопасного алгоритма Advanced Encryption Standard (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
Влияние: Средний
ИДЕНТИФИКАТОР CWE : 310, 326, 327
Введенный в R2017a