If-Koubou

SafetyNet обяснено: Защо Android Pay и други приложения не работят върху корени устройства

SafetyNet обяснено: Защо Android Pay и други приложения не работят върху корени устройства (Как да)

Вкореняването на устройството ви с Android ви дава достъп до по-голямо разнообразие от приложения и по-дълбок достъп до системата Android. Но някои платформи на Android, като Google Pay, няма да работят на коренно устройство.

Google използва нещо, наречено SafetyNet, за да установи дали вашето устройство има корен или не и блокира достъпа до тези функции. Google не е единственият - много приложения от трети страни също няма да работят върху корени устройства с Android, въпреки че те могат да проверят наличието на корен по други начини.

SafetyNet: Как Google знае, че сте вкоренени в телефона си с Android

Устройствата с Android предлагат "SafetyNet API", който е част от слоя Услуги на Google Play, който е инсталиран на одобрени от Google устройства. Този API "осигурява достъп до услугите на Google, които ви помагат да оцените здравето и безопасността на устройство с Android", според Google. Ако сте програмист за Android, можете да се обадите на този API в приложението си, за да проверите дали устройството, на което работите, е било подправено.

Този API SafetyNet е разработен, за да провери дали дадено устройство е било подправено, независимо дали е било вкоренено от потребител, изпълнява персонализирана ROM или е било заразено например с ниско ниво на злонамерен софтуер.

Устройствата, които се доставят с Google Play Store и други инсталирани приложения, трябва да преминат през "Компанията за тестване на съвместимост" на Google. Вкореняването на устройство или инсталирането на персонализирана ROM предотвратява устройството да бъде "съвместимо с CTS". По този начин API на SafetyNet може да разбере дали сте вкоренени - тя просто проверява за CTS съвместимост. Също така, ако получите устройство с Android, което никога не дойде с приложенията на Google - като една от онези таблети от 20 долара, доставени директно от фабрика в Китай - изобщо няма да се счита за съвместима с CTS, дори ако не сте го вкоренени ,

За да получите тази информация, услугите за Google Play изтеглят програма с име "snet" и я пускат на заден план на вашето устройство. Програмата събира данни от устройството ви и ги изпраща редовно до Google. Google използва тази информация за различни цели, от получаване на картина на по-широката екосистема Android, за да определи дали софтуерът на устройството ви е бил подправен или не. Google не обяснява точно какво търси, но е вероятно snet да провери дали системният ви дял е бил променен от фабричното състояние.

Можете да проверите безопасния статус на устройството си, като изтеглите приложение като SafetyNet Helper Sample или SafetyNet Playground. Приложението ще поиска от Google услугата SafetyNet за състоянието на устройството ви и ще ви каже отговора, който получава от сървъра на Google.

За повече технически подробности, прочетете тази публикация в блога, написана от Джон Козякис, технически специалист в Cigital, компания за софтуерна сигурност. Той се вкопчи в SafetyNet и обяснява повече за това как работи.

Това зависи от приложението

SafetyNet е по избор за разработчиците на приложения и разработчиците на приложения могат да изберат да го използват или не. SafetyNet предотвратява само приложението да работи, ако разработчикът на приложение не желае да работи върху вписани устройства.

Повечето приложения няма да проверят API на SafetyNet изобщо. Дори приложение, което проверява приложението SafetyNet API - подобно на приложенията за тестване, няма да спре да работи, ако получи лош отговор. Разработчикът на приложението трябва да провери приложението SafetyNet API и да накара приложението да откаже да функционира, ако научи, че софтуерът на устройството ви е променен. Самото приложение Google Pay Pay е добър пример за това в действие.

Android Pay няма да работи на корени устройства

Платеното от Google Pay mobile решение за плащане на Google не работи изобщо на коренните устройства с Android. Опитайте се да го стартирате и просто ще видите съобщение, че "Android Pay не може да бъде използвано. Google не може да провери дали вашето устройство или софтуерът, който се изпълнява на него, е съвместим с Android. "

