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

Możesz też zdecydować, czy w odpowiedzi interfejsu Play Integrity API chcesz otrzymywać informacje o środowisku, takie jak:

  • Ryzyko dostępu aplikacji: pozwala określić, czy uruchomione są aplikacje, które można wykorzystać do przechwytywania ekranu, wyświetlania nakładek lub sterowania urządzeniem.
  • Ryzyko ze strony 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 wykona działanie w Twojej aplikacji, możesz wywołać interfejs Play Integrity API, aby sprawdzić, czy zaszło to w autentycznym pliku binarnym aplikacji zainstalowanym z Google Play na oryginalnym urządzeniu z Androidem. W odpowiedzi możesz też zgodzić się na dodatkowe informacje, takie jak liczba żądań wysłanych przez urządzenie w ostatnim czasie oraz sygnały dotyczące środowiska, w tym ocena ryzyka dostępu aplikacji do aplikacji i oceny Play Protect. Jeśli z ocenami coś będzie nie tak, serwer backendu aplikacji może podjąć decyzję o tym, jakie działania podjąć w celu ochrony przed nadużyciami, oszustwami, nadużyciami i oszustwami, nieautoryzowanym dostępem i atakami.

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.

Zbieranie danych telemetrycznych i poznawanie odbiorców przed podjęciem działania

Zanim zmienisz sposób działania aplikacji na podstawie ocen interfejsu Play Integrity API, możesz poznać aktualną sytuację wśród obecnych odbiorców, implementując ten interfejs API bez konieczności wymuszania jego stosowania. Gdy już ustalisz, jaka jest ocena aktualnej liczby instalacji, możesz oszacować wpływ planowanego egzekwowania zasad i odpowiednio dostosować strategię przeciwdziałania nadużyciom.

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

Poproś o ocenę integralności w odpowiednim momencie

Ocenę ryzyka związanego z dostępem do aplikacji należy wysłać jak najszybciej przed wykonaniem działania lub żądaniem serwera, które ma być zabezpieczone przed dostępem. Dzięki temu oszuści nie obejrzą testu integralności aplikacji.

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 dużych nadużyć na podstawie ostatniej aktywności na urządzeniu

Użyj funkcji ostatniej aktywności na urządzeniu w interfejsie Play Integrity API, aby znaleźć urządzenia, które żądają dużej liczby tokenów integralności. Osoby nadużywające dużej aktywności często generują prawidłowe wyniki poświadczania na prawdziwych urządzeniach i przekazują je botom, które automatyzują ataki na urządzenia z dostępem do roota i emulatory. Możesz użyć poziomu ostatniej aktywności na urządzeniu, aby sprawdzić, ile poświadczeń wygenerowano 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.

Rywalizuj z niebezpiecznym ruchem podczas uzyskiwania dostępu do funkcji o dużej wartości lub poufnych

Wykrywaj działania o wysokiej wartości lub poufne informacje w swojej aplikacji lub grze, aby chronić je za pomocą interfejsu Play Integrity API, zamiast od razu odmawiać dostępu. Jeśli to możliwe, kwestionuj ryzykowny ruch, zanim zezwolisz na działania o wysokiej wartości. Jeśli na przykład ryzyko dostępu aplikacji wskazuje, że uruchomiona jest aplikacja, która może przechwytywać ekran, poproś użytkownika o wyłączenie lub odinstalowanie aplikacji umożliwiających przechwytywanie ekranu, zanim pozwolisz mu przejść do funkcji, które chcesz chronić.

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 dostępna sekcja Bezpieczeństwo danych, w której deweloperzy mogą zamieścić informacje o sposobach zbierania, udostępniania i zabezpieczania danych w swoich aplikacjach, aby informować użytkowników na bieżąco. Aby pomóc Ci w wypełnieniu formularza, przeczytaj informacje na temat sposobu, w jaki interfejs Play Integrity API postępuje z danymi.