-1

過去にWindowsやLinuxシステムがハッキングされたことがあると自問自答し、グーグルで検索してみたところ、Androidオペレーティングシステムの安全性を考えていましたが、半日かけても満足できませんでした。私がインターネットで見つけたもの。Androidのセキュリティとパスワードのメカニズムがどのように機能するのか知りたいです。誰かが何かを共有したり、役立つリンクに私を導くことができたら:)

4

1 に答える 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 に答える