> 文章列表 > 弱算法MD5、SHA1、DES、AES CBC-修复建议

弱算法MD5、SHA1、DES、AES CBC-修复建议

弱算法MD5、SHA1、DES、AES CBC-修复建议

一、修复原则

修复原则上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

  • RSA2048 +、SM2、ECDH、SM9

  • 其中RSA 需要使用RSA_PKCS1_OAEP_PADDING或OAEPPadding

三、扩展阅读:使用AES CBC模式加密,如何抵御Padding Oracle攻击?

Padding Oracle攻击实施的关键在于,能够区分解密过程padding是否合法。具体地,当padding非法,则返回“Invalid padding”文字,若padding合法而只是解密内容不符合期许,则报错User not found。

由此,提出漏洞修复方案:令这两种情况的信息输出完全相同。

对于padding非法情况,修改如下图。

对于padding合法但解密内容不符合预期的情况,修改如下图。

此时,继续使用padBuster工具按照2.2所述方法进行攻击,会发生失败。

由于工具无法区分解密过程中padding合法与非法的情形,故无法实施Padding Oracle攻击。故而,漏洞修复生效。