Фингерпринтинг («снятие отпечатков пальцев») в браузере — это метод идентификации и трекинга в сети людей посредством объединения нескольких «полуидентификаторов» — таких маркеров, которые немного различаются в браузерах разных пользователей (например, размер окна браузера или особенности железа) — в единый уникальный идентификатор. Эта методика позволяет идентифицировать пользователя без сохранения в браузере какого-либо состояния, например кук или «суперкук».
Как это работает? Разные люди выставляют разные языковые настройки, используют различные операционные системы, и так далее. Взятые по отдельности, эти параметры вряд ли позволят идентифицировать вас: сайт может видеть, что одни пользователи читают по-английски, а другие по-русски, но, поскольку пользователей много, сайт не может идентифицировать браузер по его языковым настройкам. С другой стороны, кто-то пользуется MacOS, кто-то Windows, а кто-то Linux; в каждой категории много людей. Однако же сайт может идентифицировать вас, собрав в одно целое большое количество таких недоидентификаторов, которыми браузер щедро делится через разнообразные API. На сайте может быть много русскоговорящих пользователей и много линуксоидов, однако же число тех, кто одновременно предпочитает и русский, и линукс, значительно меньше. Объединяя значительное число подобных маркеров, сайты могут идентифицировать и, соответственно, трекать множество пользователей.
Что с фингерпринтингом делает большинство других браузеров?
Большинство браузеров борется с фингерпринтингом путём уменьшения количества возможных значений, которые могут вернуть вызовы API браузера. Например, вместо того, чтобы указать на то, что пользователь предпочитает австралийский или британский английский, браузер сообщит о предпочтении просто «английского» языка для того, чтобы уменьшить риск идентификации пользователя по этому параметру.
Эта мера несколько улучшает защиту конфиденциальности, однако же на практике её недостаточно. Во-первых, подобных полуидентификаторов в браузере много, поэтому уменьшение возможности идентификации лишь по некоторым из них недостаточно (в особенности для пользователей с нетипичным железом или говорящих на не самых распространённых языках). Во-вторых, конфиденциальность благодаря схожести работает только на популярных сайтах: скрыться в толпе невозможно там, где её нет. В-третьих, изменение подобных маркеров на менее идентифицирующие может ломать сайты, которым необходимо правильное значение этого параметра. В этом заключается самая нетривиальная часть, так как в этой категории фингерпринтинга подчас приходится жертвовать или функциональностью, или конфиденциальностью.
Как мы развиваем нашу нынешнюю систему для усиления защиты от фингерпринтинга?
Мы находимся в промежуточном состоянии между двумя системами борьбы с фингерпринтингом. Где-то мы убираем или модифицируем функционал браузера для того, чтобы все наши пользователи выглядели одинаково. Это полезная система, но она страдает от вышеописанных проблем. Из-за этого, а также из-за возможных поломок сайтов, мы применяем такую защиту по умолчанию только к сторонним фреймам. Жить можно, но не идеально.
Поэтому мы также применяем стратегию, которая работает ровно наоборот: вместо того, чтобы делать всех похожими, мы стараемся сделать каждого пользователя уникальным для каждого сайта и каждой сессии. Таким образом наши пользователи выглядят по-разному для каждого сайта, и сайты не могут использовать фингерпринтинг для их отслеживания в сети.
Защита от фингерпринтинга 2.0: фарблинг
Что это такое?
«Фарблингом» (от английского «басня», «небылица») мы называем нашу систему защиты конфиденциальности посредством рандомизации, с помощью которой мы слегка рандомизируем выдачу полуидентифицирующих функций браузера таким образом, что сайтам трудно это заметить, не нарушая при этом полезный функционал сайта.Такие «сфарбленные» значения генерируются детерменированно с использованием уникальной для сессии затравки, привязанной к per-eTLD+1. Каждый раз, когда вы запускаете Brave, создаётся уникальный случайный сессионный токен, который ни в каком виде не доступен сайтам, и который пересоздаётся каждый раз, когда вы перезапускаете Brave. Этот токен впоследствии смешивается с каждым оригинальным доменом верхнего уровня, который вы посещаете, для создания нового односессионного токена для этого домена. Все сфарбленные значения генерируются из этих односессионных и однодоменных случайных затравок.
В итоге сайт получит одно и то же значение каждый раз, когда он попытается снять отпечаток пальцев в рамках одной сессии, но разные сайты получат разные значения, а исходный сайт получит другое значение в другой сессии. В этой разработке мы опирались на исследования PriVaricator (Nikiforakis et al, WWW 2015) и FPRandom (Laperdrix et al, ESSoS 2017).
Наша защита от фингерпринтинга на основе фарблинга трёхуровневая, и ниже мы опишем эти уровни подробнее:
Выкл: меры защиты от фингерпринтинга не применяются.
По умолчанию: защита от фингерпринтинга включена, риск поломки сайтов минимален.
Максимальный: наибольшая степень защиты от фингерпринтинга, которая может ломать сайты.
Эти защитные меры применяются как для оригинального, так и для стороннего контента. Сторонние фреймы часто трекают пользователей сообща с оригинальным сайтом, поэтому мы применяем наши защитные меры сообразно угрозам.
Уровень фарблинга: выключен
С этой настройкой наш браузер беззащитен перед фингерпринтингом. Наша цель в том, чтобы пользователи никогда не применяли эту настройку. Она существует для сайтов, требующих высокого уровня доверия, для разработчиков, тестирующих функциональность, и других редких случаев.
Уровень фарблинга: по умолчанию
Настройка по умолчанию для защиты от фингерпринтинга заключается в небольшой рандомизации полуидентифицирующих вызовов браузерных API; достаточно маленькой, чтобы быть незаметной для людей, но достаточной для того, чтобы сайты не могли вас отслеживать. Эта настройка будет включена по умолчанию, так как она удачно балансирует между защитой конфиденциальности и веб-совместимостью, а мы продолжим и дальше настраивать и улучшать её по мере наблюдения за поведением трекеров.
Первичная цель этой системы — защита от глобальных трекеров и рекламы, которые хотели бы идентифицировать пользователей, но не могут позволить себе потратить слишком много ресурсов на идентификацию какого-либо конкретного пользователя. Вторичная цель — явно разделить добросовестный сбор информации от недобросовестного, чтобы при необходимости можно было применить дальнейшие меры. В-третьих, если мы не можем достичь двух предыдущих целей (из-за природы API), мы стремимся значительно увеличить объём работы, который необходимо провести атакующему и заставить его перечислить устройства, которые он пытается отследить, или же уменьшить объём материала, с которого могут быть собраны эти «отпечатки пальцев».
Важно отметить, что категория «по умолчанию» пользуется значениями, полученными из «истинных» значений исходных функций. Из-за этого мы предполагаем, что целенаправленные и мотивированные атаки могут обойти эту защиту. Защита от подобных целенаправленных атак не является нашей первичной целью; наша цель — защитить пользователей от коварных трекеров и нарушителей приватности, которыми весь интернет обмазан в три слоя. Пользователям, нуждающимся в защите от таргетированных атак, следует обратить внимание на инструменты, специально разработанные для таких случаев, например, Tor.
Уровень фарблинга: максимальный
Наконец, мы предусмотрели «максимальную» настройку, которая предоставляет дополнительные меры защиты, но иногда может ломать сайты. В этой категории рандомизированные параметры вообще не включают в себя «истинные» значения. В то время, как настройка по умолчанию добавляет немного энтропии к параметрам, которые можно отследить, максимальная настройка выдаёт исключительно случайные значения. Эти значения на выходе не имеют никакой связи с «настоящими» значениями API, по которым вас можно идентифицировать, поэтому мы считаем, что этот уровень защиты нельзя атаковать статистическими или легкоразличимыми атаками, которые применимы к настройкам по умолчанию. Здесь, однако же, приходится жертвовать функциональностью сайтов, некоторые из которых могут ломаться при получении случайных значений.
Что будет сфарблено, как и когда?
Выше мы поговорили о целях и уровнях защиты фарблинга, а таблица ниже показывает, как и какие именно функции браузера будут изменены в настройках по умолчанию и на максимум. Первая колонка описывает изменяемый интерфейс, вторая показывает конкретные свойства и функции, которые изменяются, а третья даёт ссылку и идентификационный номер, который мы используем для отслеживания статуса каждого изменения.
Подробная таблица сфарбленных API браузера
JavaScript Interface |
Endpoint(s) |
GitHub Issue |
|
||
|
getParameter |
|
getFramebufferAttachmentParameter |
||
UNMASKED_VENDOR_WEBGL UNMASKED_RENDERER_WEBGL |
||
Защита от фингерпринтинга в будущем
Фингерпринтинг — это проблема, которую крайне сложно решить, не ломая функциональность сайтов, поэтому многие браузеры попросту умывают руки и преподносят её как «выбирай: или функциональность, или конфиденциальность». Фарблинг является частью нашего ответа: мы хотим показать, что эта дихотомия ложная, а сеть может быть как конфиденциальна, так и многофункциональна. Тем не менее, это не конец пути.
Защита от фингепринтинга, версия 3?
Начальная версия защиты на основе фарблинга, которую мы здесь описали, покрывает большинство API, которые используются в наиболее распространённых атаках на сегодняшний день. Тем не менее, существуют и другие полуидентификаторы, с которыми мы хотим разобраться в будущем. К примеру, мы разрабатываем защиту от фингерпринтинга по перечислению шрифтов, и мы хотим по умолчанию делиться меньшим количеством потенциально идентифицирующих параметров видеокарт.
Улучшаем стандарты, боремся с фингерпринтингом
Наконец, методы защиты, описанные здесь, не спасут от потенциальных новых функций, которые могут быть внедрены в будущем и которые можно будет использовать для трекинга и идентификации пользователей. Чтобы этого не произошло, мы работаем в W3C для того, чтобы новые возможности браузеров соблюдали конфиденциальность пользователей. Главное, хоть и не единственное наше направление работы в сфере стандартов проходит в PING, подгруппе W3C, занимающейся изучением новых спецификаций с тем, чтобы они соблюдали конфиденциальность. Это постоянная и непрекращающаяся работа, и мы рады сотрудничеству с нашими уважающими конфиденциальность партнёрами в W3C для того, чтобы сделать сеть лучше для всех.
Комментарии (24)
altervision
03.12.2021 08:05Вы не думали использовать что-то по типу "виртуальной личности" с фиксированным идентификатором сессии для затравки, плюс некими настраиваемыми параметрами по типу ОС, железа, языка. Разумеется, только для продвинутых пользователей, обычным такое будет неудобно.
К примеру, есть у нас виндузятник Вася с Хромом из России, линуксоид Андрей с Фаерфоксом из Украины и какой-нибудь Имхотеп с IE6 на WinXP. Каждая виртуальная личность существует в своей закрытой песочнице и использует свою группу вкладок.
В чём может быть плюс такого подхода: мы жертвуем абсолютной приватностью, но нагуливаем некоторый "жирок" для различных сервисов. И не приходится на сайтах каждый раз при каждом запросе тыкать в РеКапчу или аналоги, которые ненавидят чистых пользователей без истории.
BraveSoftware Автор
03.12.2021 11:48Да, конечно, эта идея понятна, и рассматривалась. Но до реальной жизни доберётся только прикрытия оставшихся дыр - как минимум, нужно как следует победить шрифты
qw1
03.12.2021 14:28В списке фальшивых данных не вижу самого главного — биометрии, а она сейчас больше всего компрометирует пользователя.
BraveSoftware Автор
04.12.2021 21:59Насчёт "больше всего" вопрос спорный, банальный fingerprint js установлен на тысячах сайтов, а снятием именно "биометрии" увлекаются далеко не все. Известные скрипты, которые такое делают, и так можно заблокировать обычным блокировщиком. Согласен, что фарблинг именно данных о движении это интересный момент.
interprise
04.12.2021 18:24В первую очередь, стоит сделать опцию для пользователей linux, а именно "косить под windows"
BraveSoftware Автор
04.12.2021 21:54К сожалению, полностью скрыть от продвинутых фингерпринтеров свою ОС очень сложно, почти невозможно. Скорее, такие попытки будут понижать уровень "доверия" к такому браузеру и провоцировать повышенное количество капчей и доп. проверок. Даже TOR Browser этого делать не пытается
3draven
05.12.2021 18:49-2То есть вероятность точной идентификации по ос более 90 процентов для линуксоида, а все что описано выше туфта.
3draven
05.12.2021 18:51-2Да и непонятно зачем вообще все эти "защиты". Высасывание из пальца проблемы, на которую ведуться хомяки. Хочешь конфиденциально, юзай тор и аналоги. Обычному юзеру совершенно пофиг идентифицирован ли он.
ymishta
05.12.2021 20:34Обычному юзеру совершенно пофиг идентифицирован ли он.
Ровно до той поры, пока не окажется что на какого-то персонажа заведено оперативно-розыскное дело и оказывается, что наш Вася Пупкин имеет сетевую активность просто великолепно коррелирующую с сетевой активностью этого самого фигуранта ОРД.
3draven
07.12.2021 02:49Вы какую то фантастику сочиняете. Если мне не будет лень, уточню у знакомого адвоката есть ли хоть один случай в истории России подобный реальный. Слепки сетевой активности, насколько я представляю оперативную работу никому нафиг не сдались, так как намного проще можно получить желаемое и без этого всего. Но, повторюсь, уточню при случае, даже любопытно насколько этот бред фантастический может быть близок к реальности нашей.
JBird
07.12.2021 09:15Подозреваю что речь шла не только про РФ, а про весь мир. А чем, собс-но, на этапе ОРД плох анализ корреляций сетевого траффика? Это же еще не уголовка, а подготовка к ее возбуждению.
3draven
07.12.2021 11:55Ничем, но про Россию я могу узнать у специалиста. Обычно оперативники, насколько я знаю из общения с ними, не заморачиваются этой фигней. Так как это сложно и долго, требует судебных предписаний и прочего. Во всяком случае так было лет пять назад, когда я спрашивал. Тем более это не станет основанием для того что бы кому то портить жизнь на основе "совпадающей сетевой активности", это насколько я себе представляю сейчас, бред. Но спрошу при случае.
3draven
07.12.2021 11:57В жизни все намного проще. Пишется запрос в ВК какой то "дайте нам данные этого юзера" и заводится дело. И никаких поисков неуловимых Джо там не бывает, ибо уловимых сотни миллионов и галочку за заслуги можно легко получить и без всякой "сетевой активности".
3draven
07.12.2021 12:22-1Знакомый прислал свое старое видео на тему. Можно просвятиться насколько туфта выше рекламная имеет реальный смысл.
https://youtu.be/3D7HjYLkVrs
BraveSoftware Автор
06.12.2021 10:22Туфта - это безграмотные комментарии на публичной площадке, которые демонстрируют разве что недостаток познаний их автора.
Ещё раз повторюсь, что ТОР браузер позволяет без проблем определить тип операционки и и официально не считает приоритетным маскировать этот параметр (ссылка)
interprise
05.12.2021 23:12С чем это связанно в техническом плане? Ниже правильно пишут что брайв + линукс, дадут очень точный показатель уникальности.
BraveSoftware Автор
06.12.2021 10:15Например, с набором шрифтов и их определением через CSS и canvas fingerprint. Трудно "добавить" те шрифты, которые должны быть на той или иной операционке.
Как я уже написал, даже TOR Browser (который мы сами официально рекомендуем для тех, кому нужна более лучшая конфиденциальность) позволяет определить ОС (см пункт 30) - попробуйте в нём открыть pixelscan.net или coveryourtracks.eff.org
Ну и "очень точный" - это насколько очень точный? Раствориться в когорте из 1000 пользователей уже достаточно, очевидно что пользователей Брейва на Линуксе даже в России больше.
Zenitchik
06.12.2021 15:53На малопопулярном сайте пользователь Брейва скорее всего окажется один. Даже без учёта операционки.
Или у нас разные понятия о том, что такое малопопулярность.
BraveSoftware Автор
06.12.2021 18:08Пользователь ТОР браузера тоже окажется один. Чтобы решить такую проблему нужно растить долю, у нас это хорошо получается.
3draven
07.12.2021 02:42-2Юзер линукса+этого поделия это почти думается 99% идентификации. Не несите бред. То, что тор отдает параметры ос это недостаток и это не является его оправданием. Аргумент "а вот у них" это плохой аргумент. Раствориться среди тысячи это не раствориться вовсе.
Binomium
04.12.2021 21:50Пользуюсь вашим браузером на постоянной основе и, честно сказать, я уже забыл, что такое Google Chrome. Просто взял и откался от Хрома навсегда, лучше буду использовать тот браузер, который заботится о безопасности пользователях на просторах интернета чем тот, который суёт в настройки ранжировку пользователей на кагорты и подбирает рекламу. Спасибо Brave за то, что ты есть и основателю Брендан Эйх
skif_42
Доброго дня. Задам вопрос по похожей теме. Как-то натыкался на информацию про приложение, которое генерирует тысячи поисковых запросов в браузере и тем самым не даёт браузеру создать профиль пользователя. Недавно снова попытался найти что-то похожее и не смог. Типа гуглу невыгодно, чтобы пользователь был обезличенным и он просто не выдаёт поисковые запросы по этой теме. Может кто-нибудь подсказать что-нибудь в этом направлении. Спасибо.
BraveSoftware Автор
Здавствуйте, оно? https://adnauseam.io/