Pagina principala » HOWTO » SafetyNet a explicat de ce Android Pay și alte aplicații nu funcționează pe dispozitivele înrădăcinate

    SafetyNet a explicat de ce Android Pay și alte aplicații nu funcționează pe dispozitivele înrădăcinate

    Înrădăcinarea dispozitivului Android vă oferă acces la o varietate mai mare de aplicații și acces mai profund la sistemul Android. Dar unele aplicații Google Pay-app nu vor funcționa deloc pe un dispozitiv înrădăcinat.

    Google utilizează un dispozitiv numit SafetyNet pentru a detecta dacă dispozitivul este înrădăcinat sau nu și blochează accesul la aceste funcții. Google nu este singurul, fie - o mulțime de aplicații terță parte nu vor funcționa și pe dispozitive Android înrădăcinate, deși pot verifica prezența rădăcinii în alte moduri.

    SafetyNet: modul în care Google știe că ți-ai înrădăcit telefonul Android

    Dispozitivele Android oferă un "API SafetyNet", care face parte din stratul Serviciilor Google Play instalat pe dispozitive Android aprobate de Google. Acest API "oferă acces la serviciile Google care vă ajută să evaluați sănătatea și siguranța unui dispozitiv Android", potrivit Google. Dacă sunteți dezvoltator Android, puteți apela acest API în aplicația dvs. pentru a verifica dacă dispozitivul pe care rulați a fost manipulat.

    Acest API SafetyNet este conceput pentru a verifica dacă un dispozitiv a fost manipulat - fie că a fost înrădăcinat de un utilizator, fie rulează o ROM personalizat, fie a fost infectat cu malware de nivel scăzut, de exemplu.

    Dispozitivele livrate împreună cu Magazinul Google Play și alte aplicații instalate trebuie să treacă prin Google "Compatibility Test Suite". Înrădăcinarea unui dispozitiv sau instalarea unui ROM personalizat împiedică aparatul să fie "Compatibil CTS". Acesta este modul în care SafetyNet API vă poate spune dacă sunteți înrădăcinată - doar verifică compatibilitatea CTS. În mod similar, dacă primiți un dispozitiv Android care nu a venit niciodată cu aplicațiile Google, cum ar fi una dintre cele 20 de tablete livrate direct dintr-o fabrică din China - nu va fi considerată "compatibilă cu CTS", chiar dacă nu ați înrădăcinat-o.

    Pentru a obține aceste informații, serviciile Google Play descarcă un program numit "snet" și îl rulează în fundal pe dispozitiv. Programul colectează date de pe dispozitivul dvs. și îl trimite periodic către Google. Google utilizează aceste informații într-o varietate de scopuri, de la a obține o imagine a ecosistemului Android mai larg pentru a determina dacă software-ul dispozitivului a fost sau nu a fost modificat. Google nu explică exact ceea ce caută snet, dar probabil că snet verifică dacă partiția de sistem a fost modificată din starea din fabrică.

    Puteți verifica starea SafetyNet a dispozitivului descărcând o aplicație cum ar fi SafetyNet Helper Sample sau SafetyNet Teren de joacă. Aplicația va cere serviciului Google SafetyNet despre starea dispozitivului dvs. și vă va spune răspunsul pe care îl primește de pe serverul Google.

    Pentru mai multe detalii tehnice, citiți această postare pe blog scrisă de John Kozyrakis, un strateg tehnic la Cigital, o companie de securitate software. A săpat în SafetyNet și explică mai multe despre cum funcționează.

    Este de până la App

    SafetyNet este opțional pentru dezvoltatorii de aplicații, iar dezvoltatorii de aplicații pot alege să o folosească sau nu. SafetyNet previne doar ca o aplicație să funcționeze dacă dezvoltatorul unei aplicații nu dorește ca acesta să funcționeze pe dispozitive înrădăcinate.

    Cele mai multe aplicații nu vor verifica deloc API-ul SafetyNet. Chiar și o aplicație care verifică API-ul SafetyNet - cum ar fi aplicațiile de test de mai sus - nu va înceta să funcționeze dacă primesc un răspuns rău. Dezvoltatorul aplicației trebuie să verifice API-ul SafetyNet și să refuze aplicația dacă va afla că software-ul dispozitivului a fost modificat. Aplicația Android Android Pay este un exemplu bun în această acțiune.

    Plățile Android nu vor funcționa pe dispozitivele înrădăcinate

    Soluția de plată Android pentru plăți Android Pay nu funcționează deloc pe dispozitive Android înrădăcinate. Încearcă să o lansezi și vei vedea doar un mesaj care spune că "Plata Android nu poate fi utilizată. Google nu poate verifica dacă dispozitivul sau software-ul care rulează pe acesta este compatibil cu Android. "

    Nu este vorba doar de înrădăcinare, desigur, rularea unui ROM personalizat vă va face de asemenea încurcată de această cerință. SafetyNet API va pretinde că nu este "compatibil cu Android" dacă utilizați un ROM personalizat pe care dispozitivul nu a venit.

    Amintiți-vă, acest lucru nu detectează doar înrădăcinarea. Dacă dispozitivul dvs. a fost infectat de un anumit program malware la nivel de sistem, având capacitatea de a spiona aplicațiile Android Pay și alte aplicații, API-ul SafetyNet ar împiedica funcționarea Android Pay, ceea ce este un lucru bun.

    Înrădăcinarea dispozitivului încalcă modelul normal de securitate al Android. Plată Android, în mod normal, vă protejează datele de plată utilizând caracteristicile sandbox-ului Android, dar aplicațiile pot ieși din caseta de nisip pe un dispozitiv înrădăcinat. Google nu are cum să știe cât de sigur ar fi plățile Android pe un anumit dispozitiv, dacă este înrădăcinată sau rulează o ROM necunoscută, astfel că o blochează. Un inginer Android Pay a explicat problema pe forumul XDA Developers dacă sunteți curios să citiți mai multe.

    Alte modalități de depanare pot detecta rădăcini

    SafetyNet este doar o modalitate prin care o aplicație poate verifica dacă funcționează pe un dispozitiv înrădăcinat. De exemplu, dispozitivele Samsung includ un sistem de securitate numit KNOX. Dacă radiați dispozitivul, securitatea KNOX este declanșată. Samsung Pay, aplicația Samsung pentru plăți mobile, va refuza să funcționeze pe dispozitive înrădăcinate. Samsung utilizează KNOX pentru acest lucru, însă ar putea folosi SafetyNet la fel de bine.

    În mod similar, o mulțime de aplicații terță parte vă va împiedica să le utilizați și nu toate utilizează SafetyNet. Ele pot verifica doar prezența unor aplicații root și procese cunoscute pe un dispozitiv.

    Este greu să găsiți o listă actualizată de aplicații care nu funcționează atunci când un dispozitiv este înrădăcinat. Cu toate acestea, RootCloak oferă mai multe liste. Aceste liste pot fi învechite, dar sunt cele mai bune pe care le putem găsi. Multe dintre acestea sunt aplicații bancare și alte portofele mobile, care blochează accesul pe telefoanele înrădăcinate, în încercarea de a vă proteja informațiile bancare de a fi capturate de alte aplicații. Aplicațiile pentru serviciile de streaming video pot, de asemenea, să refuze să funcționeze pe un dispozitiv înrădăcinat ca un fel de măsură DRM, încercând să vă împiedice înregistrarea unui flux video protejat.

    Unele aplicații pot fi înșelate

    Google joacă un joc cu pisica și mouse-ul cu SafetyNet, actualizând-o în mod constant în încercarea de a rămâne în frâu în fața oamenilor care se apropie de el. De exemplu, dezvoltatorul Android Chainfire a creat o nouă metodă de înrădăcinare a dispozitivelor Android fără a modifica partiția de sistem, cunoscută sub numele de "rădăcină fără sistem". SafetyNet inițial nu a detectat astfel de dispozitive ca fiind manipulate, iar Android Pay a funcționat - dar SafetyNet a fost actualizat în cele din urmă pentru a detecta această nouă metodă de înrădăcinare. Aceasta înseamnă că plățile Android nu mai funcționează împreună cu rădăcina fără sistem.

    În funcție de modul în care o aplicație verifică accesul la rădăcină, este posibil să puteți să-l ștergeți. De exemplu, există metode despre rădăcina unor dispozitive Samsung fără a se împiedica securitatea KNOX, ceea ce vă va permite să continuați să utilizați Samsung Pay.

    În cazul aplicațiilor care verifică doar aplicațiile rădăcină din sistemul dvs., există un modul Xposed Framework numit RootCloak, care vă permite să-i păstrați să lucreze oricum. Acest lucru funcționează cu aplicații cum ar fi DirecTV GenieGo, Best Buy CinemaNow și Filme de Flixster, care nu funcționează în mod normal pe dispozitive înrădăcinate. Cu toate acestea, dacă aceste aplicații au fost actualizate pentru a utiliza Google SafetyNet, acestea nu ar fi atât de ușor de a păcăli în acest fel.


    Cele mai multe aplicații vor continua să funcționeze în mod normal odată ce ați înrădăcit dispozitivul. Aplicațiile de plată mobile sunt o mare excepție, la fel ca și alte aplicații bancare și financiare. Serviciile de plată video streaming încearcă uneori să te blocheze de la vizionarea videoclipurilor lor.

    Dacă o aplicație de care aveți nevoie nu funcționează pe dispozitivul dvs. înrădăcinat, puteți deconecta întotdeauna aparatul să îl utilizeze. Aplicația ar trebui să funcționeze după ce ați returnat dispozitivul în starea sa sigură din fabrică.

    Credit de imagine: Danny Choo pe Flickr