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

в 21:30, , рубрики: devicemotion, deviceorientation, javascript, акселерометр, Блог компании GlobalSign, браузеры, гироскоп, информационная безопасность, приватность, смартфоны
Откуда сайт знает, что ты сидишь в уборной? - 1

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

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

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

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

Откуда сайт знает, что ты сидишь в уборной? - 2
Расположение акселерометра и динамика в смартфонах разных производителей

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

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

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

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

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

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

Откуда сайт знает, что ты сидишь в уборной? - 4
Точность определения пола и личности (база 10 человек) на смартфоне в руке

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

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

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

Откуда сайт знает, что ты сидишь в уборной? - 5
Лог сообщений со смартфона на сервер 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, то вы можете увидеть эти данные.

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

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

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

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

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

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

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

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

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


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

Автор: GlobalSign_admin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js