Descripción general de la API de Play Integrity

La API de Play Integrity te ayuda a verificar que las interacciones y las solicitudes del servidor provengan del objeto binario original de la app que se ejecuta en un dispositivo Android original. Cuando se detectan interacciones potencialmente peligrosas y fraudulentas, como versiones manipuladas de la app y entornos poco confiables, el servidor de backend de tu app puede tomar las medidas adecuadas para evitar los ataques y reducir los abusos.

Cuando tu app o juego se usan en un dispositivo Android con Google Play Store y cuentan con la tecnología de los Servicios de Google Play, la API de Play Integrity proporciona una respuesta que te ayuda a determinar si interactúas con lo siguiente:

  • Objeto binario original de la app: Determina si interactúas con el objeto binario sin modificar que Google Play reconoce.
  • Instalación original de Play: Determina si la cuenta de usuario actual tiene licencia, lo que significa que el usuario instaló o pagó la app o el juego en Google Play.
  • Dispositivo Android original: Determina si tu app se ejecuta en un dispositivo Android original con la tecnología de los Servicios de Google Play (o una instancia original de Google Play Juegos para PC).
  • Sin software malicioso conocido: Determina si Google Play Protect está activado y si encontró apps peligrosas o peligrosas instaladas en el dispositivo.

Descripción general

Cuando un usuario realiza una acción en tu app, puedes llamar a la API de Play Integrity para verificar que la acción se haya realizado en el objeto binario original de tu app, que Google Play instaló, y que se ejecuta en un dispositivo Android original. También puedes habilitar señales sobre el entorno, por ejemplo, si Google Play Protect está activado y encontró software malicioso conocido instalado en el dispositivo. Si hay algún problema con los veredictos, el servidor de backend de tu app puede decidir qué hacer para protegerte contra problemas como abuso y fraude, uso inadecuado, trampas, acceso no autorizado y ataques.

Flujo de descripción general de la API de Play Integrity

Consideraciones de seguridad

La API de Play Integrity brinda el máximo valor a tu app cuando sigues estas prácticas recomendadas:

Asegúrate de contar con una estrategia contra el abuso

La API de Play Integrity funciona mejor cuando se usa junto con otros indicadores como parte de tu estrategia general contra el abuso y no como tu único mecanismo antiabuso. Usa esta API junto con otras prácticas recomendadas de seguridad para tu app. De forma predeterminada, tu app puede realizar hasta 10,000 solicitudes totales por día en todas las instalaciones. Puedes solicitar que se aumente tu máximo diario.

Decide cómo solicitarás los veredictos de integridad

La API de Play Integrity ofrece dos opciones para solicitar y recibir veredictos de integridad. Ya sea que realices solicitudes estándar, clásicas o una combinación de ambas, la respuesta de veredicto de integridad se mostrará en el mismo formato.

Las solicitudes a la API estándar son adecuadas para cualquier app o juego, y se pueden realizar a pedido para verificar que cualquier acción del usuario o solicitud del servidor sea genuina. Las solicitudes estándar tienen la latencia más baja (cientos de milisegundos en promedio) y una confiabilidad alta para obtener un veredicto que se puede usar. Las solicitudes estándar usan almacenamiento en caché inteligente en el dispositivo y delegan la protección contra ciertos tipos de ataques a Google Play.

Las solicitudes a la API clásicas, la forma original de solicitar veredictos de integridad, también siguen disponibles. Las solicitudes clásicas tienen una latencia más alta (algunos segundos en promedio) y eres responsable de mitigar el riesgo de algunos tipos de ataques. Las solicitudes clásicas usan más de los datos y la batería del usuario que las solicitudes estándar, ya que inician una evaluación nueva y, por lo tanto, deben realizarse con poca frecuencia como una alternativa única para verificar si una acción altamente sensible o valiosa es original. Si estás considerando realizar una solicitud clásica y almacenarla en caché para usarla más adelante, debes realizar una solicitud estándar para reducir el riesgo de ataques.

En la siguiente tabla, se destacan algunas diferencias clave entre los dos tipos de solicitudes:

Solicitud a la API estándar Solicitud a la API clásica
Una versión mínima del SDK de Android requerida Android 5.0 (nivel de API 21) o una versión posterior Android 4.4 (nivel de API 19) o una versión posterior
Preparación de la API requerida ✔️ (unos segundos)
Latencia de solicitud típica Unos cientos de milisegundos Unos segundos
Frecuencia de solicitudes potencial Frecuente (verificación a pedido de cualquier acción o solicitud) Infrecuente (verificación única de acciones de mayor valor o solicitudes más sensibles)
Mitigación contra ataques de repetición y similares Mitigación automática de Google Play Uso del campo nonce con la lógica del servidor

Puedes ver una tabla con más diferencias en las consideraciones de la solicitud clásica.

