SafetyNet vysvětlil, proč Android Pay a další aplikace nefungují na zakořeněných zařízeních
Zakořenění vašeho zařízení Android vám umožní přístup k širšímu spektru aplikací a hlubšímu přístupu k systému Android. Některé aplikace Android Pay, které fungují jako aplikace Android, však vůbec nebudou fungovat na zakořeněném zařízení.
Google používá něco nazývaného SafetyNet, aby zjistilo, zda má vaše zařízení kořen nebo nikoli, a blokuje přístup k těmto funkcím. Google není jediný - spousta aplikací třetích stran také nebude pracovat na zakořeněných zařízeních Android, i když mohou ověřit přítomnost kořenu jinými způsoby.
SafetyNet: Jak společnost Google ví, že jste zakořeněný telefonem Android
Zařízení Android nabízejí "bezpečnostní rozhraní API SafetyNet", která je součástí vrstvy služby Google Play a je nainstalována v zařízeních Android schválených společností Google. Tento rozhraní API "poskytuje přístup ke službám Google, které vám pomohou posoudit bezpečnost a bezpečnost zařízení Android," tvrdí Google. Pokud jste vývojářem systému Android, můžete tuto aplikaci API zavolat do vaší aplikace a zkontrolovat, zda je zařízení, na kterém běžíte, poškozeno.
Toto bezpečnostní rozhraní API SafetyNet je navrženo tak, aby ověřilo, zda bylo poškozeno zařízení - ať již je zakořeněno uživatelem, spouští vlastní ROM nebo je nakaženo malware malého rozsahu, například.
Zařízení, která jsou dodávána s obchodem Google Play Play a dalšími nainstalovanými aplikacemi, musí předat aplikaci Android "Compatibility Test Suite" společnosti Google. Zakořenění zařízení nebo instalace vlastní paměti ROM zabraňuje tomu, aby zařízení bylo kompatibilní se službou CTS. Tak může bezpečnostní rozhraní API SafetyNet zjistit, zda máte své kořeny - pouze kontroluje kompatibilitu CTS. Podobně, pokud získáte zařízení s Androidem, které nikdy nepřišlo s aplikacemi Google - jako jedna z těch 20 dolarů, které byly dodány přímo z továrny v Číně - nebude to vůbec považovat za "kompatibilní se službou CTS", a to ani v případě,.
Chcete-li získat tyto informace, služba Google Play stáhne program s názvem "snet" a spustí jej na pozadí zařízení. Program shromažďuje data z vašeho zařízení a pravidelně je odesílá společnosti Google. Společnost Google používá tyto informace k různým účelům, od získání obrázku širšího ekosystému Android k určení, zda byl software vašeho zařízení zablokován. Google nevysvětluje přesně to, co snet hledá, ale je pravděpodobné, že snet zkontroluje, zda byl váš systémový oddíl změněn z výroby.
Můžete si zkontrolovat stav zařízení SafetyNet stažením aplikace, jako je SafetyNet Helper Sample nebo SafetyNet Playground. Aplikace požádá službu Google SafetyNet o stav vašeho zařízení a povědí vám odpověď, kterou dostane ze serveru Google.
Pro více technických podrobností si přečtěte tento blogový příspěvek, který napsal John Kozyrakis, technický stratég společnosti Cigital, softwarové bezpečnostní společnosti. Vykopal do služby SafetyNet a vysvětluje více, jak to funguje.
Je to až na aplikaci
Služba SafetyNet je volitelná pro vývojáře aplikací a vývojáři aplikací se mohou rozhodnout použít nebo ne. Služba SafetyNet zabraňuje fungování aplikace pouze v případě, že vývojář aplikace nechce pracovat na zakořeněných zařízeních.
Většina aplikací vůbec nezkontroluje rozhraní API SafetyNet. Dokonce i aplikace, která zkontroluje bezpečnostní rozhraní API SafetyNet - jako zkušební aplikace uvedené výše - přestane fungovat, pokud obdrží špatnou odpověď. Vývojář aplikace musí zkontrolovat rozhraní API SafetyNet a nechat aplikaci odmítnout, pokud se dozví, že byl změněn software vašeho zařízení. Aplikace Google Android Pay je dobrým příkladem této akce.
Android Pay nebude pracovat na zakořeněných zařízeních
Mobilní platební řešení Google Pay nepracuje vůbec na zakořeněných zařízeních Android. Zkuste to spustit a uvidíte zprávu, že Android Pay nelze použít. Společnost Google nemůže ověřit, zda je vaše zařízení nebo spuštěný software kompatibilní se systémem Android. "
Nejde jen o zakořenění, samozřejmě - běh vlastního ROM by vás také dal za úkol splnit tento požadavek. Bezpečnostní rozhraní API SafetyNet tvrdí, že používáte vlastní ROM, se kterým není zařízení připojeno.
Nezapomeňte, že to nezjistí pouze zakořenění. Pokud je vaše zařízení napadeno některým malware na úrovni systému, který má schopnost špionáže v aplikacích Android Pay a jiných aplikacích, bezpečnostní rozhraní API SafetyNet by rovněž zabránilo fungování platformy Android Pay, což je dobrá věc.
Zakořenění vašeho zařízení porušuje normální bezpečnostní model systému Android. Platba Android běžně chrání vaše platební data pomocí funkcí Sandboxu Android, ale aplikace se mohou vymanit z karantény na kořenovém zařízení. Google nemá žádný způsob, jak vědět, jak bezpečná platba se systémem Android bude na určitém zařízení, pokud je zakořeněná nebo je spuštěna neznámá vlastní ROM, a proto ji zablokují. Inženýr Android Pay vysvětlil problém na fóru vývojářů XDA, pokud jste zvědaví, že si přečtete další informace.
Další způsoby aplikace mohou detekovat kořen
Služba SafetyNet je jen jeden způsob, jak může aplikace zjistit, zda běží na kořenovém zařízení. Například zařízení Samsung obsahují bezpečnostní systém s názvem KNOX. Pokud zakopnete zařízení, je zapnuto zabezpečení KNOX. Samsung Pay, Samsung vlastní mobilní platební aplikace, odmítne fungovat na zakořeněných zařízeních. Samsung používá KNOX za to, ale stejně by mohl používat SafetyNet.
Podobně, mnoho aplikací třetích stran vás zabrání v jejich používání a ne všechny používají službu SafetyNet. Mohou jen zkontrolovat přítomnost známých kořenových aplikací a procesů v zařízení.
Je těžké najít aktuální seznam aplikací, které nefungují, když je zařízení zakořeněno. RootCloak však nabízí několik seznamů. Tyto seznamy mohou být zastaralé, ale jsou ty nejlepší, které můžeme najít. Mnohé z nich jsou aplikace pro bankovnictví a jiné mobilní peněženky, které blokují přístup na zakořeněné telefony a snaží se chránit bankovní informace před jinými aplikacemi. Aplikace služeb streamingu videa mohou také odmítnout fungování na zakořeném zařízení jako určitý druh měření DRM a pokusit se zabránit nahrávání chráněného video streamu.
Některé aplikace mohou být podvedeny
Společnost Google hraje hru s kočkou a myš s bezpečnostní sítí a neustále ji aktualizuje ve snaze zůstat před lidmi, kteří se kolem ní ocitli. Například vývojář Android Chainfire vytvořil novou metodu zakořenění zařízení Android bez úpravy systémového oddílu, známého jako "systemless root". Společnost SafetyNet zpočátku nezjistila, že by taková zařízení byla zneužita a Android Pay pracoval - ale bezpečnostní síť byla nakonec aktualizována, aby detekovala tuto novou metodu zakořenění. To znamená, že Android Pay již funguje společně se systémovým systémem root.
V závislosti na tom, jak aplikace kontroluje přístup k uživateli root, můžete ji pravděpodobně vyřadit. Existují například způsoby zakořenění některých zařízení Samsung bez vypnutí zabezpečení KNOX, což by vám umožnilo pokračovat v používání funkce Samsung Pay.
V případě aplikací, které prostě kontrolují root aplikace ve vašem systému, existuje modul Xposed Framework s názvem RootCloak, který údajně dovoluje, abyste je stejně tak trýznili. To funguje s aplikacemi jako DirecTV GenieGo, Best Buy CinemaNow a Filmy Flixster, které obvykle nefungují na zakořeněných zařízeních. Pokud by se však tyto aplikace aktualizovaly tak, aby používaly bezpečnostní síť Google, nebylo by to tak snadné.
Většina aplikací bude fungovat normálně i poté, co jste zařízení zakořenili. Mobilní platební aplikace jsou velkou výjimkou, stejně jako některé další bankovní a finanční aplikace. Placené služby pro streamování videa se někdy snaží zabránit vám sledovat videa také.
Pokud aplikace, kterou potřebujete, nefunguje na vašem zakořeněném zařízení, můžete jej vždy vykořenit, abyste jej mohli používat. Aplikace by měla fungovat po vrácení zařízení do bezpečného stavu v továrně.
Image Credit: Danny Choo na Flickru