SafetyNet expliqué: Pourquoi Android Pay et d’autres applications ne fonctionnent pas sur des appareils enracinés

Table des matières:

SafetyNet expliqué: Pourquoi Android Pay et d’autres applications ne fonctionnent pas sur des appareils enracinés
SafetyNet expliqué: Pourquoi Android Pay et d’autres applications ne fonctionnent pas sur des appareils enracinés

Vidéo: SafetyNet expliqué: Pourquoi Android Pay et d’autres applications ne fonctionnent pas sur des appareils enracinés

Vidéo: SafetyNet expliqué: Pourquoi Android Pay et d’autres applications ne fonctionnent pas sur des appareils enracinés
Vidéo: Que faut-il vérifier avant d’acheter une voiture électrique usagée ? - YouTube 2024, Avril
Anonim
Enraciner votre appareil Android vous donne accès à une plus grande variété d'applications et à un accès plus profond au système Android. Cependant, certaines applications, comme Android Pay de Google, ne fonctionneront pas du tout sur un appareil enraciné.
Enraciner votre appareil Android vous donne accès à une plus grande variété d'applications et à un accès plus profond au système Android. Cependant, 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 enraciné ou non, et bloque l'accès à ces fonctionnalités. De nombreuses applications tierces ne fonctionneront pas non plus sur les appareils Android rootés, même s’ils peuvent vérifier la présence de root de différentes manières.

SafetyNet: Comment Google sait que votre téléphone Android est enraciné

Les appareils Android offrent une «API SafetyNet», qui fait partie de la couche de services Google Play installée sur des appareils Android approuvés par Google. Cette API "fournit un accès 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 le périphérique sur lequel vous travaillez a été falsifié.

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

Les appareils fournis avec le Play Store de Google et les autres applications installées doivent satisfaire à la «suite de tests de compatibilité» 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 déterminer si vous êtes enraciné: elle vérifie simplement la compatibilité CTS. De même, si vous possédez un appareil Android qui n'est jamais livré avec les applications de Google, comme l'une de ces tablettes de 20 dollars livrées directement d'une usine en Chine, il ne sera pas considéré comme «compatible CTS», même si vous ne l'avez pas encore enraciné..

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 la visualisation de l’ensemble de l’écosystème Android à la détermination de la falsification ou non du logiciel de votre appareil. Google n'explique pas exactement ce que snet recherche, mais il vérifie probablement que snet vérifie si votre partition système a été modifiée depuis l'état d'usine.

Vous pouvez vérifier l'état de votre appareil SafetyNet en téléchargeant une application comme SafetyNet Helper Sample ou SafetyNet Playground. L’application interrogera le service SafetyNet de Google sur l’état de votre appareil et vous indiquera la réponse fournie par le serveur de Google.

Pour plus de détails techniques, lisez cet article de blog écrit par John Kozyrakis, stratège technique chez Cigital, une entreprise de sécurité logicielle. Il a fouillé dans SafetyNet et explique comment cela fonctionne.

Image
Image

C'est à l'appli

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 uniquement une application de fonctionner si son développeur ne veut pas qu’elle fonctionne sur des appareils rootés.

La plupart des applications ne vérifient pas du tout l’API SafetyNet. Même une application qui vérifie l'API SafetyNet - à l'instar des applications de test ci-dessus - n'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 lui demander de ne pas fonctionner s’il apprend que le logiciel de votre appareil a été modifié. L’application Android Pay de Google, par exemple, en est un bon exemple.

Android Pay ne fonctionne 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 «Android Pay ne peut pas être utilisé. Google n'est pas en mesure de vérifier que votre appareil ou le logiciel qui s'exécute sur celui-ci est compatible avec Android."

Bien sûr, il ne s’agit pas que d’enraciner le problème: exécuter une ROM personnalisée vous mettrait également à l’encontre de cette exigence. L’API SafetyNet déclarera qu’il n’est pas «compatible Android» si vous utilisez une ROM personnalisée que le périphérique n’a pas fournie.

Image
Image

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

Enraciner votre appareil brise le modèle de sécurité normal d’Android. Android Pay protège normalement vos données de paiement à l'aide des fonctions de bac à sable d'Android, mais les applications peuvent sortir du bac à sable sur un appareil enraciné. Google n’a aucun moyen de savoir si Android Pay serait sécurisé sur un appareil particulier s’il est enraciné ou sur une ROM personnalisée inconnue. Ils le bloquent donc. Un ingénieur Android Pay a expliqué le problème sur le forum XDA Developers si vous souhaitez en savoir plus.

Autres manières dont les applications peuvent détecter la racine

SafetyNet n’est qu’un des moyens par lesquels une application peut vérifier si elle fonctionne sur un appareil enraciné. Par exemple, les appareils Samsung incluent un système de sécurité appelé KNOX. Si vous rootez votre appareil, la sécurité KNOX est déclenchée. Samsung Pay, l’application de paiement mobile de Samsung, refusera de fonctionner sur des 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 racine et de processus 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 autres applications pour portefeuille, qui bloquent l'accès aux téléphones enracinés afin de protéger vos informations bancaires contre la capture par d'autres applications. Les applications pour services de streaming vidéo peuvent également refuser de fonctionner sur un appareil enraciné comme une sorte de mesure DRM, essayant de vous empêcher d'enregistrer un flux vidéo protégé.

Certaines applications peuvent être trompées

Google joue à un jeu de chat et souris avec SafetyNet et le met à jour en permanence pour tenter de rester en avance sur les gens qui le parcourent. Par exemple, le développeur Android Chainfire a créé une nouvelle méthode d’enracinement des appareils Android sans modification de la partition système, appelée «racine sans système». Au départ, SafetyNet n'avait pas détecté d'altération de tels dispositifs et Android Pay fonctionnait, mais SafetyNet a finalement été mis à jour pour détecter cette nouvelle méthode d'enracinement. Cela signifie que Android Pay ne fonctionne plus avec root sans système.

Selon la manière dont une application vérifie l'accès root, vous pourrez peut-être vous 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 ne recherchent que les applications root sur votre système, il existe un module Xposed Framework nommé RootCloak qui vous permet apparemment de les inciter à travailler de toute façon. Cela fonctionne avec des applications comme DirecTV GenieGo, Best Buy CinemaNow et Movies de Flixster, qui ne fonctionnent normalement pas sur les appareils enracinés. Toutefois, si ces applications étaient mises à jour pour utiliser le réseau SafetyNet de Google, elles ne seraient pas si faciles à duper de cette façon.

Image
Image

La plupart des applications continueront à fonctionner normalement une fois que vous avez installé votre appareil Les applications de paiement mobile constituent la grande exception, de même que 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.

Si une application dont vous avez besoin ne fonctionne pas sur votre appareil rooté, vous pouvez toujours libérer votre appareil pour l'utiliser. L’application devrait fonctionner une fois que votre appareil est revenu à son état d’usine sécurisé.

Conseillé: