Udoskonalona ocena na urządzeniach z Androidem 13 i nowszym

Niedawno ogłosiliśmy, że wzmocniliśmy wyroki Play Integrity API, aby były szybsze, bardziej odporne na ataki i bardziej prywatne dla użytkowników, a także wprowadziliśmy inne ulepszenia zabezpieczeń.

Podsumowanie zmian

Szczegółowe podsumowanie zmian i odpowiedzi na najczęstsze pytania znajdziesz w dalszej części tego dokumentu. W maju 2025 r. wprowadzono następujące zmiany wyroku:

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ź na ocenę urządzenia: meets-device-integrity Wymagane pozytywne weryfikowanie uruchamiania z użyciem sprzętu. 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ź dotycząca integralności aplikacji: werdykt dotyczący rozpoznawania aplikacji Bez zmian Minimalny wpływ, który odzwierciedla zmianę w ocenie urządzenia (o ok. 0,4%). Android 13 lub nowszy
Odpowiedź na prośbę o szczegóły konta: ocena licencji Google Play Aplikacja, która wysyła żądanie, musi być zainstalowana lub zaktualizowana przez Google Play. Niewielki spadek liczby licencjonowanych odpowiedzi (o ok. 2,5%). Android 6 lub nowszy
Zmiany, które mają wpływ tylko na deweloperów korzystających z Konsoli Play i Konsoli pakietu SDK Play, którzy używają funkcji opcjonalnych
Odpowiedź oceny urządzenia: meets-basic-integrity Wymaga atestacji klucza na platformie Android, ale stan uruchamiania może być zweryfikowany lub nie. Nieznaczny spadek liczby podstawowych odpowiedzi (o ok. 0,4%). Android 13 lub nowszy
Odpowiedź oceny urządzenia: meets-strong-integrity Wymagane jest posiadanie co najmniej 1 aktualizacji zabezpieczeń z ostatniego roku. spadek liczby mocnych odpowiedzi (o ok.14,5%), Android 13 lub nowszy
Wszystkie sygnały opcjonalne (z wyjątkiem atrybutów urządzenia)** Aplikacja, która wysyła żądanie, musi być zainstalowana lub zaktualizowana przez Google Play. spadek odsetka odpowiedzi zawierających opcjonalne sygnały (o ok. 7%), Android 13 lub nowszy

*Wszelkie szacowane wartości procentowe wpływu oparte na średnich wartościach. Różne aplikacje mogą wykazywać 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 usługi Google 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 reagować na nie.

Jakie sygnały dostarcza interfejs Play Integrity API?

Interfejs Play Integrity API zawiera informacje o tożsamości aplikacji przesyłającej żądanie, czy została ona zainstalowana przez Google Play oraz czy urządzenie jest oryginalnym urządzeniem z certyfikatem Play Protect. Te sygnały są dostarczane domyślnie. Możesz odczytać te sygnały na serwerze backendu aplikacji i określić, czy i jak aplikacja powinna na nie reagować. Deweloperzy Google Play mogą wyrazić zgodę na otrzymywanie dodatkowych sygnałów podczas instalacji aplikacji w Google Play, aby uzyskać jeszcze więcej informacji.

Czym jest atestacja klucza na platformie Android?

Poświadczenie klucza platformy Androida pozwala aplikacjom weryfikować stan urządzenia i otrzymywać silny sygnał o integralności uruchamiania z użyciem sprzętu. Zależy od klucza udostępnionego przez Google w sprzętowym magazynie kluczy urządzenia. Play Integrity API używa już klucza weryfikacyjnego, aby uzyskać potwierdzone sprzętowo sygnały zabezpieczeń na niektórych urządzeniach. Teraz zintegrujemy je głębiej na wszystkich urządzeniach z Androidem 13 lub nowszym.

Zmiany w wynikach

Jakie zmiany zostały wprowadzone w ocenianiu interfejsu 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:

  • Wynik meets-device-integrity oznacza, że urządzenie, na którym działa aplikacja, to oryginalne urządzenie z Androidem z certyfikatem Play Protect. Aby uzyskać taki werdyk, musisz zablokować program rozruchowy urządzenia, a załadowany system Android musi być obrazem certyfikowanego producenta urządzenia.
  • Ocena meets-strong-integrity to informacja o tym, że urządzenie z Androidem jest oryginalne, ma certyfikat Play Protect i niedawno było aktualizowane pod kątem zabezpieczeń. Ta decyzja będzie wymagać meets-device-integrity i aktualizacji zabezpieczeń we wszystkich partycjach urządzenia w ciągu ostatniego roku, w tym poprawki dla partycji systemu operacyjnego Android i poprawki dla partycji dostawcy. W przyszłości może się to zmienić.
  • Wynik meets-basic-integrity oznacza, ż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 Play Protect, dlatego Google nie może zapewnić żadnych gwarancji bezpieczeństwa, prywatności ani zgodności aplikacji. Nie możemy też zagwarantować, że urządzenie nie działa jako serwer proxy, na przykład dla wirtualnego wystąpienia Androida. Oznacza to też, że urządzenia z rootem mogą zwracać meets-basic-integrity, o ile jest obecne potwierdzenie klucza.

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

