使用 Play Integrity API 來保護您的應用和遊戲

Android開發者發表於2022-02-15

在 Android 平臺上有豐富的應用和遊戲,為使用者帶來了很多絕佳的使用體驗。其中大部分的使用者會按照應用或遊戲所設計的體驗路線享受其帶來的樂趣。但還是有一些使用者來者不善,他們會通過作弊、惡意篡改、欺詐盜竊、盜版或未經授權等方式對應用或遊戲進行濫用,這使得開發者不得不絞盡腦汁應對。通常使用未知賬戶或未知裝置同應用進行不可信的互動將會帶來濫用行為,且形式越來越複雜,這給開發者帶來的挑戰也在持續升級。本文您將學習到如何使用最新的 Play Integrity API 在兼顧便利性的同時為開發者保障應用的安全和完整性。

如果您更喜歡通過視訊瞭解此內容,請在此處檢視:

https://www.bilibili.com/vide...

△ 使用 Play Integrity API 來保護您的應用和遊戲

Play Integrity API

我們曾推出獨立的 API 來專門處理此類特定問題,比如 SafetyNet Attestation APIGoogle Play Licensing,每天幫助上千個應用處理對裝置和使用者賬號的信任問題。但是隨著挑戰升級,所要面臨的情況越來越複雜,開發者往往要整合多個 API 才能成功處理反濫用問題,但這樣帶來的複雜性很容易產生遺漏,而一項遺漏造成的結果往往可能會導致應用被嚴重濫用。

為解決這類問題,我們整合了最為先進的完整性技術,提供了全新的 Play Integrity API,實現了讓開發者只需呼叫單個 API 就能夠實現整個應用的保護。該 API 會檢測應用中存在的風險和不可信的互動,併傳送訊號給應用後端伺服器,應用後端服務會判斷是否能夠信任同應用進行的互動。

Play Integrity API 有助於保護您的應用和遊戲,使其免受可能存在風險的欺詐性互動 (例如欺騙和未經授權的訪問) 的危害,讓您能夠採取適當措施來防範攻擊並減少濫用行為。

當您的應用在搭載 Android 4.4 (API 級別 19) 或更高版本的裝置上使用時,Play Integrity API 會提供已簽名且加密的響應,其中包含以下資訊:

  • 正版應用二進位制檔案: 確定您正在與之互動的二進位制檔案是否已獲 Google Play 認可且未經篡改。
  • 正規 Play 安裝: 確定當前使用者帳號是否以正當方式 (例如通過 Google Play 安裝或付費購買) 獲取應用或遊戲。
  • 正品 Android 裝置: 確定您的應用是否在由 Google Play 服務 提供支援、已知且未經篡改的 Android 裝置上執行。

一旦發現問題,您可以決定是否需要提高使用者使用門檻,來提高應用被濫用的難度,從而降低應用可能會面臨的風險。我們已同一些開發者們緊密合作來測試這一 API,它已投入生產環境使用,來保護應用和遊戲不被濫用。

△ Play Integrity API 的優勢

△ Play Integrity API 的優勢

Play Integrity API 具有如下關鍵優勢:

  1. 它由 Google Play 提供支援,並提供了最新的文件、程式碼示例和最佳實踐,開發者可從 Play Console 進行配置,並得到開發者支援;
  2. Integrity API 返回的資料包體積小且被加密,單個返回的資料包封裝了多個完整性檢測訊號,無需進行多個 API 呼叫;
  3. 這是一個面向未來設計的 API,它將會支援更新的裝置種類和規格的完整性檢測。

授信流程

Play Integrity API 通過某種難以被侵入的方式讓您的應用伺服器同 Play 伺服器進行通訊,並進一步處理授信。其具體步驟如下圖所示:

△ Play Integrity API 授信步驟

△ Play Integrity API 授信步驟

  1. 使用者開始進行某項操作,比如登陸應用或者加入多人遊戲;
  2. 應用後端伺服器開始生成唯一 ID,並通過觸發應用開始進行完整性檢查;
  3. 應用呼叫 Play Integrity API;
  4. Play 伺服器會開始根據多項訊號進行評估,包括裝置是否已經受到侵入,是否通過證書認證測試,並對應用的授權許可進行驗證,隨後 Play Integrity API 會返回經過簽名和加密的判定結果給應用,告知是否可以信任裝置和二進位制檔案;
  5. 應用再將 Play Integrity API 返回的結果轉發回應用伺服器;
  6. 應用伺服器會檢查返回的 ID 與傳送時的 ID 是否相同,並對結果進行分析判斷,並將其返回給應用;
  7. 應用拿到結果之後,如果判定一切正常就可以讓使用者繼續使用。

以上所有的操作都會在一瞬間完成,使用者不會感覺到有任何的延遲。如果您使用的是 SafetyNet Attestation API,它的實現同上述步驟相似。

注意事項

在使用 Play Integrity API 時,需要注意以下幾點:

  1. 確認遇到的主要問題,是盜版問題,比如流量欺詐、作弊,還是其他問題。分析出問題的嚴重程度,以及它造成的損失程度,以判斷需要花費多大的努力去減少損失;
  2. 就完整性問題而言,沒有一勞永逸的解決方案,新的 Play Integrity API 也不能解決所有問題,它僅可作為整體安全和反濫用策略的一個環節;
  3. 務必要考慮到誤報的風險以及其他可能帶給普通使用者的使用成本,與其遇到有風險的操作就進行封堵,更好的做法通常是通過額外步驟增加使用者濫用的門檻;
  4. 持續分析,傾聽使用者反饋,並持續更新 Android 和 Play 支援的功能,積極採用行業內反濫用的最佳實踐。

如需瞭解 Play Integrity API 詳情,請前往 Play Integrity API 頁面

針對在 Google Play 以及其他平臺發行的應用,我們都將釋出整合指南,我們還會分享更多從 Safety Device Attestation 以及 Play Licensing 遷移至新 API 的相關資訊,敬請關注,同時期待您的反饋。

歡迎您 點選這裡 向我們提交反饋,或分享您喜歡的內容、發現的問題。您的反饋對我們非常重要,感謝您的支援!

相關文章