Weak Cryptographic Key and Signature Algorithm in SSL/TLS Certificate
SSL/TLS 证书中弱加密密钥和签名算法
描述
具有弱加密密钥或签名算法的 SSL/TLS 证书会带来显著的安全风险,使系统容易受到密码学攻击。
关于弱加密密钥和签名算法的关键点:
- 弱加密密钥:
- RSA 密钥:短于 2048 位的 RSA 密钥被认为是弱密钥。目前的建议是至少使用 2048 位,为了长期的安全性,请使用 3072 位或更高。
- DSA 密钥:与 RSA 类似,短于 2048 位的 DSA 密钥被认为是弱密钥,应避免使用。
- 计算能力的进步:随着计算能力的提升,较短的密钥长度越来越容易受到攻击。
-
行业标准:许多行业标准和合规性要求规定了 SSL/TLS 证书的最小密钥长度。
-
弱签名算法:
- 过时的算法:MD5 和 SHA1 被认为在密码学上已被破解,不应使用。
- 碰撞攻击:弱算法容易受到碰撞攻击的影响,攻击者可以利用此类攻击创建出与合法证书具有相同签名的伪造证书。
- 行业标准:许多行业标准和合规性要求禁止使用弱签名算法。
- 向后兼容性:某些系统出于向后兼容性的考虑可能仍在使用弱算法,但强烈反对这种做法。
实际影响: 使用 1024 位 RSA 密钥或使用 SHA1 签名的证书的网站,可能会成为拥有大量计算资源的攻击者的目标。他们可能会解密截获的流量或伪造证书,从而进行中间人(man-in-the-middle)攻击并损害通信的安全性。因此,遵循要求使用强密钥和算法的行业标准对于维护 SSL/TLS 安全至关重要。
建议
解决弱密钥漏洞:
- 使用足够的密钥长度:
- 对于 RSA 和 DSA,请使用最小 2048 位的密钥长度。
-
考虑使用 3072 位或更高来保证长期的安全性。
-
考虑使用椭圆曲线密码学 (ECC):
- ECC 使用较短的密钥长度即可提供同等的安全性,并提供更好的性能。
-
使用诸如 P-256 或 P-384 等曲线来获取强安全性。
-
定期轮换密钥:
-
实施定期轮换密钥的策略,特别是在升级到更强密钥长度时。
-
审计现有证书:
-
定期审计您的 SSL/TLS 证书,以识别和替换任何带有弱密钥的证书。
-
使用现代证书颁发机构:
-
选择强制要求强密钥并遵循行业最佳实践的 CA。
-
实施强大的密钥生成实践:
- 在生成密钥时,使用密码学上安全的随机数生成器。
- 考虑使用硬件安全模块(HSM)来进行密钥的生成和存储。
链接
- NIST Recommendation for Key Management
- Baseline Requirements for TLS Server Certificates
- SSL Labs Best Practices
标准
- SOC2_CONTROLS:
- CC_6_7
- CC_7_1
- CCPA:
- CCPA_1798_150
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213
- SECURITY255
- GDPR:
- ART_32
- PCI_STANDARDS:
- REQ_4_1
- REQ_6_2