web-dev-qa-db-ja.com

認証トークンをAndroidデバイスに保存する

サーバーがログイン中にアクセスと更新トークンを送信しています。Androidの共有設定に保存する必要がありますか?それを暗号化して保存しますか?これらのトークンを保存として保存するためのベストプラクティスを知りたいです直接好みに簡単にハック可能です。

10
Shubham

AndroidはApplication Sandboxの美しいコンセプトをサポートしているため、すべてのアプリケーションは固有のユーザーとして、独自のサンドボックスで実行されます。デバッグ不可能なアプリケーションのルート権限を取得していないデバイスのローカルデータストレージには、通常アクセスできません。ただし、デバイスがルート化されている場合、アプリケーションサンドボックスの概念が崩れ、インストールされたアプリケーションは「root」ユーザーとして実行できるため、他のアプリケーションがプライベートディレクトリに保存しているデータにアクセスできます(/ data/data/package-名前)

ローカルデータストレージ(SharedPreferences)にトークンをプレーンテキストとして保存することは、ルート化されていないデバイスから簡単にアクセスできるため、安全なオプションではありません。トークンは、安全な暗号化アルゴリズムとローカルデータストレージでの安全な実装を使用して暗号化することをお勧めします。

  1. AES-GCM-256やChaCha20-Poly1305などの安全な暗号化アルゴリズムを使用します。
  2. 鍵の導出にはPBKDF2を使用します。
  3. 必要に応じて、暗号化キーをAndroid Keystores。
5
Shiv Sahni