Níveis de proteção de gerenciamento de direitos digitais (DRM)
O sistema de licenciamento da Microsoft Store no PC protege apenas contra os ataques mais básicos. Recomendamos que você não dependa exclusivamente dele para conteúdo que exija proteção. Veja a seguir várias etapas que podem adicionar camadas de proteção contra ataques mais avançados.- Verificação de licença iniciada pelo jogo na inicialização do jogo
- Proteção antiadulteração para a verificação de licença do jogo
- Verificação de licença no lado do serviço usando um token de licença
Verificação de licença básica
No mínimo, recomendamos que você adicione uma verificação de licença básica a qualquer jogo que queira proteção de DRM. O exemplo de código a seguir mostra uma implementação básica para executar essa verificação, mesmo que você não use nenhuma outra chamada de API relacionada ao Gaming Runtime. Você pode adicionar o código ao seu caminho de inicialização e adicionar uma interface do usuário específica que seja exibida quando a verificação de licença falhar.Uma licença concedida por meio do XBOX Game Pass retorna
isActive = true, da mesma forma que uma licença comprada. A struct XStoreGameLicense não inclui um campo que identifique como a licença foi adquirida, portanto, uma verificação de licença no cliente não consegue distinguir o acesso pelo Game Pass de uma compra direta. Para fazer essa distinção, use a consulta no lado do serviço descrita em Detectar o acesso por assinatura do XBOX Game Pass a partir do seu serviço.Proteção antiadulteração que não é da Microsoft
Embora o exemplo de verificação de licença básica forneça alguma proteção, é comum que invasores contornem esse tipo de proteção modificando os executáveis do jogo para ignorar essa verificação. Assim, a próxima etapa para proteger seu jogo é usar um produto antiadulteração que não seja da Microsoft para impedir essas linhas de ataque. Há opções disponíveis para jogos de PC com GDK. Trabalhe com seu fornecedor de antiadulteração para obter instruções detalhadas sobre como incorporar essa proteção ao seu jogo.Verificação de licença no lado do serviço
As proteções antiadulteração fazem um bom trabalho protegendo os títulos no lançamento, mas, com o tempo, muitas delas são contornadas. Para ir um passo além, os jogos com recursos online podem executar uma verificação de licença no lado do serviço e bloquear muitos ataques no lado do cliente. Para obter mais informações, confira Visão geral dos tokens de licença. O esboço básico é o seguinte.- O serviço do jogo solicita um token de licença ao cliente do jogo e inclui um GUID gerado pelo serviço do jogo que representa essa solicitação exclusiva.
- Em seguida, o cliente chama uma API de cliente XStoreQueryLicenseTokenAsync.
- A API chama o serviço de licenciamento e determina se o jogo deve retornar uma licença para esse usuário.
- Se a API obtiver uma licença válida, ela retornará um token de licença assinado que contém o identificador de sessão fornecido pelo serviço.
- Em seguida, o cliente passa o token de licença de volta para o serviço do jogo.
- O serviço do jogo valida a assinatura, garantindo que a licença veio da Microsoft Store e não foi modificada.
- Em seguida, o serviço do jogo verifica se o GUID da sessão corresponde ao que foi passado ao cliente na etapa 1.
- O serviço do jogo pode então confiar que as informações de licenciamento no token são válidas.
