O Google Play Games está na versão Beta aberta.

Proteção da integridade

Os desenvolvedores convidados têm acesso a vários recursos que oferecem proteção da integridade. A API Play Integrity e a Proteção automática da integridade funcionam no Google Play Games e em plataformas de dispositivos móveis.

API Play Integrity

A API Play Integrity ajuda a proteger seus jogos contra interações potencialmente perigosas e fraudulentas. Assim, você pode tomar medidas adequadas para reduzir ataques e abusos, como fraude, trapaças e acesso não autorizado. O servidor de back-end do jogo pode receber sinais sobre o canal de distribuição (licenciado/instalado na Play Store), o pacote de aplicativo (não adulterado ou modificado) e o dispositivo (por exemplo, um dispositivo sem acesso root ou que não tenha sido comprometido). Essa é a única solução a que o Google oferece suporte e que fornece um sinal confiável de que os usuários estão no Google Play Games, e não em outro ambiente virtual. Isso ajuda você a:

  • proteger o app contra acesso não autorizado para garantir que o APK seja distribuído e instalado pelo Google Play;
  • proteger o APK contra adulteração verificando se o servidor de back-end do jogo está interagindo com o binário não modificado;
  • garantir que os binários x86 recém-publicados sejam executados no ambiente virtual do Google Play Games e não sejam suscetíveis à exploração em plataformas sem suporte.

A API Play Integrity reúne vários sinais em um token criptografado. Ela oferece vereditos de integridade positivos para ambientes virtuais e dispositivos Android genuínos que passam nas verificações de integridade do Google Play. Recomendamos usar a API Play Integrity durante eventos críticos do jogo quando o app está em execução. Por exemplo, quando o usuário faz uma compra ou quando o jogo salva as pontuações dele. Não é recomendado usar a API de uma forma predefinida, como a chamar em um horário predeterminado.

A API oferece o máximo de flexibilidade, mas exige mais código em execução em um servidor confiável. A validação no dispositivo não é segura e não é recomendada. A solução completa precisa incluir um componente do lado do servidor que forneça a base necessária para a verificação da integridade e a validação da resposta. É altamente recomendável que você evite enviar uma resposta binária de sim/não para o dispositivo. Em vez disso, ajuste o comportamento do app com base no veredito fornecido pela API Play Integrity.

A API Play Integrity é a sucessora da API SafetyNet Attestation (SNAA) e das APIs Play Licencing. A SNAA não vai funcionar mais com o Google Play Games porque ela retorna somente sinais negativos ao verificar a integridade do app.

Campo de integridade do dispositivo

O campo deviceIntegrity contém um único valor, deviceRecognitionVerdict, que representa a forma como um dispositivo pode garantir a integridade do app. Por padrão, deviceRecognitionVerdict pode ter um destes identificadores:

  • MEETS_DEVICE_INTEGRITY: o app está em execução em um dispositivo Android com o Google Play Services. O dispositivo é aprovado nas verificações de integridade do sistema e atende aos requisitos de compatibilidade do Android.
  • MEETS_VIRTUAL_INTEGRITY: o app está em execução em um ambiente virtual do Android com o Google Play Services, no momento limitado ao Google Play Games. O ambiente atende aos principais requisitos de compatibilidade do Android e é aprovado nas verificações de integridade do Google Play.
  • Sem identificador (por exemplo, um valor em branco): o app está sendo executado em um dispositivo que tem sinais de ataque, como hooks de API, ou comprometimentos do sistema, como acesso root, ou o app está em execução em um dispositivo não físico, como um emulador, que não é aprovado nas verificações de integridade do Google Play.

A API Play Integrity usa o identificador MEETS_VIRTUAL_INTEGRITY de deviceRecognitionVerdict para indicar que o jogo está sendo executado no Google Play Games. Veja abaixo um exemplo de resposta de aprovação da API Play Integrity:

deviceIntegrity: {
    // "MEETS_VIRTUAL_INTEGRITY" indicates the game is running on Google Play Games
    deviceRecognitionVerdict: ["MEETS_VIRTUAL_INTEGRITY"]
}

A lógica de validação precisa verificar a existência do identificador MEETS_VIRTUAL_INTEGRITY no Google Play Games.

Se você tiver um jogo multiplataforma também disponível em dispositivos móveis, confirme se a lógica de validação também está verificando o identificador MEETS_DEVICE_INTEGRITY.

Consulte a documentação da API Play Integrity para mais informações.

Proteção automática da integridade

A Proteção automática da integridade é uma verificação de execução adicionada pelo Google Play toda vez que o jogo é aberto. Se o jogo for adulterado ou não for instalado pelo Google Play, a Proteção automática da integridade pode impedir a execução dele. Porém, ela não verifica o dispositivo. É necessário usar a API Play Integrity para conferir o status de integridade do dispositivo.

A Proteção automática da integridade ajuda a proteger a integridade com estes recursos:

  • Exigir instalação do Google Play: adiciona uma verificação para confirmar se o app foi instalado do Google Play. Se essa verificação falhar, o usuário terá que fazer o download do app na plataforma. Esse recurso recomendado é ativado por padrão, mas é possível desativá-lo, o que também desativa a proteção contra pirataria de apps pagos.
  • Restringir modificações: adiciona uma verificação para confirmar que o app não sofreu modificações. Se a verificação for reprovada, o app não é executado. Este recurso está sempre ativo e não é possível o desativar.
  • Restringir engenharia reversa: adiciona ofuscação e outras técnicas avançadas para dificultar a remoção das verificações durante a execução. Este recurso está sempre ativo e não é possível o desativar.

A Proteção automática da integridade requer que o desenvolvedor ative o recurso e não exige alterações no código nem trabalho do desenvolvedor. As proteções funcionam com ou sem conexão de dados ou de Internet, e não há componentes do lado do servidor necessários. Observe que a verificação "Exigir instalação do Google Play" solicita periodicamente uma conexão de dados se o app Play Store no dispositivo estiver off-line por um longo período.

Outras considerações sobre o Google Play Games

O Google Play oferece uma coleção de produtos de integridade para ajudar a proteger seu jogo. Consulte a documentação da API Play Integrity para ver mais informações sobre os produtos disponíveis. Estas seções destacam considerações especiais ao usar esses produtos com o Google Play Games.

Excluir dispositivos não confiáveis da distribuição

O Google Play Console tem uma configuração que permite impedir que o app fique disponível para instalação no Google Play em dispositivos que não transmitem verificações de integridade.

No momento, esse recurso é incompatível com o Google Play Games e impede a distribuição de jogos para a plataforma. Não ative essa regra de exclusão no catálogo de dispositivos.

API Play Integrity

A API Play Integrity usa a etiqueta MEETS_VIRTUAL_INTEGRITY de deviceRecognitionVerdict para indicar que o jogo está sendo executado no Google Play Games. Veja a seguir um exemplo de resposta de transmissão da API Play Integrity:

deviceIntegrity: {
    // "MEETS_DEVICE_INTEGRITY" is one of several possible values.
    deviceRecognitionVerdict: ["MEETS_VIRTUAL_INTEGRITY"]
}

Sua lógica de validação precisa verificar a existência do rótulo MEETS_VIRTUAL_INTEGRITY.

Consulte a documentação da API Play Integrity para ter mais informações.