使用弱密码学密钥¶
ID: py/weak-crypto-key
Kind: problem
Security severity: 7.5
Severity: error
Precision: high
Tags:
- security
- external/cwe/cwe-326
Query suites:
- python-code-scanning.qls
- python-security-extended.qls
- python-security-and-quality.qls
现代加密依赖于在没有密钥的情况下,计算上不可能破解密码并解码消息。随着计算能力的提高,破解密码的能力也随之增强,密钥需要变得更长。
目前使用的三种主要非对称密钥算法是 Rivest-Shamir-Adleman (RSA) 密码学、数字签名算法 (DSA) 和椭圆曲线密码学 (ECC)。在当前技术下,RSA 和 DSA 的密钥大小为 2048 位,ECC 的密钥大小为 256 位,被认为是不可破解的。
建议¶
将密钥大小增加到推荐值或更大的值。对于 RSA 或 DSA,至少为 2048 位,对于 ECC,至少为 256 位。
参考文献¶
维基百科:数字签名算法.
维基百科:RSA 密码系统.
维基百科:椭圆曲线密码学.
Python 密码学模块:cryptography.io.
NIST:密码算法和密钥长度过渡建议.
常见漏洞枚举:CWE-326.