Краткий обзор технологии отслеживания отпечатков пальцев в браузере

внешний интерфейс

Прежде чем начать, давайте рассмотрим два сценария, с которыми вы можете столкнуться в Интернете:

Сценарий 1. Я просмотрел определенный продукт на веб-сайте и узнал соответствующую информацию о продукте, но я не размещал заказ на его покупку и даже не входил в систему. Двумя днями позже, когда я использовал тот же компьютер для посещения других веб-сайтов, я нашел много объявлений о похожих продуктах.

Сценарий 2. У вас в блоге есть несколько труб (темно-синих), и эти трубы существуют, чтобы повысить популярность определенного сообщения или направить общественное мнение, или просто провести транзакции трафика, даже когда вы меняете учетные записи. Очистить файлы cookie, локальные кэши, перезагрузить маршрутизаторы. , или даже использовать vpn для работы, вы думаете, что достаточно осторожны и пытаетесь максимально повысить подлинность водной армии, но руководство все еще может знать, что это один и тот же человек, и, таким образом, попасть под удар.

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

Что такое отпечаток браузера

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

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

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

Для веб-сайта получение отпечатка браузера не имеет практической ценности, а действительно ценна информация о пользователе, соответствующая отпечатку браузера. Для веб-мастера сбор отпечатков пальцев браузера пользователя и запись действий пользователя является ценным занятием, особенно для сценариев без идентификации пользователя. Например, на веб-сайте распространения контента пользователь А любит просматривать содержимое двухмерного элемента и записывает этот интерес с помощью отпечатка пальца браузера, а затем в следующий раз, когда пользователю не нужно входить в систему, двухмерная информация может быть передан пользователю A. Это также способ доставки контента в то время, когда персональные ПК так распространены.

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

Фон отпечатков пальцев браузера

Технология отслеживания отпечатков пальцев в браузере перешла на 2,5-е поколение.

  • Первое поколение имеет состояние, в основном фокусируясь на пользовательских файлах cookie и evercookie, требуя от пользователя входа в систему для получения достоверной информации.
  • Второе поколение имеет концепцию снятия отпечатков пальцев браузера, которая делает пользователей более различимыми за счет постоянного увеличения значений функций браузера, таких как (UA, информация о подключаемом модуле браузера)
  • Третье поколение уже нацелилось на людей. Собирая поведение и привычки пользователей для построения собственных значений и даже моделей для пользователей, можно реализовать настоящую технологию отслеживания. Эта часть в настоящее время более сложная и все еще исследуется.

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

Сбор отпечатков пальцев

Информационная энтропия (энтропия) — это среднее количество информации, содержащейся в каждом принятом сообщении, чем больше энтропия, тем больше информации может быть передано, чем меньше энтропия, тем меньше информации передано.

Отпечаток браузера представляет собой комбинацию информации о функциях многих браузеров, и информационная энтропия значения функции также различна.

можно нажатьздесьПросмотр идентификатора отпечатка пальца браузера и основной информации.

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

{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", 
    "Accept-Encoding": "gzip, deflate, br", 
    "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", 
    "Host": "httpbin.org", 
    "Sec-Fetch-Mode": "navigate", 
    "Sec-Fetch-Site": "none", 
    "Sec-Fetch-User": "?1", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
  }
}

можете нажать на этоURL-адресПроверьте информацию заголовка http.

Выше мы можем видетьAccept-Language,User-Agent, с помощью первого вы можете получить информацию о языке браузера.Эта информация об объекте заголовка http может быть сгенерирована вашим текущим языком операционной системы или информацией о языке, установленной браузером. Этот заголовок не обязательно точен. Некоторые веб-сайты будут игнорировать этот заголовок напрямую и определять язык веб-страницы, оценивая регион на основе IP-адреса пользователя.

User-AgentСодержит информацию о браузерах и операционных системах, например, сейчас я использую MacOS и версию 77 Chrome. Если UA преднамеренно подделан в заголовке, веб-страница также может пройтиnavigator.userAgentПриходите и получите настоящий UA.

Также можно получить другую базовую информацию, такую ​​как ip, физический адрес, географическое положение и т. д.:

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


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

  • строка пользовательского агента для каждого браузера
  • Заголовок HTTP ACCEPT, отправленный браузером
  • Разрешение экрана и глубина цвета
  • Система настроена на часовой пояс
  • Расширения/плагины браузера, установленные в браузере, такие как Quicktime, Flash, Java или Acrobat, а также версии этих плагинов.
  • Шрифты, установленные на компьютере, о чем сообщает Flash или Java.
  • Выполняет ли браузер сценарии JavaScript
  • Могут ли браузеры устанавливать различные куки и «супер куки»
  • Хэш изображения, сгенерированный отпечатком Canvas
  • Хэш изображения, сгенерированный методом отпечатков пальцев WebGL.
  • Установлен ли в браузере режим «Не отслеживать»
  • Системная платформа (например, Win32, Linux x86)
  • Язык системы (например, cn,en-US)
  • Поддерживает ли браузер сенсорный экран

