Omówienie interfejsu Play Integrity API

Interfejs Play Integrity API pomaga sprawdzać, czy interakcje i żądania serwera pochodzą z autentycznego pliku binarnego aplikacji uruchomionego na oryginalnym urządzeniu z Androidem. Wykrywając potencjalnie niebezpieczne i fałszywe interakcje, np. pochodzące z zmodyfikowanych wersji aplikacji i niezaufanych środowisk, serwer backendu aplikacji może zareagować, podejmując odpowiednie działania zapobiegające atakom i ograniczające nadużycia.

Gdy Twoja aplikacja lub gra jest używana na urządzeniu z Androidem, na którym działa Sklep Google Play, i korzysta z Usług Google Play, interfejs Play Integrity API zwraca odpowiedź, która pomaga określić, czy używasz:

  • Oryginalny plik binarny aplikacji: pozwala określić, czy masz do czynienia z niezmodyfikowanym plikiem binarnym rozpoznawanym przez Google Play.
  • Autentyczność instalacji z Google Play: umożliwia ustalenie, czy bieżące konto użytkownika ma licencję. Oznacza to, że użytkownik zainstalował lub zapłacił za Twoją aplikację lub grę w Google Play.
  • Oryginalność urządzenia z Androidem: pozwala na ustalenie, czy aplikacja działa na oryginalnym urządzeniu z Androidem z Usługami Google Play (lub czy jest to oryginalne wystąpienie Gier Google Play na PC).
  • Bez znanego złośliwego oprogramowania: sprawdź, czy usługa Google Play Protect jest włączona i czy wykryła zainstalowane na urządzeniu niebezpieczne lub niebezpieczne aplikacje.

Przegląd

Gdy użytkownik wykonuje działanie w Twojej aplikacji, możesz wywołać interfejs Play Integrity API, aby sprawdzić, czy to działanie zostało wykonane w oryginalnym pliku binarnym aplikacji zainstalowanym z Google Play na oryginalnym urządzeniu z Androidem. Możesz też zgodzić się na sygnały o środowisku, takie jak informacje, czy usługa Google Play Protect jest włączona i czy na urządzeniu zostało zainstalowane znane złośliwe oprogramowanie. Jeśli z decyzją będzie coś nie tak, serwer backendu aplikacji może podjąć decyzję, co zrobić, aby zabezpieczyć się przed takimi problemami jak nadużycia, oszustwa, nadużycia i oszustwa, nieautoryzowany dostęp i ataki.

Omówienie interfejsu Play Integrity API

Bezpieczeństwo

Interfejs Play Integrity API przyniesie największą wartość Twojej aplikacji, gdy przestrzegasz tych zalecanych metod:

Opracować strategię przeciwdziałania nadużyciom

Interfejs Play Integrity API działa najlepiej, gdy jest używany razem z innymi sygnałami w ramach ogólnej strategii przeciwdziałania nadużyciom, a nie jako jedyny mechanizm zwalczania nadużyć. Używaj tego interfejsu API w połączeniu z innymi sprawdzonymi metodami dotyczącymi bezpieczeństwa, które warto stosować w przypadku Twojej aplikacji. Domyślnie aplikacja może wysyłać łącznie do 10 tys. żądań dziennie ze wszystkich instalacji. Możesz poprosić o zwiększenie dziennego limitu.

Zdecyduj, jak chcesz prosić o oceny integralności

Interfejs Play Integrity API oferuje 2 opcje żądania i odbierania ocen integralności. Niezależnie od tego, czy wysyłasz żądania standardowe, klasyczne czy oba te typy, odpowiedź z oceną integralności jest zwracana w tym samym formacie.

Standardowe żądania do interfejsu API są odpowiednie dla każdej aplikacji i gry. Można je wysyłać na żądanie, aby sprawdzać, czy każde działanie użytkownika lub żądanie serwera jest autentyczne. Żądania standardowe charakteryzują się najkrótszym czasem oczekiwania (średnio kilkaset milisekund) i niezawodnym uzyskaniem przydatnej oceny. Standardowe żądania korzystają z inteligentnego buforowania na urządzeniu, a jednocześnie przekazują ochronę przed określonymi typami ataków do Google Play.

