130 votes

Sécurité Android SharedPreference

Je m'interroge sur la sécurité des préférences partagées.

Est-il possible d'avoir accès aux préférences partagées, même si elles ont été créées dans MODE_PRIV (0)?
Est-il possible de répertorier toutes les préférences partagées disponibles, puis d'extraire tous les paramètres d'autres applications?
Le partage des préférences est-il un bon endroit pour placer des données sensibles, telles qu'un mot de passe ou un jeton d'authentification?

Merci

242voto

jeffsix Points 3642

Partagé Préférences sont stockées dans un fichier dans le système de fichiers sur le périphérique. Ils sont, par défaut, stockées dans l'application du répertoire de données avec le système de fichiers premissions ensemble, qui ne permettent l'UID que l'application s'exécute pour y accéder. Donc, ils sont privés dans la mesure où permissions de fichiers sous Linux restreindre l'accès à eux, les mêmes que sur n'importe quel système Linux/Unix.

N'importe qui avec de la racine de l'accès au niveau de l'appareil sera en mesure de les voir, en tant que root a accès à tout sur le système de fichiers. Aussi, toute application qui s'exécute avec le même UID que la création d'application serait en mesure d'y accéder (ce n'est généralement pas fait et que vous avez besoin de prendre des mesures spécifiques pour faire deux applications s'exécute avec le même UID, donc c'est probablement pas un gros problème). Enfin, si quelqu'un était capable de monter votre système de fichiers de l'appareil sans l'aide de l'installation du système d'exploitation Android, ils pourraient également ignorer les autorisations de restreindre l'accès.

Si vous êtes inquiet au sujet de tels accès à vos préférences (ou toutes les données écrites par votre application), alors vous aurez envie de le chiffrer. Si vous êtes concernés, vous allez avoir besoin de comprendre exactement comment beaucoup de protection est nécessaire pour que le niveau de risque que vous voyez. Il y a une très longue discussion à ce sujet dans la Sécurité des Applications pour la Plateforme Android, qui vient de paraître en décembre 2011 (disclaimer: je suis l'auteur de ce livre).

29voto

Jazz Haque Points 78

S'il vous plaît vérifier ce lien. Ici, vous pouvez stocker des données préf en crypté, la classe est explicite et très facile à utiliser.

https://github.com/sveinungkb/encrypted-userprefs

Comme Jeffsix l’a dit, tout le monde peut y accéder, mais dans ce cas, personne ne peut y lire les données car elles sont cryptées. Donc c'est sécurisé.

15voto

aviraldg Points 4618

Normalement, non, ils ne sont pas accessibles par d' autres applications, cependant, il faut noter que SharedPreferences sont stockées sous forme de fichiers XML dans le /data/data/ répertoire, ce qui signifie essentiellement que toute application avec privilages super - utilisateur sur un périphérique enraciné peut accéder vos SharedPreference s, même s'ils ont été créés avec MODE_PRIV

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X