Google Play ゲームの完全性の保護

PC 版 Google Play ゲームは、Play Integrity API とその他のいくつかの Google Play 機能による完全性の保護をサポートしています。これにより、ゲームが改ざんされていないことや信頼できないソースからインストールされていないことを確認できます。

Play Integrity API

Play Integrity API は、潜在的に危険で不正な操作からゲームを保護するのに役立ちます。この API を使用すると、攻撃や不正使用(不正行為、偽装、不正アクセスなど)を防止するための適切な措置を取ることができます。Play Integrity API は、SafetyNet Attestation API(SNAA)と Play App Licencing API に代わるものです。SNAA は Google Play ゲームでは使用できません。

デバイスの完全性フィールド

Google Play ゲームでゲームをサポートする場合は MEETS_VIRTUAL_INTEGRITYdeviceRecognitionVerdict を許可します。

deviceIntegrity フィールドには deviceRecognitionVerdict という値のみが含まれます。この値は、デバイスがアプリの完全性をどの程度強化できるかを表します。デフォルトでは、deviceRecognitionVerdict は次のいずれかのラベルを持ちます。

  • MEETS_DEVICE_INTEGRITY: アプリは Google Play 開発者サービスを備えた Android デバイスで実行されています。このデバイスはシステム完全性チェックに合格し、Android の互換性要件を満たしています。
  • MEETS_VIRTUAL_INTEGRITY: アプリは Google Play 開発者サービスを備えた仮想 Android 環境で実行されています(現在 Google Play ゲームに限定されています)。この環境は Android の互換性に関する主要な要件を満たしており、Google Play の完全性チェックに合格しています。
  • ラベルなし(空の値など): アプリは、API フックなどの攻撃や root 権限取得などのシステム侵害の兆候があるデバイス、または Google Play の完全性チェックに合格していない仮想デバイス(エミュレータなど)で実行されています。

Play Integrity API は、deviceRecognitionVerdict のラベル MEETS_VIRTUAL_INTEGRITY を使用して、ゲームが Google Play ゲームで実行されていることを示します。Play Integrity API からのレスポンスを渡す例を次に示します。

deviceIntegrity: {
    // "MEETS_VIRTUAL_INTEGRITY" indicates the game is running on Google Play Games
    deviceRecognitionVerdict: ["MEETS_VIRTUAL_INTEGRITY"]
}

モバイルでクロス プラットフォーム ゲームを提供している場合は、検証ロジックで MEETS_VIRTUAL_INTEGRITYMEETS_DEVICE_INTEGRITY の両方をチェックします。

Google Play Console で信頼できないデバイスの除外を有効にしない

Google Play Console のオプションを使用すると、完全性チェックに合格していないデバイスに Google Play からアプリをインストールできないようにすることが可能です。

デバイス カタログでこの除外ルールを有効にしないでください。この機能は Google Play ゲームと互換性がなく、プラットフォームにゲームを配信できなくなります。