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

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

Краткое описание изменений

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

  • Новые интеграции: все новые интеграции автоматически получат новые вердикты.

  • Существующие интеграции до мая 2025 года . Разработчики с существующими интеграциями могут зарегистрироваться на странице настроек Play Integrity API в Play Console, чтобы получать новые вердикты наряду с устаревшими вердиктами прямо сейчас, что дает вам время просмотреть и рассмотреть возможность внесения изменений в поведение вашего приложения. . Прежде чем принять участие, вы можете увидеть ожидаемое изменение процента устройств, возвращающих каждый вердикт, а также образец нового вердикта в формате JSON. Когда вы согласитесь, вы получите в ответе два дополнительных поля с версией Android SDK и устаревшими вердиктами.

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

Что Что меняется Предполагаемое воздействие* Какие устройства
Изменения, которые затрагивают всех разработчиков, отправляющих запросы Play Integrity API.
Ответ на вердикт устройства: соответствует целостности устройства Требуется аппаратно подтвержденный положительный верифицированный вердикт загрузки. Минимальное влияние, поскольку Play Integrity API уже использует аппаратные сигналы безопасности на устройствах Android 13 или более поздних версий (~0,4%). Android 13 и более поздние версии
Ответ на целостность приложения: вердикт по распознаванию приложения Без изменений Минимальное влияние, это отразит изменение вердикта устройства (~0,4%). Android 13 и более поздние версии
Ответ на данные учетной записи: Вердикт по лицензии Play Запрашивающее приложение должно быть установлено или обновлено через Google Play. Незначительное снижение количества лицензированных ответов (~2,5%) Android 11 и более поздние версии (это изменение будет внедряться постепенно)
Изменения, которые затрагивают только разработчиков Play Console и разработчиков Play SDK Console, использующих дополнительные функции.
Ответ на вердикт устройства: соответствует базовой целостности Требуется аттестация ключа платформы Android, но состояние загрузки может быть проверено или не проверено. Незначительное снижение основных ответов (~0,4%) Андроид 13 и выше
Ответ на вердикт устройства: соответствует строгой целостности Требуется наличие обновления безопасности за последний год. Снижение сильных ответов (~ 14,5%) Андроид 13 и выше
Все дополнительные сигналы Запрашивающее приложение должно быть установлено или обновлено через Google Play. Уменьшение % ответов, содержащих необязательные сигналы (~7%) Андроид 13 и выше

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

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

Обзор

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

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

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

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

Что такое аттестация ключей платформы Android?

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

Вердикт меняется

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

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

  • Вердикт о распознавании устройства meets-device-integrity устройства является показателем того, что устройство, на котором запущено приложение, является подлинным устройством на платформе Android, сертифицированным Play Protect. Этот вердикт потребует, чтобы загрузчик устройства был заблокирован, а загруженная ОС Android была сертифицированным образом производителя устройства.
  • Вердикт по распознаванию устройства meets-strong-integrity указывает на подлинное устройство на базе Android, сертифицированное Play Protect, с недавним обновлением безопасности. Для этого вердикта потребуется meets-device-integrity и наличие на устройстве обновления безопасности за последний год. Это условие может измениться в будущем.
  • Вердикт распознавания устройства 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 SDK. Благодаря расширению интеграции вердикты Play Integrity API станут более устойчивыми к злоумышленникам, более эффективными для приложений и более конфиденциальными для пользователей. После завершения перехода мы ожидаем следующих улучшений на устройствах под управлением Android 13 или более поздней версии:

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

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

Вердикт 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 Integrity API и периодически запускаем новые функции, которые помогают разработчикам справляться с возникающими угрозами и новыми сценариями использования. Другие улучшения вердиктов, которые мы вносим, ​​включают:

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

Включение и отключение

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

Разработчики, использующие Play Console, могут принять участие на странице настроек Play Integrity API .

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

После вашего согласия произойдут три вещи:

  • Ответы в поле deviceRecognitionVerdict немедленно начнут генерироваться и возвращаться на основе новых требований к оценке вердикта на устройствах Android 13 или более поздней версии. На устройствах под управлением Android 12 и более ранних версий deviceRecognitionVerdict будет создано с использованием исторической оценки вердикта.
  • Вы получите новое поле deviceAttributes , содержащее версию Android SDK на устройстве.
  • Вы получите новое поле legacyDeviceRecognitionVerdict , содержащее ответы о целостности устройства на основе требований оценки исторического вердикта независимо от версии Android SDK.

Когда изменения вердикта вступят в силу для всех интеграций в мае 2025 года, все приложения, которые согласились на них, перестанут получать поле legacyDeviceRecognitionVerdict .

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

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

Могу ли я отказаться после того, как дал свое согласие?

Да, вы можете отказаться на странице настроек 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) и более поздних версий API Play Integrity теперь будет иметь одинаковый уровень надежности и поддержки для всех форм-факторов Android с ключевой аттестацией, включая мобильные телефоны, планшеты, складные устройства, телевизоры, автомобили, Wear OS и ХромОС.

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

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

Что такое сертифицированное Play Protect устройство на базе Android?

Сертифицированное Play Protect устройство Android (также известное как устройство GMS Android) — это устройство с предсказуемым программным обеспечением, которое прошло сотни тестов совместимости Google, соответствует модели безопасности и разрешений Android и поставляется с пакетом Google Play Protect. функций защиты от вредоносного ПО. Когда Play Integrity API сможет проверить, что устройство является сертифицированным 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. . В зависимости от вариантов использования и терпимости к риску разработчики могут решить, как их приложение должно работать на этих устройствах.

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

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

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

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

Правоприменение

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

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

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

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

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

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