Vereditos aprimorados em dispositivos Android 13 e mais recentes

Recentemente, anunciamos que estamos fortalecendo os vereditos da API Play Integrity para torná-los mais rápidos, mais resistentes a ataques e mais privados para os usuários, além de outras melhorias de segurança.

Resumo das mudanças

Confira um resumo detalhado das mudanças e do impacto esperado mais adiante neste documento. Os novos vereditos vão estar disponíveis da seguinte forma:

  • Novas integrações:todas as novas integrações vão receber automaticamente os novos vereditos.

  • Integrações atuais até maio de 2025: os desenvolvedores com integrações atuais podem ativar a página de configurações da API Play Integrity no Play Console para receber os novos vereditos com os vereditos legados agora, dando tempo para você analisar e considerar fazer mudanças no comportamento do app. Antes de ativar, você pode conferir a mudança esperada na porcentagem de dispositivos que retornam cada veredito e um exemplo JSON do novo veredito. Ao ativar essa opção, você vai receber dois campos adicionais na resposta com a versão do SDK do Android e os vereditos legados.

  • Integrações atuais após maio de 2025:as melhorias vão ser ativadas para todas as integrações, sem necessidade de trabalho do desenvolvedor. Os apps que optarem por participar antes de maio de 2025 não vão receber o campo temporário que contém os veredictos legados.

O quê O que está mudando Impacto estimado* Quais dispositivos
Mudanças que afetam todos os desenvolvedores que fazem solicitações da API Play Integrity
Resposta do veredito do dispositivo: meets-device-integrity É necessário ter um veredito de inicialização verificada positivo com suporte de hardware. Impacto mínimo, porque a API Play Integrity já usa indicadores de segurança protegidos por hardware em dispositivos com o Android 13 ou versões mais recentes (~0,4%). Android 13 e versões mais recentes
Resposta de integridade do app: veredito de reconhecimento do app Sem alterações Impacto mínimo, isso vai refletir a mudança no veredito do dispositivo (~0,4%). Android 13 e versões mais recentes
Resposta aos detalhes da conta: veredito da licença do Google Play O app que faz a solicitação precisa ser instalado ou atualizado pelo Google Play Pequena diminuição nas respostas licenciadas (~2,5%) Android 11 e versões mais recentes (essa mudança será lançada aos poucos)
Mudanças que afetam apenas os desenvolvedores do Play Console e do Play SDK Console que usam recursos opcionais
Resposta do veredito do dispositivo: meets-basic-integrity É necessário ter o atestado de chave da plataforma Android, mas o estado de inicialização pode ser verificado ou não. Diminuição pequena nas respostas básicas (~0,4%) Android 13 e versões mais recentes
Resposta do veredito do dispositivo: meets-strong-integrity É necessário ter uma atualização de segurança no último ano Diminuição das respostas fortes (~14,5%) Android 13 e versões mais recentes
Todos os indicadores opcionais O app que faz a solicitação precisa ser instalado ou atualizado pelo Google Play Diminuição na porcentagem de respostas que incluem indicadores opcionais (~7%) Android 13 e versões mais recentes

*Todas as porcentagens de impacto estimadas acima são baseadas em médias, e diferentes apps podem ter mudanças menores ou maiores dependendo da base instalada.

Perguntas frequentes

Visão geral

O que é a API Play Integrity?

A API Play Integrity ajuda a avaliar a confiabilidade do ambiente do app do usuário extraindo informações sobre o dispositivo, o app e o usuário para que você possa detectar e responder a possíveis abusos e ataques.

Quais indicadores a API Play Integrity fornece?

A API Play Integrity inclui a identidade do app solicitante, se o app solicitante foi instalado pelo Google Play e se o dispositivo é um dispositivo Android certificado pelo Play Protect. Esses sinais são fornecidos por padrão. É possível ler esses indicadores no servidor de back-end do app e decidir se e como ele vai responder. Os desenvolvedores do Google Play podem ativar o recebimento de outros indicadores nas instalações do Google Play para acessar ainda mais informações.

O que é o atestado de chaves da plataforma Android?

A declaração de chaves da plataforma Android permite que os apps verifiquem o estado do dispositivo e recebam um indicador forte de integridade da inicialização protegida por hardware. Isso depende de uma chave provisionada pelo Google no keystore com suporte de hardware do dispositivo. A API Play Integrity já usa a declaração de chave para receber indicadores de segurança protegidos por hardware em alguns dispositivos e agora vai integrá-los mais profundamente em todos os dispositivos com o Android 13 ou versões mais recentes.

Mudanças de veredito

Quais mudanças estão sendo feitas nos vereditos da API Play Integrity em dispositivos com o Android 13 ou versões mais recentes?

