Контекст, используемый для генерации ключа, связан со слабыми параметрами
Этот дефект возникает при попытке создания ключа с помощью 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);
Слабые параметры приводят к ключам, которые недостаточно сильны для шифрования и подвергают секретную информацию известным способам атаки.
В зависимости от алгоритма используйте следующие параметры:
Diffie-Hellman (DH): установите длину простого параметра DH равной 2048 битам.
ret = EVP_PKEY_CTX_set_dh_paramgen_prime_len(pctx, 2048);
ret = EVP_PKEY_CTX_set_dh_paramgen_generator(pctx, 2);
Алгоритм цифровой подписи (DSA): Установите количество битов, используемых для генерации параметров DSA, равным 2048 битам.
ret = EVP_PKEY_CTX_set_dsa_paramgen_bits(pctx, 2048);
RSA: Установите длину ключа RSA равной 2048 битам.
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++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
CRYPTO_PKEY_WEAK_PARAMS |
| Воздействие: среднее |
| CWE ID: 310, 326, 327, 522 |
Context initialized incorrectly for cryptographic operation | Find defects (-checkers) | Incorrect key for cryptographic algorithm | Missing data for encryption, decryption or signing | Missing parameters for key generation | Missing peer key | Missing private key | Missing public key