当我问自己Windows和Linux系统过去曾经被黑客攻击并试图在谷歌上搜索这个问题时,我正在考虑Android操作系统是多么安全。不幸的是,即使花了半天时间我也是不满意我在互联网上发现的东西。我想知道android安全和密码机制是如何工作的。如果有人可以分享任何内容或将我指向有用的链接:)
答案 0 :(得分:0)
Android密码处理详情见LockPatternUtils.java的来源,靠近第820行:
public byte[] passwordToHash(String password) {
if (password == null) {
return null;
}
String algo = null;
byte[] hashed = null;
try {
byte[] saltedPassword = (password + getSalt()).getBytes();
byte[] sha1 = MessageDigest.getInstance(algo = "SHA-1").digest(saltedPassword);
byte[] md5 = MessageDigest.getInstance(algo = "MD5").digest(saltedPassword);
hashed = (toHex(sha1) + toHex(md5)).getBytes();
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "Failed to encode string because of missing algorithm: " + algo);
}
return hashed;
}
看起来一般的想法是强迫你猜错MD5和SHA1约束的正确密码。这意味着一个坏人必须得到MD5和SHA-1哈希的交集(而不是联合)。
不幸的是,MD5组件允许密码恢复。也许更好的策略是将MD5折叠成SHA-1(删除裸机访问MD5)。
顺便说一下,有一个(TM)的错误报告:Lock Pattern/Password uses MD5 Hash (LockPatternUtils.java)。