Pull to refresh

Comments 76

GDPR — это не только про cookies. GDPR запрещает и fingerprinting. То есть, требования закона обойти с его помощью не получится.

Это скорее способ сделать «persistent cookie» для того, чтобы строить анонимный поведенческий онлайн-профиль и таргетировать на его основе рекламу. Сам по себе он не позволит увязать ваше мобильное устройство и десктопный комп.
«присутствует определённый рекламный баннер, который поставляется через рекламную сеть Google AdSense» <-> «Сам по себе он не позволит увязать ваше мобильное устройство и десктопный комп.»

Кому как, гугл точно свяжет)
Гуглу это нафиг не сдалось, у него есть андроид, хром, гмыло, карты, и много всего остального. Он и так все про вас знает. Очевидно скрипт поставляется через партнёра, что, возможно, нарушает TOS AdSense.
Эх, прошли те времена когда бровсер принимал набор мешанины из полезной информации и html тегов и превращал это все в читаемый вид. Теперь бровсер — это черная дыра для слива данных, ну вот зачем он передает сайтам: размер окна, установленные шрифты, статус воспроизведения медиа, движения мыши и пр.? И ведь нет ни одного современного (links и lynx для современного web слабо подходят), которы не сливают все это или позволяют однозначно отключить.
Шрифты нужны для управления ими — в одном месте один шрифт, в другом — более подходящий, при этом нужно знать, а установлен ли в системе нужный шрифт.

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

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

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

Куда интереснее вопрос о том, почему никто до сих пор не создал браузер, который ничего этого не передаёт или передаёт это в каком-то «стандартном виде», а все страницы форматирует под голый текст, «режим чтения».

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

Просто нереальна.

Стоимость разработки приличного браузера, то есть поддерживающего кучу самых разных и довольно толстых стандартов, очень высока. Без поддержки кучи толстых стандартов вы получите этакий MS-блокнот, который покажет лишь жалкие проценты от содержимого сайта, да то — в сильно искажённом виде. Например нужна полноценная поддержка скриптов, которыми очень часто формируется содержимое сайта. Но такая поддержка сразу включает все те шрифты, размеры окон и т.д. и т.п. Без скриптов вы просто не увидите содержимое, а если вырезать «по умолчанию» какие-то фичи, то огромное количество юзеров не будет пользоваться браузером, просто потому, что именно вырезанные фичи им очень нужны. Поэтому нужна гибкая настройка всего и вся, что ещё больше удорожает стоимость разработки. В целом получаем дорогое удовольствие для аудитории, ну скажем в 100 000 человек на всей земле. Ну и представьте теперь затраты на рекламу, которая отфильтрует эти сто тысяч среди миллиардов пофигистов. Эти затраты так же нужно добавить к стоимости браузера.

В итоге получится очень приличная сумма и… И что даст этот браузер его разработчику? Исключительно лишь моральное удовольствие?

В общем всё просто — в мире, где правят деньги, не стоит задавать вопросы о чём-то бесплатном (и даже просто доступном) и при этом ещё и качественном.
Почему бы не передавать стандартное разрешение, стандартный список шрифтов Windows?

"А почему у меня сайт не влезает/показывает только в углу и текст разъезжается?"

Потому что многие из присутствующих помнят плашки на сайтах «сайт оптимизирован под разрешение 1024x768». Больше такого не хочется.

Стандартных разрешений — мало штук, можно и передавать реальное.
Шрифтов — если сайт работает на свежеустановленной винде со стандартным списком шрифтов, то он заработает и у любого, кто пользуется Windows. Зачем ему знать наличие каких-то других шрифтов? Если нет в списке, то берётся следующий шрифт из стиля, если и его нет, то стандартный (тот, который указан в браузере).
То же самое и про остальные плагины. Если нет плагинов, то контент не воспроизводится, или выводится заглушка (проверяется на стороне браузера, так же, как noscript).
Какие вещи нужно знать удалённой стороне?

