CodeQL 文档

使用密钥大小不足的加密算法

ID: cpp/insufficient-key-size
Kind: path-problem
Security severity: 7.5
Severity: error
Precision: high
Tags:
   - security
   - external/cwe/cwe-326
Query suites:
   - cpp-code-scanning.qls
   - cpp-security-extended.qls
   - cpp-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

使用密钥大小较小的加密算法可能会使数据容易被解密。

加密库提供的许多加密算法可以使用易受暴力攻击的密钥大小进行配置。使用这种密钥大小意味着攻击者可能能够轻松解密加密数据。

建议

确保使用强大、现代的加密算法。至少使用 AES-128 或 RSA-2048。

示例

以下代码显示了使用 openssl 库生成 RSA 密钥的示例。创建密钥时,必须指定要使用的密钥大小。第一个示例使用 1024 位,这被认为不够安全。第二个示例使用 2048 位,这在目前被认为是安全的。

void encrypt_with_openssl(EVP_PKEY_CTX *ctx) {

  // BAD: only 1024 bits for an RSA key
  EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 1024);

  // GOOD: 2048 bits for an RSA key
  EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048);
}

参考

  • ©GitHub 公司
  • 条款
  • 隐私