Wykrywanie powtarzających się przypadków nadużyć za pomocą funkcji przywracania urządzenia (beta)

Na tej stronie opisujemy, jak używać funkcji przywoływania urządzenia do przechowywania i pobierania danych niestandardowych na określonych urządzeniach. Możesz później niezawodnie przywołać dane niestandardowe, gdy aplikacja zostanie zainstalowana na tym samym urządzeniu, nawet po jego zresetowaniu. Umożliwia to wykrywanie i zapobieganie ponownemu użyciu urządzenia na podstawie określonego przez Ciebie działania lub zachowania przy jednoczesnym zachowaniu prywatności użytkownika.

Jak działa wycofanie urządzenia?

Funkcja przywoływania urządzenia umożliwia aplikacjom przechowywanie i odczytywanie danych niestandardowych powiązanych z konkretnym urządzeniem w taki sposób, aby zachować prywatność użytkownika. Dane są przechowywane na serwerach Google, dzięki czemu aplikacja może niezawodnie przywoływać Twoje dane niestandardowe nawet po ponownej instalacji aplikacji lub zresetowaniu urządzenia. Możesz na przykład użyć tej funkcji do przywracania urządzeń, w przypadku których wykryto poważne nadużycia, urządzeń, na których wykorzystano już wartościowe przedmioty (np. bezpłatny okres próbny), lub urządzeń, które są wielokrotnie używane do tworzenia nowych kont w celu nadużywania usług. Zapamiętanie urządzenia chroni prywatność użytkownika, ponieważ aplikacja wysyłająca żądanie może przywrócić tylko ograniczone dane powiązane z urządzeniami, bez dostępu do identyfikatorów urządzeń lub użytkowników. Po włączeniu funkcji przywoływania urządzenia możesz wykonać te czynności:

  • Odczytywanie danych poszczególnych urządzeń: podczas uzyskiwania wyniku weryfikacji integralności możesz odczytać 3 wartości niestandardowe lub bity dla każdego urządzenia. Możesz zdefiniować własne znaczenie tych wartości. Możesz na przykład traktować je jako 3 osobne flagi lub połączyć je, aby reprezentowały 8 etykiet niestandardowych.
  • Modyfikowanie danych na poszczególnych urządzeniach: po uzyskaniu tokena integralności możesz użyć go do wykonania wywołania po stronie serwera na serwer Google Play, aby zmodyfikować jedną lub więcej wartości. Na wykorzystanie tokena masz 14 dni. Umożliwia to modyfikowanie wartości, jeśli np. nadużycie stanie się widoczne dopiero w ciągu 2 tygodni od pierwszego sprawdzenia integralności. Gdy zmodyfikujesz wartość, zapisywany jest też miesiąc i rok, w którym została wprowadzona zmiana.

Wymagania wstępne i kwestie związane z zapamiętywaniem urządzenia

Funkcja wycofywania urządzenia może być używana tylko do przechowywania i przywracania informacji w celu ochrony bezpieczeństwa aplikacji oraz ograniczania nadużyć, oszustw i nieautoryzowanego dostępu. Nie możesz używać funkcji przywracania urządzenia do tworzenia odcisków cyfrowych ani śledzenia poszczególnych użytkowników lub urządzeń. Nie możesz też używać tej funkcji do śledzenia wrażliwych cech użytkownika lub urządzenia, takich jak płeć, wiek czy dane o lokalizacji.

Funkcja wycofania urządzenia ma te wymagania wstępne:

  • Funkcja wycofania urządzenia z rynku jest dostępna na telefonach, tabletach, urządzeniach składanych, telewizorach, w Androidzie Auto i Wear OS. Na urządzeniach z Wear funkcja przywoływania urządzenia jest dostępna tylko na urządzeniach z Wear OS 5 lub nowszym. Wycofywanie urządzeń nie jest obsługiwane na emulatorach.
  • Wycofanie urządzenia wymaga zainstalowania i włączenia na nim najnowszych wersji Sklepu Google Play i Usług Google Play.
  • Wycofanie urządzenia wymaga, aby konto użytkownika miało licencję Google Play. W przeciwnym razie wynik będzie nieokreślony.

