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

Na tej stronie znajdziesz informacje o tym, jak za pomocą funkcji zapamiętania urządzenia przechowywać i pobierać dane niestandardowe na konkretnych urządzeniach. Możesz niezawodnie przywoływać dane niestandardowe później, 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 działania lub zachowania, przy jednoczesnym zachowaniu prywatności użytkownika.

Jak działa zapamiętanie urządzenia?

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

  • Odczytywanie danych z poszczególnych urządzeń: podczas uzyskiwania wyniku weryfikacji możesz odczytać 3 wartości niestandardowe lub bity z każdego urządzenia. Możesz samodzielnie zdefiniować znaczenie tych wartości. Na przykład możesz 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. Masz na to 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. Podczas modyfikowania wartości zapisywany jest też miesiąc i rok, w którym dokonano zmiany.

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

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

Zapamiętywanie urządzenia ma te wymagania wstępne:

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

Zapamiętywanie 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 zapamiętania urządzenia.
  • Zapamiętanie 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 możesz zignorować lub zresetować dane, 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, i 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 dotyczące poszczególnych urządzeń na nowym koncie dewelopera, a nie na starym.

Włącz zapamiętywanie urządzenia

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

  1. Zaloguj się w Konsoli Play.
  2. Wybierz aplikację, która będzie korzystać z funkcji zapamiętania urządzenia.
  3. W menu po lewej stronie kliknij Chronione przez Google Play.
  4. Obok pozycji Play Integrity API kliknij Zarządzaj.
  5. W sekcji Odpowiedzi na stronie kliknij Zmień odpowiedzi.
  6. Włącz Zapamiętywanie urządzenia.
  7. Kliknij Zapisz zmiany.

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

Odczytywanie wartości zapamiętania urządzenia

Zapamiętanie urządzenia działa zarówno w przypadku żądań klasycznych, jak i standardowych interfejsu Play Integrity API. W przypadku żądań standardowych zapamiętanie urządzenia jest odświeżane podczas wywołania rozgrzewającego. Innymi słowy, po zmodyfikowaniu danych dotyczących poszczególnych urządzeń musisz wykonać kolejne rozgrzewanie, aby zobaczyć zaktualizowaną wartość. Po włączeniu zapamiętania urządzenia będziesz mieć możliwość odczytywania wartości zapamiętania urządzenia w ocenach integralności.

Modyfikowanie wartości zapamiętania urządzenia

Wartości zapamiętania urządzenia możesz modyfikować, wykonując wywołanie interfejsu API typu serwer-serwer podobne do dekodowania oceny 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ć rzadsze niż żądania tokena integralności. Nie są one wliczane do limitu żądań tokenów integralności, ale podlegają osobnym 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"}