WIKI

11.2 不安全的密钥长度风险检测

(1)描述

在使用RSA加密时,密钥长度小于512bit,小于512bit的密钥很容易被破解,计算出密钥。

(2)风险等级

低危

(3)影响范围

所有

(4)检测方法

检测类型:静态分析

风险代码实例:

 public static KeyPair getRSAKey() throws NoSuchAlgorithmException {
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(512);
        KeyPair key = keyGen.generateKeyPair();
        return key;
      }

对应的smali代码如下:

Ljava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;

Ljava/security/KeyPairGenerator;->initialize(I)V

通过匹配上述函数,并根据initialize函数的参数值判断

(5)修复建议

使用RSA加密时,建议密钥长度大于1024bit

(6)参考资料

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