Vérification d'une signature APK
La bonne façon de vérifier un fichier APK est d'utiliser apksigner
.
apksigner
fait partie des outils de construction Android (SDK Android), vous pouvez donc trouver plusieurs versions installées, une pour chaque version des outils de construction installée.
Un exemple de chemin dans le SDK Android vers apksigner
est le suivant :
android-sdk/build-tools/30.0.1/apksigner
Pour plus de détails sur la façon d'obtenir apksigner, consultez le dernier chapitre de cette réponse.
Exécutez apksigner de cette manière :
apksigner verify --verbose --print-certs "Signal-website-universal-release-4.49.13.apk"
Vérifie
Vérifié en utilisant le schéma v1 (signature JAR) : vrai
Vérifié en utilisant le schéma v2 (schéma de signature APK v2) : vrai
Vérifié en utilisant le schéma v3 (schéma de signature APK v3) : vrai
Nombre de signataires : 1
DN du certificat du signataire #1 : CN=Whisper Systems, OU=Recherche et Développement, O=Whisper Systems, L=Pittsburgh, ST=PA, C=US
Empreinte de hachage SHA-256 du certificat du signataire #1 : 29f34e5f27f211b424bc5bf9d67162c0eafba2da35af35c16416fc446276ba26
Empreinte de hachage SHA-1 du certificat du signataire #1 : 45989dc9ad8728c2aa9a82fa55503e34a8879374
Empreinte de hachage MD5 du certificat du signataire #1 : d90db364e32fa3a7bda4c290fb65e310
Algorithme de clé du signataire #1 : RSA
Taille de clé du signataire #1 (bits) : 1024
Empreinte de hachage SHA-256 de la clé publique du signataire #1 : 75336a3cc9edb64202cd77cd4caa6396a9b5fc3c78c58660313c7098ea248a55
Empreinte de hachage SHA-1 de la clé publique du signataire #1 : b46cbed18d6fbbe42045fdb93f5032c943d80266
Empreinte de hachage MD5 de la clé publique du signataire #1 : 0f9c33bbd45db0218c86ac378067538d
Estimer l'authenticité du certificat du signataire
Maintenant que vous avez vérifié l'APK, vous ne savez toujours pas si vous pouvez faire confiance à la personne/organisation qui a signé le fichier APK. Cela est dû au fait que, sur Android, les signatures d'APK utilisent par définition des certificats auto-signés. Il est donc difficile de dire si l'on peut faire confiance à un certificat. La seule façon de le faire est de vérifier les autres applications qui ont été signées avec le même certificat.
La seule méthode que je connais pour le faire est d'utiliser des services d'exploration en ligne du PlayStore comme androidobservatory.org. Elle dispose d'une API pour vérifier quelles applications ont été signées avec le même certificat en utilisant l'empreinte de hachage SHA-1 du certificat :
Édition : apkmirror.com permet également de rechercher l'empreinte du certificat. Il suffit d'entrer l'empreinte du certificat SHA-1 ou SHA-256 (sans deux-points ni espaces) dans le champ de recherche :
Sur cette page, vous pouvez voir tous les autres fichiers APK sur le Google Play Store qui sont signés avec le même certificat.
Obtention et exécution d'apksigner
Apksigner est un outil Java que Google fournit au démarrage sous la forme d'un fichier de commandes apksigner.bat
(Windows) ou d'un script shell apksigner.sh
(Linux, MacOS).
Comme mentionné précédemment, il est inclus dans chaque version des outils de construction du SDK Android. Mais il n'est pas placé dans le PATH, vous ne pouvez donc pas simplement ouvrir une invite de commande ou un terminal et exécuter apksigner
, vous devez plutôt fournir manuellement le chemin complet vers apksigner.bat
/apksigner.sh
.
Si vous ne voulez pas installer tout le SDK Android (avec ou sans Android Studio), vous pouvez directement télécharger les outils de construction, les extraire et exécuter apksigner. Des liens vers tous les outils de construction sont fournis sur ce site web (les liens fournis renvoient aux emplacements de téléchargement originaux de Google).
Je préfère apksigner de build-tools v30 :
Vous avez seulement besoin du fichier lib/apksigner.jar
de l'archive. Extrayez-le et ouvrez un shell dans le dossier. Ensuite, exécutez java -jar apksigner.jar
. Pour exécuter, vous avez besoin de Java 9 ou version ultérieure (de préférence Java 11 ou 17).
En utilisant cette approche directe, la commande pour exécuter apksigner est
java -jar apksigner.jar verify --verbose --print-certs "Signal-website-universal-release-4.49.13.apk"
Ou si vous utilisez des noms de chemin complets - remplacez les sections <..>
par le chemin approprié qui fonctionne sur votre OS :
/java -jar /apksigner.jar verify --verbose --print-certs ""
0 votes
Si vous visitez, depuis votre mobile, la page :
m.google.com/maps
, vous propose-t-elle un lien de téléchargement ou quelque chose de similaire ?0 votes
@Nicolás: Il renvoie vers le marché, à partir duquel je ne peux pas le télécharger.
0 votes
Où l'avez-vous téléchargé, puisque votre question a été récemment éditée. J'utilise gappsandroid.blogspot.com, j'ai vérifié certaines des applications et tous les sommes MD5 correspondent aux applications officielles sorties sur le Play Store.
0 votes
En : related Verify Android apk has not been repackaged? fr : liés Vérifiez que l'apk Android n'a pas été reconditionné ?
1 votes
Si vous avez une deuxième application qui est "authentique" et provient du même fournisseur, vous pouvez comparer si les deux applications sont signées avec les mêmes clés/identité : Comparaison des signatures des apks
0 votes
Tant que c'est un APK et non un AAB... vous pouvez comparer la signature de l'application. Cela prouve simplement que l'application a été signée par un développeur qui a généré une clé.