デジタル著作権管理 (DRM) 保護のレベル
PC 上の Microsoft Store のライセンス システムは、最も基本的な攻撃からしか保護しません。保護が必要なコンテンツについては、それだけに依存しないことをお勧めします。より高度な攻撃に対する保護のレイヤーを追加するための手順は次のとおりです。- ゲーム起動時のゲーム主導のライセンス チェック
- ゲームのライセンス チェックに対する改ざん防止保護
- ライセンス トークン を使用したサービス側のライセンス検証
基本的なライセンス チェック
DRM 保護を必要とするゲームには、少なくとも基本的なライセンス チェックを追加することをお勧めします。次のコード例は、他の Gaming Runtime 関連の API 呼び出しを使用しない場合でも、このチェックを実行する基本的な実装を示しています。このコードをスタートアップ パスに追加し、ライセンス チェックに失敗した場合に表示される特定の UI を追加できます。XBOX Game Pass を通じて付与されたライセンスは、購入したライセンスと同様に
isActive = true を返します。XStoreGameLicense 構造体にはライセンスの取得方法を示すフィールドが含まれていないため、クライアントのライセンス チェックでは Game Pass によるアクセスと直接購入を区別できません。この区別を行うには、サービスから XBOX Game Pass サブスクリプションのアクセスを検出するで説明されているサービス側のクエリを使用してください。Microsoft 以外の改ざん防止保護
基本的なライセンス チェックの例はある程度の保護を提供しますが、攻撃者がゲームの実行可能ファイルを変更してこのチェックを迂回することで、この種類の保護を回避することがよくあります。したがって、ゲームを保護する次のステップは、これらの攻撃経路を防止するために Microsoft 以外の改ざん防止製品を使用することです。GDK PC ゲームには、利用可能なオプションがあります。この保護をゲームに組み込む方法の詳細な手順については、改ざん防止ベンダーと連携してください。サービス側のライセンス検証
改ざん防止保護は起動時にタイトルを保護するのに優れていますが、最終的には多くのものが回避されます。さらに一歩進んで、オンライン対応のゲームはサービス側のライセンス検証チェックを実行して、多くのクライアント側の攻撃をブロックできます。詳細については、ライセンス トークンの概要を参照してください。 基本的な概要は次のとおりです。- ゲーム サービスは、その一意の要求を表すゲーム サービスで生成された GUID を含めて、ゲーム クライアントにライセンス トークンを要求します。
- その後、クライアントはクライアント API XStoreQueryLicenseTokenAsync を呼び出します。
- API はライセンス サービスを呼び出し、そのユーザーにゲームがライセンスを返すかどうかを判断します。
- API が有効なライセンスを取得できた場合、サービスから提供されたセッション識別子を含む署名付きライセンス トークンが返されます。
- 次に、クライアントはライセンス トークンをゲーム サービスに返します。
- ゲーム サービスは署名を検証し、ライセンスが Microsoft Store から発行され、変更されていないことを確認します。
- 次に、ゲーム サービスはセッション GUID が手順 1 でクライアントに渡されたものと一致することを確認します。
- これでゲーム サービスは、トークン内のライセンス情報が有効であると信頼できます。