Dlaczego na urządzeniach z Androidem 13 lub nowszym zmieniono wyniki z Play Integrity API?

Na Androidzie 12 i starszych interfejs Play Integrity API częściowo korzystał ze sprzętowych sygnałów zabezpieczeń. Wymagając zabezpieczeń potwierdzonych sprzętowo na Androidzie 13 i nowszych wersjach, Play Integrity API zapewnia większą odporność na ataki, większą wydajność aplikacji i większą prywatność użytkowników. Deweloperzy mogą spodziewać się tych ulepszeń na urządzeniach z Androidem 13 lub nowszym:

  • Zmniejszenie o około 90% sygnałów z urządzenia, które trzeba zebrać i ocenić, aby wygenerować domyślny werdyk na serwerach Google. Opcjonalne sygnały będą nadal wymagać zbierania dodatkowych sygnałów.
  • Skrócenie czasu oczekiwania na werdykt nawet o 80% w przypadku najgorszych standardowych żądań i nawet o 80% w przypadku wszystkich klasycznych żądań, aby uzyskać domyślny werdykt. Opcjonalne sygnały mogą wydłużać czas oczekiwania.
  • Utrzymywanie spójnego poziomu niezawodności i obsługi wszystkich formatów Androida z potwierdzeniem klucza, w tym telefonów, tabletów, składanych urządzeń, telewizorów, samochodów, Wear OS i ChromeOS.
  • Większe zróżnicowanie etykiet urządzeń w wyroku 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 uwzględniała wersję pakietu SDK Androida?

Jeśli chcesz używać na serwerze aplikacji innej logiki na podstawie wersji pakietu Android SDK, możesz użyć w ocenie nowego pola atrybutów urządzenia. 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?

Aby to zrobić, zaktualizuj logikę backendu aplikacji, aby używała wartości meets-strong-integrity w przypadku urządzeń z Androidem w wersji 13 lub starszej oraz wartości meets-device-integrity w przypadku urządzeń 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!
}

Ponieważ jest to też sygnał potwierdzony sprzętowo, pole atrybutów urządzenia jest najbardziej wiarygodne na urządzeniach z Androidem 13 lub nowszym.

Jakie inne zmiany zostały wprowadzone?

Stale pracujemy nad zwiększeniem niezawodności istniejących sygnałów w interfejsie Play Integrity API i okresowo wdrażamy nowe funkcje, aby pomóc deweloperom radzić sobie z nowymi zagrożeniami i nowymi zastosowaniami. Inne ulepszenia, które wprowadziliśmy:

  • Odpowiedź na żądanie o licencji w Google Play: aby zwrócić odpowiedź na żądanie o licencji w Google Play, interfejs Play Integrity API wymaga teraz, aby aplikacja wysyłająca żądanie była zainstalowana lub zaktualizowana przez Google Play. Rozwiązało to niektóre problemy występujące w wyjątkowych przypadkach i ułatwiło deweloperom interpretowanie odpowiedzi.
  • Dostępność sygnałów opcjonalnych: wszystkie sygnały opcjonalne dostępne dla deweloperów korzystających z Konsoli Google Play lub Konsoli Play SDK (z wyjątkiem atrybutów urządzenia) wymagają teraz, aby aplikacja prosząca o dane została zainstalowana lub zaktualizowana przez Google Play na Androidzie 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 oraz ocenę Play Protect. Wszystkie inne żądania interfejsu Play Integrity API zostały ujednolicone, aby odbierać sprawdzanie urządzenia (tylko z oznaczeniem meets-device-integrity), sprawdzanie instalatora, sprawdzanie integralności aplikacji i atrybuty urządzenia (jeśli są włączone).
  • Zmiany ocen w przypadku konkretnych urządzeń: Play Integrity API automatycznie zmienia oceny urządzeń w większej liczbie scenariuszy, aby chronić aplikacje we wszystkich wersjach pakietu Android SDK, np. gdy występują dowody nadmiernej aktywności lub naruszenia integralności klucza. Obejmuje to możliwość korzystania przez Google Play z innych sygnałów do generowania tymczasowych werdyktów dotyczących urządzenia dla użytkowników, gdy sygnały oparte na sprzęcie są niedostępne. Deweloperom zalecamy korzystanie z okno w aplikacji w Sklepie Play lub kierowanie użytkowników do aplikacji Sklep Play w celu rozwiązania problemów z orzeczeniem dotyczącym integralności. Z czasem te okienka będą uwzględniać więcej scenariuszy i zawierać konkretne wskazówki dla użytkowników dotyczące tego, co muszą naprawić na konkretnym urządzeniu lub koncie.

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

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

