Контекст, используемый в генерации ключей, сопоставлен слабыми параметрами
Этот дефект происходит, когда вы делаете попытку генерации ключей при помощи EVP_PKEY_CTX
объект контекста, который сопоставлен слабыми параметрами. То, что составляет слабый параметр, зависит от используемого алгоритма с открытым ключом. В алгоритме DSA слабый параметр может быть результатом установки недостаточной длины параметра.
Например, вы определяете номер битов, используемых в генерации параметра DSA к 512 битам, и затем используете параметры в генерации ключей:
EVP_PKEY_CTX *pctx,*kctx; EVP_PKEY *params, *pkey; /* Initializations for parameter generation */ pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_DSA, NULL); params = EVP_PKEY_new(); /* Parameter generation */ ret = EVP_PKEY_paramgen_init(pctx); ret = EVP_PKEY_CTX_set_dsa_paramgen_bits(pctx, KEYLEN_512BITS); ret = EVP_PKEY_paramgen(pctx, ¶ms); /* Initializations for key generation */ kctx = EVP_PKEY_CTX_new(params, NULL); pkey = EVP_PKEY_new(); /* Key generation */ ret = EVP_PKEY_keygen_init(kctx); ret = EVP_PKEY_keygen(kctx, &pkey);
Слабые параметры приводят к ключам, которые не достаточно сильны для шифрования и отсоединяют уязвимую информацию известным способам нападения.
В зависимости от алгоритма используйте эти параметры:
Диффи-Хеллмен (DH): Установите длину DH главный параметр к 2 048 битам.
ret = EVP_PKEY_CTX_set_dh_paramgen_prime_len(pctx, 2048);
ret = EVP_PKEY_CTX_set_dh_paramgen_generator(pctx, 2);
Алгоритм цифровой подписи (DSA): Определите номер битов, используемых в генерации параметра DSA к 2 048 битам.
ret = EVP_PKEY_CTX_set_dsa_paramgen_bits(pctx, 2048);
RSA: Установите длину ключа RSA до 2 048 битов.
ret = EVP_PKEY_CTX_set_rsa_keygen_bits(kctx, 2048);
Эллиптическая кривая (EC): Избегайте использования кривых, которые, как известно, повреждаются, например, X9_62_prime256v1
. Используйте, например, sect239k1
.
ret = EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, NID_sect239k1);
Группа: криптография |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
CRYPTO_PKEY_WEAK_PARAMS |
Удар: носитель |
ID CWE: 310, 326, 327, 522 |
Context initialized incorrectly for cryptographic operation
| Find defects (-checkers)
| Incorrect key for cryptographic algorithm
| Missing parameters for key generation
| Missing data for encryption, decryption or signing
| Missing peer key
| Missing private key
| Missing public key