Комментарии 76
Это скорее способ сделать «persistent cookie» для того, чтобы строить анонимный поведенческий онлайн-профиль и таргетировать на его основе рекламу. Сам по себе он не позволит увязать ваше мобильное устройство и десктопный комп.
Кому как, гугл точно свяжет)
Размер окна крайне необходим. С его помощью можно подгонять размеры визуальных элементов, что бы они не вылазили за границы окна.
Воспроизведение звуков важно тем, кто слушает всяческие трансляции в браузере, ну а трансляторам нужно знать, какие форматы поддерживаются, не возникла ли ошибка при воспроизведении и т.д.
Движения мыши дают анимированный отклик браузера, что может выглядеть приятно (если не гадить, как это принято в среде разработчиков-идиотов).
Куда интереснее вопрос о том, почему никто до сих пор не создал браузер, который ничего этого не передаёт или передаёт это в каком-то «стандартном виде», а все страницы форматирует под голый текст, «режим чтения».
Не сказал бы, что это бесполезная задача — многие люди пользовались бы таким браузером, раз уж они постоянно пытаются запретить отслеживание и заблокировать банеры.
Не сказал бы, что это бесплатная задача — многие люди платят за протонмайл или даже за блокировщики рекламы.
Неужели эта задача настолько сложна?
Просто нереальна.
Стоимость разработки приличного браузера, то есть поддерживающего кучу самых разных и довольно толстых стандартов, очень высока. Без поддержки кучи толстых стандартов вы получите этакий MS-блокнот, который покажет лишь жалкие проценты от содержимого сайта, да то — в сильно искажённом виде. Например нужна полноценная поддержка скриптов, которыми очень часто формируется содержимое сайта. Но такая поддержка сразу включает все те шрифты, размеры окон и т.д. и т.п. Без скриптов вы просто не увидите содержимое, а если вырезать «по умолчанию» какие-то фичи, то огромное количество юзеров не будет пользоваться браузером, просто потому, что именно вырезанные фичи им очень нужны. Поэтому нужна гибкая настройка всего и вся, что ещё больше удорожает стоимость разработки. В целом получаем дорогое удовольствие для аудитории, ну скажем в 100 000 человек на всей земле. Ну и представьте теперь затраты на рекламу, которая отфильтрует эти сто тысяч среди миллиардов пофигистов. Эти затраты так же нужно добавить к стоимости браузера.
В итоге получится очень приличная сумма и… И что даст этот браузер его разработчику? Исключительно лишь моральное удовольствие?
В общем всё просто — в мире, где правят деньги, не стоит задавать вопросы о чём-то бесплатном (и даже просто доступном) и при этом ещё и качественном.
"А почему у меня сайт не влезает/показывает только в углу и текст разъезжается?"
Стандартных разрешений — мало штук, можно и передавать реальное.
Шрифтов — если сайт работает на свежеустановленной винде со стандартным списком шрифтов, то он заработает и у любого, кто пользуется Windows. Зачем ему знать наличие каких-то других шрифтов? Если нет в списке, то берётся следующий шрифт из стиля, если и его нет, то стандартный (тот, который указан в браузере).
То же самое и про остальные плагины. Если нет плагинов, то контент не воспроизводится, или выводится заглушка (проверяется на стороне браузера, так же, как noscript).
Какие вещи нужно знать удалённой стороне?
То же самое касается плагинов — допустим, браузер проверяет, а жабоскрипту не говорит. Хорошо, значит, давайте проверять, работает ли flash, передавая уникальную ссылку на swf-файл. О, файл запросился? Отлично. О, флеш-ролик XHR-запрос сделал? еще лучше.
Можно m3u8 скормить с разными форматами медиа и посмотреть, что браузер запросит. Можно поварьировать Content-Type из отдаваемого сервером и глянуть, что сервер будет скачивать целиком, а что отменит. Как это поможет избежать фингерпринта?
Есть webgl. Картинки, которые рендерятся разными видеокартами, не будут одинаковы с точностью до пикселя — они зависят от округлений, от приближенных вычислений, от дефолтных настроек в драйверах, от модели видеокарты. Для обычных картинок это не очень заметно, но зная про эти отличия, можно сделать тест, который максимально их подчеркнет, и позволит собрать информацию о том, какая у вас видеокарта, а это позволит вас профингерпринтить в ряде случаев, даже если вы в виртуалке.
Всякие meltdown и spectre расширяют список того, что можно узнать о вашем процессоре, и это тоже сработает изнутри виртуалки. Rowhammer еще.
Для работы с основным контентом сайта эта задача решается элементарно.
В современных Firefox (особенно с патчами Tor Browser) это решается сравнительно несложно. Необходимо только вынести код вывода режима чтения наружу и не применять к нему ограничения по разрешению.
А вот со всяким сопутствующим контентом проблема. Отваливаются поиски, отваливаются комментарии, карты, интерактивности и всё такое. И происходит это потому, что каждый сам велосипедировал всё это на различных фреймворках из чего только можно без малейших попыток стандартизации хотя бы даже того, как это будет в итоге рендериться. Где-то из-за непонимания того, как это работает, где-то из желания сделать всё "удобным" (чего стоит переопределение ctrl+f на одном из форумных движков), а где-то чтобы запихнуть побольше рекламы или осложнить автоматизированное копирование "сверхценного контента"
Куда интереснее вопрос о том, почему никто до сих пор не создал браузер, который ничего этого не передаёт или передаёт это в каком-то «стандартном виде», а все страницы форматирует под голый текст, «режим чтения».
Неужели эта задача настолько сложна?
Эта задача прямо противоречит целям современного браузера. Современный браузер в первую очередь является платформой для выполнения онлайн приложений, в то время как относительно удобный анонимная работа возможена только через специального клиента, резлизующего, например отправку комментариев или же загрузку частей карты Земли. Задачу можно решить, если кто-то создаст клиент для каждого сайта, используюя то же api что и веб версия. Сайты периодически переписывают, как следствие на это время клиенты будут отваливаться.
Впрочем, если интересует только чтение, то можно найти сервис для создания скриншотов сайтов, набросать простой скрипт, который будет получать картинку и читать сайт словно бумажную книгу, забыв про гиперссылки, анимацию и прочие возможноси.
Firefox Focus например пытается
модификация User-Agent
Обнаружить ложный юзерагент возможно. Я не знаю, делают ли это скрипты аналитики, но в ввиду различия количества реализованых api в зависимости от браузера и операционной системы, например различия цвета фона в зависимости от браузерного движка
В некоторых браузерах (Chrome) пример выше покажет iframe зелёным. А в некоторых (Firefox) – оранжевым.
Сайтам всё равно у тебя Mozilla 64.5 или 65.4некоторые сайты определяют версию чуть ли не по юзерагенту и в случае чего будут отправлять обновить браузер. Так что можно действовать только в сторону повышения. Разумеется обнаружить подмену всё так же возможно.
Со шрифтами и остальным решается аналогично.Это уже реализовано?
Проверить есть ли шрифт в системе элементарно — достаточно попытаться им что-то нарисовать. Если шрифта нет, то будет использован шрифт по умолчанию.
Веб аналитика вполне может и запускаться на каждой странице, не знаю что так удивляет.
Разрешений монитора по пальцам можно посчитать, ничего уникального там нет.Если не менять разрешение экрана, то это достаточно надёжно будет отсекать людей. Если у меня вчера был 1366*786, сегодня 1366*786, то скорее всего и завтра будет 1366*786.
Как скрипты аналитики узнают каким шрифтом по итогами всё было отрисовано на экране пользователя?Рендерим каждым шрифтом по картинке, считаем хеш. Если хеши совпадают, то шрифт один и тот же. Для того чтобы определить шрифт по умолчанию, нужно сгенерировать несуществующее название шрифта. С каким хешем совпадёт, тот шрифт и является дефолтным.
У каждого шрифта своя форма. Дальше уже зависит от фантазии — обучать нейросеть, включать в скрипт эталонные картиннки или что-то ещё. Картинки можно включать в векторном формате, тогда они не сильно утяжелят скрипт.
Бороться со скриптами аналитики нужно не попытками сделать ЧТО-ТО, равзе что-то сделать, а делать обдуманные вещи.
Лучше и эффективнее что-то вроде ublock origin + privacy badger.
Виртуальная машина ещё анонимнее, но тормозит:
"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."
А для чего им нужны специфические API мобильных браузеров?
Я могу понять сканирование некоторых определённых параметров, которые позволяют определить принадлежность пользователя к определённой группе — например, виндоюзеров с разрешением 1920х1080 с поддержкой всех базовых шрифтов — это не поможет идентифицировать пользователя, однако сбор практически всех возможных параметров… тут уж, простите, даже если очень постараться — «необходимость» за уши не притянешь.
Почему нельзя уведомлять пользователя о том, какие данные о нём собираются и в каких целях? Почему люди должны «выкапывать» эти скрипты, чтобы понять, что они делают?
Если я правильно понял, вы оправдываете рекламодателей.Код написанный со злым умыслом выглядит точно так же, как и код написанный с добрым умыслом, и сам по себе интерпретатор не отличит один от другого.
Почему нельзя уведомлять пользователя о том, какие данные о нём собираются и в каких целях?Уведомлять возможно, основной вопрос лишь в том, что пользователь будет делать со всем этим. Во-первых предупреждение на большинстве страниц быстро начнут утомлять, практические ничего не давая. Во-вторых, возможно что страницы будут ломаться, если реклама не отображается/отпечаток не получен.
Я как-то хотел написать обработчик программ на .NET, где происходила загрузка по HTTP XML файла с дефинициями форм, а c# бы тогда их собирал и отображал в программе, забросил.
blogs.msdn.microsoft.com/ashish/2007/08/14/dynamically-loading-xaml
Хотя конторы уровня гуглов наверняка уже перешли на очень простое решение — закрытые договорённости с интернет-провайдерами о доступе к сервису получения идентификатора юзера по ай-пи и времени выхода в сеть.
Бесполезно искать «легкий браузер» для слабой машины, если сами страницы перегружены активными элементами. И если бы это была только реклама и разные счетчики-метрики, то можно было бы просто отключить javascript, но основной функционал все чаще работает на нем, и при отключении просто не отображается содержимое страницы, не работают кнопки, формы и т.д.
10 лет назад можно было отключить javascript, и все работало.
Большинство сайтов, которые финансируется за счет контекстной рекламы, или просто исчезнутБольшинству сайтов, которые финансируются за счет контекстной рекламы, туда и дорога.
UPD. С их исчезновением интернет определенно станет лучше.
Люди пишущие, чтобы донести свои мысли продолжать делиться своим мнением/своими знаниями.
Заработок за счёт рекламы придётся заменить на сбор средств на спонсирование, так что сочинять музыку, рисовать картины и так далее всё ещё можно будет. Как и сейчас всё это будет связанно с известностью.
Контент придётся хостить либо за свой счёт, либо раздавать его подобно торренту, что благоприятно скажется на отказоустойчивости и защитит от цензуры. Текст мало того что мало весит, так ещё и отлично сжимается. Вместо длинных роликов в которых докладчик подбирает слова, поскольку пишет ролик без сценария, выполнения каких-то рутинных операций(например набора кода), пустой болтовни люди будут мотивированных писать статьи. Разумеется видео тоже можно будет смотреть, но люди не захотят хранить у себя всякий мусор.
Да, это означает что у гугла будет список посещенных сайтов и карточка пользователя — но они и так есть.
Если же модель взлетит реально — вполне можно сделать аналогичные сети с пополнением баланса хоть биткоинами.
Единственное — возможно придется как то сделать возможность для сайта идентифицировать — за этого пользователя вообще оплата ожидается или нет?
Подделывать посещаемость? Так а зачем? Если деньги будут и так.
Любой фингерпринтинг, основанный на особенностях железа должен работать. Разве что с айфонами сложнее, хотя и там тоже зоопарк моделей порядочный уже
Полагаю, что лучше не блокировать данные, которые можно снять с браузера, а отдавать одинаковые для всех либо фейковые.
А теперь задумайтесь на минуту. Сколько бизнес-моделей вы можете вспомнить для компании-разработчика браузера?
Ну, собственно, вот: brave.com/brave-ads-waitlist
Если не можешь победить — возглавь. Только кишка у них сильно тонкая для того, чтобы сражаться с 300-миллиардной индустрией.
А какая бизнес-модель у Firefox Focus? Они блокируют: ad trackers (трекеры посещений), analytics trackers (нажатия и скроллы), social trackers (кнопки лайков и любые другие элементы соцсетей), и выключенные по умолчанию любые другие трекеры. Плюсом можно заблокировать Web-шрифты.
Не является ли он первым приближением к браузеру, где можно защититься от этой глобальной слежки?Для этого им должно как минимум хватить сил поддерживать declarativeNetRequest, как и остальные фичи. Однако это не делает его менее следящим, чем например firefox. Хотя я сомневаюсь, что у них достаточно сил для уничтожения всех гугловских блобов.
Чувствую, что скоро надо будет делать браузеры, где доступ почти ко всем api надо будет делать через разрешение пользователя, как например запрашивают geo координаты или разрешение на уведомления.
Ну нужно просто понимать, какие разрешения нужны приложению, а какие нет. Если галерея отказывается работать, если я не дам ей список моих контактов, то пошла эта галерея подальше.
Можно конечно сказать "я не программист, чтобы знать, что приложению нужно", но мы живём в таком веке, в котором уже надо бы начинать интересоваться этой темой.
На их сайте работает инструмент Panopticlick, который эмулирует действия враждебного трекера и определяет, насколько уникален отпечаток вашего браузера.Интересно, что один мой браузер (Опера) «палится» уникальным юзер-агентом (1 из всех 204551) и «Hash of canvas fingerprint»/«Hash of WebGL fingerprint» (таких по двое),
другой (ОгнеЛисица) «более скрытен» (худший отдельный результат — 1 из 29245.86), но общий его «отпечаток» всё равно уникален. ¯\_(ツ)_/¯
Фингерпринтинг через рекламные баннеры? Теперь это обычное дело