Las técnicas para sacar información de los terminales smartphone son cada vez más singulares. La búsqueda de side-chanels que permitan medir efectos para poder extraer sus causas llevan a que, por ejemplo, se puedan crear huellas digitales por medio de los acelerómetros, o a que se pueda crear un canal de comunicaciones por medio de impulsos magnéticos. Ayer, el estudio que me leí, y que me encantó, hablaba de cómo crear un canal paralelo midiendo el consumo de batería de un terminal para saber exactamente en qué ubicación GPS se encuentra un smartphone en un determinado momento.
La técnica se ha llamado PowerSpy y la han publicado este mes de febrero un grupo de investigadores de la Universidad de Stanford y se basa en el concepto de que un dispositivo consume más o menos batería dependiendo de lo lejos que se encuentra de la antena de comunicaciones con la que está conectado
Figura 2: Paper que describe el estudio de PowerSpy |
Es decir, si está lejos de la antena se preocupa de emitir una señal mayor, lo que provoca un mayor consumo de batería y cuando está cerca, reduce la potencia de la señal, consumiendo menos batería por tanto. En la siguiente imagen se puede ver como mediciones en días distintos hacen que los resultados sean consistentes.
Figura 3: Mediciones en días distintos dan resultados estables |
Lo que los investigadores hicieron medir en un campus el consumo de batería que se producía en rutas marcadas entre distintos puntos. En estas mediciones, realizadas con una app instalada en el dispositivo, lo más importante es conocer el incremento o decremento en el consumo, ya que cada terminal podría tener un consumo absoluto mayor o menor en función de las apps que estuviera ejecutando o las conexiones de red que tuviera activas (Bluetooth, WiFi, etcétera).
Una vez medidas estas curvas de consumo, con una app instalada en un nuevo dispositivo se puede saber en qué sitio exacto se encuentra en función de cuál es el patrón de consumo de batería, pudiendo medir no solo su ubicación, sino la ruta completa que esté realizando.
Figura 5: Cálculo de las rutas seguidas en función de las mediciones de batería |
Cómo crear servicios de tracking con Apps que midan el consumo de batería
Esto abre una nueva forma de, por ejemplo, tracking de usuarios en un centro comercial con una app, o para conocer dónde se encuentra una persona concreta si eres capaz de realizar estas mediciones masivamente. Es decir, imaginad que alguien con una app muy popular que tuviera acceso al GPS - a la que llamaremos APP_MEDIDORA - decidiera realizar mediciones masivas de consumo de baterías para vincular el consumo de batería a ubicaciones GPS - por ejemplo Facebook -. A partir de ese momento tendrían el patrón exacto de consumo en cada ubicación almacenado en un Big Data que podrían comercializar por medio de un servicio.
Figura 6: Esquema de espionaje con medición de consumo de batería |
La idea es que una app que quisiera espiarte - a la que llamaremos APP_ESPÍA - solo debería medir el consumo de la batería de tu terminal y enviarlo al servicio que comercializa la APP_MEDIDORA para recibir una ubicación GPS concreta. Es decir, te estaría espiando sin levantar la más mínima sospecha.
Conclusión
Visto esto, pronto tendremos que ver cómo reaccionan los fabricantes de sistemas operativos móviles - Android, iOS, Windows Phone, etcétera - para restringir los permisos, pero también afecta, por supuesto, a sistemas más privados tipo BlackPhone ya que cualquier app podría estar revelando tu información con solo realizar mediciones de consumo de batería. ¿A cuántas apps le das permiso de acceso a GPS? A algunas. ¿Cuántas miden tu consumo de batería? ...
Saludos Malignos!
Lo que no acabo de ver es cómo asociar a cada posición GPS un consumo único de batería. La posición GPS es única pero entiendo que habría cientos de puntos en que el consumo por unidad de tiempo fuese igual. Entonces, la APP_ESPÍA, teniendo únicamente el consumo de batería, al intentar consultar con la base de datos que guarda los binomios GPS-consumo, obtendría muchos resultados y no uno.
ResponderEliminarAdemás está lo que tú citas en la entrada, de que el consumo depende de muchos otros factores no asociados a la distancia a las antenas.
Sí, pero lo que Chema dice es que previamente la aplicación analiza el uso que las distintas aplicaciones hacen y el consumo de la batería que consume para esbozar unos márgenes de actuación y tolerancia, siempre sujeto a un nivel de error considerablemente bajo.
ResponderEliminarUna vez hecho esto, la aplicación puede medir a qué distancia se encuentra el objetivo de la torre de comunicaciones, pero no obtendrá un punto, sino una isolínea (o más) de posibles ubicaciones. Cotejando posiciones consecutivas se podría acotar, sobre un mapa, las localizaciones más probables (vías públicas, etc.).
Creo que, más o menos, así es como funcionaría este sistema.
La verdad que estamos llegando a un punto que da hasta miedo llevar el movil en el bolsillo.
ResponderEliminarLe he echado un ojo rápido al trabajo y es una chulada pero no me queda claro como determinar la localización sin disponer de un punto inicial aproximado. Imagino que abrá geometrias de ubicación de antenas muy similares en todo el mundo (los patrones que usan los operadores para ubicar las antenas serán similares).
ResponderEliminarLo dicho, una chulada. Me lo guardo para leerlo con más calma.