Matizar la atestación: imitable por niveles, no a escala

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
This commit is contained in:
s1to 2026-08-08 20:15:50 +02:00
parent 7caa240c2e
commit d9919caafb
3 changed files with 52 additions and 6 deletions

View file

@ -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

View file

@ -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/)

View file

@ -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).