一、修复原则
修复原则上2条走:
1、新产品、新业务 不应使用弱算法,如果使用应及时修复
2、已经产品
-
【金融类】业务应自行根据涉及广度 排期修复
-
【非金融】 类,在修复难度大、涉及面广的情况下 可以暂时不修复,择机修复。
二、修复建议
弱算法 | 替代建议 | 依据 |
哈希算法: MD5、MD4、SHA1 | SHA-256、SHA-512、SM3、SHA-3 系列、MD5+HMAC | 依据1: owasp-mstg/0x04g-Testing-Cryptography.md at master · MobSF/owasp-mstg · GitHub 依据2: 各大 安全厂商检测 依据3: PCI规范 |
对称加密算法: DES、3DES/TDES、RC2、RC4、BLOWFISH AES CBC模式、AES ECB模式 。但在PCI规范中,对于这两种模式使用存在模糊,这里将其不纳入弱算法。但新业务、新产品不建议使用 | AES-GCM-256、SM4、 AES CBC模式+HMAC、ChaCha20-Poly1305 | |
非对称加密算法: RSA1024 rsa nopadding或RSA_NO_PADDING |
|
三、扩展阅读:使用AES CBC模式加密,如何抵御Padding Oracle攻击?
Padding Oracle攻击实施的关键在于,能够区分解密过程padding是否合法。具体地,当padding非法,则返回“Invalid padding”文字,若padding合法而只是解密内容不符合期许,则报错User not found。
由此,提出漏洞修复方案:令这两种情况的信息输出完全相同。
对于padding非法情况,修改如下图。
对于padding合法但解密内容不符合预期的情况,修改如下图。
此时,继续使用padBuster工具按照2.2所述方法进行攻击,会发生失败。
由于工具无法区分解密过程中padding合法与非法的情形,故无法实施Padding Oracle攻击。故而,漏洞修复生效。