Начална » как да » SafetyNet обясни защо Android плащане и други приложения не работят на вкоренени устройства

    SafetyNet обясни защо Android плащане и други приложения не работят на вкоренени устройства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Други начини на приложение, които могат да откриват корен

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

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

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

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

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

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

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


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

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

    Кредит за изображението: Danny Choo на Flickr