Отпечаток пальца браузера

Updated by guanguan

Пользовательский агент

Что такое пользовательский агент?

Пользовательский агент — это любое программное обеспечение, которое взаимодействует с веб-серверами от имени пользователей Интернета. Их также можно рассматривать как мост между вами и Интернетом.

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

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

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

Пользовательские агенты на этом не останавливаются: ваша игровая консоль может быть пользовательским агентом, так же как и ваш Smart TV и другие устройства с доступом в Интернет. В протоколе передачи гипертекста (HTTP) клиенты (пользовательские агенты) идентифицируются с помощью заголовка user-agent.

Использование пользовательских агентов

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

Согласование содержания

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

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

Согласование доступа и блоки

Возможно, наиболее популярное использование строки user-agent — узнать, имеет ли конкретное клиентское программное обеспечение право доступа к определенному контенту или нет. Веб-серверы используют строку user-agent в заголовке HTTP-запроса, чтобы исключить доступ сканеров, парсеров и других ботов к их платформе.

Многие популярные веб-сайты в Интернете не одобряют трафик ботов и поэтому отказывают в доступе к пользовательским агентам, отличным от популярных браузеров. Хотя они делают это внутри себя, они могут предоставлять сигналы веб-сканерам через файл robots.txt и ожидать, что вы будете следовать содержащимся в нем директивам. Как правило, веб-серверы хотят разрешить доступ только к трафику, исходящему от пользователя, и склонны блокировать трафик из автоматических источников, за исключением того, что для них это выгодно.

Файл cookie, тип «небольшого текстового файла», относится к данным (обычно зашифрованным), которые некоторые веб-сайты хранят на локальном терминале пользователя (на стороне клиента) для идентификации пользователя.

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

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

Другое типичное применение файлов cookie — при входе на веб-сайт веб-сайт часто просит пользователя ввести имя пользователя и пароль, и пользователь может проверить «Автоматический вход в следующий раз». Если этот флажок установлен, при следующем посещении того же веб-сайта пользователь обнаружит, что вошел в систему без ввода имени пользователя и пароля. Это происходит именно потому, что сервер отправил файл cookie, содержащий учетные данные для входа (зашифрованную форму имени пользователя и пароля), на жесткий диск пользователя во время предыдущего входа в систему. При втором входе в систему, если срок действия файла cookie не истек, браузер отправит файл cookie, а сервер проверит учетные данные, поэтому пользователь может войти в систему без ввода имени пользователя и пароля.

Язык

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

Разрешение

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

Часовой пояс

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

Общая разница во времени между большинством часовых поясов на суше и Всемирным координированным временем (UTC) составляет целый час (от UTC-11:00 (незанятое UTC-12:00) до UTC+14:00), но некоторые из них смещены по сдвигу. 30 или 45 минут (например, стандартное время Ньюфаундленда — UTC-03:30, стандартное время Непала — UTC+05:45, стандартное время Индии — UTC+05:30 и стандартное время Мьянмы — UTC+06:30).

MoreLogin отображает среднее время по Гринвичу при открытии браузера.

Аудио

API-интерфейс Audio, предоставляемый HTML5 для программирования на JavaScript, позволяет разработчикам напрямую манипулировать исходными данными аудиопотока в коде, генерировать, обрабатывать и воссоздавать их произвольно, например, улучшая тон, изменяя высоту тона и сегментируя звук. Его даже можно назвать веб-версией Adobe Audition.

Принцип отпечатка AudioContext примерно следующий:

Метод 1. Сгенерируйте поток аудиоинформации (треугольный сигнал), выполните для него преобразование БПФ и вычислите значение SHA как отпечаток пальца.

Метод 2. Сгенерируйте поток аудиоинформации (синусоидальный сигнал), выполните обработку динамического сжатия и вычислите значение MD5.

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

Основные принципы снятия отпечатков пальцев AudioContext:

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

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

LocalStorage

LocalStorage, как один из API-интерфейсов локального веб-хранилища HTML5, в основном используется для хранения данных в клиенте, а клиент обычно относится к компьютеру пользователя веб-сайта в Шанхае. На мобильных устройствах, поскольку большинство браузеров поддерживают функции веб-хранилища, веб-браузеры на смартфонах, таких как Android и iOS, могут использовать эту функцию в обычном режиме.

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

