6 votes

Comment stocker une chaîne de caractères sécurisée dans Android ?

Existe-t-il des exemples compréhensibles d'utilisation de KeyStore dans Android ?

Je n'arrive pas à comprendre comment je dois protéger mon mot de passe/token/anything_else dans une application Android sur un appareil ROOTED pour qu'il ne soit pas utilisé par des pirates qui ont un accès physique à l'appareil.

Je comprends que je peux générer une paire de clés avec un ALIAS, et utiliser sa clé privée comme mot de passe de base de données par exemple, mais ce qui m'intéresse, c'est de savoir si un hacker peut lire cet ALIAS à partir de mon apk décompilé (parce que je ne peux pas obscurcir la chaîne de l'alias) et construire une autre application qui utilise le même ALIAS pour obtenir la clé privée à partir du KeyStore d'Android ?

Des solutions ?

2voto

Scott Points 389

Je n'arrive pas à comprendre comment protéger mon mot de passe/token/anything_else dans une application Android sur un appareil ROOTED contre l'utilisation par des pirates qui ont un accès physique à l'appareil.

Vous ne pouvez pas. L'authentification du client n'est pas le problème du serveur .

Supposons que vous stockiez une valeur cryptée dans votre application plutôt que de la stocker directement. Où se trouve la clé permettant de décrypter cette valeur ? L'application devra nécessairement décrypter cette valeur. Il suffit alors à un pirate de télécharger votre .apk, de le brancher sur Lobotomy, et il comprendra rapidement ce qui se passe.

Il est préférable de ne jamais placer d'informations sensibles sur l'appareil lui-même, si vous voulez les cacher aux personnes qui exécutent votre logiciel.

0voto

danesz Points 389

Faut-il stocker la clé dans l'application ?

Et si, lors de la première installation, vous demandiez à l'utilisateur de définir un mot de passe, vous cryptiez votre base de données SQLCipher avec cette clé (peut-être en la hachant aussi), puis à chaque fois, lorsque l'utilisateur démarre l'application, vous lui demandiez le mot de passe.

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