LINUX.ORG.RU
ФорумTalks

Обратная сторона сомнительных технологий

 , , , ,


0

2

Исследователи показали, что информацию о батареи мобильного устройства можно использовать для слежки за интернет-пользователями.

Новый способ слежения

Исследователи обнаружили возможность отслеживания онлайн-активности пользователя по информации о его батареи, которую сайты и веб-приложения могут получать посредством интерфейса программирования Battery Status API. Они успешно опробовали возможность такого отслеживания в Mozilla Firefox в среде Linux.

Battery Status API

Battery Status API — это элемент HTML5. Он позволяет узнавать уровень заряда батареи и ее текущую рабочую емкость для того, чтобы переводить интернет-пользователя на более облегченную версию веб-сайта.

Например, во время веб-серфинга заряд батареи снизился до 5%. Узнав об этом, сайт отключит ряд своих компонентов для того, чтобы снизить скорость расхода батареи. При этом разработчики этого API не позаботились об уведомлении пользователя или о том, чтобы получать его согласие, так как не усмотрели в работе интерфейса каких-либо способных навредить брешей.

По состоянию на июнь 2015 г. три браузера поддерживали Battery Status API — Firefox, Chrome и Opera. Примечательно, что еще в 2012 г. в ходе создания HTML5, разработчики Mozilla и Tor Browser обратили свое внимание на возможные проблемы с безопасностью вследствие текущей имплементации API. Тем не менее, их дискуссии не были услышаны.

Как это работает

Основная проблема заключается в том, что Battery Status API позволяет сайтам дистанционно узнавать рабочую емкость батареи, которая в процессе эксплуатации у любых устройств сокращается. Таким образом, это может служить своего рода идентификатором конкретного устройства или пользователя. Правда, отслеживать такой идентификатор нельзя постоянно, так как через какое-то время емкость батареи вновь изменится. Поэтому данный способ имеет временное ограничение.

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

Как решить проблему

Исследователи выяснили, что в Linux передача информации о емкости батареи через API осуществляется с двойной точностью. Например, сайт получает число 0.9301929625425652. Это число и является своего рода уникальным отпечатком, по которому пользователя можно «ловить» и на других сайтах. По мнению исследователей, повысить защиту пользователей можно было бы простым округлением числа. Для сравнения, в Windows, Mac OS X и Android интерфейс передает число с двумя знаками после запятой (например, 0.32).

Авторы находки опубликовали в интернете доклад (PDF) с результатами свой работы. В нем говорится, что разработчики Firefox были уведомлены о проблеме в Linux-версии браузера. Они уже выпустили соответствующее обновление.

http://www.cnews.ru/news/top/2016-08-04_uroven_zaryada_batarei_prisposobili_d...

На кой чёрт нужно выдумывать какую-то специальную версию сайта ради продления заряда аккумулятора на несколько процентов, в том время как на эффективность и экономичность клиентского ПО многие давно уже положили болт? Почему некоторые разработчики сначала придумывают что-то якобы пользовательско-ориентированное, а более дальновидным коллегам потом приходится объяснять всему миру, чем грозит использование их поделок? Среднестатистический пользователь настолько деградировал, что сам не способен принять решение как и когда ему выполнять свои задачи?

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

Почему «деградировал»? Всегда так было.

KRoN73 ★★★★★ ()

очень сомневаюсь что кто-то будет юзать это чтоб юзеров отслеживать. проще вывести сообщение типа «нажмите Да чтоб перейти на сайт и согласиться с отслеживанием» - и юзер нажмет «да».

upcFrost ★★★★★ ()

Там еще Network API есть... которое определяет состояние сети вроде; Social API, еще куча всяких бесполезностей - WebCL на подходе, уязвимости в котором вообще ни одна система не способна еще детектить (потому что выполняется не на CPU). При чем тут пользователь? Эти технологии АНБ по заказу АНБ и под их прикрытием. Начиная от websockets, которые палят твой IP, заканчивая вроде безобидными API. Лучше бы эти исследователи поисследовали уязвимости в Firefox и код, который был их причиной, на предмет причастности АНБ. Не знаю, как это работает. Но я уверен, что спецслужбы активно контрибутят закладки в опенсорз.

trupanka ()

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

der_looser ★★ ()

Пихают скрипты, нагружающие процессор, потому что заботятся о батарейке...
Несколько лет назад добавлял в «противозондовый» конфиг для ФФ dom.battery.enabled в false - новость такая же новая как и html5

namefree ()

В чём суть?

Исследователи выяснили, что в Linux передача информации о емкости батареи через API осуществляется с двойной точностью. Например, сайт получает число 0.9301929625425652

И что, «проблема» в том, что ориентируясь на это значение можно следить за пользователем?

Пусть точность такого значения будет 16 знаков после запятой (как в этом примере). Среднее время работы устройства, скажем, 10 часов (возьмём нечто среднее между ноутбуками и мобильниками). Пусть скорость потери заряда постоянна, тогда значение будет меняться каждые (10*3600)/10^16=0.0000000000036 секунд.

Каждые 3.6e-12 секунд, Карл!

Это число и является своего рода уникальным отпечатком, по которому пользователя можно «ловить» и на других сайтах.

Уникальным, как же. Можно, наверное, прогнозировать потерю заряда, но, блин, какое уж тут слежение.

orm-i-auga ★★★★★ ()
Ответ на: комментарий от dexitry

