Что такое сертификат безопасности на андроид
Перейти к содержимому

Что такое сертификат безопасности на андроид

  • автор:

На устройстве Android отсутствует необходимый сертификат

Когда пользователь пытается войти в приложение Корпоративный портал на управляемом Microsoft Intune устройстве Android, он получает сообщение об ошибке «Не удается войти, так как на вашем устройстве отсутствует необходимый сертификат».

Причина

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

Решение 1

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

Решение 2

После ввода корпоративных учетных данных и перенаправления для федеративного входа пользователи могут по-прежнему видеть ошибку отсутствующих сертификатов. В этом случае ошибка может означать, что на сервере службы федерации Active Directory (AD FS) (AD FS) отсутствует промежуточный сертификат.

Ошибка сертификата возникает из-за того, что устройствам Android требуется включить промежуточные сертификаты в приветствие SSL-сервера. В настоящее время сервер AD FS по умолчанию или wap — установка прокси-сервера AD FS отправляет только SSL-сертификат службы AD FS в ответ приветствия SSL-сервера на приветствие SSL-клиента.

Чтобы устранить эту проблему, импортируйте сертификаты в личные сертификаты компьютеров на сервере AD FS или прокси-серверах следующим образом:

  1. На серверах AD FS и прокси-серверах щелкните правой кнопкой мыши Запустить>запуск>certlm.msc , чтобы запустить консоль управления сертификатами локального компьютера.
  2. Разверните узел Личный и выберите Сертификаты.
  3. Найдите сертификат для связи службы AD FS (общедоступный подписанный сертификат) и дважды щелкните, чтобы просмотреть его свойства.
  4. Перейдите на вкладку Путь сертификации , чтобы просмотреть родительские сертификаты сертификата.
  5. На каждом родительском сертификате выберите Просмотреть сертификат.
  6. Выберите Сведения>Копировать в файл. .
  7. Следуйте инструкциям мастера, чтобы экспортировать или сохранить открытый ключ родительского сертификата в выбранном вами расположении файла.
  8. Щелкните правой кнопкой мыши Пункт Сертификаты>Все задачи>Импорт.
  9. Следуйте инструкциям мастера, чтобы импортировать родительские сертификаты в локальный компьютер\Personal\Certificates.
  10. Перезапустите серверы AD FS.
  11. Повторите описанные выше действия на всех серверах AD FS и прокси-серверах.

Проверка правильности установки сертификата

В следующих шагах описывается только один из многих методов и средств, которые можно использовать для проверки правильности установки сертификата.

  1. Перейдите к бесплатному инструменту Digicert.
  2. В поле Адрес сервера введите полное доменное имя сервера AD FS (например, sts.contoso.com ) и выберите ПРОВЕРИТЬ СЕРВЕР.

Если сертификат сервера установлен правильно, в результатах отображаются все флажки. Если описанная выше проблема существует, в разделах Имя сертификата совпадает с красным цветом X, а SSL-сертификат правильно установлен в отчете.

Решение 3

Пользователи не могут пройти проверку подлинности в Корпоративный портал, но они могут пройти проверку подлинности в Microsoft Authenticator и веб-браузерах. Эта проблема возникает, если сервер AD FS использует сертификат пользователя, а не сертификат, выданный общедоступным центром сертификации (ЦС).

На устройствах Android есть два хранилища сертификатов:

  • Хранилище сертификатов пользователя
  • Хранилище системных сертификатов

При просмотре в Android 7.0 приложения по умолчанию игнорируют сертификаты пользователей, если приложения явно не согласились. Дополнительные сведения см. в разделе Изменения в доверенных центрах сертификации в Android Nougat.

Чтобы устранить эту проблему, используйте сертификат, который связан с общедоступным доверенным корневым ЦС на сервере AD FS. Список общедоступных ЦС в Android можно найти по адресу https://android.googlesource.com/platform/system/ca-certificates/+/master/files/.

Обратная связь

Были ли сведения на этой странице полезными?

Что такое сертификат безопасности на андроид

В соответствии с Законом Республики Казахстан «О национальной безопасности Республики Казахстан» и в целях обеспечения информационной и кибербезопасности, Комитет национальной безопасности успешно завершил тестирование применения сертификата безопасности.

Инструкциями по удалению сертификата безопасности с личных устройств:

Инструкция по удалению сертификата безопасности с ПК под управлением ОС Windows:

1. Откройте «Панель управления»

2. В Панели управления выберите пункт «Сеть и Интернет» / «Центр управления сетями и общим доступом.»

3. В открывшемся окне, щелкнем по пункту «Управление настройками браузера» / «свойства браузера», появляется окно «Свойства: Интернет». Перейдем на вкладку «Содержание», в ней нажмем на кнопку «Сертификаты».

