15Jul

Explained SafeNet: zakaj Android Pay in druge aplikacije ne delujejo na ukoreninjenih napravah

Rootiranje naprave Android omogoča dostop do več različnih aplikacij in globlji dostop do sistema Android. Toda nekateri programi, kot je Googlov Android Pay, sploh ne delujejo na zakoreninjeni napravi.

Google uporablja nekaj, kar se imenuje SecurityNet, da ugotovi, ali je vaša naprava zakoreninjena ali ne, in blokira dostop do teh funkcij. Google ni edini, ali tudi številne aplikacije tretjih oseb ne bodo delovale na napravah s koreninjenimi napravami Android, čeprav lahko preverijo prisotnost rootja na druge načine.

SafetyNet: Kako Google ve, da ste korenili svoj Android telefon

naprave s sistemom Android ponujajo "API za varnostne nize", ki je del sloja storitve Google Play, nameščenih v napravah, ki jih je odobrilo Google. Ta API "omogoča dostop do Googlovih storitev, ki vam pomagajo oceniti zdravje in varnost naprave Android", v skladu z Googlom.Če ste razvijalec za Android, lahko v svoji aplikaciji pokličete ta API, da preverite, ali je bila v napravi, v kateri ste nameščeni, nedovoljena.

Ta varnostni API je namenjen preverjanju, ali je bila naprava nedovoljena, ne glede na to, ali jo je uporabnik zakoreninil, je zagnati ROM po meri ali je okužen z nizko stopnjo zlonamerne programske opreme.

Naprave, ki se pošiljajo z Googlovo trgovino Play in drugimi nameščenimi programi, morajo prenesti Googlov programski paket za združljivost Android. Korenovanje naprave ali nameščanje ROM po meri preprečuje, da bi bila naprava "CTS Compatible".Tako lahko varnostni API pokaže, če ste zakoreninjeni - zgolj preverja združljivost s CTS-jem. Podobno, če dobite napravo s sistemom Android, ki ni nikoli prišla z Googlovimi aplikacijami, kot je ena od tistih 20-ih tabličnih računalnikov, dobavljenih neposredno iz tovarne na Kitajskem, se ne bo štelo za "združljivo s CTS-jem", tudi če niste zakoreninjeni.

Če želite pridobiti te podatke, storitve Google Play prenesejo program snet in ga zaženejo v ozadju v napravi. Program zbira podatke iz vaše naprave in jih redno pošilja Googlu. Google te podatke uporablja za različne namene, od pridobitve slike širšega ekosistema Android, da ugotovi, ali je bila programska oprema vaše naprave zlorabljena ali ne. Google ne pojasnjuje natančno, kaj išče, vendar je verjetno snet preverjanja, če je bila sistemska particija spremenjena iz tovarniškega stanja.

Status naprave SafeNet v napravi lahko preverite tako, da prenesete aplikacijo, kot je varnostna kopija varnostnega vzorca ali varnostno igri PlayNet. Aplikacija bo zahtevala Googlovo storitev Varnostno omrežje o stanju naprave in vam sporočila odgovor, ki ga dobi od Googlovega strežnika.

Za več tehničnih podrobnosti preberite to objavo v spletnem dnevniku, ki ga je napisal John Kozyrakis, tehnični strateg v podjetju Cigital, ki je programska oprema za varnost programske opreme. Kopal je v SafetyNet in pojasnjuje, kako deluje.

To je do aplikacije

SecurityNet je neobvezen za razvijalce aplikacij, razvijalci aplikacij pa se lahko odločijo za uporabo ali ne. SecurityNet samo preprečuje, da bi aplikacija delovala, če razvijalec aplikacije ne želi, da deluje na ukoreninjenih napravah.

Večina aplikacij sploh ne preverja API-ja varnostne mreže. Tudi aplikacija, ki preveri varnostni API-ji, kot so testne aplikacije, ne bo prenehala delovati, če prejmejo slab odgovor. Razvijalec aplikacije mora preveriti varnostni API API in zavrniti delovanje aplikacije, če se izkaže, da je bila programska oprema naprave spremenjena. Googlova lastna aplikacija Android Pay je dober primer tega v dejanju.

Android Plačilo ne bo delovalo na napravah s koreninami

Googlova Android plačljiva rešitev za plačevanje v mobilnih napravah sploh ne deluje na korenskih napravah Android. Poskusite ga zagnati in videli boste samo sporočilo, da »Android Pay ni mogoče uporabiti. Google ne more preveriti, ali je vaša naprava ali programska oprema, ki deluje na njej, združljiva s sistemom Android. "

