SafetyNet es un sistema de protección integrado en Android del cual no necesitas saber nada hasta que hay un problema con él y algunas aplicaciones dejan de funcionar. Veremos qué es esto de SafetyNet y para qué sirve.
Primero veremos qué es exactamente este test de seguridad y para qué se usa, para después contarte cómo puedes ver si tu móvil pasa el test y qué casos pueden provocar que un móvil no pase el test.
Qué es SafetyNet y para qué sirve
Google define SafetyNet como unos servicios y API para evitar abusos. Los desarrolladores de aplicaciones pueden usar esta API para determinar si la conexión con los servidores es genuina, desde una aplicación genuina y en un dispositivo genuino.
SafetyNet es un sistema que tienen los desarrolladores de apps para comprobar si el dispositivo es genuino, sin modificaciones
Es decir, lo que hace es comprobar el software y hardware del dispositivo para verificar que su integridad no haya sido comprometida, comparando el estado actual con los datos de referencias recogidos durante el test de compatibilidad (CTS).
No se trata de un DRM o de un estricto sistema anticheats para juegos, sino más bien de una comprobación de la integridad del sistema que compara que el sistema sigue igual que cuando pasó las pruebas de compatibilidad. Estas pruebas se componen de multitud de pequeños tests para detectar incompatibilidades y que cubren áreas como permisos o interacción entre distintas API.
No es tampoco un detector de root, a pesar de que los dispositivos rooteados no pasarán el test. Esto es así porque los resultados que arroja SafetyNet son ambiguos y se limitan a decir si se ha pasado el test o no, pero no por qué motivo.
En cuanto a su uso, SafetyNet lo usan los desarrolladores para comprobar la seguridad general del sistema. Son estos desarrolladores los que deben implementarlo en sus aplicaciones y actuar en consecuencia.
Por ejemplo, la aplicación de un banco puede no funcionar a no ser que el dispositivo pase SafetyNet. De hecho, ya pasa con Google Pay. Otros desarrolladores pueden optar por directamente no mostrar sus apps en Google Play en dispositivos que no pasan el test, como pasa con Netflix.
Cómo saber si tu móvil pasa SafetyNet
El modo más fácil de comprobar si tu móvil pasa la comprobación SafetyNet es instalar una aplicación que haga la comprobación. Hay varias en Google Play que cumplen el cometido, siendo la más popular la sencilla SafetyNet Test.
La aplicación tiene literalmente un único botón, así que lo único que tienes que hacer es tocar en Run test. El test en cuestión toma un segundo y muestra bien claro si se ha pasado o no. En la parte inferior de la ventana se indican algunos detalles adicionales.
Safety Net Request. Es la petición del test en sí. Si no se lleva a cabo, el test ni siquiera llega a realizarse (por ejemplo, si no tienes conexión a Internet).
Response signature validation. Es la validación del resultado del test, que llega desde los servidores de Google.
Basic integrity. Es el test de integridad básica, algo más permisivo que el siguiente. Los desarrolladores pueden determinar si quieren que sus apps sigan funcionando si se pasa al menos este nivel de integridad.
CTS profile match. Es el test más estricto, que solo da como verdadero cuando el dispositivo se establece como genuino y certificado de acuerdo a la certificación CTS.
SafetyNet Test
- Desarrollador: Free Android Tools
- Descárgalo en: Google Play
- Precio: Gratis
- Categoría: Herramientas
Por qué puede fallar el test
Como comentábamos antes, el test de SafetyNet no sirve para que los desarrolladores sepan con certeza si tu móvil está rooteado o qué problema hay con él, sino que devuelve verdadero o falso, sin explicar por qué. Ahora bien, los motivos por los que devuelve verdadero o falso son concretos y son los siguientes:
Test "CTS Profile Match" | Test "Basic Integrity" | |
---|---|---|
Dispositivo certificado y genuino de acuerdo al CTS | Verdadero | Verdadero |
Dispositivo certificado con bootloader desbloqueado | Falso | Verdadero |
Dispositivo genuino sin certificar (porque el fabricante no lo ha certificado) | Falso | Verdadero |
Dispositivo con ROM personalizada, sin root | Falso | Verdadero |
Emulador | Falso | Falso |
No es un dispositivo sino un script | Falso | Falso |
Signos de sistema comprometido, como por ejemplo un sistema rooteado | Falso | Falso |
Otros signos de ataques | Falso | Falso |
Así pues, el test se compone en sí de dos niveles y puede fallar por todos los motivos anteriores, si bien la aplicación que haga la comprobación no sabrá exactamente cuál es el caso, sino solo que falló.
Esto quiere decir que el test más estricto dará error si el dispositivo tiene una ROM o el bootloader desbloqueado, aunque el test de integridad básico es algo más permisivo y pasará en los casos anteriores. En lo que en ambos concuerdan es en el root: un dispositivo rooteado o con modificaciones similares no pasa ninguno de los tests.
Ver 4 comentarios