Comment le système Android Keystore peut-il être sécurisé?

j'ai lu le Android documentation http://developer.android.com/training/articles/keystore.html Mais il me manque quelques détails...

si une application génère une clé (symétrique ou asymétrique) en utilisant AndroidKeyStore.

Peut-on extraire la clé qu'il contient?

une autre application (AppB) peut-elle accéder à la clé générée par AppA?

Dans ce cas, nous pouvons perdre la clé? Réarmement D'usine de l'appareil seulement?

Merci.

16
demandé sur Anas EL HAJJAJI 2016-03-03 23:53:11

1 réponses

Vous pouvez utiliser le Android Keystore Provider ou créer un normal KeyStore fichier.

  • fichier de stockage des clés de l'API (1): vous devrez créer un fichier KeyStore et gérer le secret pour y accéder. Ces secrets est très sensible et difficile à cacher aux attaquants. Personnellement je ne recommande pas ce choix.

  • Android KeyStore Provider (API 18): utilisation de cette API vous allez déléguer tous les gros de l'accès au système d'exploitation. Vous n'aurez pas besoin d'utiliser de mot de passe puisque L'OS lui-même le stockera dérivant de votre pin d'écran de verrouillage, mot de passe, motif et d'autres variables. Si le périphérique contient un élément de sécurité intégré et définissez le type de stockage à Matériel adossés et pas seulement Logiciel adossés, il y stockera les secrets. C'est le moyen le plus sûr pour stocker n'importe quel type de secrets, en utilisant du matériel sécurisé. Cela pourrait même garder les secrets sûr, même si l'utilisateur a enraciné le téléphone.

Peut-on extraire la clé qu'il contient?

avec les deux votre application peut obtenir le PrivateKey et l'utiliser si c'est ce que tu veux dire.

une autre application (AppB) peut-elle accéder à la clé générée par AppA?

avec le fournisseur de KeyStore chaque application ne peut accéder qu'à son KeyStore des instances ou des alias. Avec un KeyStore normal, si une autre application a accès au fichier, elle pourrait essayer de l'attaquer.

Dans ce cas, nous pouvons perdre la clé? Réinitialisation de l'usine seulement?

Supprimer l'application effacera l'instance de fournisseur de KeyStore de votre application. Toutefois, en raison de un méchant bug dans Android (plus courant avant Android 5) si l'utilisateur change le motif de l'écran de verrouillage à un mot de passe ou supprime le motif, le KeyStore sera effacé. La même chose se produit lorsque l'utilisateur exécute un"Effacer les informations d'identification" dans les paramètres android. Avec le KeyStore classique à la place, vous pourriez le stocker dans le stockage externe et le garder même après une réinitialisation de l'usine de l'appareil. Cependant, il est encore moins sûr que le fournisseur.

je peux me tromper sur certains aspects, mais c'est ce que j'apprends et je viens de partager mon expérience. Espérons que cela est utile pour vous.

17
répondu GoRoS 2017-11-15 09:00:14