Домашняя » как » SafetyNet объяснил, почему Android Pay и другие приложения не работают на устройствах с root-доступом

    SafetyNet объяснил, почему Android Pay и другие приложения не работают на устройствах с root-доступом

    Руттинг вашего Android-устройства предоставляет вам доступ к более широкому спектру приложений и более глубокому доступу к системе Android. Но некоторые приложения, такие как Google Android Pay, не будут работать на рутованном устройстве.

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

    SafetyNet: как Google узнает, что вы загрузили свой телефон Android

    Устройства Android предлагают «API SafetyNet», который является частью уровня Сервисов Google Play, установленного на устройствах Android, одобренных Google. По словам Google, этот API «предоставляет доступ к службам Google, которые помогают вам оценить здоровье и безопасность устройства Android». Если вы разработчик Android, вы можете вызвать этот API в своем приложении, чтобы проверить, не было ли подделано ваше устройство.

    Этот API-интерфейс SafetyNet разработан для проверки того, было ли устройство подделано, было ли оно взято пользователем, запущено ли пользовательское ПЗУ или, например, было ли оно заражено вредоносным ПО низкого уровня..

    Устройства, которые поставляются с Google Play Store и другими установленными приложениями, должны соответствовать Google Android «Compatibility Test Suite». Укоренение устройства или установка пользовательского ПЗУ не позволяет устройству быть «совместимым с CTS». Вот как API SafetyNet может определить, являетесь ли вы пользователем root, - он просто проверяет совместимость с CTS. Точно так же, если вы получаете устройство Android, которое никогда не поставлялось с приложениями Google, например один из тех планшетов стоимостью 20 долларов, поставляемых напрямую с завода в Китае, оно вообще не будет считаться «совместимым с CTS», даже если вы его не рутировали..

    Чтобы получить эту информацию, Google Play Services загружает программу с именем «snet» и запускает ее в фоновом режиме на вашем устройстве. Программа собирает данные с вашего устройства и регулярно отправляет их в Google. Google использует эту информацию для различных целей, от получения картины более обширной экосистемы Android до определения того, было ли взломано программное обеспечение вашего устройства. Google не объясняет, что именно ищет snet, но, скорее всего, snet проверяет, был ли ваш системный раздел изменен из заводского состояния.

    Вы можете проверить состояние SafetyNet вашего устройства, загрузив приложение, такое как Образец помощника SafetyNet или SafetyNet Playground. Приложение спросит службу Google SafetyNet о состоянии вашего устройства и сообщит вам ответ, полученный от сервера Google..

    Для получения более подробной технической информации прочитайте эту запись в блоге, написанную Джоном Козыракисом, техническим стратегом в компании Cigital, занимающейся защитой программного обеспечения. Он копался в SafetyNet и объяснял больше о том, как это работает.

    Это до приложения

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

    Большинство приложений вообще не проверяют API SafetyNet. Даже приложение, которое проверяет API-интерфейс SafetyNet, например, тестовые приложения выше, не перестанет работать, если получит неверный ответ. Разработчик приложения должен проверить API SafetyNet и заставить приложение отказаться от работы, если узнает, что программное обеспечение вашего устройства было изменено. Собственное приложение Google Pay для Android - хороший пример этого в действии..

    Android Pay не будет работать на рутованных устройствах

    Решение Google Pay для мобильных платежей вообще не работает на устройствах Android с root-доступом. Попробуйте запустить его, и вы увидите сообщение «Android Pay нельзя использовать. Google не может проверить, совместимо ли ваше устройство или работающее на нем программное обеспечение с Android ».

    Речь идет не только о рутировании, конечно же, запуск пользовательского ПЗУ также поставил бы вас в тупик с этим требованием. API SafetyNet будет утверждать, что он не «совместим с Android», если вы используете пользовательское ПЗУ, с которым устройство не поставлялось.

    Помните, что это не просто обнаружение укоренения. Если ваше устройство было заражено каким-либо вредоносным ПО системного уровня с возможностью шпионить за Android Pay и другими приложениями, API-интерфейс SafetyNet также будет препятствовать функционированию Android Pay, что хорошо.

    Укоренение вашего устройства нарушает нормальную модель безопасности Android. Android Pay обычно защищает ваши платежные данные, используя функции песочницы Android, но приложения могут вырваться из песочницы на рутированном устройстве. У Google нет возможности узнать, насколько безопасным будет Android Pay на конкретном устройстве, если оно имеет рут или работает неизвестное пользовательское ПЗУ, поэтому они блокируют его. Инженер Android Pay объяснил проблему на форуме разработчиков XDA, если вам интересно узнать больше.

    Другие способы приложения могут обнаружить рут

    SafetyNet - это только один из способов, с помощью которого приложение может проверить, работает ли оно на корневом устройстве. Например, устройства Samsung включают систему безопасности под названием KNOX. Если вы рутируете свое устройство, безопасность KNOX срабатывает. Samsung Pay, собственное приложение Samsung для мобильных платежей, откажется работать на рутованных устройствах. Samsung использует KNOX для этого, но он также может использовать SafetyNet.

    Точно так же множество сторонних приложений не позволит вам их использовать, и не все из них используют SafetyNet. Они могут просто проверить наличие известных корневых приложений и процессов на устройстве..

    Сложно найти актуальный список приложений, которые не работают, когда устройство рутировано. Однако RootCloak предоставляет несколько списков. Эти списки могут быть устаревшими, но они самые лучшие, которые мы можем найти. Многие из них являются банковскими и другими приложениями для мобильных кошельков, которые блокируют доступ к корневым телефонам, пытаясь защитить вашу банковскую информацию от захвата другими приложениями. Приложения для служб потоковой передачи видео могут также отказываться работать на рутированном устройстве как своего рода мера DRM, пытаясь предотвратить запись защищенного видеопотока..

    Некоторые приложения могут быть обмануты

    Google играет в игру в кошки-мышки с SafetyNet, постоянно обновляя ее, пытаясь опередить людей. Например, разработчик Android Chainfire создал новый метод рутирования устройств Android без изменения системного раздела, известный как «системный рут». Изначально SafetyNet не обнаруживала подделку таких устройств, и Android Pay работала, но в конечном итоге SafetyNet была обновлена ​​для обнаружения этого нового метода рутирования. Это означает, что Android Pay больше не работает вместе с системным рутом.

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

    В случае приложений, которые просто проверяют наличие корневых приложений в вашей системе, есть модуль Xposed Framework с именем RootCloak, который, как сообщается, позволяет вам обманным путем заставить их работать в любом случае. Это работает с приложениями, такими как DirecTV GenieGo, Best Buy CinemaNow и Movies от Flixster, которые обычно не работают на корневых устройствах. Однако, если бы эти приложения были обновлены для использования сети безопасности Google, их было бы не так просто обмануть..


    Большинство приложений продолжат нормально работать после того, как вы рутируете свое устройство. Приложения для мобильных платежей являются большим исключением, как и некоторые другие банковские и финансовые приложения. Платные услуги потокового видео иногда пытаются блокировать вас и от просмотра их видео..

    Если нужное приложение не работает на вашем рутированном устройстве, вы всегда можете отключить его, чтобы использовать его. Приложение должно работать после того, как вы вернете устройство в безопасное заводское состояние..

    Изображение предоставлено: Дэнни Чу на Flickr