44

開発中の金融アプリケーションにサインインするためのパスワードを安全な場所に保管したい。ネットサーフィンをした後、次のオプションを見つけましたが、それぞれに特定の欠点があります。

1)キーホルダー。
OSバージョン4でのみ使用できます。

2)共有設定。
データを暗号化しても、アプリケーションコードを逆コンパイルすると暗号化キーが危険にさらされる可能性がありますが、データはプレーンテキストで保存されます。

3)キーストアデーモンにアクセスし、そこにクレデンシャルを保存します。
http://nelenkov.blogspot.com/2012/05/storing-application-secrets-in-androids.html)覚えておくには別のパスワードが必要です。

IPhoneKeyChainのようなAndroidアプリケーションで資格情報を保護するためのより良い方法を教えてください。

4

2 に答える 2

9

ハッシングは、共有設定や任意の媒体に資格情報をプレーンテキストとして保存しないソリューションです。

パスワードをソルトしてハッシュするだけで、それを sharedPreferences または埋め込みデータベースに保存できます。

仕組みは次のとおりです。

オンライン

  1. ログインに成功すると、プレーンな (ハッシュ化されていない) パスワードが認証と承認のためにサーバーに送信されます。

  2. ソルトは、生成してサーバーからクライアントに返すことも、クライアントで生成することもできます

  3. 次に、それをソルトとして保存し、パスワードをハッシュして保存します。

オフライン

  1. 保存したソルトを使用して、ユーザーが入力したパスワードをハッシュします

  2. ログインに成功したときに保存したハッシュと比較します

  3. 両方が等しい場合はユーザーを許可し、それ以外の場合はユーザーを許可しません。

利点:

  1. したがって、バージョンの互換性について心配する必要はありません。

  2. デバイスがルート化されている場合でも、ハッシュをブルート フォースするのは非常に困難です。

  3. 誰かがアプリを逆コンパイル/クラックしたとしても、リバース エンジニアリングは非常に困難です。

于 2013-12-13T06:40:49.393 に答える