Udoskonalona ocena na urządzeniach z Androidem 13 i nowszym

Niedawno ogłosiliśmy, że wzmocniliśmy wyniki interfejsu Play Integrity API, aby były szybsze, bardziej odporne na ataki i zapewniały użytkownikom większą prywatność, a także wprowadziliśmy inne ulepszenia w zakresie bezpieczeństwa.

Podsumowanie zmian

Szczegółowe podsumowanie zmian i odpowiedzi na najczęstsze pytania znajdziesz w dalszej części tego dokumentu. Zmiany w decyzji w maju 2025 r. były następujące:

Co Co się zmieniło Szacowany wpływ* Które urządzenia
Zmiany, które mają wpływ na wszystkich deweloperów wysyłających żądania do interfejsu Play Integrity API
Odpowiedź dotycząca oceny urządzenia: meets-device-integrity Wymaga sprzętowego, pozytywnego wyniku zweryfikowanego rozruchu. Minimalny wpływ, ponieważ Play Integrity API używa już potwierdzonych sprzętowo sygnałów zabezpieczeń na urządzeniach z Androidem 13 lub nowszym (~0,4%). Android 13 lub nowszy
Odpowiedź interfejsu App Integrity API: wynik rozpoznawania aplikacji Bez zmian Minimalny wpływ, odzwierciedla zmianę w ocenie urządzenia (ok. 0,4%). Android 13 lub nowszy
Odpowiedź dotycząca szczegółów konta: ocena licencji Google Play Aplikacja wysyłająca żądanie musi być zainstalowana lub zaktualizowana przez Google Play Niewielki spadek liczby odpowiedzi objętych licencją (ok.2,5%) Android 6 lub nowszy
Zmiany, które mają wpływ tylko na deweloperów korzystających z Konsoli Play i Konsoli Play SDK oraz funkcji opcjonalnych
Odpowiedź dotycząca oceny urządzenia: meets-basic-integrity Wymagana jest atestacja klucza platformy Androida, ale stan uruchamiania może być zweryfikowany lub niezweryfikowany. Nieznaczny spadek liczby podstawowych odpowiedzi (ok.0,4%) Android 13 lub nowszy
Odpowiedź z oceną urządzenia: meets-strong-integrity Wymaga aktualizacji zabezpieczeń z ostatniego roku Spadek liczby silnych reakcji (o ok.14,5%) Android 13 lub nowszy
Wszystkie sygnały opcjonalne (z wyjątkiem atrybutów urządzenia)** Aplikacja wysyłająca żądanie musi być zainstalowana lub zaktualizowana przez Google Play Spadek odsetka odpowiedzi zawierających sygnały opcjonalne (ok. 7%) Android 13 lub nowszy

*Wszystkie podane wcześniej szacunkowe wartości procentowe wpływu zostały obliczone na podstawie średnich wartości. W przypadku różnych aplikacji mogły wystąpić mniejsze lub większe zmiany w zależności od liczby instalacji.

**Sygnały opcjonalne (z wyjątkiem atrybutów urządzenia) to:meets-basic-integrity, meets-strong-integrity, ostatnia aktywność na urządzeniu, wycofanie urządzenia (beta), stan Play Protect i ryzyko dotyczące dostępu do aplikacji.

Najczęstsze pytania

Omówienie

Czym jest interfejs Play Integrity API?

Interfejs Play Integrity API pomaga ocenić wiarygodność środowiska aplikacji użytkownika, uzyskując informacje o urządzeniu, aplikacji i użytkowniku. Dzięki temu możesz wykrywać potencjalne nadużycia i ataki oraz na nie reagować.

Jakie sygnały udostępnia interfejs Play Integrity API?

Interfejs Play Integrity API zawiera tożsamość aplikacji wysyłającej żądanie, informację o tym, czy została ona zainstalowana z Google Play, oraz informację o tym, czy urządzenie jest oryginalnym i certyfikowanym urządzeniem z Androidem. Te sygnały są domyślnie udostępniane. Możesz odczytać te sygnały na serwerze backendu aplikacji i zdecydować, czy i jak aplikacja powinna zareagować. Deweloperzy w Google Play mogą włączyć otrzymywanie dodatkowych sygnałów dotyczących instalacji w Play, aby uzyskać jeszcze więcej informacji.

Czym jest atestacja klucza platformy Android?

Atestowanie klucza platformy Android umożliwia aplikacjom weryfikowanie stanu urządzenia i uzyskiwanie silnego sygnału integralności uruchamiania opartego na sprzęcie. Zależy to od klucza udostępnianego przez Google w sprzętowym magazynie kluczy urządzenia. Interfejs Play Integrity API używa już atestu klucza do uzyskiwania potwierdzonych sprzętowo sygnałów zabezpieczeń na niektórych urządzeniach, a teraz będzie je bardziej kompleksowo integrować na wszystkich urządzeniach z Androidem 13 lub nowszym.

