Muchos no se imaginan la cantidad de datos que se pueden obtener del acelerómetro de un smartphone. ¿Crees que la información solo se usa para rotar la pantalla? Nada más lejos de la realidad. En realidad, los patrones de movimiento del teléfono y su posición en el espacio dicen mucho sobre las acciones del usuario: si está sentado, acostado, de pie, corriendo… Se puede identificar a una persona por su voz a través del altavoz, grabando las reverberaciones del cuerpo del smartphone a través del acelerómetro. Se puede determinar quién está cerca en un autobús o un automóvil (con los mismos patrones de movimiento).
Algunas aplicaciones obtienen estos datos constantemente sin el permiso del usuario (en Android e iOS 15 no se requiere autorización). No solo las aplicaciones, sino también los sitios web.
Vigilancia con el Acelerómetro
El acelerómetro y el giroscopio son un simple chip tipo Invensense MPU-6500 con sensores de movimiento en seis ejes (tres para el giroscopio y tres para el acelerómetro).
El uso habitual es determinar la orientación de la pantalla. También existen otras opciones de uso. Por ejemplo, controlar un automóvil en simuladores de carreras inclinándolo, contar el número de pasos, detectar una caída del usuario (como hace el Apple Watch), determinar la posición del usuario en el espacio.
Es decir, cualquier aplicación y cualquier sitio web puede contar cuántos pasos ha dado una persona y qué está haciendo en este momento. Probablemente, por la posición específica del teléfono en el espacio y los movimientos característicos, se puede incluso determinar que una persona está sentada en el baño.
Actualmente se están realizando investigaciones científicas para utilizar el acelerómetro en algunas áreas nuevas, por ejemplo, medir el pulso, la frecuencia respiratoria. Hay intentos de grabar la voz a través de los altavoces a partir de los datos del acelerómetro.
El sonido es la propagación de vibraciones mecánicas en la materia. La reverberación es el proceso de disminución gradual de la intensidad del sonido durante sus múltiples reflexiones.
Por supuesto, no se pueden distinguir las palabras individuales, pero se puede determinar el sexo del hablante (precisión superior al 90%) y realizar la identificación de la persona a partir de una pequeña base de huellas de voz.
Hay que volver a destacar que el acelerómetro dentro del dispositivo no reacciona a las reverberaciones aéreas del habla, es decir, no se puede escuchar a las personas que están cerca del smartphone. Solo a aquellos cuya voz proviene del altavoz.
Actualmente, iOS y Android no requieren permisos especiales para que las aplicaciones accedan a los datos del acelerómetro. Es decir, cualquier aplicación puede obtener fácilmente datos privados.
Por ejemplo, Facebook siempre obtiene estos datos a través de sus aplicaciones, incluidas Instagram, Whatsapp, etc.
Acceso a Través del Navegador
El script para leer los datos del acelerómetro está presente en muchos sitios web populares.
[Ejemplo de script]
<script>
(function() {
var isAndroid = /(android)/i.test(navigator.userAgent);
if (!isAndroid) {
document.getElementById('example').innerHTML = '<strong>You\'re not visiting from an Android device</strong>';
return;
}
function round2(num) {
return +(Math.round(num + "e+2") + "e-2");
}
window.addEventListener('devicemotion', function(event) {
var x = event.acceleration.x;
var y = event.acceleration.y;
var z = event.acceleration.z;
// An object giving the rate of change of the device's orientation
// on the three orientation axis alpha, beta and gamma.
// Rotation rate is expressed in degrees per seconds.
var rotationRate = event.rotationRate;
// A number representing the interval of time, in milliseconds, at which data is obtained from the device.
var interval = event.interval;
if (x !== null && y !== null && z !== null) {
// only emit the event if device motion is more than
// 0.5 m/s2 in one of the axises
if (Math.abs(x) > 0.5 || Math.abs(y) > 0.5 || Math.abs(z) > 0.5) {
var el = document.getElementById('devicemotionOutput');
el.innerHTML = JSON.stringify({
event: 'devicemotion',
accelerationX: round2(x),
accelerationY: round2(y),
accelerationZ: round2(z),
interval: interval,
}, null, 2);
}
}
})
window.addEventListener('deviceorientation', function(event) {
// only consider significant changes in rotation
if (Math.abs(self.alpha - event.alpha) < 1
|| Math.abs(self.gamma - event.gamma) < 1
|| Math.abs(self.beta - event.beta) < 1) {
return;
}
this.alpha = event.alpha;
this.beta = event.beta;
this.gamma = event.gamma;
if (event.alpha !== null && event.beta !== null && event.gamma !== null) {
var el = document.getElementById('deviceorientationOutput');
el.innerHTML = JSON.stringify({
event: 'deviceorientation',
alpha: round2(event.alpha),
beta: round2(event.beta),
gamma: round2(event.gamma),
absolute: event.absolute,
}, null, 2);
}
})
})();
</script>
La situación es diferente en las distintas plataformas.
Todos los navegadores en iOS utilizan obligatoriamente WebKit, por lo que si un sitio web intenta ejecutar este script, aparecerá un diálogo solicitando permiso. Independientemente del navegador utilizado, ya sea Safari, Firefox o Chrome.
Sin embargo, los smartphones con Android proporcionan a los sitios web acceso a los eventos deviceorientation y devicemotion con información de los sensores de movimiento de forma predeterminada.
Si accedes a esta página de demostración desde un smartphone con Android, podrás ver estos datos.
Algunos eventos se pueden simular en Chrome Dev Tools en el escritorio (el modelo 3D gira en todos los ejes con el ratón).
Vectores de Ataque
Existen diferentes opciones de explotación. Por ejemplo, un sitio web o una aplicación puede identificar grupos de usuarios que se encuentran cerca unos de otros, en el mismo autobús, en el mismo tren o en el mismo automóvil. Tendrán datos sincronizados de la vibración de los sensores de movimiento. De este modo, se pueden rastrear las coordenadas del usuario que tiene desactivada la geolocalización.
La Privacidad, un Derecho Humano Fundamental
La privacidad se considera un derecho fundamental de toda persona desde su nacimiento (Declaración Universal de los Derechos Humanos de la ONU, artículo 12), como la vida, la libertad y la búsqueda de la felicidad. Pero ahora la situación está cambiando. Lamentablemente, preservar el anonimato y la privacidad en el mundo digital actual ya no es un derecho fundamental, sino un privilegio exclusivo de unos pocos. Un privilegio por el que hay que luchar y pagar.
En cuanto a la persona común, es prácticamente imposible que conserve el anonimato. Actualmente, esto requiere demasiado esfuerzo, renunciar a las comodidades, a los descuentos en las tiendas, etc. No todos están dispuestos a hacer tales sacrificios en este momento.
Pero hay razones para creer que el valor de la libertad personal y la privacidad aumentará en los próximos años, cuando la gente se dé cuenta del grado de explotación que sufren por parte de las empresas tecnológicas.