Klasyczne żądania do interfejsu API, będące pierwotnym sposobem żądania oceny integralności, również są dostępne. Żądania klasyczne mają dłuższy czas oczekiwania (średnio kilka sekund), a Ty odpowiadasz za minimalizowanie ryzyka związanego z określonymi typami ataków. Żądania klasyczne wykorzystują więcej danych użytkownika i baterii niż żądania standardowe, ponieważ inicjują nową ocenę. Nie należy ich wykonywać zbyt często – tylko w celu sprawdzenia, czy wysoce wrażliwe lub cenne działanie jest prawdziwe. Jeśli rozważasz utworzenie klasycznego żądania i zapisanie go w pamięci podręcznej w celu późniejszego użycia, zamiast tego wyślij żądanie standardowe, aby zmniejszyć ryzyko ataków.

W tabeli poniżej opisujemy najważniejsze różnice między tymi 2 typami żądań:

Standardowe żądanie do interfejsu API Klasyczne żądanie do interfejsu API
Wymagana minimalna wersja pakietu SDK na Androida Android 5.0 (poziom interfejsu API 21) lub nowszy Android 4.4 (poziom interfejsu API 19) lub nowszy
Wymagane przygotowanie do użycia interfejsu API ✔️ (kilka sekund)
Typowy czas oczekiwania na żądanie Kilkaset milisekund Kilka sekund
Możliwa częstotliwość żądań Częste (na żądanie sprawdza, czy wystąpiło jakieś działanie lub żądanie) Rzadkie (jednorazowe sprawdzenie w przypadku działań o największej wartości lub najbardziej wrażliwych żądań)
Ogranicz liczbę powtórzeń i podobnych ataków Automatyczne ograniczanie ryzyka przez Google Play Użyj pola nonce z logiką po stronie serwera

Możesz zobaczyć tabelę z większą liczbą różnic w klasycznych uwagach na temat żądań.

Zadbaj o to, aby żądania do interfejsu API były trudne do powtórzenia

Standardowe żądania do interfejsu API mają pole o nazwie requestHash, które służy do ochrony przed nieuprawnionymi modyfikacjami i podobnymi atakami. W tym polu należy umieścić podsumowanie wszystkich istotnych wartości z żądania aplikacji. Postępuj zgodnie ze wskazówkami dotyczącymi używania powiązania treści do ochrony standardowych żądań aplikacji.

Klasyczne żądania do interfejsu API mają pole o nazwie nonce (skrót od jednej cyfry), które służy do ochrony przed określonymi typami ataków, takimi jak ponowne odtwarzanie czy ataki polegające na manipulacji. Postępuj zgodnie ze wskazówkami na temat generowania powiadomień, aby chronić klasyczne żądania aplikacji.

Unikaj ocen integralności w pamięci podręcznej

Oceny integralności w pamięci podręcznej zwiększają ryzyko użycia serwera proxy, czyli ataku, w ramach którego nieuczciwy podmiot wykorzystuje ocenę dobrego urządzenia do nadużyć w innym środowisku. Zamiast buforować odpowiedzi, możesz wysłać standardowe żądanie do interfejsu API, aby otrzymać decyzję na żądanie.

Stosuj wielopoziomową strategię egzekwowania zasad

Ocena integralności interfejsu Play Integrity API obejmuje wiele możliwych odpowiedzi, co pozwala opracować strategię przeciwdziałania nadużyciom o wielu poziomach egzekwowania zasad. Możesz to zrobić, konfigurując serwer backendu aplikacji tak, aby zachowywał się inaczej w zależności od każdej możliwej odpowiedzi lub grupy odpowiedzi.

