Контекст, используемый для генерации ключа, связан со слабыми параметрами
Этот дефект возникает при попытке генерации ключа при помощи 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 равной 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++ |
| По умолчанию: Off |
Синтаксис командной строки
: CRYPTO_PKEY_WEAK_PARAMS |
| Влияние: Средний |
| ИДЕНТИФИКАТОР CWE: 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