SafetyNet verklaarde waarom Android Pay en andere apps niet werken op apparaten met roaden
Het rooten van je Android-apparaat geeft je toegang tot een grotere verscheidenheid aan apps en een diepere toegang tot het Android-systeem. Maar sommige apps, zoals Google's Android Pay, werken helemaal niet op een geroot apparaat.
Google gebruikt iets dat SafetyNet heet om te detecteren of uw apparaat is geroot of niet en blokkeert de toegang tot die functies. Google is trouwens niet de enige - veel apps van derden werken ook niet op geroote Android-apparaten, hoewel ze op andere manieren kunnen controleren op de aanwezigheid van root..
SafetyNet: hoe Google weet dat u uw Android-telefoon hebt geroot
Android-apparaten bieden een 'SafetyNet-API', die deel uitmaakt van de Google Play-serviceslaag die is geïnstalleerd op door Google goedgekeurde Android-apparaten. Deze API 'biedt toegang tot Google-services die u helpen de gezondheid en veiligheid van een Android-apparaat te beoordelen', aldus Google. Als u een Android-ontwikkelaar bent, kunt u deze API in uw app bellen om te controleren of er is geknoeid met het apparaat waarop u werkt.
Deze SafetyNet-API is ontworpen om te controleren of er met een apparaat is geknoeid - of deze nu is geroot door een gebruiker, een aangepast ROM uitvoert of is geïnfecteerd met malware op een laag niveau, bijvoorbeeld.
Apparaten die worden geleverd met de Google Play Store en andere geïnstalleerde apps, moeten de Android-compatibiliteitstest-suite van Google doorgeven. Door een apparaat te rooten of een aangepast ROM te installeren, voorkomt u dat een apparaat "CTS-compatibel" is. Dit is hoe de SafetyNet-API kan bepalen of u geroot bent - het controleert alleen op CTS-compatibiliteit. Als u een Android-apparaat krijgt dat nooit met Google-apps is geleverd (zoals een van die $ 20-tablets die rechtstreeks vanuit een fabriek in China worden verzonden), wordt het ook niet als "CTS-compatibel" beschouwd, zelfs als u het nog niet hebt geroot..
Om deze informatie te verkrijgen, downloadt Google Play-services een programma met de naam 'snet' en wordt het op de achtergrond op uw apparaat uitgevoerd. Het programma verzamelt gegevens van uw apparaat en stuurt het regelmatig naar Google. Google gebruikt deze informatie voor verschillende doeleinden, van het krijgen van een foto van het uitgebreide Android-ecosysteem tot het bepalen of er met de software van uw apparaat is geknoeid. Google legt niet precies uit wat snet zoekt, maar het is waarschijnlijk dat snet controleert of uw systeempartitie is gewijzigd vanuit de fabrieksstatus.
U kunt de SafetyNet-status van uw apparaat controleren door een app zoals SafetyNet Helper Sample of SafetyNet Playground te downloaden. De app zal de SafetyNet-service van Google vragen over de status van uw apparaat en u vertellen welk antwoord de server van Google ontvangt.
Lees voor meer technische details dit blogbericht geschreven door John Kozyrakis, een technisch strateeg bij Cigital, een bedrijf voor softwarebeveiliging. Hij groef het SafetyNet in en legt meer uit over hoe het werkt.
Het is aan de app
SafetyNet is optioneel voor app-ontwikkelaars en app-ontwikkelaars kunnen ervoor kiezen om het te gebruiken of niet. SafetyNet voorkomt alleen dat een app werkt als de ontwikkelaar van een app niet wil dat deze werkt op geroote apparaten.
De meeste apps zullen de SafetyNet API helemaal niet controleren. Zelfs een app die de SafetyNet-API controleert, zoals de test-apps hierboven, werkt niet als ze een slecht antwoord ontvangen. De ontwikkelaar van de app moet de SafetyNet API controleren en ervoor zorgen dat de app weigert te functioneren als hij ontdekt dat de software van uw apparaat is aangepast. De eigen Android Pay-app van Google is daar een goed voorbeeld van.
Android Pay werkt niet op geroote apparaten
Google's Android Pay-oplossing voor mobiele betalingen werkt helemaal niet op geroote Android-apparaten. Probeer het te starten en u ziet gewoon een bericht met de melding 'Android Pay kan niet worden gebruikt. Google kan niet verifiëren of uw apparaat of de daarop draaiende software compatibel is met Android. "
Het gaat niet alleen om rooten, natuurlijk - het runnen van een aangepaste ROM zou je ook van deze vereiste afbrengen. De SafetyNet API beweert dat deze niet "Android-compatibel" is als u een aangepast ROM gebruikt die niet bij het apparaat is geleverd.
Vergeet niet dat dit niet alleen het rooten detecteert. Als uw apparaat is geïnfecteerd door malware op systeemniveau met de mogelijkheid om Android Pay en andere apps te bespioneren, zou de SafetyNet-API ook voorkomen dat Android Pay functioneert, wat een goede zaak is.
Door uw apparaat te rooten breekt het normale beveiligingsmodel van Android. Android Pay beschermt normaal gesproken uw betalingsgegevens met behulp van Android-sandboxfuncties, maar apps kunnen de sandbox op een geroot apparaat verlaten. Google kan op geen enkele manier weten hoe veilig Android Pay op een bepaald apparaat zou zijn als het geroot is of een onbekend aangepast ROM uitvoert, zodat het wordt geblokkeerd. Een Android Pay-technicus legde het probleem uit op het XDA Developers-forum als je nieuwsgierig bent om meer te lezen.
Andere manieren Apps kunnen Root detecteren
SafetyNet is maar één manier om te controleren of een app op een geroot apparaat werkt. Samsung-apparaten bevatten bijvoorbeeld een beveiligingssysteem met de naam KNOX. Als u uw apparaat rooit, wordt de KNOX-beveiliging geactiveerd. Samsung Pay, Samsung's eigen app voor mobiele betalingen, weigert te werken op geroote apparaten. Samsung gebruikt KNOX hiervoor, maar het kan net zo goed SafetyNet gebruiken.
Evenzo zullen veel apps van derden je ervan weerhouden om ze te gebruiken, en niet allemaal gebruiken ze SafetyNet. Ze kunnen alleen controleren op de aanwezigheid van bekende root-apps en -processen op een apparaat.
Het is moeilijk om een actuele lijst met apps te vinden die niet werken wanneer een apparaat wordt geroot. RootCloak biedt echter verschillende lijsten. Deze lijsten zijn misschien verouderd, maar ze zijn de beste die we kunnen vinden. Velen zijn bank- en andere mobiele portemonnee-apps, die de toegang blokkeren op geroote telefoons in een poging om uw bankgegevens te beschermen tegen opname door andere apps. Apps voor videostreamingservices kunnen ook weigeren te functioneren op een geroot apparaat als een soort DRM-maatregel, en proberen te voorkomen dat u een beveiligde videostream opneemt.
Sommige apps kunnen worden bedrogen
Google speelt een kat-en-muisspel met SafetyNet en werkt het voortdurend bij in een poging de mensen voor te blijven. Android-ontwikkelaar Chainfire heeft bijvoorbeeld een nieuwe methode ontwikkeld om Android-apparaten te rooten zonder de systeempartitie aan te passen, ook wel "root zonder systeem" genoemd. SafetyNet heeft in eerste instantie niet gedetecteerd dat apparaten waarmee werd geknoeid, en Android Pay werkten, maar SafetyNet werd uiteindelijk bijgewerkt om deze nieuwe bewortelingsmethode te detecteren. Dit betekent dat Android Pay niet langer werkt samen met een systeemloze root.
Afhankelijk van hoe een app de toegang tot de hoofdmap controleert, kunt u deze mogelijk misleiden. Er zijn bijvoorbeeld methoden om sommige Samsung-apparaten te rooten zonder de KNOX-beveiliging uit te schakelen, waardoor u Samsung Pay kunt blijven gebruiken.
In het geval van apps die alleen op root-apps op uw systeem controleren, is er een Xposed Framework-module met de naam RootCloak die u naar verluidt in staat stelt om ze toch te laten misleiden. Dit werkt met apps zoals DirecTV GenieGo, Best Buy CinemaNow en Movies by Flixster, die normaal gesproken niet werken op geroote apparaten. Als deze apps echter zouden worden bijgewerkt om SafetyNet van Google te gebruiken, zouden ze niet zo gemakkelijk te misleiden zijn op deze manier.
De meeste apps zullen normaal blijven werken zodra je je apparaat hebt geroot. Mobiele betalingsapps vormen de grote uitzondering, net als sommige andere bank- en financiële apps. Betaalde videostreamingsservices proberen je soms ook te belemmeren om hun video's te bekijken.
Als een app die u nodig hebt niet werkt op uw geroote apparaat, kunt u het apparaat altijd van de kaart verwijderen om het te gebruiken. De app zou moeten werken nadat u uw apparaat heeft teruggebracht naar de veilige fabrieksstatus.
Image Credit: Danny Choo op Flickr