Как стать автором
Обновить
157.1

Откуда сайт знает, что ты сидишь в уборной?

Время на прочтение4 мин
Количество просмотров45K


Многие не представляют, какой объём данных можно снимать с акселерометра в смартфоне. Думаете, информация используется только для поворота экрана? Далеко не так. На самом деле паттерны движения смартфона и его положение в пространстве многое говорят о действиях пользователя: он сидит, лежит, стоит, бежит… Можно распознать личность человека по голосу из динамика, записав реверберации корпуса смартфона через акселерометр. Определить, кто находится рядом в автобусе или автомобиле (с такими же паттернами движения).

Некоторые приложения постоянно снимают эти данные без разрешения пользователя (в Android и iOS 15 разрешение не требуется). Не только приложения, но и веб-сайты.

Слежка с помощью акселерометра


Акселерометр и гироскоп — это простая микросхема типа Invensense MPU-6500 с датчиками движения по шести осям (по три для гироскопа и акселерометра).


Расположение акселерометра и динамика в смартфонах разных производителей

Обычное применение — определение ориентации экрана. Есть и другие варианты использования. Например, управление автомобилем в гоночных симуляторах с помощью наклона, подсчёт количества шагов, определение падения пользователя (как делает Apple Watch), определение положение пользователя в пространстве.

То есть любое приложение и любой сайт могут подсчитать, сколько шагов прошёл человек и чем он занимается в данный момент. Вероятно, по специфическому положению телефона в пространстве и характерным движениям можно даже определить, что человек сидит в туалете.

Сейчас ведутся научные исследования для использования акселерометра в некоторых новых областях, например, измерение пульса, частоты дыхания. Есть попытки звукозаписи речи из динамиков по данным акселерометра.

Звук — это распространение механических колебаний в веществе. Реверберация — процесс постепенного уменьшения интенсивности звука при его многократных отражениях.


Реверберации речи из динамиков распространяются по корпусу и воздействуют на датчики движения, из научной работы

Конечно, отдельные слова разобрать не получится, но можно определить пол говорящего (точность более 90%) и выполнить идентификацию личности по маленькой базе голосовых отпечатков.


Точность определения пола и личности (база 10 человек) на смартфоне в руке

Нужно ещё раз подчеркнуть, что акселерометр внутри аппарата не реагирует на воздушные реверберации речи, то есть нельзя прослушивать людей рядом со смартфоном. Только тех, чья речь доносится из динамика.

На данный момент iOS и Android не требуют специальных разрешений на доступ приложений к данным акселерометра. То есть приватные данные может легко снимать любое приложение.

Например, Facebook всегда снимает эти данные через свои приложения, в том числе Instagram, Whatsapp и др.


Лог сообщений со смартфона на сервер Facebook с данными акселерометра, если открыть приложение Facebook, источник

Доступ через браузер


Скрипт для считывания данные акселерометра присутствует на многих популярных сайтах.

Образец скрипта
<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>

Тут ситуация отличается на разных платформах.

Все браузеры под iOS обязательно используют WebKit, так что если сайт попытается запустить такой скрипт, обязательно выскочит диалог с запросом разрешения. Независимо от используемого браузера, будь то Safari, Firefox или Chrome.

А вот смартфоны под Android по умолчанию предоставляют сайтам доступ к событиям deviceorientation и devicemotion с информацией от датчиков движения.

Если зайти на данную демо-страницу со смартфона под Android, то вы можете увидеть эти данные.



Некоторые события можно симулировать в Chrome Dev Tools на десктопе (3D-модель вращается по всем осям мышкой).



Векторы атаки


Есть разные варианты эксплуатации. Например, веб-сайт или приложение может определять группы пользователей, которые находятся рядом с друг другом, в одном автобусе, одном поезде или автомобиле. У них будут синхронные данные о вибрации с датчиков движения. Таким образом можно отслеживать координаты пользователя, у которого отключена геолокация.

Приватность — неотъемлемое право человека


Приватность считается базовым правом каждого человека от рождения (Декларация прав человека ООН, статья 12), как жизнь, свобода и стремление к счастью. Но сейчас ситуация меняется. К сожалению, сохранение анонимности и приватности в современном интернете — уже не базовое право, а редкая привилегия для избранных. Привилегия, за которую приходится бороться и платить.

Что касается обычного человека, ему сохранить анонимность практически невозможно. Сейчас это требует слишком больших усилий, отказа от удобств, скидок в магазинах и так далее. Далеко не все согласны на такие жертвы в данный момент.

Но есть основания полагать, что ценность личной свободы и приватности вырастет в ближайшие годы, когда людям станет очевидна степень их эксплуатации со стороны технологических корпораций.



Теги:
Хабы:
Всего голосов 89: ↑87 и ↓2+85
Комментарии154

Публикации

Информация

Сайт
www.globalsign.com
Дата регистрации
Дата основания
1996
Численность
501–1 000 человек
Местоположение
Япония