Signature et vérification des signatures des applications Android
Signature d'applications
La signature d'applications est le processus par lequel un APK (Android Package) est signé avec une clé privée qui identifie de manière unique le développeur de l'application. Ce processus garantit que l'application provient du développeur revendiqué sans être altérée après avoir été signée. Voici une répartition détaillée :
Génération d'un Keystore
- Les développeurs créent un keystore, un fichier binaire contenant des clés cryptographiques. Ce keystore contient une clé privée utilisée pour signer l'APK.
- Le keystore est protégé par un mot de passe, qui doit être gardé sécurisé pour éviter tout accès non autorisé.
Signature de l'APK
- Lors du processus de construction ou après, l'APK est signé en utilisant la clé privée stockée dans le keystore.
- Ce processus génère une signature numérique à l'aide d'une fonction de hachage, créant un hachage unique du contenu de l'APK.
- Le hachage est ensuite chiffré avec la clé privée du développeur, et le résultat est stocké dans l'APK.
Inclusion du Certificat
- L'APK inclut un certificat contenant la clé publique correspondant à la clé privée utilisée pour la signature.
- Ce certificat est utilisé pour vérifier la signature numérique lors du processus d'installation.
Pourquoi la Signature d'Applications est-elle Importante ?
- Assure l'Authenticité : Confirme l'identité du développeur de l'application.
- Protège l'Intégrité : Assure que l'application n'a pas été altérée depuis qu'elle a été signée.
- Permet des Mises à Jour Sécurisées : Garantit que les mises à jour proviennent du développeur d'origine, car les mises à jour doivent être signées avec la même clé.
Vérification des Signatures
La vérification des signatures est le processus par lequel le système d'exploitation Android vérifie la signature numérique d'un APK pour garantir son intégrité et son authenticité avant l'installation. Consultez ce post sur Reddit concernant la vérification facile de la signature/authenticité d'un APK, puis revenez ici pour comprendre comment fonctionne la vérification :
Extraction du Certificat
Lorsque un APK est téléchargé et l'installation est lancée, l'appareil extrait le certificat contenant la clé publique de l'APK.
Déchiffrement de la Signature
- L'appareil utilise la clé publique extraite du certificat pour déchiffrer la signature numérique intégrée dans l'APK.
- Le déchiffrement permet d'obtenir le hachage original (digest) généré lors du processus de signature.
Génération du Hachage
Indépendamment, l'appareil génère son propre hachage du contenu de l'APK. Cela se fait en utilisant la même fonction de hachage utilisée lors du processus de signature.
Comparaison des Hachages
- L'appareil compare le hachage généré indépendamment avec le hachage déchiffré de la signature numérique.
- Correspondance : Si les hachages correspondent, l'APK est vérifié comme authentique et non altéré, permettant de poursuivre l'installation.
- Non-correspondance : Si les hachages ne correspondent pas, cela indique que l'APK a pu être modifié depuis qu'il a été signé, et l'installation est bloquée.
Pourquoi la Vérification des Signatures est-elle Importante ?
- Valide l'Authenticité : Assure que l'APK a été signé par le développeur déclaré.
- Maintient l'Intégrité : Confirme que l'APK n'a pas été modifié depuis qu'il a été signé.
- Protège les Utilisateurs : Bloque les APK potentiellement malveillants d'être installés.
Quelle Signature Choisir si une Application a Plusieurs Signatures ?
La plupart des applications ont une seule signature valide, mais certaines peuvent en avoir plusieurs. Il est important de faire correspondre la signature de l'APK avec celle déjà installée sur votre appareil pour éviter les erreurs de mise à jour.
Raisons des Signatures Multiples
- Rotation des Clés : Android 9 permet aux développeurs de changer de clés de signature. Cela est dû au schéma de signature APK v3.
- Canaux de Distribution : Les applications provenant de sources différentes (par exemple, Play Store, Github) peuvent avoir des signatures différentes.
- Applications Systèmes : Les clés de signature des applications systèmes peuvent varier selon l'appareil ou la version de l'OS.
- Cas Inexpliqués : Certaines applications comme Files de Google et Play Services ont tout simplement plusieurs signatures.
Comment Identifier la Bonne Signature :
- AndroidFreeware dispose d'un APK Checker sophistiqué qui effectue des vérifications des autorisations Android, détecte les drapeaux et filtres dangereux, calcule les sommes de contrôle md5, sha1, sha256 et effectue des vérifications antivirus VirusTotal.
- Utilisez des outils comme My APK pour voir les signatures des applications.
- Utilisez l'approche par Essai et Erreur. Installez différents APK jusqu'à ce que la mise à jour fonctionne, puis souvenez-vous de la signature correcte pour les mises à jour futures.
- Téléchargez l'application sur APKMirror en utilisant ML Manager pour trouver la signature existante.
- Certaines outils pour ordinateur peuvent trouver la signature du fichier apk. Parmi eux se trouvent apksigner de Google, le keytool d'IBM, et print-apk-signature de Warren Bank.
Table des Matières
- AndroidFreeware est-il sûr ?
- Qu'est-ce que le système d'exploitation Android ?
- Qu'est-ce qu'une application/jeu Android ?
- Qu'est-ce qu'un fichier APK ?
- Les fichiers APK sont-ils sûrs et légaux?
- Que sont les fichiers APK, les bundles APK, et comment les ouvrir en toute sécurité ?
- Comment télécharger et installer des fichiers APK ou des bundles APK ?
- Signature et vérification des signatures des applications Android
- Autorisations Android : les dangers cachés et comment vous protéger
- Où sont stockés les fichiers APK sur mon appareil Android ?
- Quels sont les contenus d'un fichier APK ?
- Les fichiers APK peuvent-ils fonctionner sur Chromebooks, Windows 10, PC, iOS ?
- Pourquoi un fichier APK ne s'installe, ne s'ouvre ou ne fonctionne pas ?