使用裝置喚回功能 (Beta 版) 偵測重複濫用行為

本頁面說明如何使用裝置喚回功能,透過特定裝置儲存及擷取自訂資料。日後在同一裝置上安裝應用程式時,即使裝置已重設,您仍可穩定喚回自訂資料。這項功能可讓您根據指定的動作或行為,偵測並防止裝置重複使用,同時保護使用者隱私。

裝置召回作業的運作方式為何?

裝置喚回功能可讓應用程式以保護使用者隱私的方式,儲存及喚回與特定裝置相關的自訂資料。這類資料會儲存在 Google 伺服器,因此即使在應用程式重新安裝或裝置重設後,應用程式仍能穩定地喚回自訂資料。舉例來說,您可以使用這項功能,找出有嚴重濫用行為的裝置、已兌換高價值商品 (例如免費試用) 的裝置,或是經常用於濫用目的建立新帳戶的裝置。裝置喚回功能可維護使用者隱私,因為要求的應用程式只能喚回與裝置相關聯的有限資料,不會存取任何裝置或使用者 ID。開啟裝置回收功能後,您可以執行下列操作:

  • 讀取個別裝置資料:取得完整性判定結果時,您可以讀取每部裝置的三個自訂值或位元。您可以自行定義這些值的含義,例如將值視為三個個別標記,或將這些值組合起來代表八個自訂標籤。
  • 修改個別裝置資料:取得完整性權杖後,您可以使用該權杖向 Google Play 伺服器發出伺服器端呼叫,修改一個或多個值。您最多有 14 天可以使用代碼。舉例來說,如果濫用行為只在您首次執行完整性檢查後的兩週期間才明顯出現,您就可以修改該值。修改值時,系統也會儲存修改的月份和年份。

裝置回收的必要條件和考量事項

裝置喚回功能只能用於儲存及喚回資訊,以保護應用程式安全,並減少濫用、詐欺和未經授權的存取行為。您不得使用裝置喚回功能來建立使用者或裝置指紋,或追蹤個別使用者或裝置,也不得使用裝置喚回功能追蹤使用者或裝置的私密特徵,例如性別、年齡或位置資料。

裝置召回作業有下列先決條件:

  • 裝置回收功能適用於手機、平板電腦、摺疊式裝置、電視、Auto 和 Wear OS。在 Wear 裝置上,只有搭載 Wear OS 5 以上版本的裝置才能使用裝置喚回功能。模擬器不支援裝置喚回功能。
  • 裝置必須安裝最新版本的 Google Play 商店和 Google Play 服務,並且啟用這兩項服務。
  • 使用者帳戶必須獲得 Play 授權,才能使用裝置回收信號,否則判定結果將無法評估。

裝置召回作業的時間點如下:

  • 驗證完整性權杖後,您最多有 14 天時間可以使用該權杖儲存自訂裝置回收資料。
  • 裝置喚回會納入時間戳記,讓您將最近修改的資料視為優先順序較高的資料,而非很久以前修改的資料。考量到裝置可能會轉手,或經過整修後轉售,建議您在一段時間後忽略或重設資料。
  • 裝置的喚回位元會在最後一次讀取或寫入存取權後,儲存 3 年。
  • 如果您需要刪除與裝置相關聯的所有資料,應用程式可以將該裝置上的所有三個值重設為 false。這麼做會自動重設時間戳記。

對於擁有多個應用程式的開發人員和轉移應用程式的開發人員,裝置回收機制如下所示:

  • 您 Google Play 開發人員帳戶中的所有應用程式,每部裝置皆可存取相同的三個值。換句話說,如果其中一個應用程式修改其中一個值,則所有應用程式在安裝在同一裝置上時,都會讀取已修改的值。
  • 如果應用程式從一個開發人員帳戶轉移至另一個帳戶,裝置喚回功能會顯示新開發人員帳戶的裝置資料,而非舊開發人員帳戶的裝置資料。

開啟裝置喚醒功能

準備就緒後,請在 Play 管理中心開啟裝置回收功能:

  1. 登入 Play 管理中心
  2. 選取要使用裝置喚回功能的應用程式。
  3. 在左選單的「版本」部分,前往「應用程式完整性」
  4. 按一下「Play Integrity API」旁邊的「設定」
  5. 在頁面的「回應」部分,按一下「變更回應」
  6. 開啟「裝置喚回」功能。
  7. 按一下 [儲存變更] 。

開啟/關閉裝置回收功能後,系統就會刪除您在 Play 管理中心設定的所有 Play Integrity API 測試回應,而您將需再次建立這些回應。

讀取裝置喚回值

裝置喚回功能適用於 Play Integrity API 的傳統和標準要求。在標準要求中,裝置喚回會在暖機呼叫中重新整理。換句話說,修改個別裝置資料後,您必須再次執行暖機程序,才能查看更新後的值。啟用裝置喚回功能後,您就能在完整性判定結果中讀取裝置喚回值

修改裝置回收值

您可以透過伺服器對伺服器的 API 呼叫 (類似解碼完整性判定結果) 修改裝置回收值。將位元設為 true 也會更新寫入日期 (即使已設為 true)。將位元設為 false 會將寫入日期重設為空白。在要求中未指定的位元都會維持不變。在寫入位元與在判定結果中讀取位元之間,會有一點傳播延遲。這項延遲時間最長可達 30 秒,但通常會更短。裝置喚回寫入要求的頻率應低於完整性權杖要求。這些要求不會計入完整性權杖要求配額,但會受到非公開的防禦率限制。

playintegrity.googleapis.com/v1/PACKAGE_NAME/deviceRecall:write -d \
'{
  "integrityToken": "INTEGRITY_TOKEN",
  "newValues": {
    "bitFirst": true,
    "bitThird": false
  }
}'