Zmiany decyzji

Jakie zmiany wprowadzono w wynikach z Play Integrity API na urządzeniach z Androidem 13 lub nowszym?

Play Integrity API wymaga teraz potwierdzonych sprzętowo sygnałów zabezpieczeń w przypadku wszystkich ocen integralności:

  • meets-device-integrity Wynik rozpoznawania urządzenia wskazuje, że urządzenie, na którym działa aplikacja, jest oryginalnym i certyfikowanym urządzeniem z Androidem. W takim przypadku program rozruchowy urządzenia musi być zablokowany, a wczytany system operacyjny Android musi być obrazem certyfikowanego producenta urządzenia.
  • meets-strong-integrity Ocena rozpoznawania urządzenia wskazuje, że urządzenie z Androidem jest oryginalne i ma certyfikat oraz najnowszą aktualizację zabezpieczeń. Wymaga to meets-device-integrity i aktualizacji zabezpieczeń w ostatnim roku dla wszystkich partycji urządzenia, w tym poprawki partycji systemu operacyjnego Android i poprawki partycji dostawcy. Ten warunek może się zmienić w przyszłości.
  • meets-basic-integrity wynik rozpoznawania urządzenia wskazuje, że weryfikacja została przeprowadzona na fizycznym urządzeniu z Androidem. Program rozruchowy urządzenia może być zablokowany lub odblokowany, a stan uruchamiania może być zweryfikowany lub niezweryfikowany. Może nie mieć certyfikatu, w którym to przypadku Google nie może zapewnić bezpieczeństwa, prywatności ani zgodności aplikacji i nie może zagwarantować, że urządzenie nie działa jako serwer proxy, np. w przypadku wirtualnej instancji Androida. Oznacza to również, że urządzenia z dostępem do roota mogą zostać zwróconemeets-basic-integrity, o ile jest na nich obecne zaświadczenie o kluczu.

Te zmiany nie mają wpływu na interfejs Play Integrity API w Grach Play na PC, który nadal będzie zwracać wartość meets-virtual-integrity.

Dlaczego wyniki z Play Integrity API na urządzeniach z Androidem 13 lub nowszym zostały zmienione?

Na Androidzie 12 i starszych wersjach interfejs Play Integrity API częściowo korzystał z potwierdzonych sprzętowo sygnałów zabezpieczeń. Wymagając potwierdzonych sprzętowo zabezpieczeń na Androidzie 13 i nowszych wersjach, wyniki z Play Integrity API są bardziej odporne na ataki, wydajniejsze w przypadku aplikacji i zapewniają większą prywatność użytkownikom. Deweloperzy mogą spodziewać się na urządzeniach z Androidem 13 lub nowszym tych ulepszeń:

  • Zmniejszenie o ok. 90% liczby sygnałów z urządzeń, które trzeba zebrać i ocenić, aby wygenerować domyślny wynik na serwerach Google. Sygnały opcjonalne nadal będą wymagać zbierania dodatkowych sygnałów.
  • Skrócenie czasu oczekiwania na wynik nawet o 80% w przypadku najgorszych standardowych żądań i o 80% w przypadku wszystkich klasycznych żądań uzyskania domyślnego wyniku. Sygnały opcjonalne mogą zwiększyć opóźnienie.
  • Spójny poziom niezawodności i obsługi wszystkich formatów Androida z atestem klucza, w tym telefonów komórkowych, tabletów, urządzeń składanych, telewizorów, samochodów, urządzeń z Wear OS i ChromeOS.
  • Większe zróżnicowanie poszczególnych etykiet urządzeń w ocenie rozpoznawania urządzenia: meets-strong-integrity, meets-device-integritymeets-basic-integrity.

Wynik z Play Integrity API w Gry Play na PC nie ulegnie zmianie i będzie taki sam na Androidzie 12 i starszych wersjach jak na Androidzie 13 i nowszych.

Jak zaktualizować logikę backendu aplikacji, aby w przypadku wyników weryfikacji integralności uwzględniała wersję pakietu SDK Androida?

Jeśli chcesz używać na serwerze backendu aplikacji innej logiki w zależności od wersji pakietu Android SDK, możesz użyć nowego pola atrybutów urządzenia w ocenie. Oto przykład:

Kotlin

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.
}

Java

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.
}

Jak mogę używać starej definicji etykiety meets-strong-integrity we wszystkich wersjach pakietu Android SDK?

