web-dev-qa-db-fra.com

Qu'est-ce que le fichier de clés Android, et à quoi sert-il?

C'est une question générale, mais je suis particulièrement intéressé par son utilisation pour Android. Qu'est-ce qu'un fichier de magasin de clés et à quoi sert-il?

Plusieurs applications peuvent-elles Android utiliser le même magasin de clés pour signer leur application (que signifie exactement "signer" un .apk?), Et quelles en sont les conséquences (le cas échéant)?

120
Christopher Perry

La réponse que je voudrais fournir est qu'un fichier de magasin de clés est de vous authentifier auprès de toute personne qui le demande. Il ne se limite pas à la signature de fichiers .apk, vous pouvez l’utiliser pour stocker des certificats personnels, les données de signature à transmettre et toute une gamme d’authentification.

En ce qui concerne ce que vous faites avec Android et probablement ce que vous recherchez depuis que vous parlez de signer des apk, c’est votre certificat. Vous marquez votre application avec vos informations d’identité. Vous pouvez plusieurs applications avec la même clé, en fait, il est recommandé d'utiliser un seul certificat pour marquer plusieurs applications que vous écrivez. Il est plus facile de garder une trace des applications qui vous appartiennent.

Je ne suis pas sûr de ce que vous entendez par implications. Je suppose que cela signifie que seul le titulaire de votre certificat peut mettre à jour votre demande. Cela signifie que si vous le libérez dans la nature, vous perdez le certificat que vous avez utilisé pour signer l'application, vous ne pouvez pas publier de mises à jour. Conservez ce certificat en lieu sûr et sauvegardez-le si nécessaire.

Mais en plus de signer des apks pour les relâcher dans la nature, vous pouvez l’utiliser pour authentifier votre appareil auprès d’un serveur via SSL si vous le souhaitez, (Android connexes), entre autres fonctions.

125
Otra

Android Market exige que vous signiez toutes les applications que vous publiez avec un certificat, à l'aide d'un mécanisme de clé publique/privée (le certificat est signé avec votre clé privée). Cela fournit une couche de sécurité qui empêche, entre autres, les attaquants distants d'envoyer des mises à jour malveillantes de votre application sur le marché (toutes les mises à jour doivent être signées avec la même clé).

À partir du Guide de signature des applications du Android Site du développeur:

En règle générale, la stratégie recommandée à tous les développeurs consiste à signer toutes vos applications avec le même certificat, pendant toute la durée de vie prévue de vos applications. Il y a plusieurs raisons pour lesquelles vous devriez le faire ...

L'utilisation de la même clé présente quelques avantages. Le premier est qu'il est plus facile de partager des données entre des applications signées avec la même clé. Une autre solution est qu’elle permet à plusieurs applications signées avec la même clé de s’exécuter dans le même processus, ce qui permet aux développeurs de créer davantage d’applications "modulaires".

18
Alexander Lucas

Vous pouvez trouver plus d'informations sur le processus de signature sur la documentation officielle Android) ici: http://developer.Android.com/guide/publishing/app-signing.html =

Oui, vous pouvez signer plusieurs applications avec le même magasin de clés. Mais vous devez vous rappeler une chose importante: si vous publiez une application sur le Play Store, vous devez la signer avec un certificat de non-débogage. Et si un jour vous souhaitez publier une mise à jour pour cette application, le magasin de clés utilisé pour signer l'apk doit être identique. Sinon, vous ne pourrez pas publier votre mise à jour.

10
Raphaël Titol

L'idée d'un outil de clé est de signer votre apk avec un identifiant unique indiquant la source de cet apk. Un fichier de magasin de clés (d'après ce que j'ai compris) est utilisé pour le débogage afin que votre apk dispose des fonctionnalités d'un outil de clé sans signer votre apk pour la production. Donc, oui, à des fins de débogage, vous devriez pouvoir signer plusieurs apk avec un seul magasin de clés. Mais comprenez bien que lors de la production, vous aurez besoin d’outils de clé uniques comme identificateurs pour chaque apk que vous créez.

0
Adam Storm