Улучшены вердикты на устройствах Android 13 и более поздних версий.

Недавно мы объявили об усилении вердиктов Play Integrity API, чтобы сделать их более быстрыми, более устойчивыми к атакам и более конфиденциальными для пользователей, а также о других улучшениях безопасности.

Краткое изложение изменений

Подробный обзор изменений и часто задаваемые вопросы вы найдете далее в этом документе. Изменения вердикта в мае 2025 года были следующими:

Что Что изменилось? Предполагаемое воздействие* Какие устройства
Изменения, которые влияют на всех разработчиков, делающих запросы Play Integrity API
Ответ на вердикт устройства: соответствует целостности устройства Необходимо иметь аппаратно подтвержденный, положительный вердикт загрузки. Минимальное влияние, поскольку 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 и выше

*Все указанные ранее расчетные проценты влияния были основаны на средних значениях, и в разных приложениях изменения могли быть меньшими или большими в зависимости от их базы установок.

Часто задаваемые вопросы

Обзор

Что такое API Play Integrity?

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

Какие сигналы предоставляет Play Integrity API?

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

Что такое подтверждение ключа платформы Android?

Android Platform Key Attestation позволяет приложениям проверять состояние устройства и получать сильный сигнал аппаратной целостности загрузки. Это зависит от ключа, который предоставляется Google в аппаратном хранилище ключей устройства. Play Integrity API уже использует ключевую аттестацию для получения аппаратных сигналов безопасности на некоторых устройствах и теперь будет интегрировать их более глубоко на всех устройствах под управлением Android 13 или более поздней версии.

Изменения в вердикте

Какие изменения были внесены в вердикты Play Integrity API на устройствах Android 13 и более поздних версий?

API Play Integrity теперь требует аппаратно-подтвержденных сигналов безопасности для всех вердиктов о целостности:

  • Вердикт распознавания устройства meets-device-integrity указывает на то, что устройство, на котором запущено приложение, является подлинным сертифицированным Play Protect устройством на базе Android. Этот вердикт потребует, чтобы загрузчик устройства был заблокирован, а загруженная ОС Android была сертифицированным образом производителя устройства.
  • Вердикт распознавания устройства meets-strong-integrity является признаком подлинного сертифицированного Play Protect устройства Android с недавним обновлением безопасности. Этот вердикт потребует обновлений meets-device-integrity и безопасности за последний год для всех разделов устройства , включая исправление раздела ОС Android и исправление раздела поставщика. Это условие может измениться в будущем.
  • Вердикт распознавания устройства meets-basic-integrity является указанием на то, что проверка произошла на физическом устройстве на базе Android. Загрузчик устройства может быть заблокирован или разблокирован, а состояние загрузки может быть проверено или не проверено. Оно может не иметь сертификата Play Protect, в этом случае Google не может предоставить никаких гарантий безопасности, конфиденциальности или совместимости приложений и не может гарантировать, что устройство не действует как прокси, например, для виртуального экземпляра Android. Это также означает, что рутированные устройства могут возвращать meets-basic-integrity пока присутствует ключевая аттестация.

Эти изменения не влияют на API Play Integrity в Play Games для ПК, который будет продолжать возвращать meets-virtual-integrity .

Почему вердикты Play Integrity API изменились на устройствах Android 13 и более поздних версий?

Play Integrity API частично использовал аппаратные сигналы безопасности на Android 12 и ниже. Требуя аппаратной безопасности на Android 13 и выше, вердикты Play Integrity API более устойчивы к злоумышленникам, более производительны для приложений и более конфиденциальны для пользователей. Разработчики могут ожидать следующих улучшений на устройствах под управлением Android 13 и выше:

  • Сокращение сигналов устройств, которые необходимо собирать и оценивать для генерации вердикта по умолчанию на серверах Google, примерно на 90%. Необязательные сигналы по-прежнему будут требовать сбора дополнительных сигналов.
  • Улучшение задержки вердикта до 80% для худших стандартных запросов и до 80% для всех классических запросов для получения вердикта по умолчанию. Дополнительные сигналы могут увеличить задержку.
  • Постоянный уровень надежности и поддержки всех форм-факторов Android с ключевой аттестацией, включая мобильные телефоны, планшеты, складные устройства, ТВ, Auto, Wear OS и ChromeOS.
  • Более четкая дифференциация между метками устройств в вердикте распознавания устройств: meets-strong-integrity , meets-device-integrity и meets-basic-integrity .