Możesz to zrobić, aktualizując logikę backendu aplikacji, aby używać meets-strong-integrity na urządzeniach z Androidem w wersji starszej niż 13 i meets-device-integrity na urządzeniach z Androidem 13 lub nowszym, korzystając z nowego pola atrybutów urządzenia w ocenie, które zawiera wersję pakietu Android SDK. Oto przykład:

Kotlin

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!
}

Java

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!
}

Jest to też sygnał potwierdzony sprzętowo, więc pole atrybutów urządzenia jest najbardziej wiarygodne na urządzeniach z Androidem 13 i nowszymi wersjami.

Jakie inne zmiany w werdykcie zostały wprowadzone?

Stale inwestujemy w zwiększanie niezawodności sygnałów w interfejsie Play Integrity API i okresowo wprowadzamy nowe funkcje, które pomagają deweloperom radzić sobie z nowymi zagrożeniami i przypadkami użycia. Inne ulepszenia dotyczące ocen, które wprowadziliśmy:

  • Odpowiedź dotycząca licencji w Google Play: aby zwrócić odpowiedź dotyczącą licencji w Google Play, interfejs Play Integrity API zawsze wymaga, aby aplikacja wysyłająca żądanie była zainstalowana lub zaktualizowana przez Google Play. Rozwiązuje to niektóre przypadki brzegowe i ułatwia deweloperom interpretację odpowiedzi.
  • Dostępność sygnałów opcjonalnych: wszystkie sygnały opcjonalne dostępne dla deweloperów korzystających z Konsoli Google Play lub SDK Console (z wyjątkiem atrybutów urządzenia) wymagają teraz, aby aplikacja, która o nie prosi, była zainstalowana lub zaktualizowana przez Google Play na urządzeniu z Androidem 13 lub nowszym. Obejmuje to meets-strong-integrity, meets-basic-integrity, ostatnią aktywność na urządzeniu, wycofanie urządzenia (beta), ocenę ryzyka dostępu aplikacji i ocenę Play Protect. Ujednoliciliśmy wszystkie inne żądania interfejsu Play Integrity API, aby otrzymywać weryfikację urządzenia (tylko z etykietą meets-device-integrity), weryfikację instalatora, weryfikację integralności aplikacji i atrybuty urządzenia (jeśli są włączone).
  • Zmiany ocen w przypadku konkretnych urządzeń: interfejs Play Integrity API automatycznie zmienia oceny urządzeń w większej liczbie scenariuszy, aby wcześniej chronić aplikacje we wszystkich wersjach pakietu Android SDK, np. gdy istnieją dowody na nadmierną aktywność lub naruszenie bezpieczeństwa klucza. Obejmuje to możliwość powracania do innych sygnałów w celu generowania tymczasowych wyników weryfikacji urządzenia dla użytkowników, gdy sygnały oparte na sprzęcie są niedostępne. Deweloperom zalecamy korzystanie z okien dialogowych w aplikacji w Sklepie Play lub kierowanie użytkowników do aplikacji Sklep Play w celu rozwiązania problemów z wynikiem oceny integralności. Z czasem te okna dialogowe będą obejmować więcej scenariuszy i zawierać konkretne wskazówki dla użytkowników, które będą informować ich, co muszą poprawić na podstawie konkretnego urządzenia lub konta.

Jak zgłaszać problemy z wynikami weryfikacji integralności?

Aby zgłosić problemy z odpowiedziami z interfejsu Play Integrity API, niezależnie od tego, czy dotyczą one ocen historycznych czy nowych, postępuj zgodnie z instrukcjami na stronie pomocy.

Dostępność

Czego wymaga interfejs Play Integrity API?

Interfejs Play Integrity API wymaga, aby na urządzeniu były zainstalowane Sklep Google Play i Usługi Google Play. Dotyczy to urządzeń z Androidem i Google Play Games na PC. Klasyczne żądania wymagają Androida 4.4 (poziom API 19) lub nowszego, a standardowe żądania wymagają Androida 5.0 (poziom API 21) lub nowszego. Na urządzeniach z Androidem 13 (API na poziomie 33) i nowszym interfejs Play Integrity API będzie teraz miał taki sam poziom niezawodności i obsługi na wszystkich urządzeniach z Androidem z atestem klucza, w tym na telefonach komórkowych, tabletach, urządzeniach składanych, telewizorach, urządzeniach samochodowych, urządzeniach z Wear OS i ChromeOS.

Dlaczego interfejs Play Integrity API zwraca różne oceny dla różnych urządzeń?