С точки зрения безопасности localstorage безопасен внутри домена, то есть localstorage основан на домене. Любая страница в домене может получить доступ к данным localstorage. Но есть проблема: данные между браузерами каждого производителя браузеров независимы. Другими словами, если вы используете localstorage для хранения набора данных в Firefox, их нельзя будет прочитать в браузере Chrome. Аналогичным образом, поскольку данные localstorage хранятся на устройстве пользователя, данные, сохраняемые одним и тем же приложением на разных устройствах, различаются.

Гео

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

Источник:https://browserleaks.com/geo

Шрифты

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

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

Рендеринг текста — тонкая и сложная часть веб-браузера. Даже в латинском алфавите компоновка — это нечто большее, чем просто сложение блоков вместе: в игру вступают такие соображения, как лигатуры, кернинг и комбинирование символов. Некоторые другие системы письма еще более сложны, из-за чего браузеры полагаются на библиотеки, предоставляемые ОС, для макетирования текста. Эти библиотеки, включая Pango в GNU/Linux, Graphics Device Interface (GDI) или DirectWrite в Windows и Core Text в Mac OS X, представляют собой независимые базы кода и не ведут себя одинаково. Браузеры дополнительно накладывают свои собственные настройки на рендеринг базового текста.

Источник:https://browserleaks.com/fonts

Canvas

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

Источник:https://browserleaks.com/canvas

WebGL

WebGL — это API JavaScript, используемый для рендеринга интерактивной 2D- и 3D-графики в любом совместимом веб-браузере без использования подключаемых модулей. WebGL полностью интегрирован во все стандарты веб-страниц браузера, а ускорение обработки изображений и эффектов на графическом процессоре можно использовать как часть Canvas веб-страницы. Элементы WebGL можно добавлять к другим элементам HTML и смешивать с другими частями веб-страницы или фоном веб-страницы. Программа WebGL состоит из дескриптора, написанного на JavaScript, и кода шейдера, написанного на языке шейдинга OpenGL (GLSL), который похож на C или C++ и выполняется на графическом процессоре (GPU) компьютера.

Источник:https://browserleaks.com/webgl

WebRTC

WebRTC — это плагин для браузера, который обычно используется веб-приложениями, которым требуется быстрое прямое соединение. Поскольку WebRTC устанавливает соединение через протокол UDP, оно не маршрутизируется через прокси-серверы, которые вы можете использовать в браузере. Веб-сайты могут использовать этот факт для раскрытия ваших реальных общедоступных и локальных IP-адресов, даже если вы используете прокси. Тот же плагин можно также использовать для раскрытия ваших локальных IP-адресов или отслеживания ваших мультимедийных устройств.

Какие утечки у плагина WebRTC

  1. Публичный IP-адрес(а)
  2. Локальный IP-адрес(а)
  3. Номера и хэши мультимедийных устройств

Источник :https://browserleaks.com/webrtc

Медиа-устройства

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

  1. Перечисление устройств
  2. Отслеживание идентификаторов мультимедийных устройств

Do Not Track

Do Not Track (DNT) — это поле HTTP-заголовка (Header). Когда пользователь включает эту функцию, браузер добавит поле заголовка к передаче данных http: dnt: 1. Это поле указывает серверу веб-сайта, что пользователь не хочет, чтобы его отслеживали. Таким образом, веб-сайты, соответствующие правилам, не будут отслеживать личную информацию пользователей для более точной рекламы.

SSL

Transport Layer Security (TLS) и его предшественник Secure Sockets Layer (англ. Secure Sockets Layer, сокращение: SSL) — это протокол безопасности, целью которого является обеспечение безопасности и защиты целостности данных для интернет-коммуникаций. Когда Netscape выпустила первую версию веб-браузера Netscape Navigator в 1994 году, она представила протокол HTTPS с шифрованием SSL, который является источником SSL. IETF стандартизировал SSL и опубликовал стандартный документ TLS 1.0 (RFC 2246) в 1999 году. Впоследствии были анонсированы TLS 1.1 (RFC 4346, 2006), TLS 1.2 (RFC 5246, 2008) и TLS 1.3 (RFC 8446, 2018). Этот протокол широко используется в таких приложениях, как браузеры, электронная почта, обмен мгновенными сообщениями, VoIP и интернет-факс. Многие веб-сайты, такие как Google, Facebook, Wikipedia и т. д., также используют этот протокол для создания безопасных соединений и отправки информации. Он стал отраслевым стандартом конфиденциального общения в Интернете.

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

Нужна дополнительная помощь? Связаться с нами:


How did we do?