2010-04-20 4 views
13

Mon application Android utilise une clé secrète pour générer un jeton à des fins d'authentification. Existe-t-il un moyen plus sûr de stocker cela que de simplement mettre cela dans le magasin de données? Je pense que pour l'iPhone, nous le stockons dans le porte-clés. Je suis conscient de android.accounts.AccountManager, mais cela semble donner aux autres applications potentiellement la capacité d'accéder au mot de passe (si l'utilisateur sélectionne la mauvaise option) et semble donc moins sécurisé.Enregistrement d'une clé secrète sur Android

Répondre

6

Android (malheureusement) ne fournit pas un moyen de le faire. L'approche que j'ai utilisée auparavant consiste à crypter ce jeton avec une autre clé générée dans l'application.

Votre clé d'application peut être générée par un algorithme. Ceci, cependant, est seulement aussi sûr que votre algorithme. Une fois que cela est connu, cela équivaut à stocker le jeton en texte brut.

+0

Je ne pense pas que quiconque trouverait cela trop difficile de trouver la fonction s'ils le voulaient vraiment. Cependant, je suppose que c'est beaucoup plus d'efforts que de simplement lire une clé de texte en clair – Casebash

+0

True. C'est plus de sécurité de l'obscurité qu'autre chose. Une autre approche consiste à stocker le jeton chiffré en utilisant un mot de passe spécifié par l'utilisateur. C'est le plus sûr, mais, l'utilisateur devra s'authentifier avec l'application chaque fois que votre application est lancée. – Prashast

+0

Ce n'est pas sécurisé du tout. C'est l'équivalent de l'obscurcissement. Il vous protégera du navigateur occasionnel et du script kiddie mais pas de Sombody qui veut connaître la réponse. Mais si vous êtes seulement préoccupé par les script kiddies, alors c'est une solution OK. –

4

Vous pouvez stocker la clé dans les préférences de votre application. Cela protégera la clé d'être lu par d'autres applications en raison des restrictions de système de fichiers sous-jacentes du système Android. Mais cela ne protégera pas la clé de la lecture par l'utilisateur lui-même.

+7

Vrai, MAIS JE PEUX OBTENIR VOTRE CLÉ EN UNE MINUTE SI VOUS FAITES CECI! essayez apktool et vous pouvez obtenir l'ensemble des strings.xml. Juste l'a fait sur une application sociale android célèbre et a obtenu leur clé de consommateur oauth et secret, facebook secret, google analytics id, .... m'a pris 2 minutes. –

1

si vous pouvez lancer l'outil apk puis son débogage et vous allez rooter l'appareil. Il n'y a plus de protection sur le trousseau dans iOS quand il est jailbreaké

+1

Le est la faute de l'utilisateur que le système n'est pas sécurisé – Casebash

0

Vous pouvez stocker des données secrètes en les chiffrant avec une clé générée par Android Keystore System et en stockant le résultat si vous le souhaitez.

Questions connexes