From d9919caafb6b741c8c3300f8321fa126fa73fc95 Mon Sep 17 00:00:00 2001 From: s1to Date: Sat, 8 Aug 2026 20:15:50 +0200 Subject: [PATCH] =?UTF-8?q?Matizar=20la=20atestaci=C3=B3n:=20imitable=20po?= =?UTF-8?q?r=20niveles,=20no=20a=20escala?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La documentación cerraba el tema en "imposible". Es impreciso: la imitación derrota comprobaciones de propiedades pero no de firma. - Nueva subsección en capa_identidad.md que mapea cada veredicto de Play Integrity a imitable/no imitable y explica por qué: los niveles software se falsean, el de hardware no, y los keyboxes filtrados caducan porque Google los revoca. Redroid parte peor que un móvil rooteado por no tener TEE - README: el cierre remite al matiz por niveles en vez de decir "no puede tenerla" a secas - fuentes.md: Play Integrity, Key Attestation, Verified Boot y el paper de extracción de claves del Keymaster de Samsung --- 01_investigacion/capa_identidad.md | 44 ++++++++++++++++++++++++++++-- 01_investigacion/fuentes.md | 6 ++++ README.md | 8 ++++-- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/01_investigacion/capa_identidad.md b/01_investigacion/capa_identidad.md index 05936da..6096b2d 100644 --- a/01_investigacion/capa_identidad.md +++ b/01_investigacion/capa_identidad.md @@ -187,13 +187,51 @@ Esto cambia la naturaleza del problema: > La detección de emulador dejó de ser **estadística** y pasó a ser **criptográfica**. Antes, detectar un emulador era acumular indicios y decidir con un umbral — y todo umbral se puede -esquivar. Ahora es verificar una firma contra una raíz de confianza. **O tienes la clave o no la -tienes.** No hay evasión posible, solo robo de claves de dispositivos reales, que es otro delito y -otro mercado. +esquivar. Ahora es verificar una firma contra una raíz de confianza. Para el nivel respaldado por +hardware, **o tienes la clave o no la tienes**: no hay imitación que valga (ver la subsección +siguiente para el matiz por niveles). Explica también por qué GenFarmer vende cajas con teléfonos físicos de 400 $ en vez de software para tu servidor: lo que venden no es cómputo, es el único sitio donde vive la clave. +### ¿Se puede imitar la clave en vez de robarla? + +Es la pregunta natural, y la respuesta no es "imposible" a secas: es **por niveles**. Lo que decide +cada nivel es una distinción simple. + +> La imitación derrota comprobaciones que inspeccionan **propiedades**. Es inútil contra una +> comprobación que verifica una **firma**. + +Falsear una propiedad es cambiar lo que el sistema *dice de sí mismo*: el build fingerprint, si hay +root, el estado del bootloader. Falsear una firma no existe: o valida contra la raíz de Google o no, +y no hay apariencia que retocar. Play Integrity mezcla las dos cosas: + +| Veredicto | Qué comprueba | ¿Imitable? | +|---|---|---| +| `BASIC_INTEGRITY` | Propiedades reportadas por software | Sí, con trabajo | +| `DEVICE_INTEGRITY` | Antes propiedades; **desde 2024, firma por hardware** | Ya casi no | +| `STRONG_INTEGRITY` | Firma respaldada por hardware | No | + +**Qué existe en el mundo real.** Hay un ecosistema entero dedicado a esto sobre móviles rooteados: +Magisk/Zygisk para ocultar el root, módulos tipo *Play Integrity Fix* y **fingerprints de +dispositivos reales prestados** para que un teléfono modificado se presente como uno de fábrica. Es +la misma partida de gato y ratón de siempre, ahora sobre firmas en vez de sobre umbrales. + +**Por qué no se sostiene.** Google movió `DEVICE_INTEGRITY` a respaldo por hardware en 2024, lo que +rompió el spoofing que solo cambiaba fingerprints. Lo que quedó fue tirar de **keyboxes filtrados** +—conjuntos de claves de atestación reales sacados de dispositivos— y Google los **revoca** en cuanto +se usan en masa. Es un recurso que caduca: usarlo mucho es exactamente lo que lo quema. + +**Y para esta granja en concreto es el caso más difícil.** Todo lo anterior asume un móvil real +rooteado, con su TEE y su cadena de arranque. Un contenedor redroid **no tiene bootloader, ni +verified boot, ni TEE**: parte de una posición peor que un teléfono modificado, así que ni siquiera +`BASIC_INTEGRITY` es cómodo. + +El fondo honesto, entonces: **se puede en los niveles que no dependen de hardware**, invirtiendo +mucho trabajo y con recursos que expiran; el nivel hardware no; y aunque cueles la atestación, a +escala te sigue hundiendo la correlación del punto 4. No es un muro infinito, es un muro caro, alto +y que hay que reconstruir cada vez. + --- ## 4 · Cómo se integra todo: la correlación diff --git a/01_investigacion/fuentes.md b/01_investigacion/fuentes.md index 5566be8..5a99cfe 100644 --- a/01_investigacion/fuentes.md +++ b/01_investigacion/fuentes.md @@ -12,6 +12,12 @@ - [OpenSTF/DeviceFarmer, alternativas](https://devicelab.dev/blog/openstf-devicefarmer-alternative) - [Running Android on Kubernetes](https://realz.medium.com/running-android-on-kubernetes-be73b940833f) +## Atestación de dispositivo +- [Play Integrity API](https://developer.android.com/google/play/integrity) — los tres veredictos +- [Android Key Attestation](https://developer.android.com/privacy-and-security/security-key-attestation) — la cadena de certificados hasta la raíz de Google +- [Verified Boot](https://source.android.com/docs/security/features/verifiedboot) — estados de arranque +- ["Trust Dies in Darkness: Shedding Light on Samsung's TrustZone Keymaster" (2022)](https://eprint.iacr.org/2022/208) — extracción de claves en TEE vulnerables: robar una clave es per-dispositivo y revocable + ## Legal y casos - [Europol desmantela red de SIM farms — The Hacker News](https://thehackernews.com/2025/10/europol-dismantles-sim-farm-network.html) - [SIM farm dismantled in Europe, seven arrested — SecurityWeek](https://www.securityweek.com/sim-farm-dismantled-in-europe-seven-arrested/) diff --git a/README.md b/README.md index 8da5681..c1ca2bc 100644 --- a/README.md +++ b/README.md @@ -104,11 +104,13 @@ levanta todo el pipeline en un sobremesa. La atestación de dispositivo dejó de ser estadística y pasó a ser criptográfica. Un Android certificado lleva una clave privada grabada en el TEE de fábrica, con cadena de certificados hasta -una raíz de Google. Un contenedor no la tiene y no puede tenerla: no hay software que la produzca. +una raíz de Google. Un contenedor no la tiene, y el nivel de integridad respaldado por hardware +verifica una firma, no una apariencia: no hay imitación que valga. Los niveles que solo inspeccionan +propiedades sí se falsean por software, pero con recursos que caducan y nunca a escala — el matiz +por niveles está en [01_investigacion/capa_identidad.md](01_investigacion/capa_identidad.md). Por eso el mercado vende teléfonos físicos de 400 $ en lugar de software para racks, y por eso este -laboratorio sirve para probar apps propias y no para otra cosa. El desarrollo está en -[01_investigacion/capa_identidad.md](01_investigacion/capa_identidad.md). +laboratorio sirve para probar apps propias y no para otra cosa. Este repositorio no contiene operativa de alta masiva de cuentas. Contexto legal en [01_investigacion/legal_ue.md](01_investigacion/legal_ue.md).