SafetyNet objasnio zašto Android platiti i druge aplikacije ne rade na ukorijenjen uređaja
Rooting vašeg Android uređaja omogućuje vam pristup većem broju aplikacija i dublji pristup Android sustavu. No, neke aplikacije - poput Googleovog Android Pay-ne rade uopće na uređaju s korijenom.
Google koristi nešto što se zove SafetyNet da bi otkrio je li uređaj ukorijenjen ili ne i blokira pristup tim značajkama. Google nije jedini, ali - mnoštvo aplikacija treće strane također neće raditi na ukorijenjenim Android uređajima, iako mogu provjeriti prisutnost root-a na druge načine.
SafetyNet: Kako Google zna da ste ukorijenili vaš Android telefon
Uređaji sa sustavom Android nude "SafetyNet API", koji je dio sloja usluge Google Play instaliran na uređajima Android odobrenim od Googlea. Ovaj API "pruža pristup Googleovim uslugama koje vam pomažu u procjeni zdravlja i sigurnosti uređaja Android", navodi Google. Ako ste razvojni programer za Android, taj API možete nazvati u svojoj aplikaciji da biste provjerili je li uređaj na kojem je pokrenut neovlašteno promijenjen.
Ovaj SafetyNet API osmišljen je kako bi provjerio je li uređaj neovlašteno mijenjan - je li ukorijenjen od korisnika, pokreće prilagođeni ROM ili je zaražen malim zlonamjernim softverom, na primjer.
Uređaji koji se isporučuju s Googleovom trgovinom Play i drugim instaliranim aplikacijama moraju proći Googleov testni paket za kompatibilnost Android. Ukorjenjivanje uređaja ili instaliranje prilagođenog ROM-a sprječava uređaj da bude "CTS Compatible". Na taj način SafetyNet API može ustanoviti je li ukorijenjen - on samo provjerava kompatibilnost s CTS-om. Isto tako, ako dobijete uređaj s Androidom koji nikada nije stigao s Googleovim aplikacijama - poput one od 20 dolara isporučenih izravno iz tvornice u Kini - uopće se neće smatrati "kompatibilnim s CTS-om", čak i ako je niste ukorijenili.
Da biste dobili te informacije, usluge Google Play preuzimaju program pod nazivom "snet" i pokreće ga u pozadini uređaja. Program prikuplja podatke s vašeg uređaja i redovito ih šalje Googleu. Google te informacije koristi za razne svrhe, od dobivanja slike šireg Android ekosustava do određivanja je li softver vašeg uređaja neovlašteno mijenjan. Google ne objašnjava točno što snet traži, ali je vjerojatno da će snet provjeriti je li particija sustava izmijenjena iz tvorničkog stanja.
Možete provjeriti SafetyNet status uređaja tako da preuzmete aplikaciju kao što je SafetyNet Helper Sample ili SafetyNet igralište. Aplikacija će pitati Googleovu SafetyNet uslugu o statusu vašeg uređaja i reći vam odgovor koji dobije od Googleovog poslužitelja.
Za više tehničkih detalja, pročitajte ovaj blog post koji je napisao John Kozyrakis, tehnički strateg tvrtke Cigital, tvrtke za sigurnost softvera. Kopao je u SafetyNet i objašnjavao više o tome kako radi.
To je do aplikacije
SafetyNet je opcionalan za programere aplikacija, a programeri aplikacija mogu ga odabrati ili ne. SafetyNet samo sprječava aplikaciju da radi ako programer aplikacije ne želi da radi na uređaju s korijenom.
Većina aplikacija uopće neće provjeriti SafetyNet API. Čak i aplikacija koja provjerava sigurnosne API-je, poput testnih aplikacija iznad, neće prestati raditi ako primi loš odgovor. Programer aplikacije mora provjeriti SafetyNet API i učiniti da aplikacija odbije funkcionirati ako sazna da je softver vašeg uređaja promijenjen. Googleov vlastiti Android Pay app je dobar primjer za to u akciji.
Android Pay neće raditi na ukorijenjenim uređajima
Googleovo rješenje za mobilno plaćanje za Android Pay uopće ne funkcionira na ukorijenjenim Android uređajima. Pokušajte ga pokrenuti i vidjet ćete samo poruku u kojoj se kaže: "Android Pay ne može se koristiti. Google ne može potvrditi da je vaš uređaj ili softver koji se na njemu koristi kompatibilan s Androidom. "
Ne radi se samo o ukorjenjivanju, naravno, pokretanje prilagođenog ROM-a također bi vas odvratilo od ovog zahtjeva. SafetyNet API će tvrditi da nije "Android kompatibilan" ako koristite prilagođeni ROM s kojim uređaj nije došao.
Zapamtite, ovo ne samo da otkriva ukorjenjivanje. Ako je vaš uređaj zaražen nekim zlonamjernim softverom na razini sustava koji je sposoban špijunirati Android Pay i druge aplikacije, API SafetyNet također bi spriječio Android Pay da funkcionira, što je dobro.
Ukorjenjivanje uređaja prekida normalan sigurnosni model Androida. Android Pay uobičajeno štiti podatke o plaćanju pomoću značajki Android-a na pješčaniku, ali aplikacije mogu izaći iz sandboxa na ukorijenjenom uređaju. Google nema načina da sazna koliko je siguran Android Pay na određenom uređaju ako je ukorijenjen ili pokreće nepoznati korisnički ROM pa ga blokiraju. Inženjer Android Pay objasnio je problem na forumu XDA Developers ako ste znatiželjni da pročitate više.
Drugi načini aplikacije mogu otkriti korijen
SafetyNet je samo jedan od načina na koji aplikacija može provjeriti radi li se o uređaju s korijenom. Na primjer, Samsungovi uređaji uključuju sigurnosni sustav pod nazivom KNOX. Ako pokrenete uređaj, KNOX sigurnost je isključena. Samsung Pay, Samsungova vlastita aplikacija za mobilna plaćanja, odbit će funkcionirati na uređaju s korijenom. Samsung koristi KNOX za to, ali može isto tako dobro koristiti SafetyNet.
Slično tome, mnoštvo aplikacija treće strane blokirat će vas da ih koristite, a ne svi oni koriste SafetyNet. Mogu samo provjeriti prisutnost poznatih korijenskih aplikacija i procesa na uređaju.
Teško je pronaći ažurirani popis aplikacija koje ne rade kada je uređaj ukorijenjen. Međutim, RootCloak nudi nekoliko popisa. Ti popisi mogu biti zastarjeli, ali oni su najbolji koje možemo pronaći. Mnoge od njih su bankarske i druge aplikacije mobilnog novčanika koje blokiraju pristup na ukorijenjenim telefonima u pokušaju da zaštite vaše bankovne podatke od drugih aplikacija. Aplikacije za usluge streaminga videozapisa također mogu odbiti funkcioniranje na ukorijenjenom uređaju kao neku vrstu DRM mjere, pokušavajući vas spriječiti u snimanju zaštićenog videozapisa.
Neke aplikacije mogu biti izmamljene
Google igra igru Cat-and-mouse s SafetyNet-om, stalno je ažurira u pokušaju da ostane ispred ljudi koji ga zaobilaze. Na primjer, razvojni programer Chainfire za Android stvorio je novu metodu ukorjenjivanja uređaja sa sustavom Android bez mijenjanja sistemske particije, poznate pod nazivom "root bez sustava". SafetyNet u početku nije otkrio takve uređaje kao da su neovlašteni, i Android Pay je radio - ali SafetyNet je na kraju ažuriran kako bi otkrio ovu novu metodu navijanja. To znači da Android Pay više ne radi zajedno s root-om bez sustava.
Ovisno o tome kako aplikacija provjerava root pristup, možda ćete je moći prevariti. Na primjer, postoje navodni načini za korijen nekih Samsung uređaja bez iskakanja KNOX sigurnosti, što bi vam omogućilo da nastavite koristiti Samsung Pay.
U slučaju aplikacija koje samo provjeravaju korijenske aplikacije na vašem sustavu, postoji modul Xposed Framework koji se zove RootCloak i koji vam, navodno, omogućuje da ih svejedno prevarite. To radi s aplikacijama kao što su DirecTV GenieGo, Best Buy CinemaNow i Movies by Flixster, koje obično ne rade na uređaju. Međutim, ako su te aplikacije ažurirane kako bi koristile Google SafetyNet, ne bi ih bilo tako lako prevariti na ovaj način.
Većina aplikacija nastavit će normalno raditi nakon što ukoristite uređaj. Aplikacije za mobilno plaćanje velika su iznimka, kao i neke druge bankarske i financijske aplikacije. Plaćene usluge videoprijenosa ponekad pokušavaju blokirati i gledanje njihovih videozapisa.
Ako aplikacija koju trebate ne funkcionira na vašem uređaju, uvijek možete ukloniti uređaj s uređaja da biste ga koristili. Aplikacija bi trebala raditi nakon što uređaj vratite na sigurno, tvorničko stanje.
Zasluge za sliku: Danny Choo na Flickru