A API Play Integrity agora vai exigir indicadores de segurança protegidos por hardware para todos os vereditos de integridade:

  • O veredito de reconhecimento de dispositivo meets-device-integrity é uma indicação de que o dispositivo em que o app está sendo executado é um dispositivo Android genuíno certificado pelo Play Protect. Esse veredito exige que o carregador de inicialização do dispositivo esteja bloqueado e que o SO Android carregado seja uma imagem certificada do fabricante do dispositivo.
  • O veredito de reconhecimento de dispositivo meets-strong-integrity é uma indicação de um dispositivo Android genuíno certificado pelo Play Protect com uma atualização de segurança recente. Esse veredito vai exigir meets-device-integrity e que o dispositivo tenha feito uma atualização de segurança no último ano. Essa condição pode mudar no futuro.
  • O veredito de reconhecimento de dispositivo meets-basic-integrity é uma indicação de que a verificação ocorreu em um dispositivo Android físico. O carregador de inicialização do dispositivo pode ser bloqueado ou desbloqueado, e o estado de inicialização pode ser verificado ou não verificado. Ele pode não ter a certificação do Play Protect. Nesse caso, o Google não pode oferecer garantias de segurança, privacidade ou compatibilidade de apps e não pode garantir que o dispositivo não está agindo como um proxy, como em uma instância virtual do Android. Isso também significa que os dispositivos com acesso root estão qualificados para retornar meets-basic-integrity, desde que o atestado de chave esteja presente.

Essas mudanças não afetam a API Play Integrity no Google Play Games para PC, que continuará retornando meets-virtual-integrity.

Por que os vereditos da API Play Integrity estão sendo alterados em dispositivos com o Android 13 ou versões mais recentes?

A API Play Integrity só usava parcialmente os indicadores de segurança com suporte de hardware nas versões do SDK do Android. Ao aumentar a integração, os vereditos da API Play Integrity serão mais resistentes contra invasores, mais eficientes para apps e mais privados para os usuários. Depois que a transição for concluída, esperamos as seguintes melhorias em dispositivos com o Android 13 ou versões mais recentes:

  • Redução de 90% nos sinais de dispositivos que precisam ser coletados e avaliados para gerar o veredito padrão nos servidores do Google. Os indicadores opcionais vão continuar exigindo a coleta de outros indicadores.
  • Melhoria na latência do veredito de até 80% para solicitações padrão no pior cenário e de até 80% para todas as solicitações clássicas para receber o veredito padrão. Os indicadores opcionais podem aumentar a latência.
  • Nível consistente de confiabilidade e suporte para todos os formatos do Android com atestados de chave, incluindo smartphones, tablets, dobráveis, TV, Wear OS e ChromeOS.
  • Uma maior diferenciação entre cada rótulo de dispositivo no veredito de reconhecimento do dispositivo: meets-strong-integrity, meets-device-integrity e meets-basic-integrity.

Não é esperado que o desempenho mude durante o período de ativação, enquanto a API Play Integrity gera vereditos de integridade antigos e novos. No entanto, depois que os novos veredictos forem lançados para todos os desenvolvedores em maio de 2025, esperamos que as melhorias de performance sejam notadas gradualmente, enquanto removemos ou fazemos a transição de dependências legado para todos os indicadores padrão e opcionais.

O veredito da API Play Integrity no Play Games para PC não vai mudar e será o mesmo no Android 12 e versões anteriores, assim como no Android 13 e versões mais recentes.

Como posso atualizar a lógica de back-end do meu app para que os vereditos de integridade levem em conta a versão do SDK do Android?

Se você quiser usar uma lógica diferente no servidor de back-end do app com base na versão do SDK do Android, use o novo campo de atributos do dispositivo no veredito. Confira um exemplo:

Kotlin

val deviceIntegrity =
  JSONObject(payload).getJSONObject("deviceIntegrity")
val sdkVersion =
  if (deviceIntegrity.has("deviceAttributes")) {
    deviceIntegrity.getJSONObject("deviceAttributes").getInt("sdkVersion")
  } else {
    0
  }

if (sdkVersion >= 30) {
  // Provide Android R+ specific experience to the user.
}

Java

JSONObject deviceIntegrity =
  new JSONObject(payload).getJSONObject("deviceIntegrity");
int sdkVersion =
  deviceIntegrity.has("deviceAttributes")
    ? deviceIntegrity.getJSONArray("deviceAttributes").getInt("sdkVersion")
    : 0;

if (sdkVersion >= 30) {
  // Provide Android R+ specific experience to the user.
}

Como posso usar a definição antiga do rótulo meets-strong-integrity em todas as versões do SDK do Android?

