Android静态安全检测 -> 随机数使用不安全
2016-06-04 15:02
651 查看
随机数使用不安全 -SecureRandom类
一、API
1. 继承关系
【1】java.lang.Object
【2】java.util.Random
【3】java.security.SecureRandom
2. 主要方法
【1】构造方法
SecureRandom(byte[ ] seed)
SecureRandom()
【2】setSeed方法
setSeed(byte[ ] seed)
setSeed(long seed)
【3】其他方法
参考链接: http://www.apihome.cn/api/android/SecureRandom.html
二、触发条件
1. 调用SecureRandom类的构造方法SecureRandom(byte[ ] seed)
【1】对应到smali语句中的特征:Ljava/security/SecureRandom;-><init>([B)V
2. 调用方法setSeed(byte[ ] seed)或setSeed(long seed)设置随机种子
【1】对应到smali语句中的特征:Ljava/security/SecureRandom;->setSeed(
三、漏洞原理
【1】生成的随机数具有确定性,存在被破解的风险
【2】详细的原理&POC , 参考链接:
https://jaq.alibaba.com/community/art/show?spm=a313e.7916646.24000001.21.A6yB7E&articleid=47
四、修复建议
【1】不使用setSeed方法
【2】使用/dev/urandom或者/dev/random来初始化伪随机数生成器
相关文章推荐
- C#定时器和随机数
- 基于C#生成随机数示例
- ORACLE随机数DBMS_RANDOM包
- C语言编程中生成随机数的入门教程
- C# 生成随机数的代码
- C语言中用于产生随机数的函数使用方法总结
- php源码分析之DZX1.5随机数函数random用法
- php获取四位字母和数字的随机数的实现方法
- 用C#生成不重复的随机数的代码
- C#利用Random得随机数求均值、方差、正态分布的方法
- JS实现转动随机数抽奖的特效代码
- JS中生成随机数的用法及相关函数
- javascript产生随机数方法汇总
- js生成随机数的过程解析
- JS中产生20位随机数以0-9为例也可以是a-z A-Z
- JavaScript 生成随机数并自动大小排序
- jQuery实现转动随机数抽奖效果的方法
- js 随机数代码大全第1/2页
- Shell脚本实现随机数多种方法介绍(date、random、uuid)
- Qt定时器和随机数详解