2 votes

Travailler avec les métadonnées de sécurité dans le fichier APK

Selon ce billet de blog, Google a ajouté des métadonnées de sécurité par-dessus un APK pour vérifier qu'il a été initialement distribué par Google Play. Plus précisément, il ajoute le bloc de signature APK au fichier APK.

J'ai quelques questions à ce sujet:

(1) Comment Google a-t-il inséré ces métadonnées dans le bloc de signature APK de l'APK et comment vérifie-t-il ces métadonnées sur le téléphone (techniquement)?

Je suppose qu'il est possible de créer un contenu personnalisé dans ce bloc de signature? Disons que je veux distribuer un APK en privé dans mon entreprise, lorsque l'utilisateur installe cet APK, je peux alors vérifier si l'APK appartient à notre entreprise ou non, tout comme Google l'a fait avec leurs applications dans le Play Store.

(2) Si tous les développeurs utilisent la signature d'application par Google Play, la métadonnée de sécurité mentionnée ci-dessus devient-elle alors inutile? Parce que Google peut simplement vérifier le certificat à l'intérieur de chaque APK.

Mes excuses pour ma faible compréhension. Tous les commentaires sont grandement appréciés!

0 votes

La signature est très probablement une signature RSA ou EX(DSA). Pour la vérification, vous avez seulement besoin de la clé publique correspondante sur le dispositif. Pour plus d'infos sur le bloc de signature APK, consultez source.android.com/security/apksigning/…

0 votes

Merci mais j'ai besoin de plus de détails techniques sur son fonctionnement. En terme de code source si nécessaire

0 votes

La signature Google (alias "Frosting") n'est documentée nulle part. La seule information que j'ai est plus ou moins résumée ici: stackoverflow.com/questions/48090841 En particulier, le projet lié avast/apkverifier contient quelques détails.

1voto

pr0nin Points 353

Comment Google insérer ces métadonnées dans le bloc de signature APK de l'APK et comment vérifie-t-il ces métadonnées sur le téléphone (techniquement)?

Techniquement, la signature "Frosting" de Google est insérée de la même manière que décrit dans le Schéma de signature APK v2. Notez qu'elle est simplement ajoutée à la même section à l'intérieur du fichier ZIP - elle ne remplace pas les signatures existantes dans cette section.

Je suppose qu'il est possible de créer du contenu personnalisé dans ce bloc de signature? Disons que je veux distribuer un APK de manière privée au sein de mon entreprise, lorsque l'utilisateur installe cet APK, je peux déterminer si l'APK appartient à notre entreprise ou non, tout comme l'a fait Google avec leurs applications sur le Play Store.

D'après ce que je sais, les seules "métadonnées" sont la signature elle-même. Si elle est présente, c'est un APK provenant du Play Store.

Si tous les développeurs utilisent la signature d'application par Google Play, les métadonnées de sécurité mentionnées ci-dessus deviennent-elles inutiles? Parce que Google peut simplement vérifier le certificat à l'intérieur de chaque APK.

Non. La signature Frosting de Google est simplement une signature supplémentaire. Le modèle de permission Android repose toujours sur la signature APK commune du développeur. Seule l'application Google Play Store est capable de vérifier la signature Frosting de Google. Les autres parties du système Android (celles d'AOSP) ne reconnaissent même pas cette signature.

Pour plus de détails techniques, consultez cette question + réponses sur Stackoverflow : Métadonnées de sécurité dans l'APK Android

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X