Android静态安全检测 -> Hash算法不安全

来源:互联网 发布:林书豪nba数据 编辑:程序博客网 时间:2024/06/04 18:46

Hash算法不安全 - MessageDigest.getInstance方法



一、API


1. 继承关系


【1】java.lang.Object

【2】java.security.MessageDigestSpi

【3】java.security.MessageDigest


2. 主要方法


【1】getInstance(String algorithm)


【2】getInstance(String algorithm, String provider)


【3】getInstance(String algorithm, Provider provider)


【4】其他方法


https://developer.android.com/reference/java/security/MessageDigest.html


3. 示例


【1】使用MD5哈希算法的语句


【2】Android提供的MessageDigest算法


【3】参考链接


http://hubingforever.blog.163.com/blog/static/171040579201210781650340/


二、触发条件


1. 调用MessageDigest类的getInstance方法


【1】对应到smali语句的特征

       invoke-static {v1}, Ljava/security/MessageDigest;->

            getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;


2. 寄存器赋值的判断

     const-string v1, "MD5"

     const-string v1, "SHA-1"


三、漏洞原理


【1】使用不安全的Hash算法(MD5/SHA-1)加密信息,存在被破解的风险


【2】更多内容


http://www.droidsec.cn/android应用安全开发之浅谈加密算法的坑/


四、修复建议


【1】建议使用SHA-256等安全性更高的Hash算法

0 0