2013-06-14 4 views
0

Est-ce que quelqu'un sait quel est le moyen le plus sûr de stocker des informations sensibles dans l'application? Parce que l'utilisation du stockage interne et des préférences partagées est vulnérable si la personne qui souhaite obtenir cette information possède un téléphone rooté. Le cas est que j'ai un type de code d'activation qui doit être stocké quelque part dans le téléphone (pas sur le serveur) pour la communication et l'authentification avec le serveur, ce code doit être sécurisé et non disponible pour les autres applications et utilisateurs, même sur un téléphone enraciné. En outre, l'utilisateur ne peut pas être dérangé par une vérification supplémentaire (il saisit le code PIN lorsqu'il entre dans l'application et envoie ce code au serveur pour l'authentification).Un moyen sécurisé de stocker des informations sensibles dans Android

En résumé, existe-t-il un moyen sûr de stocker quelque chose et d'être sûr qu'il restera caché, même sur un téléphone enraciné?

+1

J'ai récemment eu la même question, et la réponse que j'ai trouvée était qu'il n'y a aucun moyen de garder les données totalement sécurisées avec une fiabilité de 100%. Il est préférable de protéger le côté de votre serveur d'applications. Cela étant dit, il y a [ce thread] (http://stackoverflow.com/questions/1925486/android-storing-username-and-password) qui parle de quelques solutions. [AccountManager] (http://developer.android.com/reference/android/accounts/AccountManager.html) semble intrigant aussi. –

+0

Le meilleur coup que vous avez est de stocker des objets sérialisés et de le crypter ... C'est la meilleure solution que j'ai trouvée. – ChristopheCVB

+0

@ChristopheCVB: C'est au mieux un ralentisseur. Tout ce qui implique le cryptage, où la clé et l'algorithme font partie de l'application, peut être conçu à l'envers assez facilement. – CommonsWare

Répondre

0

Malheureusement, les commentateurs ont raison. Il n'y a aucun moyen de garantir avec une sécurité à 100% que le code d'activation ne peut pas être piraté. Microsoft a dépensé des millions de dollars à ce sujet, et il existe encore des copies piratées de Windows, car à la fin de la journée, vous n'avez aucun contrôle sur le code du client. Si vous dotez le client de la capacité de décrypter ou d'accéder à ce code d'authentification stocké (sans avoir besoin d'aller sur le serveur), quelqu'un peut désosser l'application pour annuler votre protection. Cela est vrai même si vous récupérez une clé de déchiffrement du serveur.

La meilleure façon de faire cela dépend de votre cas d'utilisation, mais voici quelques idées:

  1. Demandez au client de soumettre le « code d'activation » au serveur, où vous pouvez la liste noire si vous pensez c'est volé. C'est comme ça que Windows fonctionne. C'est la seule option que vous avez si vous voulez utiliser un code d'activation et ne pas déranger l'utilisateur.

  2. Demandez à l'utilisateur d'enregistrer un compte et de demander à l'application de renvoyer les informations d'identification de l'utilisateur à chaque exécution. De cette façon, vous avez un compte utilisateur à désactiver si vous suspectez un piratage.

  3. Demandez au serveur de fournir la clé de déchiffrement. Cela ne garantit pas que le code d'activation reste sûr, mais il place la barre plus haut pour les ingénieurs inverses potentiels. Abandonnez complètement l'idée de DRM et concentrez-vous sur la fabrication d'un bon produit. Des études que les entreprises de musique ont montré que l'abandon de la DRM ne fait aucune différence dans le nombre de personnes qui achètent votre produit.

Questions connexes