В окне «Сертификаты» перейдите во вкладку «Доверенные корневые центры сертификации», где можно удалить сертификат.

Инструкции по деактивации и удалению сертификата безопасности для устройств с операционной системой Android.

Деактивация: Защита и местоположение -> Шифрование и учетные данные -> Надежные сертификаты -> Пользователь -> Qaznet Trust Network -> Переведите плашку сертификата в неактивное состояние.

Возможно, Ваше устройство не поддерживает деактивацию. В таком случае Вы можете удалить сертификат. Удаление: Защита и местоположение -> Шифрование и учетные данные -> Надежные сертификаты -> Пользователь -> Qaznet Trust Network -> Удалить -> Ок

1. Защита и местоположение 2. Шифрование и учетные данные 3. Надежные сертификаты 4. Пользователь 5. Удалить

Инструкция по деактивации и удалению национального сертификата безопасности для устройств с операционной системой IOS.

Для деактивации: Настройки – Основные – Об этом устройстве – Доверие Сертификатов – Нажать на зеленую плашку сертификата «Qaznet Trust Network» Для удаления: Настройки – Основные – Профили – Сертификат безопасности «Qaznet Trust Network» – Удалить (при необходимости введите код-пароль от устройства).

1.Заходим в настройки Вашего устройства 2. Основные 3. Переходим в профили: 4. Находим сертификат, который хотим удалить: 5.Нажимаем «Удалить профиль» и подтверждаем действие.

Эволюция системы безопасности Android или как защищается система сегодня

С ростом популярности операционных систем, растет также и необходимость в обеспечении безопасности системы. С каждым днём количество атак увеличивается, а каждое обновление несет в себе новые «дыры» в системе безопасности. Я Анастасия Худоярова, ведущий специалист по безопасной разработке в Awillix, расскажу о том, как развивалась система безопасности в Android раньше и как можно обойти некоторые ее механизмы сегодня.

С чего все начиналось

Путь по защите Android-а был тернист. На конец 2021 года устройства Android насчитывали более 2,5 миллиарда активных пользователей, что составляет около 75% мирового рынка. Данная ОС стремительно развивалась с 2008 года и претерпела много изменений. В том числе это коснулось системы безопасности.

Начиналось всё с элементарных вещей. Таких как PIN экрана, запуск приложения в изолированной среде, указания определенных полномочий в конфигурационных файлах приложения. Теперь это многоуровневая защита устройства как аппаратная, так и программная.

Android использует ядро Linux, поэтому его архитектура и все используемые механизмы очень похожи.

На уровне ядра были добавлены дополнительные функции, а также усилены меры безопасности, например, касающиеся использования IPC средств межпроцессного взаимодействия (в Android поддерживаются только сокеты) так называемых Binder-ов; были внедрены дополнительные настройки в политике SELinux, чтобы ограничить доступ к сетевым сокетам, обладающим определенными полномочиями.

На уровне приложенийвыполнено разделение на read-only системные приложения и read-write пользовательские приложения, которые запускаются в своих песочницах с четко определенными правами.

Принцип разделений привилегий приложений и принцип наименьших привилегий – это самые важные аспекты в модели безопасности Android. Права запрашиваются приложениями с помощью их объявления в AndroidManifest.xml файле. Этот файл представляет собой описание основной информации о приложении системы. На основе указанных в манифесте разрешений система решает можно ли выдать такие права.

Развитие безопасности в Android

Использование ограничений прав в приложениях оказалось недостаточным для защиты от вредоносных программ — Google продолжает ужесточать меры. Разграничение прав на уровне ОС несомненно эффективно, но не гибко, так как всем приложениям могут понадобиться совершенно разные настройки, которые пользователь захочет максимально быстро настроить под себя. Первые попытки гибкого разделения полномочий были предприняты в Android 4.3 через раздел App Ops.

В App Ops пользователь мог отозвать и выключить всё, что угодно. Однако это было максимально неэффективно для него. Приложение могло «упасть» даже после отзыва чего-то незначительного. В Android 6.0 исправили эту «маленькую» неприятность: теперь приложение запрашивает права в тот момент, когда они ему нужны.