Ну вот убрали из браузеров возможность получить глобальный список шрифтов. Теперь фингерпринтеры просто перебирают все шрифты, которые знают, по своему списку, и рендерят их, например, в канвас. Канвас отключен? Не беда, фингерпринтеры будут назначать каждую букву 120-м кеглем отдельному span-у и спрашивать у браузера, какая ширина и высота получилась у элемента.

То же самое касается плагинов — допустим, браузер проверяет, а жабоскрипту не говорит. Хорошо, значит, давайте проверять, работает ли flash, передавая уникальную ссылку на swf-файл. О, файл запросился? Отлично. О, флеш-ролик XHR-запрос сделал? еще лучше.

Можно m3u8 скормить с разными форматами медиа и посмотреть, что браузер запросит. Можно поварьировать Content-Type из отдаваемого сервером и глянуть, что сервер будет скачивать целиком, а что отменит. Как это поможет избежать фингерпринта?

Есть webgl. Картинки, которые рендерятся разными видеокартами, не будут одинаковы с точностью до пикселя — они зависят от округлений, от приближенных вычислений, от дефолтных настроек в драйверах, от модели видеокарты. Для обычных картинок это не очень заметно, но зная про эти отличия, можно сделать тест, который максимально их подчеркнет, и позволит собрать информацию о том, какая у вас видеокарта, а это позволит вас профингерпринтить в ряде случаев, даже если вы в виртуалке.

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

Для работы с основным контентом сайта эта задача решается элементарно.
В современных Firefox (особенно с патчами Tor Browser) это решается сравнительно несложно. Необходимо только вынести код вывода режима чтения наружу и не применять к нему ограничения по разрешению.


А вот со всяким сопутствующим контентом проблема. Отваливаются поиски, отваливаются комментарии, карты, интерактивности и всё такое. И происходит это потому, что каждый сам велосипедировал всё это на различных фреймворках из чего только можно без малейших попыток стандартизации хотя бы даже того, как это будет в итоге рендериться. Где-то из-за непонимания того, как это работает, где-то из желания сделать всё "удобным" (чего стоит переопределение ctrl+f на одном из форумных движков), а где-то чтобы запихнуть побольше рекламы или осложнить автоматизированное копирование "сверхценного контента"

Куда интереснее вопрос о том, почему никто до сих пор не создал браузер, который ничего этого не передаёт или передаёт это в каком-то «стандартном виде», а все страницы форматирует под голый текст, «режим чтения».

Неужели эта задача настолько сложна?

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

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

Firefox Focus например пытается

UFO just landed and posted this here
Против пары тройки пикселей сработает элементарное округление. С несуществующими шрифтами сайт расползётся(если к примеру есть ascii арт). Логичнее уж стандартизировать — на каждой машине есть эти шрифты и никаких других. Разумеется это должны быть только свободные шрифты
UFO just landed and posted this here
До тех пор, пока этим не станут пользоваться большинство такое округление лишь уточнит человека
UFO just landed and posted this here
Важна уникальность данных. Несуществующие шрифты — уникальная вещь. Разумеется её надо добавлять рядом с уже существующими отпечатками.
UFO just landed and posted this here
модификация User-Agent

Обнаружить ложный юзерагент возможно. Я не знаю, делают ли это скрипты аналитики, но в ввиду различия количества реализованых api в зависимости от браузера и операционной системы, например различия цвета фона в зависимости от браузерного движка
В некоторых браузерах (Chrome) пример выше покажет iframe зелёным. А в некоторых (Firefox) – оранжевым.

Сайтам всё равно у тебя Mozilla 64.5 или 65.4
некоторые сайты определяют версию чуть ли не по юзерагенту и в случае чего будут отправлять обновить браузер. Так что можно действовать только в сторону повышения. Разумеется обнаружить подмену всё так же возможно.
Со шрифтами и остальным решается аналогично.
Это уже реализовано?
UFO just landed and posted this here
Веб страницы знают не только размер окна, но и разрешение экрана.
UFO just landed and posted this here
Вы предлагаете каждый раз давать новое разрешение? Разрешений экрана не так уж и много и округлением можно легко отбросить эти ваши пару пикселей. 1360*780 гораздо больше похоже на 1366*786, чем на 1920*1080.

