Всем привет!
Меня зовут Вадим, и я один из технических консультантов и, по совместительству, системный администратор "РосКомСвободы".
Но данный пост будет не обо мне. Он будет историей о подозрительной (с точки зрения приватности в контексте мобильных телефонов) ситуации, с которой мы недавно столкнулись.
Он мог бы быть в стиле "А-а-а-а-а-а! Смотрите, Большой брат (Google) следит за нами", но я, всё же, попробую провести какой-никакой анализ и выдвинуть правдоподобные гипотезы о том, почему может происходить то, что произошло.
Заранее прошу прощения, если кому-то не нравится формат а-ля "журнал }{akep в нулевые". Пишите — исправлюсь.
Итак. К нам обратился один из наших читателей, утверждая, что при входе на наш сайт (на котором, весьма иронично, сейчас в топе висит плитка нашей кампании против распознавания лиц — BanCam) у него активируется фронтальная камера.
Дело в том, что он является обладателем телефона из нового поколения телефонов без "чёлок", у которых фронтальная камера вынесена в отдельный "выезжающий" лоток. Который, собственно, и выезжает при обращении к камере.
Как вы, наверное, догадываетесь, моими первыми мыслями были подозрения о том, что нас каким-то чудом, не смотря на все "охранные механизмы", которые я выстраивал, всё-таки взломали и "протроянили".
Однако расследование показало, что с нашим сайтом всё в порядке.
После проведения вышеупомянутого расследования и обсуждения его выводов в техническом чате "РосКомСвободы" я вспомнил о том, что я уже сталкивался на нескольких форумах в интернете с тем, что через баннерные сети (при открытии форума с Android-телефона) "подсовывались" "троянские" apk-пакеты (видимо, в надежде что пользователь установит их, думая, что это официальный клиент данного форума).
Обдумав данную мысль, я предложил попробовать попроверять "трекеры", которые попали в список разрешённых (данный читатель использует Firefox и установленный в нём аддон uBlock).
Пара часов экспериментов показали, что камера перестаёт выезжать если заблокировать обращения к домену google.com
. Также, где-то к этому же моменту данный юзер заявил, что на сайте kod.ru
тоже воспроизводится данная ситуация (до этого мы работали с версией "только у нас").
Немного углубившись в раскопки, я обнаружил, что запросы к google.com
провоцируют не только гугловые трекеры (aka "аналитика"), но даже и обычное "встраивание" видео с ютуба на странице. Воспроизводимость выезда камеры на kod.ru
тоже попадала в данную теорию (как выяснилось, на тестируемой странице тоже было видео с ютуба).
Для того, чтобы еще более точно подтвердить эту теорию я нагуглил рандомный блогопост а-ля "как вставить ютуб-видео в блог, видео-инструкция" с встроенным видео, и на нём ситуация тоже воспроизвелась.
Итак. Хорошо. На данный момент у нас на руках такая информация: наличие встроенного ютуб-видео на странице триггерит подгрузку каких-то скриптов с google.com
, а те, в свою очередь, триггерят выезд камеры.
Окей, копаем дальше.
Поковырявшись в браузерных инструментах отладки я нашёл, что с www.google.com
(именно с www
) грузится странный и до ужаса обфусцированный (да так, что ни один испробованный мной деобфускатор из поисковой выдачи не справился) скрипт, у которого даже имя и то обфусцировано (зная гугл, могу предположить, что через некоторое время этот скрипт пропадёт, а на его место будет поставлен скрипт с другим (но столь же нечитабельным) именем. Так что, вот его код, на всякий случай).
Беглый просмотр скрипта не показывает наличия тут упоминаний камеры, а погружаться в отладку ещё глубже и интерпретировать что он там делает — нет времени и возможности (хотя, если кто-то из вас, читателей, хочет — можете заняться).
Пробуем зайти с другой стороны:
Лично у меня телефон без выездной камеры, поэтому так легко отловить обращение к ней я не могу. Но я могу подключить его по USB и сделать adb logcat | grep -C5 camer
(grep
— потому что иначе уж слишком много иррелевантного мусора на каждый чих, включая нажатия пальцем на экран или движения телефона в пространстве). Что я, собственно, и делаю...
Итак, попытка номер один: захожу на тестируемые сайты, и… ничего!
Закрадывается мысль, что проблема, похоже, всё-таки, где-то на стороне юзера.
Параллельно с этим процессом, мы обсуждаем ситуацию в вышеупомянутом техническом чате "РосКомСвободы". Спустя некоторое время от одного из участников поступает мнение, что, мол, мобильные браузеры хитрые: они не всегда запрашивают глобальные права на доступ к камере, и если они не предоставлены, то в некоторых случаях они могут и не спрашивать!
Иду в настройки приложения и вижу что, да, у меня для Firefox не выставлены разрешения на камеру. Включаю, проверяю ещё раз, и вижу простыню на пару "экранов" с подобным:
Ага! Обращение к камере, значит, всё же есть!
Более того, сразу после строки с "get device info" идёт явное открытие девайса камеры:
12-12 17:10:14.734 751 6924 I QCamera : <HAL><INFO> int qcamera::QCamera2Factory::cameraDeviceOpen(int, struct hw_device_t **): 405: Open camera id 0 API version 256
Проверяю то же самое с Chrome, и всё воспроизводится: если права на камеру отобрать, то в логе "молчание ягнят", а если выдать — тоже, как и с "рыжиком" появляется простыня про доступ к камере.
Значит, получается проблема:
а) не локальная для юзера,
б) не специфичная для браузера.
Что интересно, при всех этих событиях ни один из этих браузеров не пытался и словом обмолвиться о запросе разрешений на доступ к камере от какого-либо сайта из участвовавших в тесте (да и, впрочем, от ютуба и google.com
— тоже).
В свете вышеописанного у меня родились две гипотезы:
- Либо Big Brother, всё же, is watching you, либо
- тот обфусцированный до ужаса скрипт в реальности вызывает какую-то часть Camera API в браузерах для фингерпринтинга юзера, но при этом не обращается к камере напрямую. Поэтому и нет запроса на доступ к ней (впрочем, если присмотреться к видео в начале статьи, то можно увидеть как между открытием и закрытием камеры моргает светодиод, что заставляет задуматься).
Браузеры же исповедуют тут логику: "при инициализации Camera API, если доступа к камере нет, то не делаем ничего (даже не запрашиваем его, пока не возникнет реальная необходимость) а если есть — инициализируем камеры и проверяем что за девайсы там у нас и что они умеют" (для чего, видимо, и происходит "открытие" девайса).
Вендор же телефона у юзера, похоже, не стал особо углубляться в изобретение софтверных костылей над камерой и решил проблему просто (за что ему, кстати, респект): при обращении к камере — она выезжает. При открытии девайса и обмене с ним данными — моргает диод.
Итого, получается, что проблема не так уж и фатальна, как казалась в начале, и, хотелось бы надеяться, снимков никто не делает (хотя это, всё же, до сих пор "не точно", т.к. моей компетенции в познании исходных кодов Android'а недостаточно для того чтобы однозначно гарантировать в каком случае простыня обращений к камере в logcat говорит о сделанном снимке, а в каком — просто о светских беседах приложения с девайсом).
Однако, тем не менее, сам факт того, что открытие любой веб-страницы, на которой будет iframe с встроенным видео с YouTube'а приводит к обращению к камере (и даже каким-то переговорам с девайсом) всё равно довольно печален в контексте приватности и, как мне кажется, всё же стоит обсуждения сообществом.
А как думаете вы?
P.S. На английском данный пост опубликован на Medium.
UPD: спасибо хабравчанам berez и ksil за пакет орфографических правок (а то при вычитке и переписывании разных кусков текста, как это водится, "исправляя одни баги, привнесли пучок других")
Комментарии (100)
anonymous
00.00.0000 00:00Dee3
17.12.2019 22:08+1Известно какие штуки на iOS могут использоваться для отпечатка пользователя?
vladkorotnev
18.12.2019 03:29+3Пару лет назад исследовал эту тему в контексте рекламного трекинга, и в айоси обычно была такая комбинация:
Со стороны браузера — юзер-агент (версия ОС, язык, примерный размер экрана)
Со стороны приложения после установки — версия ОС, язык, размер экрана, при наличии пермишенов геопозиция
В обоих случаях — часовой пояс, айпишник.
Со стороны приложения уже давно не прокатывает использовать какие-либо штуки типа мак-адресов (постоянно возвращается пустой), UDID (private API), не очень работает advertisingIdentifier (можно выключить или сбросить).
EviGL
17.12.2019 22:17Это просто предположение или в указанном скрипте используется этот enumerateDevices?
Я что-то тоже не смог продраться через обфускацию гугла.EviGL
18.12.2019 17:09А это по умолчанию настройки Firefox или нет?
Мне просто интересно, блокируя google analytics и яндекс.метрику, они осознают, что роют себе могилу?Вот есть типичный сайтик, который что-то продаёт или конструктор чего-либо. Выпускают они апдейт, который почему-то в продакшне сломался на Firefox. Тут команда аналитики видит в проде падение конверсий на конкретном браузере, смотрит в вебвизоре что пошло не так, фиксит.
Без аналитики никто не узнает, какого хрена там делают пользователи Firefox и что у них там отваливается и не работает. В сумме с небольшой рыночной долей браузера получится, что половина веба в итоге не будет на нём работать.
deseven
18.12.2019 18:32+1Эта проблема уже давно существует, но не по этой причине. Из-за тотальной доминации Хрома и его клонов, очень многие чихать хотели на ФФ — с каждым годом вижу все больше сайтов, которые на нем работают немного не так. Их пока немного и проблемы обычно не критичные, но тенденция на лицо. Как и продолжающееся падение доли рынка с 15 до 9% за 2 года.
ElleSolomina
29.04.2020 17:34+1Web версия Skype работает только в хромоножках, в Firefox нет.
powerman
10.05.2020 23:39+1Только что зашёл, проверил — работает в Firefox (звонки только не проверял). Всё, что для этого нужно — подменить User-Agent, напр. через расширение Header Editor:
ElleSolomina
11.05.2020 10:51Что лишний раз доказывает на пользователей Firefox плевать. Оно ведь даже работает, просто сделали запрет потому что козлы и им плевать. Ну и ладно я уже всех в Telegram пересадил :) Пошёл этот Skype туда же куда и Chrome, плевать им на приватность ну и пусть.
P.S. я теперь притворяюсь тупеньким, раз компании так не нужен я как клиент, ну и ладно. Модифицировать агент браузеру «это сложна», регулярки тем более XD Telegram просто работает, притом на медленном «могильном» интернете он работает, а Skype нет.
P.P.S. а тупеньким я притворяюсь потому что у «простых людей» тоже всё должно просто работать без необходимости манипуляций.
ilammy
18.12.2019 21:33+1Говорят, когда-то давно браузеры отправляли специальную строку User-Agent, чтобы сказать веб-серверу, что это за браузер, и веб-сервер мог понять, с каким браузером проблемы. К счастью, это всё ужасы прошлого. Все браузеры отправляют одно и то же фиксированное значение, нет никакого бардака, только порядок: о том, какими браузерам пользуются люди, можно узнать у Google.
sumanai
19.12.2019 11:30+1Вот есть типичный сайтик, который что-то продаёт или конструктор чего-либо. Выпускают они апдейт, который почему-то в продакшне сломался на Firefox. Тут команда аналитики видит в проде падение конверсий на конкретном браузере, смотрит в вебвизоре что пошло не так, фиксит.
Это так не работает. Обычно никто не замечает такие падения, зато бесплатно кормим гигантов персональными данными своих посетителей. Так что я у себя всё давно заблочил.EviGL
19.12.2019 14:31-1Ну в моей практике работало. У кого не работает — надо качать команду аналитиков.
Это отлично, когда человек может заблочить всё, что ему хочется.
Плохо, когда заблокировано по умолчанию у всех. Но в FF не так, кстати, я проверил. Аналитика блокируется по умолчанию только в приватных окнах.
anonymous
00.00.0000 00:00Gugic
18.12.2019 07:26-1Там в самом начале скрипта написано что это антиспам (детектор ботов, вероятно). Если вы расшифруете приложенный email — увидите что это botguard-contact@google.com.
Понятно что на заборе тоже написано, но в данном случае я склонен верить. Могли бы и не писать ничего совсем ведь.mva Автор
18.12.2019 11:01конечно же мы расшифровали этот адрес.
Но как вы думаете, какова вероятность того, что письмо на него с вопросом "а вы не трекаете меня, случайно" получит какой-либо ответ? :)
// мы, вот, пока ждём, но уже не надеемся
xl-tech
17.12.2019 17:49У меня Oppo Reno 2F. Постоянно вижу это при поиске в ленте Инстаграма. Но в браузерах камера не выезжала еще (Android 9 с последними обновлениями безопасности). Камера не выезжает даже если дать Хрому на нее права. Возможно у юзера включена разблокировка по лицу и это как то влияет?
EvgenT
17.12.2019 19:50+1Возможно ребята уже почистили, но попробуйте вот эту страницу — www.comss.ru/page.php?id=6726
При её открытии с телефона у меня выехала передняя камера. Блокировка по лицу отключена. На камеру, браузеру, права были даны. Я написал им в twitter, ответа не последовало.xl-tech
17.12.2019 20:05Проверил, камера не выехала. Дал отдельно Хрому доступ к камере, тоже не выехала.
zenkov
17.12.2019 18:54+18У меня на Порнхабе uMatrix блочит в 10 раз меньше говна чем у вас на сайте. Это сейчас не шутка была.
Zenitchik
17.12.2019 19:22+1Эм… А то, что он не блочит на у казанном сайте, чем-то отличается от того, что блочит? Я зашёл — и вышел. Потому что в глазах пестрит.
mva Автор
17.12.2019 19:55+5Мы в курсе, да :'(
Работаем над этой ситуацией.
Тут у нас столкновение интересов технарей (которые, как и вы, не любят лишнюю фигню, которая блокируется uMatrix'ом) и редакции, которым очень нужна аналитика.
Но переговоры ведутся и компромисс не за горами.
WolfTheGrey
14.01.2020 16:06+1На порнхабе сильная собственная аналитика. У них даже подключение сторонних скриптов завязано на порнхабовские объекты метрики и телеметрии (MGutils и другие). За что если честно им большой респект, почему-то им я доверяю больше чем гуглу. Видимо потому что у них весь бизнес на этих чувствительных данных построен.
Alonerover
17.12.2019 21:40+1Так или иначе, но принцип «убедительного отрицания» работает. Никак не доказать, что это не простой косяк, а намеренный бэкдор.
EviGL
17.12.2019 22:21+12А всё-таки красиво это выглядит на видеоролике из статьи.
Зашёл на роскомсвободу, улыбнитесь, вспышка, вы в базе ;)CrazysAlien
17.12.2019 22:55+1Ну если такая база — БазаСвободныхЛюдей существует то это, вероятно, самый лёгкий способ в неё попасть ;)
Ну и членство, если так можно выразиться, в ней должно быть весьма почётно — можно на аватерке эдакий смайлик прикрутить желающим :)mk2
18.12.2019 07:56+2А потом приходят вежливые люди, изымают базу, и добавляют свободных людей в список распознаваемых лиц.
Так что лучше не надо.
karavan_750
17.12.2019 22:34+1А как думаете вы?
Я бы попытался копнуть далее — пропустить трафик аппарата через прокси и отловить какими файликами и куда он пуляет.krm
18.12.2019 09:33И сравнить логи те что делает фронтальная камера при реальном фото, и при открытии подозреваемых страниц в браузере.
subcommande
18.12.2019 15:44+1Ну пуляет аппарат хэш фотки с камеры, как вы это поймете? Гаданием
на хэшовой гуще?karavan_750
18.12.2019 16:46Хэш? Тогда я вынужден переспросить с какой пользой можно воспользоваться им на «той» стороне?
subcommande
18.12.2019 17:04Каюсь, хэш не самого снимка, и может вообще не хэш, а метаданные а-ля сколько людей/есть ли в кадре коты/т.п.
Общий посыл в том, что практически невозможно отловить передачу таких данных. А сами фотки, конечно, никто так воровать не будет — палевно и очень большой трафик тратился бы впустую => юзер мог бы заметить/просто подумать, мол ну нафиг ваш браузернейм, у меня вон соседнийбраузернейм трафика в 10 раз меньше жрет
sumanai
19.12.2019 11:33Перцептивный хеш?
karavan_750
19.12.2019 18:52Если я правильно понял его назначение, то он только для сравнения одной картинки в разных представлениях.
maxys146
17.12.2019 23:17+2У меня на компе с камерой и ноуте тоже Каспер иногда агрится на камеру, именно на браузер. В основном на Ютубе. Сама камера при этом не активируется, то есть лампочка не загорается. Возможно ноги оттуда же растут…
ElleSolomina
28.03.2020 13:15На компе вообще весело, там лампочка обычно отдельно включается, она не аппаратная )
bodqhrohro
18.12.2019 03:19+20Блин, с этими выезжающими камерами ж получается, что линукс не нужен теперь! Вместо пеки на линуксе с CD-приводом можно теперь мобильник использовать, чтобы кнопку перезагрузки на сервере с виндой нажимать! :)
pulsatrix
18.12.2019 12:02+5Я ничего не понял. Расшифруйте пожалуйста.
mva Автор
18.12.2019 12:37+24это старая шутка.
Соль её в том, что есть сервер на windows, который постоянно зависает, но ходить в серверную и перезагружать его — лень (а IPMI нету). Чтобы решить этот вопрос — рядом ставят сервер на Linux/BSD, который НЕ зависает, и делают скрипт, который выдвигает лоток CD-привода (а тот, в свою очередь через костыль нажимает на кнопкуreset
у вендового сервера.bodqhrohro пошутил, что теперь для этого не нужен целый сервер на Linux (и вообще Linux), а можно использовать смартфон с выезжающей камерой.
Так-то!
// Всегда ваш, К.О.
v1000
18.12.2019 13:19+3еще была история про «засыпающий» сервер на винде, у которого забыли пароль админа. поэтому написали скрипт, который раз в пол-часа выдвигал и задвигал сд-ром, к которому за хвост была привязана мышка. сервер видел активность мыши и не уходил в спящий режим.
D03ER
18.12.2019 11:00+1Владею таким же девайсом. Камера всегда выезжает с включенным светодиодом, потом он гаснет, а при отключении камеры светодиод снова включается, пока камера не заедет назад. На видео камера начинает заежать раньше, чем заканчивается «анимация» выезжающей камеры и начинается «анимация» заезжающей, и возникает такое моргание. Сама же камера включается, когда светодиод уже погас, и как только начинается заезд камеры она выключается. Видимо простой фингерпринт. В Аиде, при опросе девайса камера выезжает так же.
ua30
18.12.2019 14:04Хочешь приватности — езжай в село. Хотя какая и там приватность — все про всех все знают.
А если еще не серьезно. Не люблю всякие девайсы, которые могут работать от собственной батареи. Только системник, только хардкор. Форева!bodqhrohro
19.12.2019 00:50Можно батарейку выковырять и сделать питание от розетки только. Будет высокотехнологичный проводной телефон :)
bodqhrohro
19.12.2019 00:55Что будет, кстати, если заклеить камеру, чтобы она не выезжала? Как на видеокассетах выломанную для защиты от записи заглушку опять заклеивали. Зависнет, сломается или проигнорирует?
bodqhrohro
19.12.2019 01:01Напомнило ещё, как на сайтах вставляли , заставляя старые браузеры внезапно шуршать дисководом. История по спирали развивается.
bodqhrohro
19.12.2019 01:09Упс, последние два комментария должны были в корень улететь, а подцепились тоже сюда. Зарепорчено.
Dartess
18.12.2019 14:21Потыкал код и ссылки из поста и комментов, так и не воспроизвёл выезжание камеры ( Oppo Reno.
megagnom37
18.12.2019 14:56Почему нужно запускать модуль камеры, чтобы получить информацию о её возможностях (в каком нибудь общем виде для всех камер)? Разве нельзя это хранить где-то в устройстве в виде публичной информации и по API стучаться именно к этой информации?
RadicalDreamer
18.12.2019 15:32+1Как раз такой API и предоставляет HAL (Hardware Abstraction Layer) камеры на Android. Не могу сказать, баг / фича ли это дизайна самого API или просто в этом конкретном случае из-за специфического решения вендора получается так, что при открытии модуля камеры выезжает шторка. Учитывая то, что сам HAL оставляет многие детали реализации на откуп вендору, вполне может иметь место второй вариант.
megagnom37
18.12.2019 16:10Понятно. Получается HAL находится между аппаратным уровнем и программным. Но мы не можем получить доступ к нему без запуска модуля (в нашем случае камеры)?
RadicalDreamer
18.12.2019 16:54Не возьмусь утверждать за все реализации HAL камеры, но на своих девайсах (девайсы на платформах Exynos4412, U8500) всегда замечал, что открытие HAL затрагивает драйвер в ядре. А поскольку система дергает модули камеры при запуске, иногда забагованный драйвер мог вызывать ребут при запуске.
irisit
19.12.2019 09:44+3Про скрипт и что он делает очень подробно написано тут:
stackoverflow.com/questions/21762076/why-does-gmail-use-evalmva Автор
19.12.2019 09:47+2Ну да, "мы вас тут потрекаем немного, просто чтобы определить что вы не бот. И не важно, что вы сейчас не на форме создания аккаунта, а просто смотрите на рандомном сайте в интернете котиков во встроенном видео с ютуба"
ElleSolomina
28.03.2020 13:19Ну да, имеено поэтому всё очень и очень сильно порезано сначала на уровне DNS на шлюзе, потом в браузере uBlock Origin с очень драконовским набором и ещё Tempermonkey со скриптами для отпила того чего не отпиливает uBlock Origin.
igor376
19.12.2019 09:44+1В iPhone есть такая фишка, что если при включённом фонарике зайти в камеру, то фонарик выключится. Таким способом на мой взгляд, может отслеживать в какой момент приложения используют камеру. Например сейчас обнаружил, что при открытие приложения Тинькофф, фонарик гаснет, если в настройках отключить разрешение для камеры, то фонарик при входе в приложение остаётся гореть.
mva Автор
19.12.2019 09:50+1Ну, банковские приложения вообще как только не трекают, оправдывая это тем, что им нужно однозначно удостовериться, что операцию проводит настоящий клиент.
Только вот если бы потом они не торговали этой бигдатой, и не утекала бы она в неизвестном направлении…
// косой взгляд в сторону зелёного банкаvis_inet
17.01.2020 08:56Разве только он один отметился на этом поприще?
ElleSolomina
28.03.2020 13:21Все торгуют и номерами телефонов, что потом телефонный спам валить начинает и всем остальным тоже.
Тут ещё у Тинькофф проблема новая: они убрали оплату в приложение и теперь я вынужден использовать GPay для бесконтактной оплаты, ещё одна прослойка по утечке данных.
drauger
19.12.2019 10:04+2Вчера ради эксперимента на телефоне с чистым Андроид 9 убрал у Google Services разрешение на доступ к камере. Теперь ошибка Google Services вылетает при приходе каждой SMS. Тоже фингерпринтинг?
ElleSolomina
28.03.2020 13:23Не факт, возможно особенности реализации железа. Ну т. е. я неисключаю что прошивка в железке даёт доступ и к модему и к камере сразу и никак это не разграничивает, а в ОС это разные разрешения и упс.
P.S. это возможно поскольку везде сейчас SOC используются (т. е. всё железо в одной микросхеме буквально).
Arohas
21.12.2019 15:59Автор осторожен, да…
И в самом деле, негоже если скрипт в браузере способен творить непотребное бесчинство.
Наверняка это обыкновенный недочёт.
Нет причин полагать обратное.
Temych
25.12.2019 23:28Один из пользователей кинул ссылку, что сабж обсуждали несколько ранее также и пользователи реддита.
Оставлю это тут.
skobkin
Как я уже раньше говорил, я подозреваю, что это сочетание неприспособленности Camera API к механически выезжающим камерам и косяков в фирмвари производителя на стыке с этим самым API.
Производитель решил, что "этот вызов ОБЫЧНО используется для того чтобы (или прямо перед тем как) получить картинку — ну значит будем выдвигать камеру". Вероятно, это даже могло быть самым лучшим решением потому, что, например, выдвигание камеры на другом вызове могло бы заставлять пользователя ждать перед снимком пока камера выедет.
Это самое логичное объяснение учитывая, что браузеры должны спрашивать пользователя если код сайта хочет получить доступ к картинке с камеры, звуку, сенсорам движения, локации и прочему. И если он этого не делает (а не делают этого целых два браузера на разных движках) — скорее всего из JavaScript действительно запрашиваются только какие-то метаданные, которые не требуют разрешений.
mva Автор
Мой внутренний параноик говорит, что он был бы рад, если бы разрешения запрашивались даже на получение метаданных :)
skobkin
Да, конечно. Однако тут нужно ещё соблюдать баланс между «запрашивать обо всём» и «не задолбать пользователя».
А вообще, если смотреть на разрешения на уровне Android, то к этому некоторое движение есть. Если вспомнить детализацию разрешений в Android 4-5 и текущих версиях — сейчас стало гораздо подробнее. На одно только использование стореджа минимум два разрешения есть.
Хотя не все проблемы решены. Например, всё ещё очень неочевидно для конечного пользователя выглядит запрос разрешений из группы «location» для того чтобы, скажем, подключиться по Bluetooth к чему-то или посканировать Wi-Fi сети.
Barnaby
Сканируя сети ПО может определить локацию пользователя в городе достаточно точно, по мне так все логично. Ну или добавлять еще одно разрешение.
skobkin
А теперь вспомните, кто такой конечный пользователь.
Для него это не очевидно.
Логично != Очевидно.
UPD: Чуть поясню.
Человек, который не понимает того как устроено API и система разрешений может из-за такого подумать, что вполне добросовестное приложение хочет за ним следить.
Я к тому, что здесь тоже есть поле для улучшений.
Capacitor10n
У меня например именно поэтому как то знатно пригорело когда я хотел поиграться в Wi-Fi, а прилажуха стала спрашивать разрешения на геоданные. Паранойя и все такое…
DerRotBaron
А тут палка о двух концах. SSID и вышки это более чем данные о местоположении. Раньше их можно было получать без разрешения о местоположении. Плохо. Теперь работа с WiFi явноттребует разрешение на местоположение. ИМХО намного лучше, хотя и не очевидно
kukovik
В этом и была идея — дать понять пользователю, что запускаемое приложение узнает его местоположение.
Видимые телефоном сети показывают его с довольно высокой точностью.
skobkin
Может узнавать.
powerman
Внутреннему параноику стоит поставить на телефон XPrivacyLua.
mva Автор
Возможно, да, стоит.
Но суть поста была немного в другом :)
powerman
Правда? А я в этом не уверен. Сегодня это скрипт гугла, совершенного безобидный и чисто случайно так жёстко обфусцированный. Сегодня это чья-то ошибка. Допустим. А что будет завтра? Думаете, имея возможность собирать отпечатки, подслушивать и подсматривать, все компании вдруг остановятся и скажут сами себе "не-ет, так не годится, что же мы в самом деле делаем, нельзя же так с пользователями поступать, срочно перестаём собирать приватные данные на всех, до кого можем дотянуться"? Ну вот и я так не думаю.
Суть этого поста может быть только в одном: спасение утопающих дело рук самих утопающих. Кто не защитит себя сам, того не защитит никто. Никакие законы и штрафы не остановят крупные компании вроде гугла (частично потому, что они сами лоббируют эти законы, частично потому, что законы везде разные, частично потому, что имея хороших юристов и регулярно совершая "технические ошибки" можно иметь глубоко в виду те законы, которые мешают им жить).
vis_inet
sumanai
Увы, насколько я знаю, не для новых андроидов.
Teomit
Поддерживается по 10 Android включительно:
github.com/ElderDrivers/EdXposed
github.com/M66B/XPrivacyLua
Valhtang
От всех функции слежки за нами ничего не спасёт.
Неоднократно замечал контекстную рекламу по поводу разговора рядом с телефоном на настольном компе.
Совсем свежая ситуация: сегодня ночью долго не мог уснуть, т.к. жена храпела и несколько раз пришлось её будить. В конце концов решил посмотреть новые сообщения по подписям в Ютубе, телефон с Андроидом (Samsung) лежал рядом, на тумбочке. Сразу, после запуска приложения Ютуба, получил контекстную рекламу — средство «Антихрап»!!! Пора на микрофон ставить механический выключатель, иначе — если нечаянно пукнуть около телефона — получим рекламу активированного угля! Нет, большой брат за нами не следит, это так, случайно совпало!
vladkorotnev
Хм, у нас на работе есть проект с QR-ридером, написанном в такие бородатые года, что даже в андроид-эмуляторе плашка "Вы можете двигать камеру клавиатурой" не статично горит, а мерцает примерно с частотой обновления экрана.
Интересно, насколько сильная дискотека будет, если её натравить на девайс с такой выдвижной камерой %)