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. Wykrywanie potencjalnie ryzykownych i fałszywych interakcji, np. z manipulowanych wersji aplikacji i niezaufanych środowisk, sprawia, że 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 wysyła odpowiedź, która pomaga określić, czy używasz:

  • Oryginalny plik binarny aplikacji: pozwala określić, czy używasz niezmodyfikowanego pliku binarnego rozpoznawanego przez Google Play.
  • Oryginalna instalacja z Google Play: umożliwia ustalenie, czy bieżące konto użytkownika jest licencjonowane. 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 oryginalna instancja Gier Google Play na PC).

W odpowiedzi z Play Integrity API możesz też otrzymywać informacje o środowisku, w tym:

  • Zagrożenie dostępu do aplikacji: określ, czy uruchomione są aplikacje, które można wykorzystać do przechwytywania ekranu, wyświetlania nakładek lub sterowania urządzeniem.
  • Zagrożenie związane ze znanym złośliwym oprogramowaniem: pozwala na ustalenie, 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 aplikacji, możesz wywołać interfejs Play Integrity API, aby sprawdzić, czy miało to miejsce w prawdziwym pliku binarnym aplikacji zainstalowanego z Google Play na oryginalnym urządzeniu z Androidem. W odpowiedzi możesz też wyrazić zgodę na dodatkowe informacje, w tym liczbę ostatnio wysłanych przez urządzenie żądań oraz sygnały dotyczące środowiska, w tym ocenę ryzyka dostępu do aplikacji i wynik Play Protect. Jeśli oceny są niepokojące, serwer backendu aplikacji może podjąć odpowiednie działania, które eliminują takie problemy, jak nadużycia i oszustwa, niewłaściwe użycie i oszustwa, nieautoryzowany dostęp i ataki.

Omówienie interfejsu Play Integrity API

Bezpieczeństwo

Interfejs Play Integrity API będzie działać jak najlepiej, jeśli zastosujesz te zalecane metody:

mieć strategię przeciwdziałania nadużyciom;

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

Zanim podejmiesz działanie, zbierz dane telemetryczne i poznaj odbiorców

Zanim zmienisz sposób działania aplikacji na podstawie ocen interfejsu Play Integrity API, możesz poznać obecną sytuację u dotychczasowych odbiorców, wdrażając ten interfejs API bez egzekwowania zasad. Gdy już się dowiesz, jaka jest aktualna liczba instalacji, możesz oszacować wpływ planowanych działań egzekwowania zasad i odpowiednio dostosować strategię przeciwdziałania nadużyciom.

Zdecyduj, jak będziesz wysyłać żądania ocen integralności

Interfejs Play Integrity API udostępnia 2 opcje żądania i otrzymywania ocen integralności. Niezależnie od tego, czy wysyłasz żądania standardowe, klasyczne, czy kombinację obu typów żądań, odpowiedź na 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, by sprawdzić, czy każde działanie użytkownika lub żądanie serwera są autentyczne. Żądania standardowe charakteryzują się najkrótszym czasem oczekiwania (średnio kilkaset milisekund) i wysoką niezawodnością pozwalają uzyskać użyteczną ocenę. Żądania standardowe korzystają z inteligentnej pamięci podręcznej na urządzeniu, jednocześnie przekazując Google Play ochronę przed określonymi typami ataków.

Klasyczne żądania do interfejsu API, czyli pierwotny sposób żądań oceny integralności, nadal będą dostępne. Klasyczne żądania mają dłuższy czas oczekiwania (średnio kilka sekund) i to Ty odpowiadasz za ograniczanie ryzyka wystąpienia niektórych typów ataków. Klasyczne żądania wykorzystują więcej danych i baterii niż standardowe żądania, ponieważ inicjują nową ocenę, dlatego należy je przeprowadzać rzadko w ramach jednorazowej weryfikacji, aby sprawdzić, czy działanie o znaczeniu poufnym lub wartościowym jest autentyczne. Jeśli rozważasz utworzenie klasycznego żądania i buforowanie go w celu późniejszego użycia, zamiast tego wyślij standardowe żądanie, aby zmniejszyć ryzyko ataku.

W tabeli poniżej przedstawiamy 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 rozgrzewka interfejsu API ✔️ (kilka sekund)
Typowe opóźnienie żądania Kilkaset milisekund Kilka sekund
Potencjalna częstotliwość żądań Częste (sprawdzanie na żądanie w przypadku działań i żądań) Rzadkie (jednorazowe sprawdzanie w przypadku działań o największej wartości lub najbardziej wrażliwych żądań)
Minimalizuj ryzyko ponownych ataków i podobnych ataków Automatyczne ograniczanie ryzyka przez Google Play Użyj pola nonce z logiką po stronie serwera

Zobaczysz tabelę z większymi różnicami w kwestiach związanych z klasycznymi żądaniami.

Poproś o ocenę integralności w odpowiednim momencie

O ocenę ryzyka związanego z dostępem do aplikacji należy poprosić jak najszybciej przed wykonaniem działania lub żądania z serwera, przed uzyskaniem dostępu do aplikacji, aby oszustwo nie mogło obejść kontroli integralności przeprowadzonej przez aplikację.

Utrudnianie replikacji żądań do interfejsu API

Standardowe żądania do interfejsu API mają pole o nazwie requestHash, które jest używane do ochrony przed manipulacjami i podobnymi atakami. W tym polu powinno znajdować się podsumowanie wszystkich odpowiednich wartości z żądania aplikacji. Postępuj zgodnie ze wskazówkami dotyczącymi używania wiązania treści, aby chronić standardowe żądania aplikacji.

Klasyczne żądania do interfejsu API mają pole o nazwie nonce (liczba raz), które służy do ochrony przed określonymi typami ataków, takimi jak ponowne odtwarzanie czy manipulacja. Postępuj zgodnie ze wskazówkami dotyczącymi generowania żądań jednorazowych, aby chronić klasyczne żądania aplikacji.

Unikaj ocen integralności pamięci podręcznej

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

mieć wielopoziomową strategię egzekwowania zasad.

Ocena integralności interfejsu Play Integrity API obejmuje wiele możliwych odpowiedzi, co pozwala stworzyć strategię przeciwdziałania nadużyciom na wielu poziomach. Możesz to zrobić, konfigurując serwer backendu aplikacji, aby zachowywał się różnie w zależności od możliwej odpowiedzi lub grupy odpowiedzi.

Możesz też podzielić strategię egzekwowania zasad na podstawie wiarygodności urządzenia. W tym celu włącz otrzymywanie dodatkowych etykiet urządzeń w odpowiedzi interfejsu API w Konsoli Play. Każde urządzenie zwróci wszystkie etykiety, które spełnia kryteria. Na przykład po wyrażeniu zgody na otrzymywanie wszystkich etykiet urządzeń możesz uznać urządzenie, które zwraca wartości MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY i MEETS_BASIC_INTEGRITY w większym stopniu niż urządzenie, które zwraca tylko wartość MEETS_BASIC_INTEGRITY. W każdym przypadku możesz odpowiedzieć inaczej niż serwer.

Wysyłaj zakres odpowiedzi z serwera do aplikacji

Posiadanie zakresu wyników jest trudniejsze do odzwierciedlenia niż wysyłanie na każdą odpowiedź binarną z serwera odpowiedzi Zezwól/odmów z powrotem do aplikacji. Możesz na przykład użyć serii powiązanych odpowiedzi, takich jak Zezwalaj, Zezwalaj z limitami, Zezwalaj z limitami po zakończeniu testu CAPTCHA i Odrzucaj.

Wykrywanie nadużyć na dużą skalę na podstawie ostatniej aktywności na urządzeniu

Korzystając z funkcji ostatnia aktywność na urządzeniu w interfejsie Play Integrity API, możesz znajdować urządzenia, które proszą o dużą liczbę tokenów integralności. Osoby dopuszczające się wielu nadużyć często generują prawidłowe wyniki poświadczeń z prawdziwych urządzeń i udostępniają je botom w celu automatyzacji ataków na urządzenia z dostępem do roota i emulatory. Możesz użyć poziomu ostatniej aktywności urządzenia, aby sprawdzić, ile atestów została wygenerowana przez Twoją aplikację na tym urządzeniu w ciągu ostatniej godziny.

Pokaż przydatne komunikaty o błędach

Jeśli to możliwe, przekaż użytkownikowi przydatne komunikaty o błędach i poinformuj go, jak może rozwiązać problem – może na przykład spróbować ponownie, włączyć połączenie internetowe lub sprawdzić, czy aplikacja Sklep Play jest aktualna.

opracuj plan na wypadek nieoczekiwanych problemów lub przerw w działaniu usługi;

Panel stanu Google Play zawiera informacje o stanie usługi Play Integrity API oraz o zakłóceniach i przerwach w działaniu usługi. Należy zaplanować z wyprzedzeniem sposób działania serwera backendu w prawdopodobnym przypadku awarii interfejsu Play Integrity API na dużą skalę.

Rozważ kompleksowe rozwiązania dla firm dotyczące oszustw

Klienci biznesowi, którzy szukają kompleksowego rozwiązania do zarządzania oszustwami i botami, mogą kupić usługę reCAPTCHA Enterprise dla urządzeń mobilnych, która obejmuje pakiety SDK na Androida, które zapewniają deweloperom ocenę ryzyka oszustw. reCAPTCHA Enterprise automatycznie uwzględnia sygnały interfejsu Play Integrity API i łączy je z siecią reCAPTCHA oraz sygnałami aplikacji przesyłanymi klientom, co zapewnia bezproblemowe i niewidoczne rozwiązanie do przeciwdziałania oszustwom. Może też zapewnić ochronę aplikacji na Androida, w których nie jest dostępny interfejs Play Integrity API.

Zwiększanie ryzyka związanego z ruchem w przypadku dostępu do funkcji o dużej wartości lub poufnych

Identyfikuj w swojej aplikacji lub grze działania o dużej wartości lub poufne dane i chroń je za pomocą interfejsu Play Integrity API, zamiast odmawiać im dostępu. W miarę możliwości najpierw badaj generowany przez nie ryzykowny ruch, zanim zezwolisz na działania o wysokiej wartości. Jeśli na przykład ryzyko dostępu do aplikacji wskazuje, że uruchomiona aplikacja może przechwytywać ekran, poproś użytkownika o wyłączenie lub odinstalowanie takich aplikacji, zanim umożliwisz mu skorzystanie z funkcji, którą chcesz chronić.

Warunki korzystania z usługi i bezpieczeństwo danych

Uzyskując dostęp do interfejsu Play Integrity API lub korzystając z niego, akceptujesz Warunki korzystania z interfejsu Play Integrity API. Przed uzyskaniem dostępu do interfejsu API zapoznaj się ze wszystkimi obowiązującymi warunkami i zasadami.

W Google Play jest sekcja Bezpieczeństwo danych, w której deweloperzy mogą informować użytkowników o zbieraniu i udostępnianiu danych przez aplikacje oraz sposobach dbania o bezpieczeństwo. Aby ułatwić sobie wypełnianie formularza danych, przeczytaj te informacje o tym, jak Play Integrity API postępuje z danymi.