Получив эти значения, вы можете выполнить некоторые операции, чтобы получить конкретную информационную энтропию отпечатка браузера и uuid браузера.Расчет.

На следующем рисунке показаны информационная энтропия, вероятность повторения и удельное значение нескольких собственных значений:

Объединение приведенной выше информации об отпечатках пальцев может значительно снизить частоту столкновений и повысить точность UUID клиента. Отпечатки пальцев тоже имеют веса, и некоторые собственные значения с большей информационной энтропией будут иметь большие веса:

Variable Entropy (bits)
user agent 10.0
plugins 15.4
fonts 13.9
video 4.83
supercookies 6.09
timezone 3.04
cookies enabled 0.353

Информация, описываемая обычными отпечатками пальцев, все еще недостаточно уникальна, ведь в Шэньчжэне все еще много людей, использующих MacOS. Усовершенствованное снятие отпечатков пальцев может еще больше сузить этот круг, сделав практически простым определение уникальной идентичности браузера.

Холст отпечаток пальца

Canvas — это тег динамического рисования в HTML5, который также можно использовать для создания или обработки изображений. Даже если Canvas используется для отрисовки одних и тех же элементов, из-за различий в системах, движках рендеринга шрифтов, сглаживании, субпиксельном рендеринге и других алгоритмах canvas преобразует один и тот же текст в изображения, и получаемые результаты также различаются. Процесс выглядит следующим образом

Конкретный код реализован как:

function getCanvasFingerprint () {
    var canvas = document.getElementById("anchor-uuid");
    var context = canvas.getContext("2d");
    context.font = "18pt Arial";
    context.textBaseline = "top";
    context.fillText("Hello, user.", 2, 2);
    return canvas.toDataURL("image/jpeg");
}

Отобразите текст на холсте, затем используйтеtoDataURLПреобразован, даже если режим конфиденциальности включен, вы можете получить то же значение

допустимыйздесьПроверьте свой отпечаток пальца Canvas. Из отчета нижеUniquenessИз 470 000 фрагментов данных только у двух людей отпечатки пальцев на холсте совпадают с моими.

Отпечаток пальца AudioContex

Отпечатки AudioContext аналогичны Canvas и основаны на различиях в аппаратных или программных устройствах для создания разных аудиовыходов, а затем вычисления различных хэшей в качестве символов.Конечно, аудио здесь не воспроизводится напрямую в браузере, просто нужно получить его play Предыдущие данные обработки в порядке, тестовый адрес звукового отпечатка пальца:audiofingerprint.openwpm.com/

WebRTC

WebRTC (веб-коммуникация в реальном времени, веб-коммуникация в реальном времени) — это возможность, которая позволяет браузерам взаимодействовать с аудио и видео в режиме реального времени.Он предоставляет три основных API, позволяющих JS получать и обмениваться аудио- и видеоданными в режиме реального времени, MediaStream, RTCPeerConnection и RTCDataChannel. Конечно, если вы хотите использовать WebRTC для получения возможностей связи, реальный IP-адрес пользователя должен быть раскрыт (проникновение NAT), поэтому RTCPeerConnection предоставляет такой API, и вы можете получить IP-адрес пользователя напрямую с помощью JS.

Кроссбраузерный отпечаток пальца

Таким образом, упомянутые выше отпечатки браузера получены из одного и того же браузера. Однако многие собственные значения нестабильны, например, отпечатки пальцев UA и Canvas будут разными при открытии в разных браузерах на одном устройстве. Один и тот же набор алгоритмов снятия отпечатков браузера недоступен в разных браузерах (разные браузеры, упомянутые в этой сводке, относятся к разным браузерам на одном и том же устройстве).

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

У кросс-браузерного снятия отпечатков тоже есть аналогРезультаты исследований

Такая таблица приведена в этой статье.

Перечисляя информационную энтропию и стабильность собственных значений браузера в одном браузере и между браузерами, стабильность отпечатка пальца кавы, упомянутого в обращении, составляет всего 8,17%.

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

Выберите значения из нескольких таблиц, которые соответствуют этим характеристикам Task(a)~Task(r), List of fonts (JS), TimeZone и CPU Virtual cores,

