Предложение устройств под управлением операционной системы Android превышает воображение. Пользователям доступен выбор из нескольких сотен актуальных моделей. Выбор становится ещё шире, если обратить внимание на экзотические устройства из Китая.
Мы уже неоднократно писали о китайских смартфонах; данная статья – не о том или не совсем о том. Сегодня мы поговорим о вполне конкретном свойстве устройств на Android, а именно – о сертификации Google и о том, что она даёт потребителю с точки зрения безопасности. Особенный интерес эта тема представляет в свете того, что Google начинает блокировать не прошедшие официальной сертификации устройства, использующие сервисы Google Play.
Как известно, операционная система 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 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 – есть. Уже одно это нас сильно заинтересовало, и мы приобрели экземпляр для тестирования.
Итак, пользователь покупает телефон – например, 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 – важный механизм, который не только позволяет пользователю удалённо блокировать украденные устройства, но и способен помешать вору активировать устройство после сброса к заводским настройкам. Наиболее совершенна реализация данного механизма у Apple: в устройствах под управлением iOS обойти защиту от сброса, реализуемую через привязку к учётной записи iCloud, можно только непростым вмешательством в аппаратную часть. Сам факт наличия подобной защиты уже заметно снижает количество преступлений, связанных с кражей телефонов.
В Google также реализован механизм для защиты от кражи. Если сбросить телефон к заводским настройкам, для его активации потребуется ввести пароль от последней учётной записи, которая использовалась в устройстве. Да, этот механизм несовершенен, но это – лучше, чем ничего.
В случае с Meizu Pro 6 нет даже такой защиты. Из всех пунктов, которые могли бы иметь отношение к factory reset protection, мы нашли только загадочную опцию, подписанную на ломаном английском: «Verify phone number when change phones».
Вишенка на торте – доступность root-доступа прямо из коробки. Пожалуй, на этом месте можно остановиться и прекратить анализ системы безопасности Meizu Pro 6.
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.
Сегодня мы рассмотрели некоторые особенности несертифицированных прошивок, причём рассмотрели их в основном с точки зрения безопасности. Вопросы о совместимости приложений, своевременной доставке push-уведомлений и многие другие вещи, которые относятся скорее к удобству использования устройства, чем к его безопасности, остались за рамками данной статьи. Возможно, мы ещё вернёмся к описанию особенностей китайских прошивок, но главный вывод мы уже сделали: китайские прошивки сильно отличаются от прошивок, сертифицированных Google, в первую очередь отношением к безопасности. Отсутствие шифрования и даже возможности его включить, безграмотная реализация разблокирования датчиком отпечатков пальцев, неадекватная защита от краж, отсутствие стандартного механизма резервного копирования и восстановления, наличие root-доступа «из коробки» – вот основные «прелести» прошивок, не прошедших через лабораторию Google.