Проверить есть ли шрифт в системе элементарно — достаточно попытаться им что-то нарисовать. Если шрифта нет, то будет использован шрифт по умолчанию.

Веб аналитика вполне может и запускаться на каждой странице, не знаю что так удивляет.
UFO just landed and posted this here
Разрешений монитора по пальцам можно посчитать, ничего уникального там нет.
Если не менять разрешение экрана, то это достаточно надёжно будет отсекать людей. Если у меня вчера был 1366*786, сегодня 1366*786, то скорее всего и завтра будет 1366*786.
Как скрипты аналитики узнают каким шрифтом по итогами всё было отрисовано на экране пользователя?
Рендерим каждым шрифтом по картинке, считаем хеш. Если хеши совпадают, то шрифт один и тот же. Для того чтобы определить шрифт по умолчанию, нужно сгенерировать несуществующее название шрифта. С каким хешем совпадёт, тот шрифт и является дефолтным.

У каждого шрифта своя форма. Дальше уже зависит от фантазии — обучать нейросеть, включать в скрипт эталонные картиннки или что-то ещё. Картинки можно включать в векторном формате, тогда они не сильно утяжелят скрипт.
UFO just landed and posted this here
Почему нейросеть подавится от 200 шрифтов? И почему браузер должен прибивать этот скрипт? Это же не майнер.
UFO just landed and posted this here
Отлично, теперь вы дали уникальный признак, как себя вычислить — ШРИФТОВ БЕСКОНЕЧНЫЙ КРАЙ.

Бороться со скриптами аналитики нужно не попытками сделать ЧТО-ТО, равзе что-то сделать, а делать обдуманные вещи.
UFO just landed and posted this here
Ghostery лучше не ставить. А если поставили — то снести и забыть. Есть инфа, что они собирают и продают данные пользователей.
Лучше и эффективнее что-то вроде ublock origin + privacy badger.
Так ведь есть платные браузеры которые подменяют браузерные отпечатки или просто отключат их (иногда с потерей функционала сайта). Применяют их главным образом для мультиаккантах в соцсетях. Я могу назвать как минимум 3 разных: swSpyBrowser, multiloginapp (или его клон Indigo browser ), Linken Sphere.

Виртуальная машина ещё анонимнее, но тормозит:
"Whonix is a desktop operating system designed for advanced security and privacy. Whonix mitigates the threat of common attack vectors while maintaining usability. Online anonymity is realized via fail-safe, automatic, and desktop-wide use of the Tor network. A heavily reconfigured Debian base is run inside multiple virtual machines, providing a substantial layer of protection from malware and IP address leaks. Commonly used applications are pre-installed and safely pre-configured for immediate use. The user is not jeopardized by installing additional applications or personalizing the desktop. Whonix is under active development and is the only operating system designed to be run inside a VM and paired with Tor."

Зайдите в пайпал под вхуниксом и попробуйте что то оплатить ;)
Есть и целые виртуальные машины, например. Логика простая: браузер берёт все сведения из операционной системы, так зачем привязывать клиента к конкретному браузеру.
Это пока не сфингерпринтят ваше железо, которое виртуальная машина делит с настоящей. Тут поможет только полная эмуляция типа bochs, но достаточно попробовать использовать ее для хоть чего-нибудь кроме разработки операционок, чтобы осознать бесполезность затеи.
Если я правильно понял, вы оправдываете рекламодателей.

