Connect with us

Разработка

Приложения для iPhone могут многое рассказать о вас с помощью акселерометра

Опубликовано

/

     
     

Практически каждый современный смартфон оснащен акселерометром, который, как следует из названия, представляет собой датчик, измеряющий ускорение. Чаще всего он используется для определения ориентации устройства. У него также много других применений, будь то игровой контроллер в гоночных играх, шагомер для подсчета ежедневных шагов или обнаружение падений, как это сделано в Apple Watch. Также были проведены некоторые исследования в поиске новых применений для акселерометра — для оценки частоты сердечных сокращений, частоты дыхания или даже в качестве элементарного аудиомагнитофона с использованием только акселерометра. В настоящее время iOS позволяет любому установленному приложению получать доступ к данным акселерометра без явного разрешения пользователя. И некоторые приложения могут многое узнать о пользователях с помощью акселерометра — без их ведома или разрешения.

Акселерометр в iOS

iPhone оснащен точным акселерометром и гироскопом. Он может с высокой точностью измерять высоту, скорость вращения и ускорение вашего iPhone.

Стив Джобс продемонстрировал возможности этих двух датчиков во время представления iPhone 4.

Акселерометр и гироскоп входят в состав iOS и являются частью Core Motion Framework. Для краткости я просто буду говорить, что «акселерометр» это оба датчика.

У акселерометра есть множество применений, и многие приложения полагаются на него. Большинство пользователей не осознают, когда их любимые приложения используют акселерометр. Это просто потому, что приложениям не требуется разрешение на чтение данных акселерометра. В отличие от доступа к службам определения местоположения и Bluetooth, доступ к акселерометру на iPhone предоставляется всем приложениям. Таким образом, приложения могут считывать измерения с акселерометра без каких-либо ограничений — кроме одного. Приложения могут считывать показания акселерометра, только когда они активны, foreground. iOS запрещает приложениям, работающим в фоновом режиме, считывать такие показания.

Приложения, которые обращаются к ресурсам, защищенным системными разрешениями, должны указывать, зачем им нужен такой доступ. Разработчики должны сформулировать причину в простом описании, которое передает сообщение пользователям. iOS показывает описание в диалоговом окне разрешений, когда приложение запрашивает разрешение у пользователя. Приложения, которые не предоставляют такую ​​информацию для каждого необходимого разрешения, не будут утверждены командой Apple App Review. Поскольку доступ к акселерометру не защищен системным разрешением, разработчики не обязаны сообщать пользователям, зачем им нужен доступ.

Telegram описывает, зачем нужен доступ к камере

Telegram описывает, зачем нужен доступ к камере

На первый взгляд данные акселерометра кажутся безобидными. Дело только в перемещении и повороте телефона, верно? Может ли это нарушить вашу конфиденциальность? Ответ кроется в следующей главе.

Возможные сценарии

Данные акселерометра собираются все время, пока вы держите телефон в руках. iOS делает измерения доступными для приложения, которое активно на переднем плане. Приложение может проигнорировать измерения или прочитать их. Нет никаких границ для того, что приложение может делать с измерениями, но вот несколько занятных сценариев:

Движение и деятельность

Данные акселерометра отражают то, как вы держите телефон и как вы двигаетесь. Приложение может определить, используете ли вы его, когда вы лежите, сидите, гуляете или едете на велосипеде. Приложение также может считать ваши шаги. Хотя доступ к шагомеру на iPhone защищен системным разрешением, существует множество сложных алгоритмов, обрабатывающих данные акселерометра для достижения именно этого.

Стоит отметить, что iPhone также оснащен барометром — датчиком, который измеряет давление и высоту над уровнем моря. Барометр также является частью Core Motion Framework, и для доступа к нему не требуется никаких разрешений. В результате любое приложение может определить вашу высоту и измерить давление воздуха в окружающей среде. Таким образом, любое приложение при его использовании может определить, едете ли вы в автобусе, поезде или самолете.

Частота сердцебиения

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

Частота дыхания

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

Точное местоположение

Данные акселерометра не содержат информации о местоположении. Однако его можно использовать для определения вашего точного местоположения на основе модели вибраций в вашей среде.

Чтобы проиллюстрировать эту концепцию, рассмотрим следующий пример:

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

Диктофон

Звуковые волны, создаваемые динамиками телефона, вызывают вибрацию телефона. Поскольку каждый звук производит уникальные вибрации, исследователи смогли проанализировать эти вибрации и восстановить исходные звуки.

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

Примеры

Я протестировал несколько приложений и проверил, считывают ли они данные акселерометра без явной причины. Вот некоторые примеры:

Facebook

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

Приложения для iPhone могут многое рассказать о вас с помощью акселерометра

Instagram

Instagram считывает акселерометр только в DM и продолжает считывать его, пока пользователь в просмотре сообщений.

WhatsApp

WhatsApp использует акселерометр, чтобы добавить эффект движения к обоям чата. По умолчанию он включен, но вы можете отключить этот эффект в настройках. Приложение перестает считывать показания акселерометра, когда эффект выключен. WhatsApp упоминается здесь, потому что это приложение Facebook.

Приложения для iPhone могут многое рассказать о вас с помощью акселерометра
Другие приложения

Следующие приложения не показывали никаких признаков считывания данных акселерометра по непонятной причине: Facebook Messenger, Signal, Slack, Telegram, TikTok, Threema, Twitter и WeChat.

В следующем разделе будет объяснено, как узнать приложения, считывающие показания акселерометра.

Немного технических подробностей

Как упоминалось ранее, пользователям сложно определить, считывает ли приложение показания акселерометра. Но разработчики вполне могут это сделать. Я использовал тот же метод, что и раньше, в нашем исследовании буфера обмена. Xcode предоставляет возможность просматривать системные логи iPhone.

Для этого вам нужно подключить iPhone к Xcode и открыть консоль iPhone. Консоль отображает множество сообщений. Чтобы уменьшить шум, введите «accelerometer» в поле поиска. Теперь вы видите только процессы или приложения, считывающие показания акселерометра. На следующем скриншоте показаны сообщения лога, отображаемые, когда Instagram считывает показания акселерометра.

Приложения для iPhone могут многое рассказать о вас с помощью акселерометра

Это видео демонстрирует процесс в действии:

Заключение

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

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Популярное

Спасибо!

Теперь редакторы в курсе.