in

Pourquoi Android Pay et d’autres applications ne fonctionnent pas sur les appareils enracinés

L’enracinement de votre appareil Android vous donne accès à une plus grande variété d’applications et un accès plus profond au système Android. Mais certaines applications, comme Android Pay de Google, ne fonctionneront pas du tout sur un appareil enraciné.

Google utilise quelque chose appelé SafetyNet pour détecter si votre appareil est rooté ou non, et bloque l’accès à ces fonctionnalités. Google n’est pas le seul non plus – de nombreuses applications tierces ne fonctionneront pas non plus sur les appareils Android enracinés, bien qu’elles puissent vérifier la présence de la racine d’une autre manière.

SafetyNet: comment Google sait que vous avez enraciné votre téléphone Android

Les appareils Android offrent un « API SafetyNet», Qui fait partie de la couche Services Google Play installée sur les appareils Android approuvés par Google. Cette API « permet d’accéder aux services Google qui vous aident à évaluer la santé et la sécurité d’un appareil Android », selon Google. Si vous êtes un développeur Android, vous pouvez appeler cette API dans votre application pour vérifier si l’appareil sur lequel vous exécutez a été falsifié.

Cette API SafetyNet est conçue pour vérifier si un périphérique a été falsifié – s’il a été rooté par un utilisateur, exécute une ROM personnalisée ou a été infecté par des logiciels malveillants de bas niveau, par exemple.

Les appareils livrés avec le Play Store de Google et les autres applications installées doivent réussir la « Suite de tests de compatibilité » d’Android de Google. L’enracinement d’un périphérique ou l’installation d’une ROM personnalisée empêche un périphérique d’être «compatible CTS». C’est ainsi que l’API SafetyNet peut savoir si vous êtes rooté – elle vérifie simplement la compatibilité CTS. De même, si vous obtenez un appareil Android qui n’a jamais été fourni avec les applications de Google, comme l’une de ces tablettes à 20 USD expédiées directement depuis une usine en Chine, il ne sera pas du tout considéré comme «compatible CTS», même si vous ne l’avez pas rooté .

Pour obtenir ces informations, les services Google Play téléchargent un programme nommé «snet» et l’exécutent en arrière-plan sur votre appareil. Le programme collecte les données de votre appareil et les envoie régulièrement à Google. Google utilise ces informations à diverses fins, allant de l’obtention d’une image de l’écosystème Android au sens large à la détermination du fait que le logiciel de votre appareil a été falsifié ou non. Google n’explique pas exactement ce que recherche snet, mais il est probable que snet vérifie si votre partition système a été modifiée par rapport à l’état d’usine.

Vous pouvez vérifier l’état SafetyNet de votre appareil en téléchargeant une application telle que Exemple d’assistance SafetyNet ou alors Terrain de jeu SafetyNet. L’application demandera au service SafetyNet de Google l’état de votre appareil et vous indiquera la réponse qu’il obtient du serveur de Google.

Pour plus de détails techniques, lisez ce billet de blog écrit par John Kozyrakis, stratège technique chez Cigital, une société de sécurité logicielle. Il a creusé dans SafetyNet et en explique plus sur son fonctionnement.

C’est à la hauteur de l’application

SafetyNet est facultatif pour les développeurs d’applications, et les développeurs d’applications peuvent choisir de l’utiliser ou non. SafetyNet empêche une application de fonctionner uniquement si le développeur d’une application ne souhaite pas qu’elle fonctionne sur des appareils enracinés.

La plupart des applications ne vérifient pas du tout l’API SafetyNet. Même une application qui vérifie l’API SafetyNet, comme les applications de test ci-dessus, ne s’arrêtera pas de fonctionner si elle reçoit une mauvaise réponse. Le développeur de l’application doit vérifier l’API SafetyNet et empêcher l’application de fonctionner s’il apprend que le logiciel de votre appareil a été modifié. La propre application Android Pay de Google en est un bon exemple.

Android Pay ne fonctionnera pas sur les appareils enracinés

La solution de paiement mobile Android Pay de Google ne fonctionne pas du tout sur les appareils Android rootés. Essayez de le lancer, et vous verrez simplement un message disant « Android Pay ne peut pas être utilisé. Google n’est pas en mesure de vérifier que votre appareil ou le logiciel qui y est exécuté est compatible avec Android. « 

Il ne s’agit pas seulement d’enraciner, bien sûr – exécuter une ROM personnalisée vous mettrait également à l’abri de cette exigence. L’API SafetyNet affirmera qu’elle n’est pas «compatible Android» si vous utilisez une ROM personnalisée avec laquelle l’appareil n’a pas été fourni.

