If-Koubou

SafetyNet Explained: De ce plățile Android și alte aplicații nu funcționează pe dispozitive înrădăcinate

SafetyNet Explained: De ce plățile Android și alte aplicații nu funcționează pe dispozitive înrădăcinate (Cum să)

Înrădăcinarea dispozitivului Android vă oferă acces la o varietate mai mare de aplicații și la un 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 de la terțe părți nu vor funcționa și pe dispozitive Android înrădăcinate, deși pot verifica prezența rădăcinii în alte moduri.

SafetyNet: Cum înțelege Google că ai înrădăcinat telefonul tău 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 modificat.

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 că a fost infectat de 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 unei ROM personalizate împiedică aparatul să fie "Compatibil CTS". Acesta este modul în care SafetyNet API-ul vă poate spune dacă sunteți înrădăcinată - pur și simplu verifică compatibilitatea cu 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 le trimite în mod regulat la Google. Google utilizează aceste informații într-o varietate de scopuri, de la obținerea unei imagini a ecosistemului Android mai larg pentru a determina dacă software-ul dispozitivului dvs. 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 Playground. 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 de blog scrisă de John Kozyrakis, un strateg tehnic la Cigital, o companie de securitate software. El 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 numai de înrădăcinare, desigur, rularea unui ROM personalizat vă va pune de asemenea la îndoială de această cerință. API-ul SafetyNet va pretinde că nu este "compatibil cu Android" dacă utilizați un ROM personalizat pe care dispozitivul nu a venit-o.

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 Android. Platoul Android protejează în mod normal datele dvs. de plată utilizând funcțiile sandbox ale 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 personalizată necunoscută, așa că o blochează. Un inginer Android Pay a explicat problema pe forumul XDA Developers dacă sunteți curios să citiți mai multe.

Alte moduri 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 dispozitivele î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ă împiedică 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 să nu mai fie valabile, 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, refuza 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 pisică și mouse-ul cu SafetyNet, actualizând-o constant, încercând să rămână înaintea 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ă Android Pay nu mai funcționează împreună cu rădăcină 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 opri 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ăcinoase din sistemul dvs., există un modul Xposed Framework numit RootCloak, care vă permite să le înșelați să lucreze oricum. Aceasta 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 dispozitivul 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