Google объяснила, как Android будет блокировать приложения от непроверенных разработчиков — и как это обойти

Читать в полной версии

Со следующего года Android будет блокировать установку приложений от непроверенных разработчиков. Новая политика Google затронет как Google Play, так и сторонние магазины приложений, а также независимых разработчиков, студентов и не только. Теперь Google разъяснила, как будет работать новая система.

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

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

При попытке установки приложения для Android, операционная система выполняет ряд проверок, которые призваны гарантировать, что приложение с таким же идентификатором (то есть именем пакета) ещё не установлено, не разработано для устаревшей версии ОС и, что самое главное, не помечено Google Play Protect как вредоносное ПО. Теперь Google добавляет к этому процессу дополнительный этап.

Компания встроила в процесс установки механизм, требующий, чтобы любое устанавливаемое впервые приложение проходило проверку. Во время установки Android взаимодействует с «доверенным лицом» на устройстве, называемым Android Developer Verifier. Эта новая предустановленная системная служба определяет, был ли проверен разработчик приложения, были ли обнаружены какие-либо проблемы во время проверки и, наконец, какую политику установки применять.

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

Кроме того, Google работает над решением для магазинов приложений, которое позволит обойти дополнительные сетевые вызовы. Магазины приложений могут передавать так называемый «токен предварительной авторизации» — «криптографически проверяемый двоичный объект», связанный с пакетом, который они хотят установить. Это позволяет проверить разработчика приложения без дополнительных сетевых вызовов в бэкенд Google.

Второй квартальный релиз Android 16, то есть Android 16 QPR2, станет первой версией Android со встроенной поддержкой этих изменений. Однако политики проверки не будут применяться с выходом обновления в декабре, поскольку Google всё ещё работает над их реализацией и сбором метрик. Изменения будут перенесены на более старые версии Android через Google Play Protect, хотя Google заявляет, что могут быть некоторые незначительные различия, поскольку этот метод использует существующее приложение, а не новую, встроенную в ОС собственную службу проверки.

Когда Google впервые объявила о новых требованиях к верификации разработчиков, компания упомянула о создании «отдельного типа учётной записи в консоли разработчика Android» для разработчиков-любителей и студентов. Учётная запись будет иметь «меньшие требования к верификации» и будет освобождена от регистрационного взноса в размере $25. Но такие разработчики столкнутся с ограничением на количество устройств, на которые можно установить их приложения.

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

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

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

Учётные записи разработчиков, уличённых в распространении вредоносного ПО, будут ограничены. В течение неопределённого периода времени установка всех приложений, принадлежащих этим разработчикам, на пользовательские устройства будет заблокирована. Это относится к любому разработчику, чья учётная запись связана с распространением вредоносного ПО, даже если этот разработчик не является его автором. Авторы вредоносных программ часто пытаются выкупить существующие учётные записи разработчиков, чтобы использовать их для распространения. По мнению Google, разработчики несут ответственность за всё, что публикуется под их учётной записью, что оправдывает любые меры, принятые против них.

Ещё один метод, используемый авторами вредоносных программ для обхода проверки, — это мошенничество с использованием личных данных. У Google на этот случай предусмотрен некий «секретный ингредиент» — методы, позволяющие ей определять, когда разработчики предоставляют ложную информацию о себе. Эти инструменты позволяют выявлять ложные данные, даже созданные с помощью инструментов искусственного интеллекта. Кроме того, необходимость получения номера в DUNS (международном идентификаторе юридических лиц) удержит многих злоумышленников от подачи заявки на корпоративный аккаунт.

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

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

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