Это казалось хорошим решением, но открылась еще большая уязвимость. Стоит поменять в правилах сборки номер версии на более старый, и приложение будет получать все полномочия разом. Хотели сделать безопасно, но до конца не получилось реализовать эту идею. «Не стоит прогибаться под изменчивый мир, пусть лучше он прогнется под нас», — подумали в Google, и волевой рукой отрубили публикацию приложений для устаревших версий ОС. Сейчас, начиная с Android 10, полномочия у софта под старые версии отзываются, приложение попросту не работает. В 11-ой версии появилась возможность делать разрешение на однократный запуск.

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

  • С Android 8 уже нельзя так просто добраться до серийного номера устройства, становятся недоступными некоторые системные переменные;
  • В Android 9 установлен запрет на использование камер и микрофона, когда приложение находится в фоновом режиме, также нельзя использовать HTTP без TLS;
  • В Android 10 вводятся ограничения, связанные с доступом к местоположению, запуском активностей фоновыми приложениями, что может вызвать проблемы, например, при работе приложений для умных часов. Важно, что с 10-ой версии в обязательном порядкевводится полнодисковое шифрование. Для удобного и гибкого управления разрешениями был введен и менеджер разрешений, позволяющий гранулировано настраивать каждое приложение.
  • В Android 11 усложняется доступ к памяти и камере, появляются дополнительные настройки управления подключенными «умными» устройствами в Smart Lock: данная функция способна самостоятельно определить необходимость усиления безопасности.

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

Новшества системы

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

Из последних новшеств — введение проверки SafetyNet. SafetyNet представляет собой набор API, позволяющий приложениям проверять устройство на предмет компрометации. SafetyNet жизненно необходим банковскому и финансовому ПО: производится проверка оригинальности устройства по серийным номерам, оригинальность прошивки, наличие root прав, контрольные суммы, проверка того, доверенное ли устройство, по его отпечатку.

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

Использование сертификатов и подписей в Android

Механизмы безопасности внедряются не только касательно самой начинки ОС: новым требованиям Google обязаны следовать и разработчики. Например, теперь нельзя просто так взять и добавить доверенный сертификат в системные или собрать apk приложение без специализированной подписи разработчика.

Касаемо APK, изначально Google ввёл использование специализированных криптографических хэшей и подписи разработчика, хэши считались на части файла. Однако после атаки Janus выяснилось, что для верификации DEX файла используется не весь файл. Соответственно, в неиспользуемую часть можно было внести свои изменения. Баг исправили в новом формате цифровой подписи APK signature scheme v2 и v3, теперь цифровая подпись распространялась на весь файл. Просто установить приложение из Apk стало невозможно. Для прохождения всех проверок Google и его полноценного функционирования, оно должно быть верифицировано, а для этого у разработчика должен быть соответствующий ключ.

Начиная с Android 10 появились некоторые особенности механизма добавления сертификатов в системные сертификаты. До Android 4.0 существовали только системные сертификаты, которые были встроены в систему, и пользователи не имели никакой возможности контролировать их. Единственным решением было рутануть устройство и изменить системные папки с этими сертификатами. Затем появилась возможность добавлять пользовательские сертификаты. В Android для управления доверенными данными используется TrustManager, в данном случае именно он будет проверять надежность сертификатов. То есть теперь в Android есть системные сертификаты (/system/etc/security/cacerts/), пользовательские CA сертификаты сохраняются в специализированной директории (/data/misc/user/0/cacerts-added).

Добавление пользовательских сертификатов иногда недостаточно для решения каких-либо задач, например, если надо проксировать трафик, и требуется добавить сертификат именно в системные сертификаты, с чем возникают сложности в последних версиях Android. В соответствии с последними рекомендациями для разработчиков от Google, есть требования сетевых настроек, которые запрещают приложению доверять пользовательским сертификатам: они как бы доверенные, но не сильно. Данное требование относится именно к сетевому трафику приложений. В случае когда необходим доступ к сайту организации с самоподписанным сертификатом, могут быть использованы и пользовательские сертификаты. Возвращаясь к вопросу добавления сертификатов в системное хранилище, возникает проблема — раздел ФС, где хранятся системные сертификаты примонтирован в режиме read-only, поэтому так просто добавить сертификат нельзя. Особенно это усложнилось, начиная с Android 11 и даже 10. Сложность связана с FDE (полнодисковое шифрование), так как процесс монтирования происходит после расшифровки диска в момент загрузки.

Советы атакующим: Как добавить сертификаты read-only в системные директории?

Добавление пользовательского сертификата в системные означает изменение системных директорий, что запрещено. Обойти это можно лишь получив root-права на телефоне. После этого есть два пути: короткий и приятный vs длинный и немного хардкорный. Начну со второго:

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

adb root # запуск с правами root

adb remount # переводит раздел system в режим read-write

adb ls /data/misc/user/0/cacerts-added # просмотр сертификатов, пользователя

adb pull /data/misc/user/0/cacerts-added/cert.0 # вытащить с устройства на компьютер добавленный сертификат