Para isso, atualize a lógica de back-end do app para usar meets-strong-integrity quando ele for um dispositivo com Android 13 ou anterior e meets-device-integrity quando ele for um dispositivo com Android 13 ou mais recente usando o novo campo de atributos do dispositivo no veredito que contém a versão do SDK do Android. Confira um exemplo de como fazer isso:

Kotlin

val deviceRecognitionVerdict =
  if (deviceIntegrity.has("deviceRecognitionVerdict")) {
    deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString()
  } else {
    ""
  }

val deviceIntegrityToCheckFor =
  sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY";

if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) {
  // Looks good!
}

Java

JSONObject deviceIntegrity =
  new JSONObject(payload).getJSONObject("deviceIntegrity");
String deviceRecognitionVerdict =
  deviceIntegrity.has("deviceRecognitionVerdict")
    ? deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString()
    : "";

String deviceIntegrityToCheckFor =
  sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY";

if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) {
  // Looks good!
}

Como ele também é um sinal com suporte de hardware, o campo de atributos do dispositivo é mais confiável em dispositivos com o Android 13 e versões mais recentes.

Quais outras mudanças de veredito a API Play Integrity está fazendo?

Investimos continuamente para tornar os indicadores da API Play Integrity mais confiáveis e lançamos novos recursos periodicamente para ajudar os desenvolvedores a lidar com ameaças emergentes e novos casos de uso. Outras melhorias de veredito que estamos fazendo incluem:

  • Resposta licenciada do Google Play:para retornar uma resposta licenciada do Google Play, a API Play Integrity agora sempre exige que o app solicitante seja instalado ou atualizado pelo Google Play. Isso corrige alguns casos extremos e facilita a interpretação da resposta para os desenvolvedores. Essa opção está disponível no Android 13 ou versões mais recentes.
  • Disponibilidade de indicadores opcionais:todos os indicadores opcionais disponíveis para desenvolvedores que usam o Google Play Console ou o Play SDK Console agora exigem que o app solicitante seja instalado ou atualizado pelo Google Play no Android 13 ou versões mais recentes. Isso inclui meets-strong-integrity, meets-basic-integrity, a atividade recente do dispositivo, o veredito de risco de acesso a apps e o veredito do Play Protect. Todas as outras solicitações da API Play Integrity serão padronizadas para receber a verificação do dispositivo (apenas com o rótulo meets-device-integrity), a verificação do instalador e a verificação de integridade do app.
  • Mudanças de vereditos para dispositivos específicos:a API Play Integrity também vai começar a mudar automaticamente os vereditos de dispositivos em mais cenários para proteger os apps mais cedo em todas as versões do SDK do Android, como quando há evidências de atividade excessiva ou comprometimento de chaves. Isso inclui a capacidade do Google Play de usar outros indicadores para gerar veredictos temporários de dispositivos para os usuários quando os indicadores com suporte de hardware não estão disponíveis. Recomendamos que os desenvolvedores usem as caixas de diálogo de correção do Google Play no app ou direcionem os usuários ao app da Play Store para corrigir problemas de veredito de integridade. Com o tempo, essas caixas de diálogo vão lidar com mais cenários e incluir orientações específicas para os usuários, informando o que eles precisam corrigir com base no dispositivo ou na conta.

Como ativar e desativar

Como ativar o veredito melhorado em dispositivos com o Android 13 ou versões mais recentes?

Os desenvolvedores que usam o Play Console podem ativar a API Play Integrity na página de configurações.

O que vai acontecer com minha resposta da API Play Integrity depois que eu ativar?

Três coisas vão acontecer quando você ativar essa configuração:

  • As respostas no campo deviceRecognitionVerdict vão começar a ser geradas e retornadas imediatamente com base nos novos requisitos de avaliação de veredito em dispositivos com Android 13 ou mais recente. Em dispositivos com o Android 12 e versões anteriores, o deviceRecognitionVerdict será gerado usando a avaliação de veredito histórico.
  • Você vai receber um novo campo, deviceAttributes, que contém a versão do SDK do Android no dispositivo.
  • Você vai receber um novo campo, legacyDeviceRecognitionVerdict, que contém as respostas de integridade do dispositivo com base nos requisitos de avaliação de vereditos anteriores, independentemente da versão do SDK do Android.

Quando as mudanças de veredito forem lançadas para todas as integrações em maio de 2025, os apps que ativarem essa opção vão parar de receber o campo legacyDeviceRecognitionVerdict.

Como faço para informar problemas com vereditos de integridade?

Para informar problemas com respostas da API Play Integrity, seja com os vereditos históricos ou os novos, siga as instruções na página de suporte.

Posso desativar o recurso depois de ativar?

Sim, é possível desativar na página de configurações da API Play Integrity.

Disponibilidade

O que a API Play Integrity precisa para funcionar?

