CBC

风险说明

CBC存在padding oracle attack的风险,攻击者通过修改密文反复请求解密来测试padding,最终在不知道密钥的情况下成功解密。

攻击案例

合规建议

  • 避免选用CBC模式,以GCM/CCM模式替代。

  • 选用CBC模式时,结合使用常数时间的MAC函数,例如HMAC。例如,先调用CBC加密,再调用HMAC计算密文的MAC值。解密之前,先针对密文校验MAC值,校验通过,才进行解密。

  • 选用CBC的padding模式时,避免使用PKCS#7、PKCS#5、ANSI X.923,尽量选用ISO10126。

  • Web业务服务器禁用CBC模式的TLS Ciphersuite。

参考资料

Timing vulnerabilities with CBC-mode symmetric decryption using padding