N’oubliez pas que cela ne détecte pas seulement l’enracinement. Si votre appareil était infecté par un logiciel malveillant au niveau du système capable d’espionner Android Pay et d’autres applications, l’API SafetyNet empêcherait également Android Pay de fonctionner, ce qui est une bonne chose.

L’enracinement de votre appareil rompt le modèle de sécurité normal d’Android. Android Pay protège normalement vos données de paiement à l’aide des fonctionnalités de sandbox d’Android, mais les applications peuvent sortir du bac à sable sur un appareil enraciné. Google n’a aucun moyen de savoir à quel point Android Pay serait sécurisé sur un appareil particulier s’il est enraciné ou exécute une ROM personnalisée inconnue, ils le bloquent donc. Un ingénieur Android Pay a expliqué le problème sur le forum des développeurs XDA si vous êtes curieux d’en savoir plus.

Autres moyens par lesquels les applications peuvent détecter la racine

SafetyNet n’est qu’un moyen pour une application de vérifier si elle s’exécute sur un appareil enraciné. Par exemple, les appareils Samsung incluent un système de sécurité nommé KNOX. Si vous rootez votre appareil, la sécurité KNOX est déclenchée. Samsung Pay, la propre application de paiement mobile de Samsung, refusera de fonctionner sur les appareils enracinés. Samsung utilise KNOX pour cela, mais il pourrait tout aussi bien utiliser SafetyNet.

De même, de nombreuses applications tierces vous empêcheront de les utiliser, et toutes n’utilisent pas SafetyNet. Ils peuvent simplement vérifier la présence d’applications et de processus racine connus sur un appareil.

Il est difficile de trouver une liste à jour des applications qui ne fonctionnent pas lorsqu’un appareil est enraciné. Cependant, RootCloak fournit plusieurs listes. Ces listes sont peut-être obsolètes, mais ce sont les meilleures que nous puissions trouver. Beaucoup sont des applications bancaires et d’autres applications de portefeuille mobile, qui bloquent l’accès sur les téléphones enracinés dans le but de protéger vos informations bancaires contre la capture par d’autres applications. Les applications pour les services de streaming vidéo peuvent également refuser de fonctionner sur un appareil enraciné comme une sorte de mesure DRM, tentant de vous empêcher d’enregistrer un flux vidéo protégé.

Certaines applications peuvent être trompées

Google joue à un jeu du chat et de la souris avec SafetyNet, le mettant constamment à jour dans le but de garder une longueur d’avance sur les gens qui le contournent. Par exemple, le développeur Android Chainfire a créé une nouvelle méthode d’enracinement des appareils Android sans modifier la partition système, connue sous le nom de «racine sans système». Au départ, SafetyNet n’a pas détecté de tels appareils comme étant falsifiés, et Android Pay a fonctionné – mais SafetyNet a finalement été mis à jour pour détecter cette nouvelle méthode d’enracinement. Cela signifie Android Pay ne fonctionne plus avec racine sans système.

En fonction de la manière dont une application vérifie l’accès root, vous pourrez peut-être la tromper. Par exemple, il existe des méthodes pour rooter certains appareils Samsung sans déclencher la sécurité KNOX, ce qui vous permettrait de continuer à utiliser Samsung Pay.

Dans le cas des applications qui vérifient simplement les applications racine sur votre système, il existe un module Xposed Framework nommé RootCloak cela vous permettrait de les inciter à travailler de toute façon. Cela fonctionne avec des applications telles que DirecTV GenieGo, Best Buy CinemaNow et Movies by Flixster, qui ne fonctionnent normalement pas sur les appareils enracinés. Cependant, si ces applications étaient mises à jour pour utiliser SafetyNet de Google, elles ne seraient pas si faciles à tromper de cette manière.

La plupart des applications continueront de fonctionner normalement une fois que vous aurez rooté votre appareil. Les applications de paiement mobile sont la grande exception, tout comme certaines autres applications bancaires et financières. Les services de streaming vidéo payants tentent parfois de vous empêcher de regarder leurs vidéos également.

Si une application dont vous avez besoin ne fonctionne pas sur votre appareil enraciné, vous pouvez toujours annuler le root de votre appareil pour l’utiliser. L’application devrait fonctionner une fois que vous avez remis votre appareil dans son état d’usine sécurisé.

Crédit d’image: Danny Choo sur Flickr

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment empêcher votre Mac de se connecter automatiquement à un réseau Wi-Fi

Comment enregistrer l'écran de votre appareil Android

Comment enregistrer l’écran de votre appareil Android