Task(a)~Task(r), которое является собственным значением изображения рендеринга видеокарты (задачи рендеринга). Например, Task(a) Texture, которая представляет собой тестовую процедуру. Функция текстуры во фрагментном шейдере, путем рендеринга случайного пикселя трех значений основного цвета, фрагментному шейдеру необходимо вставить точки в текстуру, чтобы сопоставить текстуру с каждой точкой на модели.Этот алгоритм вставки снова отличается видеокарты. Если текстура меняется больше, то разница более очевидна, мы можем сделать различие для этой видеокарты, записав эту разницу.

Список шрифтов (JS), получить поддерживаемые страницей шрифты через js. Есть два способа получить шрифты, поддерживаемые страницей, Flash и JS.Теперь, когда Flash постепенно ушел со сцены, он не будет рассматриваться. Список шрифтов — это значение шрифтов, поддерживаемых страницей, и то, как рисовать шрифты через js, чтобы отличить его от других устройств, измеряя размер заполнения текстовых HTML-элементов разных шрифтов.

TimeZone, часовой пояс, это понять проще, так как это одно и то же устройство, часовой пояс тоже должен быть одинаковым.

CUP Vritual coresТо есть количество ядер ЦП.Проще всего получить через navigator.hardwareConcurrency.

Хотя этот API не поддерживается в браузерах более ранних версий, вы также можете использовать его.polyfillполучать. Принцип реализации примерно такой: заимствовать возможности Web Worker, следить за временем полезной нагрузки и получать количество ядер (немного хардкорных), когда объем вычислений достигает максимального параллелизма оборудования.

Как предотвратить

Если у вас недостаточно профессиональных знаний или вы очень часто меняете информацию в браузере, вы можете найти пользователя (поведение пользователя) с помощью браузера с отпечатками пальцев почти в 100% случаев.Конечно, это не обязательно плохо.

  • Утечка конфиденциальности очень односторонняя, и можно лишь сказать, что поведение пользователей при просмотре веб-страниц раскрывается частично.
  • Недостаточная ценность, поведение пользователей не соответствует реальным учетным записям или конкретным людям, что приводит к ограниченной ценности.
  • Полезное использование, использование отпечатков пальцев браузера может изолировать некоторых пользователей, созданных черными, и предотвратить считывание билетов или некоторые злонамеренные действия.

Но даже в этом случае снятие отпечатков пальцев браузера имеет некоторые гарантии против него.

Do Not Track

В заголовке http вы можете объявить такой флаг «DNT» означает «Не отслеживать», если значение равно 1, это означает, что не отслеживать поведение моей веб-страницы, а 0 означает, что его можно отслеживать. Даже если куки нет, этот флаг может сообщить серверу, что я не хочу, чтобы меня отслеживали, и не записывает мое поведение.

Плохая новость заключается в том, что большинство сайтов в настоящее время не следуют этому соглашению, полностью игнорируя сигнал «Не отслеживать».

EFFПредоставляет такой инструмент Privacy Badger, который является блокировщиком рекламы в виде плагина для браузера, для тех компаний, которые соблюдают это соглашение, будут в белом списке этого блокировщика рекламы, позволяя отображать рекламу, тем самым стимулируя больше компании соблюдать "Не отслеживать", чтобы полностью отображать объявление.

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

Более подробную информацию о Privacy Badger можно найти здесь.здесьПроверить.

Tor Browser

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

Поэтому действенный метод — максимально популяризировать собственные значения.Например, самая распространенная комбинация на рынке — Window 10 + Chrome, тогда можно поменять UA на эту комбинацию, что является эффективным методом. В то же время старайтесь, чтобы веб-сайт не приобретал функции с очень высокой информационной энтропией, такие как отпечатки пальцев Canvas.

Tor Browser проделал большую работу над этим, чтобы предотвратить их использование для отслеживания пользователей Tor, и в ответ на Panopticlick и другие эксперименты по отпечаткам пальцев Tor Browser теперь включает исправления для предотвращения отпечатков пальцев шрифтов (путем ограничения того, что веб-сайт может использовать шрифт) и снятие отпечатков пальцев Canvas (путем обнаружения чтения объекта Canvas HTML5 и запроса одобрения пользователя), чтобы предотвратить, например, приведенный выше код для получения отпечатка пальца Canvas, в Tor появится следующее предупреждение.

Браузер Tor также можно настроить на активную блокировку JavaScript.

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

Отключить JS

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

И, к сожалению, даже если JS отключен, все равно можно брать информацию о браузере через CSS, например:

@media(device-width: 1080px) {
  body {
    background: url("https://example.org/1080.png");
  }
}

Вы можете просмотреть журнал запросов изображения 1080.png на сервере и узнать, у каких пользователей экран 1080px. В Mozilla Firefox раньше даже были запросы CSS, которые могли напрямую запрашивать версию системы Windows и тему Windows.Теперь эта проблема устранена.

использованная литература