Не става въпрос само за вкореняване, разбира се - тичане на персонализиран ROM ще ви накара да се отървете от това изискване. API SafetyNet ще твърди, че не е "съвместим с Android", ако използвате персонализирана ROM, с която устройството не е придружавано.

Не забравяйте, че това не само открива вкореняване. Ако устройството ви е било заразено от злонамерен софтуер на ниво система с възможността да шпионира в Android Pay и други приложения, API на SafetyNet би предотвратило и функционирането на Android Pay, което е добро нещо.

Вкореняването на устройството ви нарушава нормалния модел за сигурност на Android. Android Pay обичайно защитава вашите данни за плащанията, използвайки функциите на Sandbox за Android, но приложенията могат да се измъкнат от пясъчната кутия на вкоренено устройство. Google няма начин да знае колко сигурен ще бъде Android за конкретно устройство, ако има корени или работи с непознат персонализиран ROM, така че да го блокират. Инженерът на Android Pay обясни проблема във форума на XDA Developers, ако сте любопитни да прочетете повече.

Други начини за прилагане могат да открият корен

SafetyNet е само един начин приложението да може да провери дали работи на вкоренено устройство. Например, устройствата на Samsung включват система за сигурност, наречена KNOX. Ако коренувате устройството си, сигурността на KNOX е прекъсната. Samsung Pay, собственото приложение за мобилни плащания на Samsung, ще откаже да функционира на вградени устройства. Samsung използва KNOX за това, но също така може да използва SafetyNet.

По същия начин, много приложения от трети страни ще ви блокират да ги използвате, а не всички от тях използват SafetyNet. Те могат просто да проверят наличието на познати коренни приложения и процеси на дадено устройство.

Трудно е да се намери актуален списък с приложения, които не работят, когато устройството се корени. Въпреки това, RootCloak предоставя няколко списъка. Тези списъци може да са неактуални, но те са най-добрите, които можем да намерим. Много от тях са банкови и други мобилни приложения за портфейли, които блокират достъпа до вкоренените телефони, опитвайки се да защитят банковата ви информация от заснемането й от други приложения.Приложенията за видео стрийминг услуги също могат да откажат да функционират на вкоренено устройство като нещо като DRM мярка, опитвайки се да ви предпазят от записване на защитен видео поток.

Някои приложения могат да бъдат измамени

Google играе игра на котка и мишка с SafetyNet, непрекъснато я актуализира в опит да остане пред хората, които се придвижват около нея. Например, разработчикът на Android Chainfire е създал нов метод за вкореняване на устройства с Android, без да променя системния дял, известен като "rootless". Първоначално SafetyNet не разпознава такива устройства като подправени и Android Pay работи, но SafetyNet в крайна сметка се актуализира, за да открие този нов метод. Това означава, че Android Pay вече не работи заедно със системния корен.

В зависимост от начина, по който дадено приложение проверява за достъпа до root, може да успеете да го измамите. Например, има съобщения за методи за корениране на някои устройства на Samsung, без да се прекъсва сигурността на KNOX, което ще ви позволи да продължите да използвате Samsung Pay.

В случая на приложения, които просто проверяват коренните приложения в системата ви, има модул Xposed Framework, наречен RootCloak, който съобщава, че ви позволява да ги подмамите да работят така или иначе. Това работи с приложения като DirecTV GenieGo, Best Buy CinemaNow и Филми от Flixster, които обикновено не работят с корени устройства. Ако обаче тези приложения бяха актуализирани, за да използват SafetyNet на Google, те не биха били толкова лесни за подправяне по този начин.

Повечето приложения ще продължат да работят нормално, след като сте заредили устройството си. Приложенията за мобилни плащания са голямо изключение, както и някои други банкови и финансови приложения. Платените услуги за стрийминг на видеоклипове понякога се опитват да ви блокират да гледате и видеоклиповете им.

Ако дадено приложение, което се нуждаете, не функционира на вкорененото ви устройство, винаги можете да го изключите, за да го използвате. Приложението трябва да работи, след като върнете устройството си в защитено фабрично състояние.

Image Credit: Дани Чоо на Flickr