А для чего им нужны специфические API мобильных браузеров?
Я могу понять сканирование некоторых определённых параметров, которые позволяют определить принадлежность пользователя к определённой группе — например, виндоюзеров с разрешением 1920х1080 с поддержкой всех базовых шрифтов — это не поможет идентифицировать пользователя, однако сбор практически всех возможных параметров… тут уж, простите, даже если очень постараться — «необходимость» за уши не притянешь.

Почему нельзя уведомлять пользователя о том, какие данные о нём собираются и в каких целях? Почему люди должны «выкапывать» эти скрипты, чтобы понять, что они делают?
Если я правильно понял, вы оправдываете рекламодателей.
Код написанный со злым умыслом выглядит точно так же, как и код написанный с добрым умыслом, и сам по себе интерпретатор не отличит один от другого.
Почему нельзя уведомлять пользователя о том, какие данные о нём собираются и в каких целях?
Уведомлять возможно, основной вопрос лишь в том, что пользователь будет делать со всем этим. Во-первых предупреждение на большинстве страниц быстро начнут утомлять, практические ничего не давая. Во-вторых, возможно что страницы будут ломаться, если реклама не отображается/отпечаток не получен.
UFO just landed and posted this here
Размер окна на самом деле не нужен. Нужен размер viewport… Вся проблема из-за того что делали «странички» онлайн, а не «программы». Отсюда и вся дребедень.

Я как-то хотел написать обработчик программ на .NET, где происходила загрузка по HTTP XML файла с дефинициями форм, а c# бы тогда их собирал и отображал в программе, забросил.
Тем, что там нет программной части, только отображение.
Поэтому надо было разработать XML с for loop, обработчиком ошибок, отправкой запросов по HTTP и т.п.
Нужен браузер, позволяющий гибко настраивать работу скриптов. Либо в адблокере самостоятельно выделять вражеские домены и отдельно скрипты с приемлемых доменов.

Хотя конторы уровня гуглов наверняка уже перешли на очень простое решение — закрытые договорённости с интернет-провайдерами о доступе к сервису получения идентификатора юзера по ай-пи и времени выхода в сеть.
Скрипты — вообще больная тема сегодня, с точки зрения быстродействия.
Бесполезно искать «легкий браузер» для слабой машины, если сами страницы перегружены активными элементами. И если бы это была только реклама и разные счетчики-метрики, то можно было бы просто отключить javascript, но основной функционал все чаще работает на нем, и при отключении просто не отображается содержимое страницы, не работают кнопки, формы и т.д.
10 лет назад можно было отключить javascript, и все работало.
Поэтому и нужны гибкие настройки по управлению JS. Но «это дорого» (с).
NoScript умеет по спискам отключать скрипты для сайтов, оставляя только необходимый минимум (хотя работает это не всегда).
UFO just landed and posted this here
Большинство сайтов, которые финансируется за счет контекстной рекламы, или просто исчезнут
Большинству сайтов, которые финансируются за счет контекстной рекламы, туда и дорога.
UPD. С их исчезновением интернет определенно станет лучше.
Кликбейтные заголовки вместе с рекламными статьями исчезнут, что хорошо.
Люди пишущие, чтобы донести свои мысли продолжать делиться своим мнением/своими знаниями.
Заработок за счёт рекламы придётся заменить на сбор средств на спонсирование, так что сочинять музыку, рисовать картины и так далее всё ещё можно будет. Как и сейчас всё это будет связанно с известностью.
Контент придётся хостить либо за свой счёт, либо раздавать его подобно торренту, что благоприятно скажется на отказоустойчивости и защитит от цензуры. Текст мало того что мало весит, так ещё и отлично сжимается. Вместо длинных роликов в которых докладчик подбирает слова, поскольку пишет ролик без сценария, выполнения каких-то рутинных операций(например набора кода), пустой болтовни люди будут мотивированных писать статьи. Разумеется видео тоже можно будет смотреть, но люди не захотят хранить у себя всякий мусор.
Ничего не мешает гуглу нормально реализовать Google Contributor или кому то еще сделать аналог, после чего сайты будут получать финансирование по прежнему. По сути идея что вместо показа рекламы сайту просто капает денежка.
Да, это означает что у гугла будет список посещенных сайтов и карточка пользователя — но они и так есть.
Если же модель взлетит реально — вполне можно сделать аналогичные сети с пополнением баланса хоть биткоинами.
Единственное — возможно придется как то сделать возможность для сайта идентифицировать — за этого пользователя вообще оплата ожидается или нет?
Подделывать посещаемость? Так а зачем? Если деньги будут и так.
Microsoft договорился c Google о предоставлении фингерпринтов? Канделябром!
Всей этой истории сто лет, только раньше это не работало с мобильниками (за отсутствием кастомных шрифтов, да и вообще они все клоны почти), а сейчас прям с мобильных легче отпечаток снять — это правда?

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