A API Play Integrity exige que a Google Play Store e o Google Play Services estejam instalados em um dispositivo, incluindo dispositivos Android e o Google Play Games para PC. As solicitações clássicas exigem o Android 4.4 (nível 19 da API) ou versões mais recentes, e as solicitações padrão exigem o Android 5.0 (nível 21 da API) ou versões mais recentes. Em dispositivos com o Android 13 (nível 33 da API) e versões mais recentes, a API Play Integrity vai ter o mesmo nível de confiabilidade e suporte em todos os formatos do Android com atestado de chave, incluindo dispositivos móveis, tablets, dobráveis, TV, Auto, Wear OS e ChromeOS.

Por que a API Play Integrity tem vereditos diferentes para dispositivos diferentes?

A API Play Integrity oferece vários vereditos de dispositivo para acomodar desenvolvedores com diferentes casos de uso e tolerâncias de risco e para permitir uma estratégia de aplicação em níveis. Por exemplo, quando o app e o dispositivo são mais confiáveis, um desenvolvedor pode agilizar as etapas de verificação do usuário. Já quando um dispositivo é desconhecido, o desenvolvedor pode exigir uma verificação adicional do usuário antes de realizar ações protegidas ou sensíveis. Essa pode ser uma maneira eficaz de reduzir abusos e ataques.

O que é um dispositivo Android certificado pelo Play Protect?

Um dispositivo Android certificado pelo Play Protect (também conhecido como dispositivo Android GMS) é um dispositivo com software previsível que passou em centenas de testes de compatibilidade do Google, obedece ao modelo de segurança e permissões do Android e é enviado com o pacote de recursos antimalware do Google Play Protect. Quando a API Play Integrity consegue verificar se um dispositivo é um dispositivo Android certificado pelo Play Protect, ela retorna a resposta meets-device-integrity no veredito de reconhecimento do dispositivo.

O que é um dispositivo meets-basic-integrity?

A API Play Integrity também retorna uma resposta opcional no veredito do dispositivo, meets-basic-integrity. Se um dispositivo retornar apenas o veredito meets-basic-integrity sem meets-device-integrity ou meets-strong-integrity, isso significa que o SO Android não pode ser verificado, mas o atestado de chave está presente. Isso indica que a verificação ocorreu em um dispositivo físico com Android, mas o Google não pode garantir a segurança, a privacidade ou a compatibilidade do dispositivo e não pode garantir que ele não está agindo como um proxy, como em uma instância virtual do Android. Dependendo dos casos de uso e da tolerância a riscos dos desenvolvedores, eles podem decidir como querem que o app seja executado nesses dispositivos.

Qualquer desenvolvedor pode usar a API Play Integrity?

Sim, qualquer desenvolvedor Android pode fazer solicitações da API Play Integrity para receber os vereditos de integridade padrão. O uso é limitado a 10 mil solicitações por dia, independente do canal de distribuição. Os desenvolvedores que publicam apps no Google Play, além de outros canais de distribuição, também podem solicitar o aumento da cota diária.

Qualquer desenvolvedor pode usar o atestado de chave da plataforma Android?

Sim, qualquer desenvolvedor Android pode usar o atestado de chave da plataforma Android para receber um registro de atestado de chave, que pode ser verificado com o certificado público da chave raiz de atestado do Google. A API Play Integrity oferece aos desenvolvedores os benefícios do atestado de chave e outros recursos sem toda a complexidade de ter que fazer a integração com o atestado de chave.

Aplicação

Como os desenvolvedores usam os vereditos da API Play Integrity?

Os desenvolvedores decidem se e como usar os vereditos da API Play Integrity. Alguns desenvolvedores coletam os indicadores para análise interna de combate a abusos, enquanto outros tomam decisões sobre o comportamento do app com base no veredito. Por exemplo, os desenvolvedores podem exigir que dispositivos menos confiáveis realizem outras etapas de verificação de usuário ao criar uma conta. Ou podem decidir que dispositivos menos confiáveis precisam jogar juntos no mesmo servidor multijogador.

A API Play Integrity bloqueia usuários ou dispositivos?

Não, a API Play Integrity não bloqueia o acesso a nenhuma funcionalidade. É um serviço opcional para desenvolvedores que fornece indicadores, e os desenvolvedores escolhem como agir com base neles.

O que os usuários devem fazer se o dispositivo falhar nas verificações de dispositivo da API Play Integrity?

Os usuários podem acessar o app Play Store no dispositivo, abrir o menu "Configurações", rolar para baixo até "Sobre" e procurar em "Certificação do Play Protect". Se houver algum problema com a certificação do Play Protect do dispositivo, haverá um botão que os usuários podem pressionar para tentar corrigir o problema. Isso vai atualizar o status de certificação do dispositivo e fornecer orientações específicas sobre o que precisa ser corrigido.