1. ホーム
  2. android

[解決済み] Android SharedPreferenceのセキュリティ

2022-07-03 03:43:21

質問

共有設定のセキュリティはどうなっているのでしょうか。

MODE_PRIV (0) で作成された共有環境設定にアクセスすることは可能でしょうか?

利用可能なすべての sharedpreferences をリストして、他のアプリからすべての設定を取得することは可能ですか?

sharedpreferences は、パスワードや認証トークンなどの機密データを置くのに適した場所ですか?

ありがとうございます。

どのように解決するのですか?

共有環境設定は、デバイス上のファイルシステムにファイルとして保存されます。デフォルトでは、アプリケーションのデータ ディレクトリ内に保存され、特定のアプリケーションが実行する UID にのみアクセスを許可するファイル システム パーミッションが設定されています。したがって、Linux のファイル権限でアクセスが制限されている限り、それらはプライベートなものであり、あらゆる Linux/Unix システムと同じです。

root はファイルシステム上のすべてにアクセスできるので、デバイスに root レベルでアクセスできる人なら誰でも、それらを見ることができます。また、作成アプリと同じ UID で実行される任意のアプリケーションは、それらにアクセスできます (これは通常行われません。2 つのアプリを同じ UID で実行させるには特定のアクションを取る必要があるので、これはおそらく大きな懸念事項ではありません)。最後に、誰かがインストールされている Android OS を使用せずにデバイスのファイルシステムをマウントできた場合、アクセスを制限する権限を回避することも可能です。

環境設定 (またはアプリケーションによって書き込まれたデータ) へのこのようなアクセスを懸念する場合、それを暗号化したいと思うことでしょう。そこまで心配するのであれば、あなたが考えるリスクのレベルに対して、どれだけの保護が必要かを正確に把握する必要があります。これについては、以下のサイトに非常に広範な議論があります。 Android プラットフォームのアプリケーション セキュリティ (免責事項: 私はこの本の著者です)。