Solemos asociar el término «hack» con la intrusión o reconfiguración de un sistema informático para que haga cosas que no estaban en sus propósitos iniciales. Sin embargo, si tomamos «hack» en un sentido más amplio, en realidad se trata de un giro creativo que permite hacer uso de un producto de una forma que no tenía prevista el fabricante o desarrollador. El ejemplo más claro es el de las licencias Creative Commons, que no dejan de ser un hackeo a la ley de derechos de autor, pues se basa en ella y cualquier cambio a la ley les afecta.

Algo similar se ha descubierto que ocurre con una API de HTML5, la de estado de la batería: que permite recopilar los sitios web que visitamos dándole un uso que no se había pensado en un principio.

Qué hace la API de la batería

Como su propio nombre indica, la Battery Status API (API del estado de la batería) permite que un sitio web obtenga información del estado en el que se encuentra la batería de nuestro dispositivo. Concretamente, obtiene tres datos: el porcentaje de carga del que disponemos al momento de entrar en esa web, cuánto tiempo queda para que la batería se agote y cuánto tiempo sería necesario para cargarla totalmente si nos conectamos a la red eléctrica.

La pregunta que nos puede surgir ante esta explicación es para qué quiere saber todo esto un sitio web. Y la respuesta es sencilla: en función de esos datos, puede ofrecernos versiones más sencillas o detener la ejecución de algunas cosas para que no se consuman tantos recursos.

En principio, parece una buena idea. Y de hecho lo es, siempre y cuando hagan uso de ella cuantos más sitios web, mejor. Pero, a pesar que desde el W3C se dijo que no había ningún riesgo para la privacidad, resulta que algunos estudios señalan que sí existe la posibilidad de usar esta API para obtener información de qué sitios visitamos.

Así se puede usar la API para recopilar información

La Battery API, como también se la conoce, no permite identificarnos de ninguna forma. O mejor dicho, no permite saber quienes somos, pero sí asignarnos un número identificador único al que asociar la información que se recopile. Este número puede obtenerse a partir de los tres datos mencionados, los cuales permiten generar hasta 14 millones de combinaciones diferentes.

Para ejemplificar el uso de la API para recabar información de un usuario, Lukasz Olejnik, uno de los investigadores de uno de los estudios que trataban este tema, plantea un hipotético script que monitorice el estado de los identificadores y la información obtenida de la API. Este script permitiría identificar a un usuario incluso después de que este borrase las cookies de identificación.

El script lo que haría es aprovecharse de que la información de la Battery API permanece estática durante un periodo de tiempo, lo que permite generar identificadores de corta vida, pero identificadores al fin y al cabo. De esta forma, en lugar de que la nueva cookie tome al usuario como uno nuevo tras borrar la anterior, la información que se recopile se podría asociar con la cookie que tenía antes. O dicho de otra forma: la API permitiría vincular dos cookies diferentes con un mismo identificador.

Un problema en vías de corrección

Según explica Olejnik, hay un estudio reciente (PDF) que informa de que se están utilizando las lecturas de la información de la batería para el rastreo de la actividad en la web. Además, apunta que podría haber compañías que se estuvieran planteando vías de monetizar el acceso a los niveles de la batería: «Cuando la batería se está agotando, la gente puede ser propensa a tomar algunas decisiones que tomarían de forma diferente en otros casos. En tales circunstancias, los usuarios podrían estar de acuerdo en pagar más por un servicio».

Por suerte, los resultados de los estudios no han pasado desapercibidos: el W3C ha actualizado el estándar para reflejar los análisis que descubrieron todo lo que hemos contado y Firefox ha corregido su versión de Linux, en la cual resultaba muy fácil usar la capacidad de batería como identificador.

Estos análisis también han sido difundidos por varios medios de comunicación, lo que, de acuerdo a Olejnik, está ocasionando que algunos proveedores de navegadores (que no ha especificado) consideren restringir o incluso eliminar el acceso a los mecanismos de lectura de las baterías de nuestros dispositivos.