Компания Google запустила набор инструментов Play Integrity API — он поможет разработчику определять, было ли его приложение для Android скачано из официального магазина «Play Маркет» или из стороннего источника.
![Источник изображения: Rubaitul Azad / unsplash.com](https://3dnews.ru/assets/external/illustrations/2024/09/11/1110807/google-play_2.jpg)
Источник изображения: Rubaitul Azad / unsplash.com
Владелец устройства под управлением Android может по разным причинам устанавливать приложения не из Google Play, а из сторонних источников — у разработчиков тоже может быть множество причин блокировать такую установку. К примеру, у приложения, загруженного не из Google Play, может отсутствовать часть ресурсов, кода или функций, и отследить это поможет интерфейс Play Integrity API. Этот набор инструментов позволяет разработчику «проверить, что взаимодействия и запросы к серверу исходят от подлинного двоичного файла приложения, работающего на подлинном устройстве Android». Он пытается обнаружить подтверждение, что приложение подверглось взлому, что оно выполняется в «ненадёжной» программной среде, и включена ли на устройстве защита Google Play. Схожим образом работает механизм SafetyNet Attestation, но Play Integrity API обладает более широким набором возможностей.
Разработчик может вызвать Play Integrity API в любой момент работы приложения и получить набор данных, который называется «вердиктом целостности» (integrity verdict). В зависимости от результата можно предпринять любую дальнейшую последовательность действий. Можно блокировать работу приложения целиком или вызвать API только в момент выполнения действий конфиденциального характера, чтобы предупредить пользователя, что продолжения работы может быть сопряжено с угрозами.
![Источник изображения: github.com/linuxct/hydra](https://3dnews.ru/assets/external/illustrations/2024/09/11/1110807/play-integrity.jpg)
Источник изображения: github.com/linuxct/hydra
На конференции разработчиков Google I/O в мае компания также продемонстрировала диалоговые окна «исправления» (remediation), предлагающие решение проблем с вердиктом целостности. Так, если запрос «appLicensingVerdict» вернул результат «UNLICENSED», значит, пользователь не имеет лицензии на приложение — он не покупал и не устанавливал его в Google Play. В этом случае можно также обратиться к Play Integrity API, который выведет окно «GET_LICENSED», которое поможет получить приложение из официального магазина приложений. Существующее приложение будет удалено со всеми его данными, система установит «официальный» экземпляр, приложение добавится в библиотеку магазина, а все дальнейшие запросы «appLicensingVerdict» будут возвращать «LICENSED».
Google намеревается укреплять механизмы работы Play Integrity API и добавлять новые функции. Известно, что этот интерфейс уже используется в приложениях Tesco и BeyBlade X, нечто схожее замечено в игре Diablo Immortal, обращения к нему также есть в приложениях Stripe, Uber и TikTok. И в перспективе его присутствие обещает расширяться.
Источник: