Niveles de protección de administración de derechos digitales (DRM)
El sistema de licencias de Microsoft Store en PC solo protege contra los ataques más básicos. Se recomienda no confiar exclusivamente en él para el contenido que requiere protección. A continuación se indican varios pasos que pueden agregar capas de protección contra ataques más avanzados.- Comprobación de licencia iniciada por el juego al iniciarse el juego
- Protección antimanipulación para la comprobación de licencia del juego
- Verificación de licencia en el lado del servicio mediante un token de licencia
Comprobación de licencia básica
Como mínimo, se recomienda agregar una comprobación de licencia básica a cualquier juego que quiera protección DRM. En el ejemplo de código siguiente se muestra una implementación básica para realizar esta comprobación, incluso si no usa ninguna otra llamada a las API relacionadas con Gaming Runtime. Puede agregar el código a su ruta de inicio y agregar una interfaz de usuario específica que se muestre cuando falle la comprobación de licencia.Una licencia concedida a través de XBOX Game Pass devuelve
isActive = true, igual que una licencia comprada. La estructura XStoreGameLicense no incluye un campo que identifique cómo se adquirió la licencia, por lo que una comprobación de licencia en el cliente no puede distinguir el acceso a través de Game Pass de una compra directa. Para hacer esa distinción, use la consulta en el lado del servicio que se describe en Detección del acceso a la suscripción a XBOX Game Pass desde su servicio.Protección antimanipulación de terceros
Aunque el ejemplo de comprobación de licencia básica proporciona cierta protección, es habitual que los atacantes eludan este tipo de protección modificando los archivos ejecutables del juego para omitir esta comprobación. Por lo tanto, el siguiente paso para proteger su juego es usar un producto antimanipulación de terceros para impedir estas líneas de ataque. Hay opciones disponibles para los juegos de PC de GDK. Trabaje con su proveedor de soluciones antimanipulación para obtener instrucciones detalladas sobre cómo incorporar esta protección a su juego.Verificación de licencia en el lado del servicio
Las protecciones antimanipulación hacen un buen trabajo protegiendo los títulos en el inicio pero, con el tiempo, muchas de ellas acaban siendo eludidas. Para ir un paso más allá, los juegos con conexión pueden realizar una comprobación de verificación de licencia en el lado del servicio y bloquear muchos ataques del lado del cliente. Para obtener más información, consulte Información general sobre los tokens de licencia. El esquema básico es el siguiente.- El servicio del juego solicita un token de licencia al cliente del juego e incluye un GUID generado por el servicio del juego que representa esa solicitud única.
- A continuación, el cliente llama a la API de cliente XStoreQueryLicenseTokenAsync.
- La API llama al servicio de licencias y determina si el juego debe devolver una licencia a ese usuario.
- Si la API puede obtener una licencia válida, se devuelve un token de licencia firmado que contiene el identificador de sesión proporcionado por el servicio.
- A continuación, el cliente devuelve el token de licencia al servicio del juego.
- El servicio del juego valida la firma, lo que garantiza que la licencia procede de Microsoft Store y no se ha modificado
- A continuación, el servicio del juego comprueba que el GUID de sesión coincide con el que se pasó al cliente en el paso 1.
- El servicio del juego puede entonces confiar en que la información de licencia del token es válida