Haz que tus solicitudes a la API sean difíciles de replicar

Las solicitudes a la API estándar tienen un campo llamado requestHash que se usa para protegerte contra la manipulación y ataques similares. En este campo, debes incluir un resumen de todos los valores relevantes de la solicitud de tu app. Sigue las instrucciones sobre cómo usar la vinculación de contenido y proteger las solicitudes estándar de tu app.

Las solicitudes a la API clásicas tienen un campo llamado nonce (abreviatura de "number once"), que se usa para proteger contra ciertos tipos de ataques, como los de repetición y alteración. Sigue las instrucciones para generar nonces y proteger las solicitudes clásicas de tu app.

Evita que los veredictos de integridad se almacenen en caché

El almacenamiento en caché de los veredictos de integridad aumenta el riesgo de generar proxies, que es un ataque en el que una entidad que actúa de mala fe reutiliza un veredicto de un dispositivo confiable con fines abusivos en otro entorno. En lugar de almacenar respuestas en caché, puedes hacer una solicitud a la API estándar para obtener un veredicto a pedido.

Asegúrate de contar con una estrategia de aplicación por niveles

El veredicto de integridad de la API de Play Integrity tiene un rango de respuestas posibles que permiten crear una estrategia antiabuso con varios niveles de aplicación. Para ello, puedes configurar el servidor de backend de tu app, de modo que se comporte de manera diferente según cada respuesta o grupo de respuestas posible.

También puedes habilitar tu estrategia de aplicación por niveles en función de la confiabilidad de los dispositivos. Para ello, debes habilitar la opción de recibir etiquetas de dispositivos adicionales en tu respuesta de la API desde Play Console. Cada dispositivo mostrará todas las etiquetas cuyos criterios satisfaga. Por ejemplo, después de aceptar recibir todas las etiquetas del dispositivo, puedes confiar en un dispositivo que muestra MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY y MEETS_BASIC_INTEGRITY más que en un dispositivo que solo muestra MEETS_BASIC_INTEGRITY. Puedes responder de manera diferente al servidor en cada situación.

Envía un rango de respuestas del servidor a la app

Tener un rango de resultados de decisión es más difícil de replicar que enviar una respuesta binaria de permiso/denegación del servidor a la app para cada respuesta. Por ejemplo, puedes usar una serie de respuestas relacionadas, como Permitir, Permitir con límites, Permitir con límites después de que se complete el captcha y Rechazar.

Detecta casos de abuso a gran escala

Usa la función de actividad reciente del dispositivo en la API de Play Integrity para encontrar dispositivos que soliciten una gran cantidad de certificaciones. Los abusadores de alto volumen de actividades suelen generar resultados de certificación válidos a partir de dispositivos reales y proporcionarlos a bots para automatizar ataques en emuladores y dispositivos con permisos de administrador. Puedes usar el resultado de la actividad reciente del dispositivo para determinar la cantidad de certificaciones que generó tu app en un dispositivo en la última hora.

Muestra mensajes de error prácticos

Cuando sea posible, proporciona mensajes de error útiles al usuario y dile qué hacer para solucionarlo, como volver a intentar la acción, habilitar la conexión a Internet o verificar si la app de Google Play Store está actualizada.

Ten un plan para problemas inesperados o interrupciones

En el panel de estado de Play, se muestra información sobre el estado del servicio de la API de Play Integrity, así como información sobre cualquier interrupción. Puedes configurar con anticipación cómo quieres que funcione el servidor de backend en el caso improbable de una interrupción a gran escala de la API de Play Integrity.

Considera soluciones de fraude empresarial de extremo a extremo

Los clientes empresariales que buscan una solución completa de administración de fraudes y bots pueden comprar reCAPTCHA Enterprise para dispositivos móviles, que incluye SDKs para Android que proporcionan puntuaciones de riesgo de fraude a los desarrolladores. reCAPTCHA Enterprise incluye automáticamente los indicadores de la API de Play Integrity y los combina con indicadores de aplicaciones y de la red de reCAPTCHA para clientes, lo que proporciona una solución de administración de fraudes invisible y sin inconvenientes. También puede brindar protección para las apps para Android en las que la API de Play Integrity no está disponible.

Condiciones del Servicio y Seguridad de los datos

Cuando accedes a la API de Play Integrity o la usas, aceptas sus Condiciones del Servicio. Asegúrate de leer y entender todas las condiciones y políticas aplicables antes de acceder a la API.

Google Play tiene una sección de Seguridad de los datos para que los desarrolladores divulguen las prácticas de seguridad, uso compartido y recopilación de datos de sus apps y mantener informados a sus usuarios. Para ayudarte a completar el formulario, consulta la siguiente información sobre cómo la API de Play Integrity controla los datos.