Możesz też ukształtować strategię egzekwowania zasad na podstawie wiarygodności urządzenia. W tym celu wyraź zgodę na otrzymywanie dodatkowych etykiet urządzeń w odpowiedzi interfejsu API z Konsoli Play. Każde urządzenie zwróci wszystkie etykiety, których spełnia kryteria. Na przykład po wyrażeniu zgody na otrzymywanie wszystkich etykiet urządzeń możesz oznaczyć urządzenie, które zwraca tylko wartości MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY i MEETS_BASIC_INTEGRITY, zamiast tego, które zwraca tylko wartość MEETS_BASIC_INTEGRITY. W każdej sytuacji możesz odpowiadać inaczej niż serwer.

Wysyłanie zakresu odpowiedzi z serwera do aplikacji

Ustalenie zakresu rezultatów decyzji jest trudniejsze do zreplikowania niż wysyłanie binarnej odpowiedzi zgody lub odmowy z serwera z powrotem do aplikacji. Można na przykład użyć serii powiązanych odpowiedzi, takich jak „Allow”, „Allow withlimits” (Zezwól z limitami), „Allow with limits” (Zezwalaj z limitami po ukończeniu CAPTCHA) i „deny” (Odrzucaj).

Wykrywanie nadużyć na dużą skalę

Użyj funkcji Ostatnia aktywność na urządzeniu w interfejsie Play Integrity API, aby znaleźć urządzenia, które żądają dużej liczby atestów. Osoby nadużywające dużej aktywności zwykle generują prawidłowe wyniki poświadczania na prawdziwych urządzeniach i udostępniają je botom, które automatyzują ataki na urządzenia z dostępem do roota i emulatory. Możesz użyć wyniku ostatniej aktywności na urządzeniu, aby określić liczbę poświadczeń wygenerowanych przez aplikację na tym urządzeniu w ciągu ostatniej godziny.

Pokaż przydatne komunikaty o błędach

Jeśli to możliwe, przekaż użytkownikom przydatne komunikaty o błędach i poinformuj ich, co może zrobić, aby rozwiązać problem, np. spróbować ponownie, włączyć połączenie z internetem lub sprawdzić, czy aplikacja Sklep Play jest aktualna.

Miej plan na wypadek nieoczekiwanych problemów i przerw w działaniu usługi.

W panelu stanu Google Play wyświetlają się informacje o stanie usługi Play Integrity API oraz o ewentualnych przerwach w działaniu usługi. Możesz z wyprzedzeniem skonfigurować sposób działania serwera backendu w mało prawdopodobnym przypadku awarii interfejsu Play Integrity API na dużą skalę.

Kompleksowe rozwiązania dla firm do wykrywania oszustw

Klienci korporacyjni szukający kompleksowego rozwiązania do zarządzania oszustwem i botami mogą kupić wersję reCAPTCHA Enterprise na urządzenia mobilne, w tym pakiety SDK na Androida, które udostępniają deweloperom oceny ryzyka oszustw. reCAPTCHA Enterprise automatycznie włącza sygnały interfejsu Play Integrity API i łączy je z siecią reCAPTCHA oraz sygnałami aplikacji dla klientów, zapewniając sprawne i niewidoczne rozwiązanie do zarządzania oszustwami. Może też zapewnić ochronę aplikacji na Androida, w których interfejs Play Integrity API jest niedostępny.

Warunki korzystania z usługi i Bezpieczeństwo danych

Otwierając interfejs Play Integrity API lub korzystając z niego, wyrażasz zgodę na Warunki korzystania z interfejsu Play Integrity API. Przed uzyskaniem dostępu do interfejsu API przeczytaj i zrozum wszystkie obowiązujące warunki.

W Google Play jest sekcja Bezpieczeństwo danych, w której deweloperzy mogą informować użytkowników o zbieraniu, udostępnianiu i bezpieczeństwie danych w swoich aplikacjach. Aby pomóc Ci w wypełnieniu formularza, przeczytaj informacje na temat sposobu, w jaki interfejs Play Integrity API postępuje z danymi.