Ne gre samo za koreninjenje, seveda, če teče ROM-ov po meri tudi te zahteve. Varnostni API bo trdil, da ni "združljiv s sistemom Android", če uporabljate ROM po meri, s katerim naprava ni prišla.

Ne pozabite, da to ne zazna samo ukoreninjenja.Če je bila vaša naprava okužena z nekaterimi škodljivimi programi na ravni sistema z možnostjo vohunjenja v sistemu Android Pay in drugih aplikacijah, bi API varnostnega programa preprečil delovanje sistema Android Pay, kar je dobra stvar.

Rootiranje naprave prekine običajen model varnosti Android. Android Plačilo običajno ščiti podatke o plačilu z uporabo funkcij Android-ja v sandboxu, vendar se lahko aplikacije izbrišejo iz peskovnika na zakoreninjeni napravi. Google ne more vedeti, kako varna je Android Pay na določeni napravi, če je zakoreninjena ali upravlja neznanem ROM-u po meri, zato jo blokira. Inženir Android Pay je razložil težavo na forumu XDA Developers, če ste radovedni, da preberete več.

Drugi načini Aplikacije lahko odkrijejo koren

SafetyNet je samo en način, da lahko aplikacija preveri, ali deluje na napravi, ki je zakoreninjena. Na primer, naprave Samsung vključujejo varnostni sistem z imenom KNOX.Če napravo zaklenete, se sproži varnost KNOX.Samsung Pay, lastna aplikacija za plačila za mobilne naprave Samsung, bo zavrnila delovanje na ukoreninjenih napravah. Samsung uporablja KNOX za to, vendar bi lahko prav tako uporabil SafetyNet.

Podobno vam bo veliko drugih aplikacij preprečilo, da jih boste uporabljali, in vsi ne uporabljajo SafeNet. Lahko samo preverijo prisotnost znanih korenskih aplikacij in procesov na napravi.

Težko je najti posodobljen seznam aplikacij, ki ne delujejo, ko je naprava zakoreninjena. Vendar pa RootCloak ponuja več seznamov. Ti seznami so lahko zastareli, vendar so najboljši, ki jih lahko najdemo. Mnogi so bančne in druge aplikacije za mobilne denarnice, ki blokirajo dostop do kodiranih telefonov, da bi zaščitili vaše bančne podatke od drugih aplikacij. Aplikacije za storitve pretakanja videoposnetkov lahko tudi zavrnejo delovanje na zakoreninjeni napravi kot nekakšen ukrep DRM in poskušajo preprečiti snemanje zaščitenega videoposnetka.

Nekateri programi se lahko preoblečejo

Google igra mačko in miško z varnostnim programom, ki ga stalno posodablja, da bi ostali pred ljudmi, ki so se mu približali. Na primer razvijalec Android Chainfire je ustvaril novo metodo ukinitve naprav Android, ne da bi spremenil sistemsko particijo, znano kot »brezpogojno root«.SecurityNet prvotno ni zaznal takih naprav, kot jih je spremenil, in Android Pay je delal, vendar je bil varnostni program na koncu posodobljen, da bi odkril to novo metodo ukoreninjenja. To pomeni, da Android Pay ne deluje več skupaj s sistemskim korenom.

Odvisno od načina, kako aplikacija preveri, ali je dostop root, ga lahko preusmerite. Na primer, na primer, obstajajo načini za koreninjenje nekaterih naprav Samsung brez prekinitve zaščite KNOX, kar bi vam omogočilo, da še naprej uporabljate Samsung Pay.

V primeru aplikacij, ki v vašem sistemu samo preverjajo korenske aplikacije, je modul Xposed Framework, imenovan RootCloak, ki vam dovoljuje, da jih vsekakor preusmerite v delo. To deluje z aplikacijami, kot so DirecTV GenieGo, Best Buy CinemaNow in Movies by Flixster, ki običajno ne delujejo na vgrajenih napravah.Če pa bi bile te aplikacije posodobljene za uporabo Googlovega varnostnega lista, to ne bi bilo tako enostavno.

Večina aplikacij bo še naprej delovala normalno, ko boste korenili svojo napravo. Aplikacije za mobilno plačevanje so velika izjema, kot tudi nekatere druge bančne in finančne aplikacije. Plačane storitve za pretakanje videoposnetkov včasih poskušajo preprečiti gledanje svojih videoposnetkov.

Če aplikacija, ki jo potrebujete, ne deluje na vaši zakoreninjeni napravi, lahko svojo napravo vedno uporabite za njegovo uporabo. Aplikacija mora delovati, ko vrnete napravo v varno, tovarniško stanje.

Image Credit: Danny Choo na Flickr