А, поэтому спросил про суть, в цитате ничего конкретно не написано. Ну ладно, пусть будет ёмкость батареи. Я так понимаю она в процентах? Тогда пусть среднее время выхода из строя аккумулятора устройства — 3 года. Тогда значение будет меняться каждые (3600*24*365*3)/(10^16)=.00000000946 секунд. Каждые 9.46e-9 секунд. Очень грубая прикидка, но я пока всё равно не вижу способа следить.

orm-i-auga ★★★★★ ()

Да есть +100500 лучших способов отследить юзера, чем чекать эту бедную батарею. Вот же людям заняться нечем.

foror ★★★★ ()

пфф upower выпилить да всё

Deleted ()

Быстрее бы веб сколлапсировал и PHP-макак и остальных девочек-дизайнершъ выгнали на мороз.

Только представьте: Web без лендингов, бесконечных прокруток, кастомных шрифтов. Только стройные и красивые сайты в Plain Text и с простой вёрсткой, как ЛОР.

А не плавающая питушня типа https://www.qt.io/

EXL ★★★★★ ()
Ответ на: комментарий от orm-i-auga

Удаленный сервер никаких значений не получает
Вся фишка жабаскрипта и html5 web api's и есть в том что все происходит на стороне клиента в браузере (как офлайновое приложение) а сайты вообще не видят что делает пользователь.

Тут же говорится о том что при переходе на более легкую версию сайта (подразумевается запрос) сайт это может детектить что у пользователя просела батарейка и ... собственно все.

Наркотический бред и истерика на пустом месте.

uin ★★★ ()
Последнее исправление: uin (всего исправлений: 1)
Ответ на: комментарий от uin

Никто не запретит жабоскрипту стукануть на сервер. А в остальном да, истерики на пустом месте. Есть столько данных для идентификации — одним значением больше, одним меньше, роли не играет. Особенно в мобильниках.

imul ★★★★★ ()

информацию о батареи

Ппц, откуда такие безграмотные вообще лезут?

Goury ★★★★★ ()

Зачем ты принёс сюда эту чушь?

noob1 ()
Ответ на: комментарий от imul

Никто не запретит жабоскрипту стукануть на сервер

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

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

uin ★★★ ()
Последнее исправление: uin (всего исправлений: 1)

Да это-то фигня. Касается только ведрофонов, да и в общем-то бестолковая штука.

А вот возможность любой веб-макаке получить список шрифтов в системе - вот это реально проблемища. И ни одна скотина даже не собирается решать эту проблемищу. Торовцы что-то там пытались насчёт фичи expose only generic fonts запилить - так их нахер с патчем послали.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

А вот возможность любой веб-макаке получить список шрифтов в системе - вот это реально проблемища

Ну так тут же принцип белой вороны. У огромный кучи стандартных пользователей с какой-нибудь стандартной увындовс 10 будет же одинаково. А у я_у_мамы_анархиста с кастомным линуксом будет абсолютная уникальность и выделяемость :)

fornlr ★★★★★ ()

Мне эти истерики каждый раз напоминают древний баян про хакера и солонку в столовой

German_1984 ★★ ()
Ответ на: комментарий от upcFrost

очень сомневаюсь что кто-то будет юзать это чтоб юзеров отслеживать.

По отдельности - нет. А вот по совокупности х-к + заряд батареи, вполне себе. Чем больше критериев тем точнее.

ioway ()
Ответ на: комментарий от upcFrost

Но зачем все это если на вопрос «можно ли вас по GPS отследить» юзер все равно ответит «ок»

Не всегда, но вот интересный пример - стартап занимающийся продажей абонементов в спортзалы, на сайте в пользовательском дашборде, гугломап и скриптик для поиска ближайших спортзалов по критериям спрашивает, можно ли узнать ваше местоположение, около 80% ответили «НЕДЪ» - поэтому просто пытались определить через GeoIP (не всегда точно, но нам точно и не нужно). Но зато когда вышло мобильное приложение, никто не выключил разрешение на GPS (уже можно было). Так что иногда люди очень странные и непоследовательные, даже когда хочешь «как лучше».

ioway ()
Ответ на: комментарий от ioway

Дык надо ж тоньше быть. Приложение действительно делать, или скажем текст мол «вы принимаете условия использования (и отслеживания заодно)?»

upcFrost ★★★★★ ()
Ответ на: комментарий от upcFrost

Дык надо ж тоньше быть.

Мы старались не усложнять жизнь людям. К тому же хохма, когда человек отвечал скриптику «нет», запускался мастер поиска, который спрашивал, что именно человек хочет (ну там фитнес, йогу, тай-чи и т.д.), затем просто спрашивались ориентиры (улица, автостоянка или станции общественного транспорта) и люди вполне себе палились. С мобильниками тоже хохма, лолипоп только вышел, большая часть на 4+ сидела и спокойно принимала пермишены. У йосиков уже тогда было два типа пермишенов на координаты - разовое определение и перманентный трекинг (причем спрашивается только при включении GPS), сначала спрашивали первое, потом второе, (второе для построения маршрута для людей с собственным авто). Все спокойно подтверждали. Хотя вот глупость - разреши стационару определить координаты - ну увидем мы целый бизнес-центр - иди найди там человека. А вот мобилам все доверяют, хотя именно они очень многое о человеке могут рассказать.

ioway ()
Ответ на: комментарий от orm-i-auga

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

Loki13 ★★★★★ ()
Ответ на: комментарий от fornlr

Нифига. Достаточно просто поставить какой-нибудь доп шрифт в систему. Пофиг в какую. И уникальность fingerprint'а сразу резко вырастает на порядки.

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

Stanson ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.