Как стать автором
Обновить
0
Brave
Browse privately. Search privately. Ditch Big Tech

Защита браузера от фингерпринтинга — опыт Brave

Время на прочтение7 мин
Количество просмотров8.1K
Автор оригинала: Peter Snyder

Фингерпринтинг («снятие отпечатков пальцев») в браузере — это метод идентификации и трекинга в сети людей посредством объединения нескольких «полуидентификаторов» — таких маркеров, которые немного различаются в браузерах разных пользователей (например, размер окна браузера или особенности железа) — в единый уникальный идентификатор. Эта методика позволяет идентифицировать пользователя без сохранения в браузере какого-либо состояния, например кук или «суперкук».

Как это работает? Разные люди выставляют разные языковые настройки, используют различные операционные системы, и так далее. Взятые по отдельности, эти параметры вряд ли позволят идентифицировать вас: сайт может видеть, что одни пользователи читают по-английски, а другие по-русски, но, поскольку пользователей много, сайт не может идентифицировать браузер по его языковым настройкам. С другой стороны, кто-то пользуется 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 браузера

Защита от фингерпринтинга в будущем

Фингерпринтинг — это проблема, которую крайне сложно решить, не ломая функциональность сайтов, поэтому многие браузеры попросту умывают руки и преподносят её как «выбирай: или функциональность, или конфиденциальность». Фарблинг является частью нашего ответа: мы хотим показать, что эта дихотомия ложная, а сеть может быть как конфиденциальна, так и многофункциональна. Тем не менее, это не конец пути. 

Защита от фингепринтинга, версия 3?

Начальная версия защиты на основе фарблинга, которую мы здесь описали, покрывает большинство API, которые используются в наиболее распространённых атаках на сегодняшний день. Тем не менее, существуют и другие полуидентификаторы, с которыми мы хотим разобраться в будущем. К примеру, мы разрабатываем защиту от фингерпринтинга по перечислению шрифтов, и мы хотим по умолчанию делиться меньшим количеством потенциально идентифицирующих параметров видеокарт. 

Улучшаем стандарты, боремся с фингерпринтингом 

Наконец, методы защиты, описанные здесь, не спасут от потенциальных новых функций, которые могут быть внедрены в будущем и которые можно будет использовать для трекинга и идентификации пользователей. Чтобы этого не произошло, мы работаем в W3C для того, чтобы новые возможности браузеров соблюдали конфиденциальность пользователей. Главное, хоть и не единственное наше направление работы в сфере стандартов проходит в PING, подгруппе W3C, занимающейся изучением новых спецификаций с тем, чтобы они соблюдали конфиденциальность. Это постоянная и непрекращающаяся работа, и мы рады сотрудничеству с нашими уважающими конфиденциальность партнёрами в W3C для того, чтобы сделать сеть лучше для всех.

Теги:
Хабы:
Всего голосов 22: ↑22 и ↓0+22
Комментарии24

Публикации

Информация

Сайт
brave.com
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
США

Истории