私は現在 Android アプリケーションに取り組んでおり、ユーザーを自動的に認証するために、ユーザー名やパスワードなどの機密情報を保存する選択肢は他にありません。
私が使用しているサーバーはトークンやこの種のものを管理していないため、他の選択肢はありません。
この件に関する多くのドキュメントや記事を読んでいますが、これらの機密情報をどのように保存すればよいか判断できません。
私には3つの可能性があります:
- Android AccountManager システムの使用
- Android Keystore システムの使用
- 新しい Jetpack セキュリティ コンポーネントの使用
ドキュメントにあるように、AccountManager システムは最適な方法ではありません。
AccountManager は暗号化サービスやキーチェーンではないことを理解することが重要です。アカウント資格情報は、渡されたとおりにプレーン テキストで保存されます。ほとんどのデバイスでは、ルートのみがアクセスできるデータベースに保存されるため、これは特に問題ではありません。ただし、ルート化されたデバイスでは、デバイスへの adb アクセス権を持つすべてのユーザーが資格情報を読み取ることができます。
したがって、キーストア システムまたは新しいジェットパック セキュリティ コンポーネントを使用して、これらの機密情報を保存したいと考えています。しかし、正直なところ、私はセキュリティの専門家ではないので、どちらの方法がより安全かはわかりません。
ドキュメントによると、新しいジェットパック セキュリティ コンポーネントはとても使いやすいようです。
この新しいコンポーネントは、キーストア システムよりも安全性が低いと思いますか?
よろしくお願いいたします。