Компания Google запустила набор инструментов Play Integrity API — он поможет разработчику определять, было ли его приложение для Android скачано из официального магазина «Play Маркет» или из стороннего источника.
Владелец устройства под управлением Android может по разным причинам устанавливать приложения не из Google Play, а из сторонних источников — у разработчиков тоже может быть множество причин блокировать такую установку. К примеру, у приложения, загруженного не из Google Play, может отсутствовать часть ресурсов, кода или функций, и отследить это поможет интерфейс Play Integrity API. Этот набор инструментов позволяет разработчику «проверить, что взаимодействия и запросы к серверу исходят от подлинного двоичного файла приложения, работающего на подлинном устройстве Android». Он пытается обнаружить подтверждение, что приложение подверглось взлому, что оно выполняется в «ненадёжной» программной среде, и включена ли на устройстве защита Google Play. Схожим образом работает механизм SafetyNet Attestation, но Play Integrity API обладает более широким набором возможностей.
Разработчик может вызвать Play Integrity API в любой момент работы приложения и получить набор данных, который называется «вердиктом целостности» (integrity verdict). В зависимости от результата можно предпринять любую дальнейшую последовательность действий. Можно блокировать работу приложения целиком или вызвать API только в момент выполнения действий конфиденциального характера, чтобы предупредить пользователя, что продолжения работы может быть сопряжено с угрозами.
На конференции разработчиков 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. И в перспективе его присутствие обещает расширяться.