Interfejs Play Integrity API udostępnia wiele ocen urządzenia, aby umożliwić deweloperom z różnymi przypadkami użycia i poziomami tolerancji ryzyka stosowanie strategii egzekwowania zasad na różnych poziomach. Jeśli na przykład aplikacja i urządzenie są bardziej zaufane, deweloper może uprościć proces weryfikacji użytkownika. Z kolei w przypadku nieznanego urządzenia deweloper może wymagać dodatkowej weryfikacji użytkownika przed wykonaniem chronionych lub poufnych działań. Może to być skuteczny sposób na ograniczenie nadużyć i ataków.

Co to jest certyfikowane urządzenie z Androidem?

Certyfikowane urządzenie z Androidem (znane też jako urządzenie z Androidem z certyfikatem Play Protect) to urządzenie z przewidywalnym oprogramowaniem, które przeszło setki testów zgodności Google, jest zgodne z modelem zabezpieczeń i uprawnień Androida oraz zostało dostarczone z pakietem funkcji ochrony przed złośliwym oprogramowaniem Google Play Protect. Gdy interfejs Play Integrity API może potwierdzić, że urządzenie jest oryginalnym i certyfikowanym urządzeniem z Androidem, w ocenie rozpoznawania urządzenia zwraca odpowiedź meets-device-integrity.

Co to jest urządzenie meets-basic-integrity?

Interfejs Play Integrity API zwraca też opcjonalną odpowiedź w ocenie urządzenia, meets-basic-integrity. Jeśli urządzenie zwraca tylko meets-basic-integrity wynik bez meets-device-integrity lub meets-strong-integrity, oznacza to, że nie można zweryfikować systemu operacyjnego Android, ale atest klucza jest obecny. Oznacza to, że weryfikacja została przeprowadzona na fizycznym urządzeniu z Androidem, ale Google nie może zapewnić, że urządzenie jest bezpieczne, chroni prywatność użytkownika i jest zgodne z aplikacjami. Nie może też zagwarantować, że urządzenie nie działa jako serwer proxy, np. w przypadku wirtualnej instancji Androida. W zależności od przypadków użycia i tolerancji ryzyka deweloperzy mogą decydować, jak ich aplikacja ma działać na tych urządzeniach.

Czy każdy deweloper może korzystać z interfejsu Play Integrity API?

Tak, każdy deweloper aplikacji na Androida może wysyłać żądania do interfejsu Play Integrity API, aby otrzymywać domyślne oceny integralności. Użycie jest ograniczone do 10 tys. żądań dziennie niezależnie od kanału dystrybucji. Deweloperzy publikujący aplikacje w Google Play i ewentualnie innych kanałach dystrybucji mogą też poprosić o zwiększenie dziennego limitu.

Czy każdy deweloper może korzystać z atestowania klucza platformy Android?

Tak, każdy deweloper aplikacji na Androida może używać atestu klucza platformy Android, aby uzyskać rekord atestu klucza, który może zweryfikować za pomocą publicznego certyfikatu klucza głównego atestu Google. Interfejs Play Integrity API zapewnia deweloperom korzyści wynikające z atestowania kluczy i dodatkowych funkcji bez konieczności samodzielnego integrowania się z atestowaniem kluczy.

Egzekwowanie

Jak deweloperzy korzystają z ocen interfejsu Play Integrity API?

To deweloperzy decydują, czy i w jaki sposób będą korzystać z ocen interfejsu Play Integrity API. Niektórzy deweloperzy zbierają sygnały na potrzeby wewnętrznej analizy przeciwdziałania nadużyciom, a inni podejmują decyzje o działaniu aplikacji na podstawie wyniku. Na przykład deweloperzy mogą wymagać, aby mniej zaufane urządzenia wykonywały dodatkowe czynności weryfikacyjne podczas tworzenia konta, lub mogą zdecydować, że mniej zaufane urządzenia powinny grać razem na tym samym serwerze wieloosobowym.

Czy interfejs Play Integrity API blokuje użytkowników lub urządzenia?

Nie, interfejs Play Integrity API nie blokuje dostępu do żadnych funkcji. Jest to opcjonalna usługa dla deweloperów, która dostarcza sygnały. Deweloperzy decydują, jak na nie reagować.

Co powinni zrobić użytkownicy, jeśli ich urządzenie nie przechodzi testów interfejsu Play Integrity API?

Użytkownicy mogą otworzyć aplikację Sklep Play na swoim urządzeniu, otworzyć menu Ustawienia, przewinąć w dół do sekcji Informacje, a następnie sprawdzić sekcję Certyfikat Play Protect. Jeśli wystąpi problem z certyfikatem Play Protect urządzenia, pojawi się przycisk, który użytkownicy mogą kliknąć, aby spróbować rozwiązać problem. Spowoduje to odświeżenie stanu certyfikacji urządzenia i wyświetlenie konkretnych wskazówek dotyczących tego, co należy naprawić.