adb push cert.0 /system/etc/security/cacerts/ # перенести сертификат с ПК на устройство

  1. Простой способ — воспользоваться плагином Magisk AlwaysTrustUserCerts. Он всё сделает сам. От вас требуется только поставить сертификат и перезагрузить телефон. И вуаля — сертификат окажется в нужном хранилище.

Как говорилось выше, существует проверка SafetyNet, которая чутко реагирует на то, скомпрометирован ли телефон. То есть проверяет наличие root-прав. Пентестеру нужно проксировать трафик, то есть нужен доверенный системный сертификат, следовательно, требуются root права. Однако в таком случае не будет проводиться проверка, так как нарушена целостность устройства, а значит и приложение работать не будет. Есть выход — можно воспользоваться Magisk hide и в Burp поставить игнорирование запросов на Google.

Советы разработчику: Как попытаться защитить свое приложение от хакеров

То есть можно обойти все системы защиты и проксировать трафик. Как тогда защитить свое приложение? На помощь приходит SSL Pinning. Certificate pinning — это внедрение SSL сертификата, используемого на сервере, в код мобильного приложения. В этом случае приложение будет игнорировать хранилище сертификатов устройства, полагаясь только на свое хранилище, и позволит создать защищенное SSL соединение с хостом, подписанным только сертификатом, что хранится в самом приложении. Реализуется это за счет того, что приложением проверяются сертификаты из pin list.

Закрепить их там можно несколькими способами:

  1. С помощью TrustManager добавляется файл сертификата в файлы приложения, создается KeyStore для хранения ключей приложения. Дальнейшая работа ведётся через TrustManager, который будет обращаться к хранилищу KeyStore, где находится сам сертификат. TrustManager будет работать только с этим сертификатом и проверять совпадение с ним. Иначе говоря, если будет проксироваться трафик, то появятся соответствующие ошибки.
  2. Другой подход внедрить пиннинг — это использовать библиотеку OkHttp CertificatePinner, которая содержит конструктор, фиксирующий за доменом определенный fingerprint сертификата. Данный отпечаток сертификата внедряется в код.
  3. Последний способ — это Network Security Configuration, где так же, как и в предыдущем способе, фиксируются фингерпринты используемых сертификатов.

И снова рубрика «советы атакующим»

К сожалению разработчиков и к счастью пентестеров, и это можно обойти, например, с помощью Frida, только очень аккуратно. Использование Frida и Magisk Hide в неправильном порядке может навредить вашему устройству и работать ничего не будет. Дело в том, что обе программы используют одинаковый процесс zygote64 для внедрения в код запущенного приложения. Их конфликт может сломать обход SSL Pinning, и скрытие root прав, тут-то SafetyNet нас и поймает.

Android прошел огромный путь изменений и улучшений. Система стала в разы более защищенной. Сегодня это уже совсем не «дырявая» система, а сильный конкурент другим мобильным операционным системам, и с ней нужно учиться работать.

Есть вопросы или предложения по новым темам? Пишите в комментарии или в телеграм — ответим всем.

  • информационная безопасность
  • тестирование
  • devops
  • безопасная разработка
  • хакеры
  • security
  • android
  • управление разработкой
  • гаджеты
  • сетевые технологии

Android: что нужно знать о сертификации Google

Предложение устройств под управлением операционной системы Android превышает воображение. Пользователям доступен выбор из нескольких сотен актуальных моделей. Выбор становится ещё шире, если обратить внимание на экзотические устройства из Китая.

Мы уже неоднократно писали о китайских смартфонах; данная статья – не о том или не совсем о том. Сегодня мы поговорим о вполне конкретном свойстве устройств на Android, а именно – о сертификации Google и о том, что она даёт потребителю с точки зрения безопасности. Особенный интерес эта тема представляет в свете того, что Google начинает блокировать не прошедшие официальной сертификации устройства, использующие сервисы Google Play.

Сертификация устройств от Google

Как известно, операционная система Android доступна в виде исходных кодов и распространяется совершенно бесплатно. Любой пользователь, разработчик, производитель имеет право на полностью законных основаниях воспользоваться наработками Google и собрать собственную версию Android без единого цента выплат в адрес Google или кого бы то ни было ещё. Более того, Google готов защищать производителей от патентных нападок, если таковые случатся.

Щедрым предложением Google воспользовалось бесчисленное количество производителей как в Китае (где сервисы Google, как мы помним, запрещены), так и за его пределами. Однако «чистый» Android – это не совсем то, что представляет себе большинство пользователей. В «чистом» Android не будет такой полезной вещи, как службы Google. Сюда включается далеко не только Google Play Store, который даёт доступ к огромной библиотеке приложений и контента. В конце концов, магазинов приложений – море, и без магазина от Google можно принципиально обойтись. В сервисы Google включаются и такие вещи, как энергоэффективная доставка push-уведомлений в режиме реального времени; службы определения координат и история местоположения, а также мощнейшее картографическое приложение на их основе; эффективная система «облачной» синхронизации и резервного копирования.

