過去にWindowsやLinuxシステムがハッキングされたことがあると自問自答し、グーグルで検索してみたところ、Androidオペレーティングシステムの安全性を考えていましたが、半日かけても満足できませんでした。私がインターネットで見つけたもの。Androidのセキュリティとパスワードのメカニズムがどのように機能するのか知りたいです。誰かが何かを共有したり、役立つリンクに私を導くことができたら:)
質問する
383 次
1 に答える
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)のバグレポートがあります。ロックパターン/パスワードはMD5ハッシュ(LockPatternUtils.java)を使用します。
于 2013-02-14T01:19:18.540 に答える