Niveaux de protection par gestion des droits numériques (DRM)
Le système de gestion des licences du Microsoft Store sur PC ne protège que 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 permettent d’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 de la vérification de licence du jeu
- Vérification de licence côté service à l’aide d’un License Token
Vérification de licence de base
Au minimum, nous vous recommandons d’ajouter une vérification de licence de base à tout jeu qui souhaite bénéficier d’une protection DRM. L’exemple de code suivant présente une implémentation de base de cette vérification, même si vous n’utilisez aucun autre appel d’API lié au Gaming Runtime. Vous pouvez ajouter ce code à votre chemin de démarrage, ainsi qu’une interface utilisateur spécifique qui s’affiche en cas d’échec de la vérification de licence.Une licence accordée par le biais d’XBOX Game Pass retourne
isActive = true, comme une licence achetée. La structure XStoreGameLicense ne contient aucun champ indiquant comment la licence a été acquise. Une vérification de licence côté client ne peut donc pas distinguer un 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 depuis 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 des attaquants contournent ce type de protection en modifiant les exécutables du jeu pour ignorer cette vérification. L’étape suivante pour sécuriser votre jeu consiste donc à utiliser un produit anti-falsification non Microsoft afin d’empêcher ces types d’attaques. Des options sont disponibles 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 dans votre jeu.Vérification de licence côté service
Les protections anti-falsification protègent efficacement les titres au lancement, mais 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 License Tokens. Les grandes lignes sont les suivantes.- Le service de jeu demande un License Token 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 License Token signé qui contient l’identificateur de session fourni par le service.
- Le client renvoie ensuite le License Token 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 considérer que les informations de licence contenues dans le jeton sont valides.