Dostępność

Czego wymaga interfejs Play Integrity API?

Interfejs Play Integrity API wymaga zainstalowania Sklepu Google Play i Usług Google Play na urządzeniu, w tym na urządzeniach z Androidem i w Google Play Games na PC. Prośby klasyczne wymagają Androida 4.4 (poziom API 19) lub nowszego, a prośby standardowe – Androida 5.0 (poziom API 21) lub nowszego. Na urządzeniach z Androidem 13 (poziom interfejsu API 33) lub nowszym interfejs Play Integrity API będzie teraz zapewniać ten sam poziom niezawodności i obsługi we wszystkich formatach Androida z potwierdzeniem klucza, w tym na telefonach, tabletach, urządzeniach składanych, telewizorach, samochodach, Wear OS i ChromeOS.

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

Interfejs Play Integrity API udostępnia różne oceny urządzeń, aby umożliwić deweloperom tworzenie różnych scenariuszy użycia i strategii ograniczania ryzyka oraz stosowanie wielopoziomowej strategii egzekwowania zasad. Jeśli na przykład aplikacja i urządzenie są bardziej zaufane, deweloper może uprościć proces weryfikacji użytkownika. Natomiast w przypadku nieznanego urządzenia deweloper może wymagać dodatkowej weryfikacji użytkownika przed wykonaniem czynności chronionych lub wrażliwych. Może to być skuteczny sposób na ograniczenie nadużyć i ataków.

Czym jest urządzenie z Androidem z certyfikatem Play Protect?

Urządzenie z Androidem z certyfikatem Play Protect (znane też jako urządzenie z Androidem GMS) to urządzenie z oprogramowaniem o przewidywalnym działaniu, które przeszło setki testów zgodności Google, jest zgodne z modelem zabezpieczeń i zezwoleń Androida oraz jest dostarczane z zestawem funkcji antymalware Google Play Protect. Gdy interfejs Play Integrity API potwierdzi, że urządzenie z Androidem ma certyfikat Play Protect, zwróci odpowiedź meets-device-integrity w ocenie rozpoznawania urządzenia.

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 werdykt bez meets-device-integrity lub meets-strong-integrity, oznacza to, że systemu operacyjnego Android nie można zweryfikować, ale klucz jest uwierzytelniony. Oznacza to, że sprawdzenie zostało przeprowadzone na fizycznym urządzeniu z Androidem, ale Google nie może zagwarantować bezpieczeństwa, prywatności ani zgodności urządzenia z aplikacją. Nie możemy też zagwarantować, że urządzenie nie działa jako serwer proxy, na przykład w przypadku wirtualnego wystąpienia Androida. W zależności od przypadków użycia i poziomu tolerancji ryzyka deweloperzy mogą zdecydować, jak 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, którzy publikują aplikacje w Google Play i ewentualnie w innych kanałach dystrybucji, mogą też poprosić o zwiększenie dziennej puli.

Czy każdy deweloper może korzystać z weryfikacji kluczy na platformie Android?

Tak. Każdy deweloper aplikacji na Androida może użyć usługi Android Platform Key Attestation, aby uzyskać rekord klucza, który można zweryfikować za pomocą certyfikatu publicznego klucza głównego Google. Interfejs Play Integrity API zapewnia deweloperom korzyści z klucza atestatycznego i dodatkowych funkcji bez konieczności samodzielnego przeprowadzania integracji z kluczem atestatycznym.

Egzekwowanie

Jak deweloperzy korzystają z opinii interfejsu Play Integrity API?

To deweloperzy decydują, czy i jak używać ocen interfejsu Play Integrity API. Niektórzy deweloperzy zbierają sygnały na potrzeby wewnętrznej analizy zapobiegania nadużyciom, a inni podejmują decyzje dotyczące zachowania aplikacji na podstawie wyroku. Na przykład deweloperzy mogą wymagać, aby mniej wiarygodne urządzenia wykonywały dodatkowe czynności weryfikacyjne podczas tworzenia konta. Mogą też zdecydować, że mniej wiarygodne urządzenia powinny grać razem na tym samym serwerze gier wieloosobowych.

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łów, a 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żytkownik może otworzyć aplikację Sklep Play na urządzeniu, wybrać menu Ustawienia, przewinąć w dół do sekcji Informacje i sprawdzić certyfikat Play Protect. Jeśli coś jest nie tak z certyfikatem Play Protect urządzenia, użytkownicy będą mogli nacisnąć przycisk, aby spróbować rozwiązać problem. Spowoduje to odświeżenie stanu certyfikacji urządzenia i uzyskasz szczegółowe wskazówki dotyczące tego, co należy poprawić.