Вердикт API Play Integrity для 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 licensed response: Чтобы вернуть Play licensed response, Play Integrity API теперь всегда требует, чтобы запрашивающее приложение было установлено или обновлено Google Play. Это исправляет некоторые пограничные случаи и упрощает интерпретацию ответа разработчиками.
  • Доступность дополнительных сигналов: все дополнительные сигналы, доступные разработчикам с помощью Google Play Console или Play SDK Console, теперь требуют, чтобы запрашивающее приложение было установлено или обновлено Google Play на Android 13 или более поздней версии. Это включает meets-strong-integrity , meets-basic-integrity , недавнюю активность устройства, вердикт риска доступа к приложению и вердикт Play Protect. Мы стандартизировали все остальные запросы API Play Integrity для получения проверки устройства (только с меткой meets-device-integrity ), проверки установщика и проверки целостности приложения.
  • Изменения вердикта для определенных устройств: API Play Integrity автоматически изменяет вердикты устройств в большем количестве сценариев для более ранней защиты приложений во всех версиях Android SDK, например, когда есть доказательства чрезмерной активности или компрометации ключей. Это включает в себя возможность Play откатываться к другим сигналам для генерации временных вердиктов устройств для пользователей, когда аппаратные сигналы недоступны. Разработчикам рекомендуется использовать диалоги исправления Play в приложении или направлять пользователей в приложение Play Store для исправления проблем с вердиктом целостности. Со временем эти диалоги будут обрабатывать больше сценариев и включать конкретные инструкции для пользователей, сообщая им, что им нужно исправить на основе их конкретного устройства или учетной записи.

Как сообщить о проблемах с вердиктами о добросовестности?

Чтобы сообщить о проблемах с ответами Play Integrity API, независимо от того, связаны ли проблемы с историческими вердиктами или с новыми, следуйте инструкциям на странице поддержки .

Доступность

Что требуется для работы Play Integrity API?

Play Integrity API требует, чтобы на устройстве были установлены Google Play Store и сервисы Google Play, включая устройства Android и Google Play Games для ПК. Классические запросы требуют Android 4.4 (уровень API 19) или более поздней версии, а стандартные запросы требуют Android 5.0 (уровень API 21) или более поздней версии. На устройствах под управлением Android 13 (уровень API 33) и более поздних версий Play Integrity API теперь будет иметь одинаковый уровень надежности и поддержки для всех форм-факторов Android с ключевой аттестацией, включая мобильные телефоны, планшеты, складные устройства, ТВ, Auto, Wear OS и ChromeOS.

Почему API Play Integrity выносит разные вердикты для разных устройств?

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

Что такое устройство Android с сертификатом Play Protect?

Сертифицированное Play Protect устройство Android (также известное как устройство GMS Android) — это устройство, работающее на предсказуемом программном обеспечении, которое прошло сотни тестов на совместимость Google, соответствует модели безопасности и разрешений Android и поставляется с набором функций защиты от вредоносных программ Google Play Protect. Когда API Play Integrity может проверить, что устройство является сертифицированным Play Protect устройством Android, оно возвращает ответ meets-device-integrity в вердикте распознавания устройства.

Что такое устройство meets-basic-integrity ?

Play Integrity API также возвращает необязательный ответ в вердикте устройства, meets-basic-integrity . Если устройство возвращает только вердикт meets-basic-integrity без meets-device-integrity или meets-strong-integrity , это означает, что ОС Android не может быть проверена, но присутствует ключевая аттестация. Это указывает на то, что проверка произошла на физическом устройстве на базе Android, но Google не может гарантировать безопасность, конфиденциальность или совместимость приложения с устройством и не может гарантировать, что устройство не действует как прокси, например, для виртуального экземпляра Android. В зависимости от вариантов использования и допустимых рисков разработчиков они могут решить, как они хотят, чтобы их приложение работало на этих устройствах.

Может ли любой разработчик использовать API Play Integrity?

Да, любой разработчик Android может делать запросы Play Integrity API для получения вердиктов целостности по умолчанию. Использование ограничено 10 тыс. запросов в день независимо от канала распространения. Разработчики, публикующие свои приложения в Google Play в дополнение к любым другим каналам распространения, также могут запросить увеличение своей ежедневной квоты.

Может ли любой разработчик использовать подтверждение ключа платформы Android?

Да, любой разработчик Android может использовать Android Platform Key Attestation для получения записи подтверждения ключа, которую он может проверить с помощью открытого сертификата корневого ключа подтверждения Google. Play Integrity API предоставляет разработчикам преимущества подтверждения ключа и дополнительные функции без всей сложности интеграции с подтверждением ключа самостоятельно.

Исполнение

Как разработчики используют вердикты Play Integrity API?

Разработчики должны решить, использовать ли вердикты API Play Integrity и как их использовать. Некоторые разработчики собирают сигналы для внутреннего анализа противодействия злоупотреблениям, в то время как другие разработчики принимают решения о том, как их приложение будет себя вести, основываясь на вердикте. Например, разработчики могут решить потребовать, чтобы менее доверенные устройства выполняли дополнительные шаги проверки пользователя при создании учетной записи; или они могут решить, что менее доверенные устройства должны играть вместе на одном многопользовательском сервере.

Блокирует ли Play Integrity API пользователей или устройства?

Нет, API Play Integrity не блокирует доступ к какой-либо функциональности сам по себе. Это необязательная служба разработчика, которая предоставляет сигналы, а разработчики выбирают, как реагировать на эти сигналы.

Что делать пользователям, если их устройство не проходит проверки API Play Integrity?

Пользователи могут зайти в приложение Play Store на своем устройстве, открыть меню настроек, прокрутить вниз до раздела «О программе» и посмотреть в разделе «Сертификация Play Protect». Если с сертификацией Play Protect на их устройстве что-то не так, будет кнопка, которую пользователи могут нажать, чтобы попытаться исправить проблему. Это обновит статус сертификации устройства и предоставит конкретные указания о том, что нужно исправить.