Verificación de aplicaciones de Firebase
Verificación de aplicaciones protege tus recursos de API contra todo tipo de abusos impide que los clientes no autorizados accedan a tus recursos de backend. Funciona con servicios de Firebase, servicios de Google Cloud y tus propias API para mantener tus recursos seguros.
Mediante la Verificación de aplicaciones, los dispositivos que ejecutan tu app usarán un proveedor de certificación de apps o de dispositivos que certifique uno o ambos de los siguientes procedimientos:
- Las solicitudes se originan en tu app auténtica
- Las solicitudes se originan en un dispositivo auténtico, no adulterado
Esta certificación se adjunta a todas las solicitudes de tu app a las APIs que especifiques. Cuando habilites la aplicación de la Verificación de aplicaciones, se rechazarán las solicitudes de clientes que no tienen una certificación válida, así como las solicitudes provenientes de una app o una plataforma que no autorizaste.
La Verificación de aplicaciones cuenta con compatibilidad integrada para el uso de los siguientes servicios como proveedores de certificación:
- DeviceCheck o App Attest en plataformas de Apple
- Play Integrity o SafetyNet (obsoleta) en Android
- reCAPTCHA Enterprise en apps web
Si estos no son suficientes para tus necesidades, también puedes implementar tu propio servicio que use un proveedor de certificación externo o tus propias técnicas de certificación.
En este momento, la Verificación de aplicaciones funciona con los siguientes productos de Firebase:
Productos de Firebase admitidos |
---|
Realtime Database |
Cloud Firestore |
Cloud Storage |
Cloud Functions (funciones que admiten llamadas) |
Authentication (beta, requiere la actualización a Firebase Authentication con Identity Platform) |
También puedes usar la Verificación de aplicaciones para proteger los recursos de backend que no sean de Firebase.
¿Todo listo para comenzar?
¿Cómo funciona?
Cuando habilitas la Verificación de aplicaciones para un servicio y, además, incluyes el SDK cliente en tu app, sucede lo siguiente de forma periódica:
- Tu app interactúa con el proveedor de tu elección para obtener una certificación de la autenticidad de la app o del dispositivo (o de ambos, según el proveedor).
- La certificación se envía al servidor de la Verificación de aplicaciones, que verifica la validez de la certificación mediante parámetros registrados en la app y muestra a tu app un token de la Verificación de aplicaciones con una fecha de vencimiento. Es posible que este token retenga información sobre el material de certificación que verificó.
- El SDK cliente de la Verificación de aplicaciones almacena en caché el token de tu app, el cual se encuentra listo para enviarse junto con cualquier solicitud que la app haga a servicios protegidos.
Un servicio protegido por la Verificación de aplicaciones solo acepta solicitudes acompañadas de un token válido y actual de la Verificación de aplicaciones.
¿Qué tan sólida es la seguridad que proporciona la Verificación de aplicaciones?
La Verificación de aplicaciones se basa en la solidez de sus proveedores de certificación para determinar la autenticidad de la app o del dispositivo. Se evitan algunos vectores de abuso dirigidos a los backends, pero no todos ellos. El uso de la Verificación de aplicaciones no garantiza la eliminación de todos los abusos. Sin embargo, mediante la integración a esta función, estás tomando una medida importante para proteger tus recursos de backend.
¿Cómo se relaciona la Verificación de aplicaciones con Firebase Authentication?
La Verificación de aplicaciones y Firebase Authentication son partes complementarias de la seguridad de la app. Firebase Authentication proporciona la autenticación de usuario, que protege a los usuarios, mientras que la Verificación de aplicaciones proporciona la certificación de autenticidad de los dispositivos o las apps, que te protege a ti, el desarrollador. La Verificación de aplicaciones protege el acceso a tus recursos de Firebase y los backends personalizados, ya que solicita que las llamadas a la API contengan un token válido de la Verificación de aplicaciones de Firebase. Estos dos conceptos funcionan juntos para ayudar a proteger la app.
Cuotas y límites
Tu uso de la Verificación de aplicaciones está sujeto a las cuotas y los límites de los proveedores de certificación que uses.
El acceso a DeviceCheck y App Attest está sujeto a cualquier cuota o limitación establecida por Apple.
Play Integrity tiene una cuota diaria de 10,000 llamadas para su nivel de uso de la API estándar. Si deseas obtener más información para aumentar el nivel de uso, consulta la documentación de Play Integrity.
SafetyNet tiene una cuota diaria de 10,000 llamadas. Para obtener información sobre cómo solicitar un aumento de cuota, consulta la documentación de SafetyNet.
reCAPTCHA Enterprise no tiene costo para 1 millón de llamadas por mes. Una vez superada esa cuota, el servicio tiene un costo asociado. Consulta los precios de reCAPTCHA Enterprise.
Primeros pasos
¿Todo listo para comenzar?
Plataformas de Apple
Android
Web
Flutter
C++
Unity
Obtén información para implementar un proveedor personalizado de Verificación de aplicaciones:
Aprende a usar la Verificación de aplicaciones para proteger los recursos de backend que no sean de Firebase: