Beaucoup de gens (dont moi) téléchargent/installent/mettent à jour des applications sur des réseaux publics où nous ne pouvons pas être sûrs d'une connexion sécurisée sans attaques MiTM, est-ce que le Play Store de Google transmet les fichiers APK sur HTTPS ? Et vérifie-t-il ses sommes de contrôle après le téléchargement avant l'installation ?
Réponse
Trop de publicités?Android vérifie lui-même le certificat lorsque vous mettez à jour des APK déjà installés. Il n'est donc pas possible d'installer une application trafiquée/modifiée qui devrait être signée avec un certificat différent. Une exception de non concordance de certificat serait alors levée. Utiliser Google Play pour installer un nouvel APK pour la première fois est différent : Il est signé avec la clé du développeur, mais Google ou un homme du milieu pourrait trafiquer la connexion, la modifier et vous l'envoyer avec une nouvelle signature. L'installateur du paquet et Android lui-même ne vérifient pas auprès de Google si la signature correspond. Mais Google Play met en œuvre les recommandations de sécurité que google donne aux développeurs : Il utilise SSL et devrait donc être sécurisé. Malheureusement, une mauvaise mise en œuvre peut conduire à une sécurité défectueuse, comme cela s'est produit avec de nombreuses applications qui ont été testées pour la vulnérabilité SSL dans cette étude :
http://www2.dcsec.uni-hannover.de/files/Android/p50-fahl.pdf
(Hors Google Play)
Pourtant, la vérification de la signature elle-même est toujours vulnérable en 4.4 : http://www.zdnet.com/kitkat-gets-fix-for-Android-app-tampering-bug-but-earlier-versions-still-vulnerable-7000022930/