Bleichenbacher Attack on RSA Encryption
针对 RSA 加密的 Bleichenbacher 攻击
描述
Bleichenbacher 攻击是一种针对 RSA 加密方案的复杂密码学攻击,它专门利用了 RSA PKCS #1 v1.5 Padding 方法。该攻击利用了在解密过程中提供 Padding 验证反馈的系统漏洞。
工作原理:
该攻击利用了 Padding Oracle(填充预言机),它会泄露 RSA 加密消息的 Padding 是否正确。通过向 Oracle 发送精心构造的密文并分析其响应,攻击者可以在无需访问私钥的情况下恢复明文消息。此过程通常包括以下步骤:
- Crafting Ciphertext:攻击者根据目标密文生成一系列修改后的密文。
- Querying the Oracle:将每个修改后的密文发送到应用程序,应用程序将返回解密是否有效(即 Padding 是否正确)。
- Inferring Plaintext:通过系统地更改密文并观察 Oracle 的响应,攻击者可以推断出原始明文。
不解决 Bleichenbacher 攻击的风险:
- Confidentiality Compromise:攻击者可以解密敏感信息,从而泄露个人和财务信息等机密数据。
- Data Integrity Issues:攻击者可以篡改密文,导致数据被未经授权更改。
- Regulatory Compliance Violations:未能防范此攻击可能导致违反 GDPR 或 HIPAA 等数据保护法规。
示例场景:
假设一个电子商务网站使用 RSA PKCS #1 v1.5 Padding 对支付信息等敏感用户数据进行加密。如果攻击者可以与该网站交互并利用 Bleichenbacher 攻击,他们可能会成功解密这些敏感数据,从而可能导致金融欺诈或身份盗用。
建议
为了有效降低与 Bleichenbacher 攻击相关的风险,组织应采取以下建议:
-
Migrate to Stronger Padding Schemes: Bleichenbacher 攻击所突出的主要漏洞在于 RSA 密钥传输机制,特别是与 PKCS#1 v1.5 Padding 方案结合使用时。组织应从使用 RSA 加密迁移到更安全的替代方案,例如 Diffie-Hellman 或椭圆曲线(Elliptic Curve)密钥交换,或者至少实施 RSA-OAEP(Optimal Asymmetric Encryption Padding),后者对抵抗此类攻击更加有效。
-
Upgrade to TLS 1.3: TLS 1.3 协议包含了重大改进,包括消除可能充当此攻击 Oracle 的错误消息。它还结合了额外的密码学对策,例如更好的 Padding 方案。NIST 强制要求美国政府系统必须在 2024 年前支持 TLS 1.3,这也是建议私营部门遵循的一项强烈建议。
-
Regularly Patch and Audit Systems: 在缓解 Bleichenbacher 风格的攻击时,一个关键问题是许多系统在补丁可用很久之后仍然存在漏洞。确保及时为 OpenSSL 等库应用补丁至关重要,因为许多企业未能及时保护系统。漏洞扫描和补丁管理工具应作为常规安全审计的一部分。
链接
标准
- SOC2_CONTROLS:
- CC_3_4
- CC_6_7
- CC_7_1
- OWASP_MASVS_L1:
- MSTG_CRYPTO_4
- OWASP_MASVS_L2:
- MSTG_CRYPTO_4
- OWASP_MASVS_v2_1:
- MASVS_CRYPTO_1
- MASVS_CRYPTO_2
- CCPA:
- CCPA_1798_150
- GDPR:
- ART_25
- ART_32
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_7
- REQ_6_2
- REQ_6_3
- REQ_6_4
- REQ_11_3