Вы можете зайти куда-нибудь сюда и проверить самостоятельно что с вашего устройства можно снять, а что нет. А потом попытаться как-то заставить браузер не разбалтывать это все (спойлер: на компьютере это частично можно прикрыть расширениями, а на мобилке никак). Да, кстати, виртуальные машины не помогут, потому что значение такого параметра как canvas будет одинаковым для хоста и геста (а это только лишь один из параметров).
Для canvas проблема также может решаться расширением, например для FF: Canvas Blocker.
Полагаю, что лучше не блокировать данные, которые можно снять с браузера, а отдавать одинаковые для всех либо фейковые.
Кто пробовал браузер Brave? Не является ли он первым приближением к браузеру, где можно защититься от этой глобальной слежки? Или тоже заявляют одно, а по сути — тоже самое?
Я вам скажу так. Brave очень много и громко заявляет о том, как ужасны рекламные технологии, и как они крадут персональные данные у ничего не подозревающих обывателей. Они оседлали волну GDPR-истерии и регулярно набрасывают на вентилятор.

А теперь задумайтесь на минуту. Сколько бизнес-моделей вы можете вспомнить для компании-разработчика браузера?

Ну, собственно, вот: brave.com/brave-ads-waitlist

Если не можешь победить — возглавь. Только кишка у них сильно тонкая для того, чтобы сражаться с 300-миллиардной индустрией.

А какая бизнес-модель у Firefox Focus? Они блокируют: ad trackers (трекеры посещений), analytics trackers (нажатия и скроллы), social trackers (кнопки лайков и любые другие элементы соцсетей), и выключенные по умолчанию любые другие трекеры. Плюсом можно заблокировать Web-шрифты.

Ну вообще, Mozilla — non-profit org, насколько я помню. Поэтому это оплачивается всё деньгами корпораций.
Не является ли он первым приближением к браузеру, где можно защититься от этой глобальной слежки?
Для этого им должно как минимум хватить сил поддерживать declarativeNetRequest, как и остальные фичи. Однако это не делает его менее следящим, чем например firefox. Хотя я сомневаюсь, что у них достаточно сил для уничтожения всех гугловских блобов.

Чувствую, что скоро надо будет делать браузеры, где доступ почти ко всем api надо будет делать через разрешение пользователя, как например запрашивают geo координаты или разрешение на уведомления.

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

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

Проблема в том, что вы не будете пользоваться таким приложением, я не буду… А сотни людей будут, серая масса которой пофиг/нечего скрывать/просто не хватает головы понять что они отдают будут, и разработчик пожертвует единицами ради доступа к информации тысяч.
На их сайте работает инструмент Panopticlick, который эмулирует действия враждебного трекера и определяет, насколько уникален отпечаток вашего браузера.
Интересно, что один мой браузер (Опера) «палится» уникальным юзер-агентом (1 из всех 204551) и «Hash of canvas fingerprint»/«Hash of WebGL fingerprint» (таких по двое),
другой (ОгнеЛисица) «более скрытен» (худший отдельный результат — 1 из 29245.86), но общий его «отпечаток» всё равно уникален. ¯\_(ツ)_/¯
Sign up to leave a comment.