Hjemmeside » hvordan » SafetyNet forklaret, hvorfor Android Pay og andre apps ikke fungerer på rodede enheder

    SafetyNet forklaret, hvorfor Android Pay og andre apps ikke fungerer på rodede enheder

    At dræbe din Android-enhed giver dig adgang til et bredere udvalg af apps og en dybere adgang til Android-systemet. Men nogle apps, som Google's Android Pay, fungerer slet ikke på en rodnet enhed.

    Google bruger noget, der hedder SafetyNet, til at opdage, om din enhed er rodfæstet eller ej, og blokerer adgangen til disse funktioner. Google er ikke den eneste, heller ikke mange af apps fra tredjeparter fungerer ikke på rodfæste Android-enheder, selvom de måske kontrollerer roets tilstedeværelse på andre måder.

    SafetyNet: Hvordan Google ved, du har rødt din Android-telefon

    Android-enheder tilbyder et "SafetyNet API", som er en del af Google Play Services-laget, der er installeret på Google-godkendte Android-enheder. Denne API "giver adgang til Google-tjenester, der hjælper dig med at vurdere sundhed og sikkerhed for en Android-enhed," ifølge Google. Hvis du er en Android-udvikler, kan du ringe til dette API i din app for at kontrollere, om den enhed, du kører på, er blevet manipuleret med.

    Dette SafetyNet API er designet til at kontrollere, om en enhed er blevet manipuleret - uanset om den er blevet forankret af en bruger, kører en brugerdefineret ROM eller er blevet inficeret med skadelig software på lavt niveau, for eksempel.

    Enheder, der leveres med Googles Play Butik og andre installerede apps, skal bestå af Googles Android "Compatibility Test Suite". At dræbe en enhed eller installere en brugerdefineret ROM forhindrer en enhed i at være "CTS-kompatibel". Sådan kan SafetyNet API fortælle dig, om du er rooted-den kontrollerer kun CTS-kompatibilitet. På samme måde, hvis du får en Android-enhed, der aldrig kom med Googles apps, som en af ​​de 20 tabletter, der blev sendt direkte fra en fabrik i Kina, vil det ikke blive betragtet som "CTS-kompatibel" overhovedet, selvom du ikke har rodfæstet det.

    For at få disse oplysninger downloader Google Play Services et program med navnet "snet" og kører det i baggrunden på din enhed. Programmet indsamler data fra din enhed og sender det regelmæssigt til Google. Google anvender disse oplysninger til en række formål, fra at få et billede af det bredere Android-økosystem til at afgøre, om din enheds software er blevet manipuleret. Google forklarer ikke præcis, hvad snet leder efter, men det er sandsynligvis snoet, hvis din systempartition er blevet ændret fra fabrikkens tilstand.

    Du kan kontrollere enhedens SafetyNet-status ved at downloade en app som SafetyNet Helper Sample eller SafetyNet Playground. App'en vil bede Googles SafetyNet-tjeneste om enhedens status og fortælle svaret fra Googles server.

    For mere tekniske detaljer, læs dette blog-indlæg skrevet af John Kozyrakis, en teknisk strateg ved Cigital, et software sikkerhedsfirma. Han gravede ind i SafetyNet og forklarede mere om, hvordan det virker.

    Det er op til appen

    SafetyNet er valgfrit for app-udviklere, og app-udviklere kan vælge at bruge det eller ej. SafetyNet forhindrer kun en app i at fungere, hvis en apps udvikler ikke vil have det til at fungere på rodfæste enheder.

    De fleste apps kontrollerer slet ikke SafetyNet API. Selv en app, der kontrollerer SafetyNet API-ligesom testapplikationerne ovenfor - vil ikke stoppe med at arbejde, hvis de får et dårligt svar. Appens udvikler skal kontrollere SafetyNet API og lade appen nægte at fungere, hvis den lærer at din enheds software er blevet ændret. Googles egen Android Pay-app er et godt eksempel på dette i aktion.

    Android Pay vil ikke fungere på rodede enheder

    Googles Android Pay-mobilbetalingsløsning virker slet ikke på rodede Android-enheder. Prøv at starte det, og du vil bare se en meddelelse, der siger "Android Pay kan ikke bruges. Google kan ikke kontrollere, at din enhed eller den software, der kører på den, er Android-kompatibel. "

    Det drejer sig ikke kun om rooting, selvfølgelig, at køre en brugerdefineret ROM vil også sætte dig afoul af dette krav. SafetyNet API vil hævde, at det ikke er "Android-kompatibelt", hvis du bruger en brugerdefineret ROM, som enheden ikke fulgte med.

    Husk, dette registrerer ikke bare rooting. Hvis din enhed blev smittet af et eller andet system-malware med evnen til at spionere på Android Pay og andre apps, ville SafetyNet API også forhindre Android Pay i at fungere, hvilket er en god ting.

    Rooting din enhed bryder Android's normale sikkerhedsmodel. Android Pay beskytter normalt dine betalingsdata ved hjælp af Android's sandboxningsfunktioner, men apps kan bryde ud af sandkassen på en roddrevet enhed. Google har ingen måde at vide, hvordan sikker Android Pay ville være på en bestemt enhed, hvis den er rodet eller kører en ukendt brugerdefineret ROM, så de blokerer den. En Android Pay ingeniør forklarede problemet på XDA Developers forum, hvis du er nysgerrig efter at læse mere.

    Andre måder Apps kan opdage rod

    SafetyNet er kun en måde en app kunne kontrollere, om den kører på en roddrevet enhed. For eksempel omfatter Samsung-enheder et sikkerhedssystem med navnet KNOX. Hvis du roterer din enhed, udløses KNOX-sikkerhed. Samsung Pay, Samsungs egen mobilbetalingsapp, vil nægte at fungere på rodfæste enheder. Samsung bruger KNOX til dette, men det kan lige så godt bruge SafetyNet.

    Tilsvarende vil mange apps fra tredjeparter blokere dig fra at bruge dem, og ikke alle bruger SafetyNet. De kan bare kontrollere, om der findes kendte rodapplikationer og -processer på en enhed.

    Det er svært at finde en opdateret liste over apps, der ikke fungerer, når en enhed er forankret. Dog giver RootCloak flere lister. Disse lister kan være forældede, men de er de bedste, vi kan finde. Mange er bank- og andre mobile tegnebogsapps, som blokkerer adgangen til rodede telefoner i et forsøg på at beskytte dine bankoplysninger fra at blive fanget af andre apps. Apps til video streaming-tjenester kan også nægte at fungere på en roddrevet enhed som en slags DRM-foranstaltning, idet du forsøger at forhindre dig i at optage en beskyttet videostrøm.

    Nogle apps kan blive narret

    Google spiller et katte-og-mus spil med SafetyNet, og opdaterer det konstant i et forsøg på at holde sig foran folk, der kommer rundt om det. For eksempel har Android-udvikleren Chainfire oprettet en ny metode til rooting Android-enheder uden at ændre systempartitionen, kendt som "systemløs root". SafetyNet opdagede i første omgang ikke sådanne enheder som manipuleret, og Android Pay fungerede, men SafetyNet blev til sidst opdateret for at opdage denne nye rooting-metode. Dette betyder, at Android Pay ikke længere fungerer sammen med systemløs root.

    Afhængigt af, hvordan en app kontrollerer rootadgang, kan du muligvis narre den. For eksempel er der angiveligt metoder til at rodde nogle Samsung-enheder uden at udløse KNOX-sikkerheden, hvilket vil give dig mulighed for at fortsætte med at bruge Samsung Pay.

    I tilfælde af apps, der bare tjekker rootapplikationer på dit system, er der et Xposed Framework-modul ved navn RootCloak, der angiveligt giver dig mulighed for at narre dem til at arbejde i alligevel. Dette virker med apps som DirecTV GenieGo, Best Buy CinemaNow og Movies af Flixster, som normalt ikke fungerer på rodfæste enheder. Men hvis disse apps blev opdateret for at bruge Googles SafetyNet, ville de ikke være så lette at narre på denne måde.


    De fleste apps fortsætter med at fungere normalt, når du har rodet din enhed. Mobil betaling apps er den store undtagelse, ligesom nogle andre bank-og finansielle apps. Betalede video-streaming-tjenester forsøger undertiden at blokere dig for at se deres videoer også.

    Hvis en app, du har brug for, ikke fungerer på din roddrevne enhed, kan du altid fjerne din enhed for at bruge den. App'en skal fungere, efter at du har returneret din enhed til sin sikre, fabriksstatus.

    Billedkredit: Danny Choo på Flickr