Niveaux de protection de la gestion des droits numériques (DRM)
Sur PC, le système de gestion des licences du Microsoft Store protège uniquement contre les attaques les plus élémentaires. Nous vous recommandons de ne pas vous y fier exclusivement pour le contenu qui nécessite une protection. Voici plusieurs étapes qui peuvent ajouter des couches de protection contre des attaques plus avancées.- Vérification de licence lancée par le jeu au démarrage
- Protection anti-falsification pour la vérification de licence du jeu
- Vérification de licence côté service à l’aide d’un jeton de licence
Vérification de licence de base
Au minimum, nous vous recommandons d’ajouter une vérification de licence de base à tout jeu qui souhaite une protection DRM. L’exemple de code suivant montre une implémentation de base pour effectuer cette vérification, même si vous n’utilisez aucun autre appel d’API lié au Gaming Runtime. Vous pouvez ajouter le code à votre chemin de démarrage et ajouter une interface utilisateur précise qui s’affiche en cas d’échec de la vérification de licence.Une licence accordée au moyen de XBOX Game Pass retourne
isActive = true, comme une licence achetée. La structure XStoreGameLicense ne comprend aucun champ indiquant comment la licence a été acquise; une vérification de licence côté client ne peut donc pas distinguer l’accès Game Pass d’un achat direct. Pour faire cette distinction, utilisez la requête côté service décrite dans Détecter l’accès par abonnement XBOX Game Pass à partir de votre service.Protection anti-falsification non Microsoft
Bien que l’exemple de vérification de licence de base offre une certaine protection, il est courant que les attaquants contournent ce type de protection en modifiant les exécutables du jeu pour contourner cette vérification. Ainsi, la prochaine étape pour sécuriser votre jeu consiste à utiliser un produit anti-falsification non Microsoft pour empêcher ces types d’attaques. Des options sont offertes pour les jeux PC GDK. Collaborez avec votre fournisseur de solution anti-falsification pour obtenir des instructions détaillées sur l’intégration de cette protection à votre jeu.Vérification de licence côté service
Les protections anti-falsification protègent bien les titres au lancement, mais un grand nombre d’entre elles finissent par être contournées. Pour aller plus loin, les jeux en ligne peuvent effectuer une vérification de licence côté service et bloquer de nombreuses attaques côté client. Pour plus d’informations, consultez Vue d’ensemble des jetons de licence. Les grandes lignes sont les suivantes.- Le service de jeu demande un jeton de licence au client de jeu et inclut un GUID généré par le service de jeu qui représente cette requête unique.
- Le client appelle ensuite une API cliente XStoreQueryLicenseTokenAsync.
- L’API appelle le service de gestion des licences et détermine si le jeu doit retourner une licence à cet utilisateur.
- Si l’API obtient une licence valide, elle retourne un jeton de licence signé qui contient l’identificateur de session fourni par le service.
- Le client renvoie ensuite le jeton de licence au service de jeu.
- Le service de jeu valide la signature, ce qui garantit que la licence provient du Microsoft Store et n’a pas été modifiée.
- Le service de jeu vérifie ensuite que le GUID de session correspond à celui transmis au client à l’étape 1.
- Le service de jeu peut alors se fier à la validité des informations de licence contenues dans le jeton.
