Контекст, используемый для генерации ключа, связан со слабыми параметрами
Этот дефект возникает при попытке генерации ключа при помощи 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