Все эти сервисы также доступны производителям совершенно бесплатно, но – при соблюдении определённых условий. Для того, чтобы получить право устанавливать на свои устройства приложения Google, производители должны подписать контракт MADA, который накладывает на производителя ряд обязательств. В частности, производитель обязуется точно следовать правилам, описанным в Android Compatibility Definition Document, а также отдать окончательный вариант устройства с финальной прошивкой на сертификацию в одну из лабораторий Google.

В то же время, никто не заставляет производителей заниматься сертификацией. Ей и не занимаются большинство китайских производителей, которые торгуют в основном в пределах континентального Китая. В западном мире самый известный пример использования Android без сервисов Google – компания Amazon, которая в огромных количествах продаёт планшеты линейки Kindle Fire и приставки Amazon Fire TV.

Сертификация стоит денег, пусть и относительно небольших – порядка $10,000 на устройство. Сертификация отнимает время. Ещё больше времени у производителя может занять устранение найденных на этапе сертификации недоработок и несовместимостей.

Насколько именно сертификация Google может задержать выход новой версии прошивки можно представить по двум примерам. Так, для телефонов Lenovo ZUK Z2 китайская (без сервисов Google и сертификации) прошивка на основе Android 7.0 вышла в феврале 2017, а сертифицированную для Индии обещают не раньше июня. Другой пример – компания Xiaomi, «глобальные» прошивки которой часто выходят с опозданием порядка 4 месяцев относительно их же китайских сборок.

Помимо денежных и временных затрат на сертификацию Google, производителям приходится идти и на другие жертвы. Так, им приходится обеспечивать должный уровень безопасности устройства согласно требованиям всё того же Android Compatibility Definition Document. Эти требования ужесточаются с выходом каждой новой версии Android. К примеру, для Android 5.x никак не регламентировалось использование датчика отпечатков пальцев – но уже для Android 6.0 к реализации биометрической аутентификации применялись вполне чёткие требования. Другой пример – шифрование раздела данных, которое стало обязательным для всех производителей, выпускающих устройства с Android 6.0 на борту. Начиная с Android 7 Google пытается регулировать и внешний вид прошивок, ограничивая полёт фантазии китайских дизайнеров (к примеру, шторку уведомлений производители теперь должны реализовывать стандартно, а не «как в iPhone, только красивей»).

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

Сертификация Google в китайских смартфонах

Для многих китайских производителей требования к сертификации Google кажутся обузой. В то же время, им приходится устанавливать сервисы Google на устройствах, которые они официально продают за пределами Китая: пользователь просто не поймёт устройства, на котором не будет привычного магазина Google Play.

Производители решают эту проблему по-разному.

К примеру, у компании Xiaomi есть устройства, предназначенные только для внутреннего рынка. Для таких устройств никогда не выходит прошивок с сервисами Google; они не проходят сертификации. У компании также есть устройства, которые продаются и за пределами Китая. Для таких устройств выходят так называемые «глобальные» прошивки, часто с большой задержкой. Эта категория прошивок сертифицируется и на официальных основаниях включает в себя сервисы Google.

Похожим образом поступает Lenovo со своим суб-брэндом ZUK. ZUK Z1 продавался как в Китае, так и по всему миру; для него было доступно две ветки прошивок, китайская и глобальная. Модель ZUK Z2 официально доступна в Китае и Индии, и если для Китая предлагаются сугубо китайские прошивки, то для рынка Индии разрабатывается совершенно отдельная, сертифицированная прошивка, в которую входят сервисы Google и в которой нет типичных для китайской версии проблем (например, с приходом уведомлений).

Компания LeEco поступает схожим образом, параллельно разрабатывая прошивки для китайского и внешних рынков. Мы уже писали о разнице в этих прошивках; так, если в «международных» версиях устройств LeEco по умолчанию активировано шифрование раздела данных, а работа датчика отпечатков пальцев реализована в строгом соответствии с Android Compatibility Definition Document, то в «китайских» прошивках шифрование отключено, а датчик отпечатков работает как попало (данные отпечатков не шифруются и доступны сразу после «холодной» загрузки).

