Comment empêcher l'utilisation de la clé de stockage et du mot de passe?

Problème

Le magasin de clés et son mot de passe sont utilisés pour signer l'application utilisée par Android pour identifier le développeur. En cas de fuite, quelqu'un pourrait mettre à jour l'application concernée en notre nom. Même si la personne n'a pas accès à notre compte playstore, elle pourrait encore la publier ailleurs .

Nous voyons partout, "ne le perdons jamais" , "ne le fuyons jamais" , etc. Mais que se passe-t-il? Je ne peux pas trouver les étapes obligatoires à suivre lorsque les deux, le magasin de clés et son mot de passe, fuient pour pouvoir protéger nos utilisateurs et notre application.

Question

Même si je publie la même application avec un autre appid, comment puis-je protéger mes utilisateurs qui sont encore sur l'ancien? Existe-t-il des pratiques exemplaires ici?

  • Android Key Store API 23, utilisez setUserAuthenticationRequired sans Scanner à empreintes digitales
  • Accepter par programme l'appel au Nougat
  • Alerte de sécurité Google Play pour TrustManager instable
  • Contrôle l'accès des API tiers aux ressources système Android?
  • Vous utilisez une implémentation dangereuse de X509TrustManager
  • Comment l'application Paramètres peut-elle démarrer l'activité non exportée d'une application?
  • Alerte de sécurité sur libpng dans ma console google Play
  • Comment enregistrer le jeton d'accès Oauth en toute sécurité dans Android
  • 2 Solutions collect form web for “Comment empêcher l'utilisation de la clé de stockage et du mot de passe?”

    Malheureusement, il ne semble pas être formidable de migrer une application existante vers une nouvelle clé de signature. C'est probablement pour le mieux, car la meilleure pratique reste à a) avoir une clé forte et b) garder votre clé de libération privée aussi privée que possible. J'ai trouvé cet article décrivant une manière faisable (mais plutôt pas conviviale) de migrer d'une clé de 1024 bits à une clé de 4096 bits, ce qui semble correspondre à votre cas d'utilisation. Étant donné que vous disposez encore d'une clé de signature valide pour l'application compromise, vous pouvez essayer de les transférer par mise à jour.

    1. Génère la nouvelle clé de signature, RSA 4096
    2. Mettre à jour la première application, App1, avec un mécanisme d'exportation de données privées, en utilisant TrustedIntents avec une broche de signature de la nouvelle clé, RSA 4096, que Checkey générera pour vous
    3. Créez une nouvelle version de l'application avec un nom de package différent, App2
    4. Signer App2 avec une nouvelle clé, RSA 4096
    5. Ajouter la méthode à l'App2 pour recevoir les données utilisateur de l'App1, y compris une broche de signature de l'ancienne clé de signature, RSA 1024, à utiliser avec TrustedIntents
    6. Publiez App2 dans les magasins d'applications
    7. À partir de l'App1, demandez à l'utilisateur d'installer App2
    8. Exécute et importe les données de l'App1
    9. App2 invite l'utilisateur à désinstaller l'application1

    Malheureusement, il n'y a pas de réponse facile à ce problème. Comme mentionné ci-dessus, la solution la plus générale est de créer une nouvelle application, de dire aux utilisateurs de basculer et de migrer les données.

    Cependant, sur Lollipop +, il existe une autre solution possible. Vous pouvez utiliser les touches de mise à niveau pour modifier la clé de signature d'une application en place, ce qui vous permet de créer une seconde application ou de faire la migration de données. Malheureusement, Play n'a actuellement aucun support pour cela, donc c'est vraiment une option pour les applications hors marché, et les utilisateurs de Kitkat ont de la chance.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.