WIKI

11.1 DES弱加密算法风险检测

(1)描述

安全性要求高的应用程序必须避免使用不安全的或者强度弱的加密算法,现代计算机的计算能力使得攻击者通过暴力破解可以攻破强度弱的算法。例如,数据加密标准算法DES(密钥默认是56位长度、算法半公开、迭代次数少)是极度不安全的,使用类似EFFElectronic Frontier Foundaton Deep Crack的计算机在一天内可以暴力破解由DES加密的消息。

(2)风险等级

低危

(3)影响范围

所有

(4)检测方法

检测类型:静态分析

使用DES若加密算法,风险代码样例:

...
SecretKeySpec key = new SecretKeySpec(rawKeyData, "DES");
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key);
...

通过正则表达式"DES/(\w){3}/.+Padding"匹配字符串常量

(5)修复建议

建议使用安全性更高的AES加密算法

(6)参考资料

http://wolfeye.baidu.com/blog/weak-encryption/

http://blog.csdn.net/asce1885/article/details/33019097