Сейчас же в нашу лабораторию попал любопытнейший экземпляр: смартфон Meizu Pro 6, который официально продаётся на западном рынке (свой экземпляр мы заказали в Amazon, который – что немаловажно – продаёт их самостоятельно, а не через посредников). Устройство работает под управлением последней глобальной версии Flyme OS 5.2.4.0G, которая устанавливается для телефонов для международного рынка.

При том, что Meizu Pro 6 продаётся на территории России и Европы, у телефона нет сертификации Google. Сертификации нет, а магазин Google Play – есть. Уже одно это нас сильно заинтересовало, и мы приобрели экземпляр для тестирования.

Google есть. Сертификации – нет. Чем это грозит пользователю?

Итак, пользователь покупает телефон – например, Meizu Pro 6. Вопросы сертификации Google его не совершенно волнуют, да и не должны. Более того, подавляющее большинство пользователей вообще не задумывается о самом факте существования подобных сертификаций. Устройство работает «из коробки»? Магазин Google Play есть? Вроде бы, больше ничего и не нужно.

На самом деле, нет.

Рассмотрим процесс начальной настройки смартфона под управлением Android. Запускается стандартный мастер активации, который предлагает выбрать язык, просит подключиться к сети Wi-Fi, обновляет компоненты Google Services, проверяет состояние Factory Reset Protection (мы уже писали об этом в статье Understanding and Bypassing Reset Protection), просит ввести данные учётной записи Google Account. Если устройство было сброшено «неправильно», без предварительной отвязки от учётной записи Google, то необходимо ввести данные той учётной записи, которая использовалась на устройстве в качестве основной непосредственно перед сбросом. Двухфакторная аутентификация, автоматическое восстановление настроек, приложений и данных из «облачной» резервной копии, и через какое-то время у пользователя в руках телефон, которым можно пользоваться.

Что происходит, когда мы активируем телефон Meizu? Китайская компания не захотела проходить сертификацию, но и продавать телефоны без сервисов Google за пределами Китая она тоже не сможет. В результате в компании придумали способ, как обмануть Google, а заодно и пользователей.

Итак, при настройке Meizu Pro 6 нас встречает что-то похожее на стандартный мастер настройки. После выбора языка запрашивается пароль от Wi-Fi, предлагается завести учётную запись Meizu. И… и всё. Пользователь сразу попадает на рабочий стол. Но где магазин приложений? Его нет. Вместо него – китайский магазин приложений (его не могло бы быть на устройстве, если бы оно было сертифицировано: отсутствие альтернативных источников приложений – одно из требований MADA). Впрочем, моментально появляется предложение скачать и установить пакет сервисов Google. Согласившись на предложение, пользователь (а вовсе не Meizu!) самостоятельно устанавливает сервисы Google на телефон – точно так же, как он мог бы это сделать в случае с любым другим китайским устройством.

Для начала требуется скачать «установщик приложений Google»:

После чего программа автоматически скачает и установит сервисы Google:

И вот у пользователя на рабочем столе появилась заветная иконка Google Play. Казалось бы, проблема решена. В конце концов, какая пользователю разница, каким именно образом производитель устанавливает магазин Google на телефон, если им можно пользоваться? И здесь начинается самое интересное.

Резервные копии. Или нет

Во-первых, никто особо не тестировал прошивку на совместимость с сервисами Google. Нет, китайцы наверняка запустили Play Store и установили из него несколько приложений, но о каком-либо систематическом тестировании и речи не идёт. В результате в первые же минуты пользования телефоном стало понятно, что весь мощный механизм облачного резервного копирования Google Backup Transport неработоспособен.

Что это значит на практике? Всего-навсего то, что одно из основных преимуществ Android 6.0 – автоматическое резервное копирование и автоматическое же восстановление данных – становится недоступным. (В скобках заметим, что и второе основное преимущество Android 6.0, режим doze, в данном телефоне тоже работать не хочет).

Остановимся на этом подробнее. Пользователи, у которых на телефоне установлены десятки и сотни приложений (к примеру, у меня их – 163) придётся убить несколько часов, устанавливая приложения из магазина, а потом ещё столько же – восстанавливая их настройки. Все пароли Wi-Fi придётся вводить заново. Не восстановятся данные о звонках, не станут доступными сообщения, полученные на предыдущем устройстве. Если телефон будет сброшен – всё придётся устанавливать и настраивать заново, как это было во времена Android 4.x (уже в пятой версии появилась возможность восстанавливать список установленных приложений). А когда придёт пора сменить смартфон, на новом устройстве тоже придётся всё настраивать заново. По нашему мнению, это – совершенно неприемлемо. Впрочем, для некоторых пользователей это не станет большим недостатком.