Wycofanie urządzenia ma następujące aspekty czasowe:

  • Po zweryfikowaniu tokena integralności masz do 14 dni na użycie go do przechowywania niestandardowych danych przywracania urządzenia.
  • Wycofanie urządzenia obejmuje sygnatury czasowe, dzięki czemu możesz traktować ostatnio zmodyfikowane dane jako ważniejsze od danych, które zostały zmodyfikowane dawno temu. Po upływie odpowiednio długiego czasu rozważ zignorowanie lub zresetowanie danych, aby uwzględnić fakt, że urządzenia mogą zmieniać właścicieli lub być odnawiane i odsprzedawane.
  • Bity wycofania urządzenia będą przechowywane przez 3 lata od ostatniego odczytu lub zapisu.
  • Jeśli musisz usunąć wszystkie dane powiązane z urządzeniem, aplikacja może zresetować wszystkie 3 wartości na tym urządzeniu na „false”. Spowoduje to automatyczne zresetowanie sygnatur czasowych.

W przypadku deweloperów, którzy mają wiele aplikacji, oraz deweloperów, którzy przenoszą aplikacje, wycofanie urządzenia działa w ten sposób:

  • Wszystkie aplikacje na Twoim koncie dewelopera w Google Play mają dostęp do tych samych 3 wartości na urządzenie. Inaczej mówiąc, jeśli jedna z Twoich aplikacji zmodyfikuje jedną z wartości, wszystkie Twoje aplikacje odczytają zmodyfikowaną wartość, gdy zostaną zainstalowane na tym samym urządzeniu.
  • Jeśli aplikacja zostanie przeniesiona z jednego konta dewelopera na inne, wycofanie urządzenia będzie odzwierciedlać dane na urządzenie z nowego konta dewelopera, a nie z poprzedniego.

Włącz zapamiętywanie urządzenia

Gdy wszystko będzie gotowe, włącz wycofanie urządzenia w Konsoli Play:

  1. Zaloguj się w Konsoli Play.
  2. Wybierz aplikację, która będzie korzystać z funkcji przywoływania urządzenia.
  3. W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
  4. Obok opcji Play Integrity API kliknij Ustawienia.
  5. W sekcji Odpowiedzi na stronie kliknij Zmień odpowiedzi.
  6. Włącz wycofanie urządzenia.
  7. Kliknij Zapisz zmiany.

Gdy włączysz lub wyłączysz wycofanie urządzenia, wszystkie odpowiedzi testowe interfejsu Play Integrity API skonfigurowane w Konsoli Play zostaną usunięte i trzeba będzie utworzyć je ponownie.

Odczytywanie wartości przywracania urządzenia

Przywracanie urządzenia działa zarówno w przypadku klasycznych, jak i standardowych żądań do interfejsu Play Integrity API. W przypadku standardowych żądań wycofanie urządzenia jest odświeżane podczas wywołania wstępnego. Inaczej mówiąc, po zmodyfikowaniu danych dotyczących poszczególnych urządzeń musisz przeprowadzić kolejne rozgrzewanie, aby zobaczyć zaktualizowaną wartość. Po włączeniu przywracania urządzenia w werdyktach dotyczących integralności będziesz mieć możliwość odczytywania wartości przywracania urządzenia.

Modyfikowanie wartości przywracania urządzenia

Wartości wycofania urządzenia możesz modyfikować, wykonując wywołanie interfejsu API typu serwer-serwer podobne do dekodowania wyniku weryfikacji integralności. Ustawienie bitu na true spowoduje też zaktualizowanie daty zapisu (nawet jeśli była już ustawiona na true). Ustawienie bitu na false spowoduje zresetowanie daty zapisu do pustej wartości. Bity, które nie zostały określone w żądaniu, pozostaną niezmienione. Między zapisaniem bitów a możliwością ich odczytania w werdykcie występuje niewielkie opóźnienie propagacji. Opóźnienie może wynosić nawet 30 sekund, ale zwykle jest znacznie krótsze. Żądania zapisu wycofania urządzenia powinny być wysyłane rzadziej niż żądania tokena integralności. Nie są one wliczane do limitu przydziału żądań tokenów integralności, ale podlegają niepublicznym, ochronnym limitom szybkości.

playintegrity.googleapis.com/v1/PACKAGE_NAME/deviceRecall:write -d \
'{
  "integrityToken": "INTEGRITY_TOKEN",
  "newValues": {
    "bitFirst": true,
    "bitThird": false
  }
}'
newValues.BitFirst = true // ForceSendFields optional for value true
newValues.BitSecond = false // ForceSendFields required for value false
newValues.BitThird = nil // do not set ForceSendFields for unspecified bits
newValues.ForceSendFields = []string{"BitSecond"}