Недавно мы объявили об усилении вердиктов Play Integrity API, чтобы сделать их быстрее, более устойчивыми к атакам и более конфиденциальными для пользователей, а также внесли другие улучшения в систему безопасности.
Краткое изложение изменений
Подробный обзор изменений и ответы на часто задаваемые вопросы приведены далее в этом документе. Изменения в законе, принятые в мае 2025 года, были следующими:
Что | Что изменилось? | Предполагаемое воздействие* | Какие устройства |
---|---|---|---|
Изменения, которые затрагивают всех разработчиков, делающих запросы к API Play Integrity | |||
Ответ на вердикт устройства: соответствует целостности устройства | Требуется иметь подтвержденный аппаратно положительный вердикт о загрузке | Минимальное влияние, поскольку Play Integrity API уже использует аппаратные сигналы безопасности на устройствах Android 13 и более поздних версий (~0,4%). | Android 13 и более поздние версии |
Ответ на проверку целостности приложения: вердикт о распознавании приложения | Никаких изменений. | Минимальное влияние, это отразит изменение в вердикте устройства (~0,4%). | Android 13 и более поздние версии |
Ответ по данным учетной записи: вердикт по лицензии Play | Запрашиваемое приложение должно быть установлено или обновлено через Google Play. | Незначительное снижение количества лицензированных ответов (~2,5%) | Android 6 и более поздние версии |
Изменения, которые касаются только разработчиков Play Console и разработчиков Play SDK Console, использующих дополнительные функции. | |||
Ответ на вердикт устройства: соответствует базовой целостности | Требуется подтверждение ключа платформы Android, но состояние загрузки может быть проверено или не проверено. | Незначительное снижение базовых ответов (~0,4%) | Android 13 и выше |
Ответ на вердикт устройства: соответствует требованиям strong-integrity | Требуется иметь обновление безопасности за последний год | Уменьшение количества сильных ответов (~14,5%) | Android 13 и выше |
Все необязательные сигналы (кроме атрибутов устройства)** | Запрашиваемое приложение должно быть установлено или обновлено через Google Play. | Уменьшение процента ответов, включающих необязательные сигналы (~7%) | Android 13 и выше |
*Все расчетные проценты влияния, упомянутые ранее, были основаны на средних значениях, и разные приложения могли увидеть меньшие или большие изменения в зависимости от их базы установок.
**Дополнительные сигналы (кроме атрибутов устройства): meets-basic-integrity
, meets-strong-integrity
, недавняя активность устройства, отзыв устройства (бета-версия), статус Play Protect и риск доступа к приложению.
Часто задаваемые вопросы
Обзор
Что такое API Play Integrity?
API Play Integrity помогает оценить надежность среды пользовательского приложения, получая информацию об устройстве, приложении и пользователе, что позволяет обнаруживать и реагировать на потенциальные злоупотребления и атаки.
Какие сигналы предоставляет Play Integrity API?
API целостности Play Integrity включает в себя идентификационные данные запрашивающего приложения, информацию о том, установлено ли запрашивающее приложение Google Play, и является ли устройство подлинным и сертифицированным устройством Android . Эти сигналы предоставляются по умолчанию. Вы можете считывать эти сигналы на внутреннем сервере своего приложения и решать, должно ли ваше приложение реагировать и как именно. Разработчики Google Play могут подписаться на получение дополнительных сигналов при установке приложений Play, чтобы видеть ещё больше информации.
Что такое аттестация ключа платформы Android?
Подтверждение ключей платформы Android позволяет приложениям проверять состояние устройства и получать надёжный сигнал аппаратной целостности загрузки. Это зависит от ключа, предоставленного Google в аппаратном хранилище ключей устройства. API Play Integrity уже использует аттестацию ключей для получения аппаратных сигналов безопасности на некоторых устройствах и теперь будет интегрировать её более глубоко на всех устройствах под управлением Android 13 и более поздних версий.
Изменения вердикта
Какие изменения были внесены в вердикты Play Integrity API на устройствах Android 13 и более поздних версиях?
API Play Integrity теперь требует аппаратно-подтвержденных сигналов безопасности для всех вердиктов о целостности:
- Вердикт о распознавании устройства
meets-device-integrity
свидетельствует о том, что устройство, на котором запущено приложение, является подлинным и сертифицированным устройством Android. Для этого вердикта потребуется, чтобы загрузчик устройства был заблокирован, а загруженная ОС Android представляла собой образ, сертифицированный производителем устройства. - Вердикт о соответствии устройства требованиям
meets-strong-integrity
свидетельствует о подлинности и сертификации устройства Android с недавним обновлением безопасности. Этот вердикт требует установки обновленийmeets-device-integrity
и безопасности за последний год для всех разделов устройства , включая исправление раздела ОС Android и исправление раздела поставщика. Это условие может измениться в будущем. - Вердикт распознавания устройства
meets-basic-integrity
указывает на то, что проверка проводилась на физическом устройстве Android. Загрузчик устройства может быть заблокирован или разблокирован, а состояние загрузки может быть верифицированным или неверифицированным. Устройство может быть не сертифицировано, и в этом случае Google не может предоставить никаких гарантий безопасности, конфиденциальности или совместимости приложений, а также не может гарантировать, что устройство не выступает в качестве прокси-сервера, например, виртуального экземпляра Android. Это также означает, что устройства с root-доступом могут возвращать результатmeets-basic-integrity
при наличии аттестации ключа.
Эти изменения не повлияют на API Play Integrity в Play Games для ПК, который по-прежнему будет возвращать meets-virtual-integrity
.
Почему вердикты Play Integrity API изменились на устройствах Android 13 и более поздних версиях?
API Play Integrity частично использовал аппаратные сигналы безопасности на устройствах Android 12 и более ранних версиях. Требование аппаратной защиты на устройствах Android 13 и более поздних версиях обеспечивает большую устойчивость вердиктов API Play Integrity к злоумышленникам, более высокую производительность для приложений и более высокий уровень конфиденциальности для пользователей. Разработчики могут ожидать следующих улучшений на устройствах под управлением Android 13 и более поздних версий:
- Сокращение количества сигналов устройств, которые необходимо собирать и оценивать для формирования вердикта по умолчанию на серверах Google, примерно на 90%. Для необязательных сигналов по-прежнему потребуется сбор дополнительных сигналов.
- Сокращение задержки вердикта до 80% для стандартных запросов в худшем случае и до 80% для всех классических запросов на получение вердикта по умолчанию. Дополнительные сигналы могут увеличить задержку.
- Стабильный уровень надежности и поддержки всех форм-факторов Android с ключевой аттестацией, включая мобильные телефоны, планшеты, складные устройства, телевизоры, Auto, Wear OS и ChromeOS.
- Более четкая дифференциация между метками устройств в вердикте распознавания устройств:
meets-strong-integrity
,meets-device-integrity
иmeets-basic-integrity
.
Вердикт Play Integrity API в Play Games для ПК не изменится и будет таким же на Android 12 и более ранних версиях, как и на Android 13 и более поздних версиях.
Как обновить внутреннюю логику моего приложения для проверки целостности, чтобы она учитывала версию Android SDK?
Если вы хотите использовать другую логику на внутреннем сервере вашего приложения в зависимости от версии Android SDK, вы можете использовать новое поле атрибутов устройства в вердикте. Вот пример:
Котлин
val deviceIntegrity = JSONObject(payload).getJSONObject("deviceIntegrity") val sdkVersion = if (deviceIntegrity.has("deviceAttributes")) { deviceIntegrity.getJSONObject("deviceAttributes").getInt("sdkVersion") } else { 0 } if (sdkVersion >= 30) { // Provide Android R+ specific experience to the user. }
Ява
JSONObject deviceIntegrity = new JSONObject(payload).getJSONObject("deviceIntegrity"); int sdkVersion = deviceIntegrity.has("deviceAttributes") ? deviceIntegrity.getJSONArray("deviceAttributes").getInt("sdkVersion") : 0; if (sdkVersion >= 30) { // Provide Android R+ specific experience to the user. }
Как можно использовать старое определение метки meets-strong-integrity
во всех версиях Android SDK?
Этого можно добиться, обновив логику бэкенда приложения так, чтобы она использовала meets-strong-integrity
для устройств с ОС до Android 13 и meets-device-integrity
для устройств с ОС Android 13 и более поздними версиями, используя новое поле атрибутов устройства в вердикте, содержащее версию Android SDK. Вот пример:
Котлин
val deviceRecognitionVerdict = if (deviceIntegrity.has("deviceRecognitionVerdict")) { deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString() } else { "" } val deviceIntegrityToCheckFor = sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY"; if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) { // Looks good! }
Ява
JSONObject deviceIntegrity = new JSONObject(payload).getJSONObject("deviceIntegrity"); String deviceRecognitionVerdict = deviceIntegrity.has("deviceRecognitionVerdict") ? deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString() : ""; String deviceIntegrityToCheckFor = sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY"; if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) { // Looks good! }
Поскольку это также аппаратно поддерживаемый сигнал, поле атрибутов устройства наиболее надежно на устройствах под управлением Android 13 и более поздних версий.
Какие еще изменения были внесены в вердикт?
Мы постоянно работаем над повышением надежности существующих сигналов в Play Integrity API и периодически добавляем новые функции, помогающие разработчикам справляться с возникающими угрозами и новыми сценариями использования. Другие улучшения вердиктов, которые мы внесли, включают:
- Ответ с лицензией Play: для возврата ответа с лицензией Play API Play Integrity теперь всегда требует, чтобы запрашивающее приложение было установлено или обновлено Google Play. Это устраняет некоторые пограничные ситуации и упрощает интерпретацию ответа разработчиками.
- Доступность дополнительных сигналов: все дополнительные сигналы, доступные разработчикам через Google Play Console или Play SDK Console (за исключением атрибутов устройства), теперь требуют, чтобы запрашивающее приложение было установлено или обновлено Google Play на Android 13 или более поздней версии. К ним относятся
meets-strong-integrity
,meets-basic-integrity
, недавняя активность устройства, отзыв устройства (бета-версия), вердикт о риске доступа к приложению и вердикт Play Protect. Мы стандартизировали все остальные запросы Play Integrity API для получения проверки устройства (только с меткойmeets-device-integrity
), проверки установщика, проверки целостности приложения и атрибутов устройства (если включена). - Изменения вердиктов для отдельных устройств: API Play Integrity автоматически изменяет вердикты устройств в большем количестве сценариев для более ранней защиты приложений во всех версиях Android SDK, например, при наличии признаков чрезмерной активности или компрометации ключей. Это включает в себя возможность Play использовать другие сигналы для генерации временных вердиктов устройств для пользователей, когда аппаратные сигналы недоступны. Разработчикам рекомендуется использовать встроенные диалоговые окна исправления в Play или направлять пользователей в приложение Play Store для устранения проблем с вердиктами целостности. Со временем эти диалоговые окна будут обрабатывать больше сценариев и включать конкретные инструкции для пользователей с указанием необходимых исправлений в зависимости от их конкретного устройства или учетной записи.
Как сообщить о проблемах с вердиктами о добросовестности?
Чтобы сообщить о проблемах с ответами Play Integrity API, независимо от того, связана ли проблема с историческими вердиктами или с новыми, следуйте инструкциям на странице поддержки .
Доступность
Что требуется для работы Play Integrity API?
Для работы API Play Integrity требуется наличие Google Play Store и сервисов Google Play на устройстве, включая устройства Android и Google Play Games для ПК. Для классических запросов требуется Android 4.4 (уровень API 19) или более поздняя версия, а для стандартных запросов — Android 5.0 (уровень API 21) или более поздняя версия. На устройствах под управлением Android 13 (уровень API 33) и более поздних версий API Play Integrity теперь будет иметь одинаковый уровень надежности и поддержки для всех форм-факторов Android с ключевой аттестацией, включая мобильные телефоны, планшеты, складные устройства, телевизоры, автомобили, Wear OS и ChromeOS.
Почему API Play Integrity выдает разные вердикты для разных устройств?
API Play Integrity предоставляет несколько вердиктов для устройств, что позволяет разработчикам учитывать различные сценарии использования и уровни допустимого риска, а также обеспечивает многоуровневую стратегию контроля. Например, если приложение и устройство пользуются большей степенью доверия, разработчик может упростить процедуру проверки пользователей; в то же время, если устройство неизвестно, разработчик может потребовать дополнительную проверку пользователей перед выполнением защищённых или конфиденциальных действий. Это может быть эффективным способом предотвращения злоупотреблений и атак.
Что такое сертифицированное устройство Android?
Сертифицированное Android-устройство (также известное как Android-устройство, сертифицированное Play Protect) — это устройство с предсказуемым программным обеспечением, которое прошло сотни тестов на совместимость от Google, соответствует модели безопасности и разрешений Android и поставляется с набором функций защиты от вредоносных программ Google Play Protect. Когда API Play Integrity подтверждает подлинность устройства и его сертификацию, он возвращает ответ meets-device-integrity
в вердикте о распознавании устройства.
Что такое устройство meets-basic-integrity
?
API Play Integrity также возвращает необязательный ответ в вердикте устройства: meets-basic-integrity
. Если устройство возвращает только вердикт meets-basic-integrity
без meets-device-integrity
или meets-strong-integrity
, это означает, что ОС Android не может быть проверена, но присутствует ключевая аттестация. Это указывает на то, что проверка проводилась на физическом устройстве Android, но Google не может гарантировать безопасность, конфиденциальность или совместимость приложения с устройством, а также не может гарантировать, что устройство не выступает в качестве прокси-сервера, например, виртуального экземпляра Android. В зависимости от вариантов использования и допустимых рисков разработчики могут самостоятельно решать, как их приложение должно работать на этих устройствах.
Может ли любой разработчик использовать Play Integrity API?
Да, любой разработчик Android может отправлять запросы к API Play Integrity для получения вердиктов о целостности по умолчанию. Использование ограничено 10 тысячами запросов в день независимо от канала распространения. Разработчики, публикующие свои приложения в Google Play, а также на любых других каналах распространения, также могут запросить увеличение своей суточной квоты.
Может ли любой разработчик использовать аттестацию ключа платформы Android?
Да, любой разработчик Android может использовать аттестацию ключей платформы Android для получения записи аттестации ключей, которую можно проверить с помощью открытого сертификата корневого ключа аттестации Google. API Play Integrity предоставляет разработчикам преимущества аттестации ключей и дополнительные функции без необходимости интеграции с аттестацией ключей.
Обеспечение соблюдения
Как разработчики используют вердикты Play Integrity API?
Разработчики сами решают, использовать ли вердикты Play Integrity API и как именно. Некоторые разработчики собирают сигналы для внутреннего анализа противодействия злоупотреблениям, в то время как другие принимают решения о поведении своего приложения на основе вердиктов. Например, разработчики могут потребовать, чтобы менее доверенные устройства проходили дополнительные этапы проверки пользователя при создании учётной записи; или они могут решить, что менее доверенные устройства должны играть вместе на одном многопользовательском сервере.
Блокирует ли Play Integrity API пользователей или устройства?
Нет, API Play Integrity сам по себе не блокирует доступ к каким-либо функциям. Это опциональный сервис для разработчиков, который предоставляет сигналы, и разработчики сами выбирают, как реагировать на эти сигналы.
Что делать пользователям, если их устройство не проходит проверку API Play Integrity?
Пользователи могут открыть приложение Play Маркет на своём устройстве, открыть меню «Настройки», прокрутить вниз до раздела «О программе» и найти раздел «Сертификация Play Protect». Если с сертификацией Play Protect на устройстве возникнут проблемы, появится кнопка, которую можно нажать, чтобы попытаться исправить. Это обновит статус сертификации устройства и предоставит конкретные рекомендации по устранению неполадок.