Вместо стандартного механизма резервного копирования в Meizu предусмотрели свой, работающий в рамках одного устройства. Данные из внутренней памяти телефона сохраняются в резервную копию в собственном формате, которая создаётся… во внутренней памяти телефона. Пожалуй, мы не будем комментировать особенности такого подхода к резервному копированию.

Шифрование данных

Мы решили проверить, активировано ли в телефоне шифрование данных, как того требует Android Compatibility Definition Document. И не смогли: пункт «шифрование» просто отсутствует в настройках. Соответственно, «обычный» пользователь не получит никакой защиты данных вообще: как известно, без шифрования данные из телефона извлекаются специалистами в течение минут, а неспециалистами – после нескольких часов чтения форумов.

При этом Android Compatibility Definition Document не допускает двойных толкований: устройства, которые выходят с Android 6.0 на борту и которые отвечают минимальным требованиям производительности (а им отвечают даже бюджетники) обязаны полностью зашифровывать раздел данных к моменту, когда мастер начальной настройки окончит работу. Увы, здесь – провал.

Объективности ради отметим, что шифрование – базовая возможность Android, и выбросить её с концами не так и просто. Так что диалог, позволяющий активировать шифрование, с помощью intent нам вызвать удалось:

Даже по внешнему виду скриншота видно, насколько эта функция далека от того, чтобы предъявить её пользователям. Активировать шифрование в таком виде мы не рискнули.

Безопасность данных отпечатка пальцев

Android Compatibility Definition Document для шестой версии Android чётко определяет механизмы безопасности, которые допустимо использовать для биометрической аутентификации по датчику отпечатка пальцев. Не углубляясь в детали, при включении устройства данные, которые использует датчик, должны быть зашифрованы вплоть до момента разблокирования телефона с помощью PIN-кода, паттерна или пароля. Соответственно, после включения или перезагрузки телефон необходимо сперва разблокировать с помощью пароля, и только потом активируется датчик отпечатков.

К сожалению, общий подход китайских производителей к безопасности можно однозначно выразить словом «наплевать». Отсутствие сертификации Google позволяет изобретать самые изощрённые способы обойти системы безопасности Android, в том числе и систему дактилоскопической аутентификации.

Для того, чтобы телефон получил сертификацию Google, компания требует точного следования спецификациям Android Compatibility Definition Document. В отличие от требований к шифрованию, которые применяются только к устройствам, выпущенным с Android 6.0 на борту, требования к датчикам отпечатков пальцев едины как для устройствах, вышедших с Android 6.0 на борту, так и для тех, которые получают Android 6.0 в виде обновления. Слабые, небезопасные решения просто не пройдут сертификацию.

Что делает Meizu? Устройство не сертифицировано Google, а значит, и следовать каким-то требованиям совершенно не нужно. Данные датчика отпечатков не зашифрованы и никак не защищены, а разблокировать телефон отпечатком пальцев можно сразу после включения. Впрочем, в свете глобального отсутствия шифрования раздела данных это – мелкая шалость, просто ещё одна дыра в решете.

Factory Reset Protection: защита от кражи

Factory Reset Protection – важный механизм, который не только позволяет пользователю удалённо блокировать украденные устройства, но и способен помешать вору активировать устройство после сброса к заводским настройкам. Наиболее совершенна реализация данного механизма у Apple: в устройствах под управлением iOS обойти защиту от сброса, реализуемую через привязку к учётной записи iCloud, можно только непростым вмешательством в аппаратную часть. Сам факт наличия подобной защиты уже заметно снижает количество преступлений, связанных с кражей телефонов.

В Google также реализован механизм для защиты от кражи. Если сбросить телефон к заводским настройкам, для его активации потребуется ввести пароль от последней учётной записи, которая использовалась в устройстве. Да, этот механизм несовершенен, но это – лучше, чем ничего.

В случае с Meizu Pro 6 нет даже такой защиты. Из всех пунктов, которые могли бы иметь отношение к factory reset protection, мы нашли только загадочную опцию, подписанную на ломаном английском: «Verify phone number when change phones».

Добро пожаловать: root-доступ из коробки

Вишенка на торте – доступность root-доступа прямо из коробки. Пожалуй, на этом месте можно остановиться и прекратить анализ системы безопасности Meizu Pro 6.

Реакция Google

Meizu выкатили пробный шар, попытавшись обойти правила игры, установленные на рынке смартфонов Google. Надо полагать, многие китайские производители с интересом следили за ситуацией. Какова будет реакция Google?

Наивным было бы полагать, что в Google не заметят попытки обойти MADA. В марте 2017 года последовала реакция. В Google Play Services появилась малозаметная надпись, которая показывает, сертифицировано ли устройство для использования сервисов Google или нет:

В момент появления проверка сертификации работала из рук вон плохо: даже собственные устройства Google Pixel часто определялись как «не сертифицированные». Впрочем, с набором статистики ситуация стала стремительно выправляться, и на текущий момент ложные положительные и ложные отрицательные срабатывания случаются куда реже, чем прежде.

Что Google собирается делать с этой информацией? Год спустя, в марте 2018, Google начали блокировать устройства, выпущенные производителями, которые хотят обойти MADA. При начальной настройке телефона пользователи могут столкнуться с таким предупреждением:

Таким образом, продажам устройств, не прошедших официальную сертификацию, поставлено серьёзное препятствие. У производителей остаётся возможность очистить склады, распродав телефоны, работающие на старых сборках Android — но продавать за пределами Китая телефоны, использующие сервисы Google без официальной сертификации больше не получится. Интересный момент: для конечных пользователей (в частности, пользователей кастомных прошивок) оставлена возможность вручную добавить устройство в «белый список». Более того, блокировка касается только устройств, работающих под управлением сборок Android, выпущенных (согласно данным из build.prop) в марте 2018 или позднее.

Реакция производителей

Целью Google стали производители устройств под управлением Android, которые выпускали на международные рынки смартфоны, укомплектованные проприетарными сервисами Google без лицензии. Политика сертификации сервисов Google принесла ожидаемые плоды. К примеру, вышедший на европейский рынок телефон Meizu Pro 7 поставляется с предустановленными сервисами Google — и прошёл официальную сертификацию. Выгода для Google очевидна, да и пользователи только выиграют от улучшенной совместимости и стандартизации Android. Производителям же придётся затратить чуть больше усилий на выпуск более качественных и безопасных прошивок, отвечающих стандартам безопасности Google.

Дополнительная информация

  • Блокировка Play Store от Google: несертифицированные устройства
  • [Update: Needs IMEI/GSF ID] Google now blocks GApps on uncertified devices, but lets custom ROM users be whitelisted by Mishaal Rahman, XDA Developers
  • How to Fix the “Device is not Certified by Google” Error by Mishaal Rahman, XDA Developers
  • Magisk 16.3 fixes issues with Pokémon GO; topjohnwu discusses “uncertified devices” controversy by Mishaal Rahman, XDA Developers

Заключение

Сегодня мы рассмотрели некоторые особенности несертифицированных прошивок, причём рассмотрели их в основном с точки зрения безопасности. Вопросы о совместимости приложений, своевременной доставке push-уведомлений и многие другие вещи, которые относятся скорее к удобству использования устройства, чем к его безопасности, остались за рамками данной статьи. Возможно, мы ещё вернёмся к описанию особенностей китайских прошивок, но главный вывод мы уже сделали: китайские прошивки сильно отличаются от прошивок, сертифицированных Google, в первую очередь отношением к безопасности. Отсутствие шифрования и даже возможности его включить, безграмотная реализация разблокирования датчиком отпечатков пальцев, неадекватная защита от краж, отсутствие стандартного механизма резервного копирования и восстановления, наличие root-доступа «из коробки» – вот основные «прелести» прошивок, не прошедших через лабораторию Google.

НОВЫЕ СТАТЬИ Особенности эксплойта загрузчика: чипы, модели и версииЕС: iOS 17.4 откроет доступ сторонним магазинам приложенийТехнологии Velter: новый взгляд на клетку Фарадея НАШИ НОВОСТИ

  • Расширенная поддержка низкоуровневого анализа 32-разрядных устройств Apple 1 February, 2024
  • Поддержка Sage 50 Accounting в канадской редакции 17 January, 2024
  • Низкоуровневое извлечение из iOS 16.6.1 3 January, 2024
  • Elcomsoft iOS Forensic Toolkit 8.51 улучшает работу с 32-разрядными устройствами 27 December, 2023
  • Elcomsoft iOS Forensic Toolkit 8.50: редакция для Linux и поддержка старых моделей Apple Watch 30 November, 2023

ПРЕСС РЕЛИЗЫ

  • Извлечение данных из устройств Apple для пользователей Linux 30 November, 2023
  • Elcomsoft System Recovery 8.31 ускорит сбор и анализ цифровых улик 14 July, 2023
  • Elcomsoft iOS Forensic Toolkit 8.30: низкоуровневое извлечение файловой системы из iOS 16.0-16.3.1 30 June, 2023
  • Elcomsoft iOS Forensic Toolkit 8.20: частичное низкоуровневое извлечение iOS 15.6-16.1.2 30 March, 2023
  • Выпущен Elcomsoft iOS Forensic Toolkit 8.0: криминалистически чистое извлечение через эксплойт загрузчика 22 September, 2022

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *