Отпечаток устройства или отпечаток машины — это информация, собранная о программном обеспечении и оборудовании удаленного вычислительного устройства с целью идентификации. Информация обычно ассимилируется в краткий идентификатор с использованием алгоритма снятия отпечатков пальцев . Отпечаток браузера — это информация, собранная специально путем взаимодействия с веб-браузером устройства. [1] : 1
Отпечатки пальцев устройств могут использоваться для полной или частичной идентификации отдельных устройств, даже если постоянные файлы cookie (и зомби-файлы cookie ) не могут быть прочитаны или сохранены в браузере, IP-адрес клиента скрыт или пользователь переключается на другой браузер на том же устройстве. [2] Это может позволить поставщику услуг обнаружить и предотвратить кражу личных данных и мошенничество с кредитными картами , [3] : 299 [4] [5] [6] , а также составить долгосрочные записи истории просмотров отдельных лиц (и предоставить целевую рекламу [7] : 821 [8] : 9 или целевые эксплойты [9] : 8 [10] : 547 ), даже если они пытаются избежать отслеживания , что вызывает серьезную озабоченность у защитников конфиденциальности в Интернете . [11]
Базовая информация о конфигурации веб-браузера уже давно собирается службами веб-аналитики в попытке измерить реальный человеческий веб-трафик и исключить различные формы мошенничества с кликами . С момента своего появления в конце 1990-х годов клиентские скрипты постепенно позволили собирать все большее количество разнообразной информации, и некоторые эксперты по компьютерной безопасности начали жаловаться на простоту массового извлечения параметров, предлагаемую веб-браузерами еще в 2003 году. [12]
В 2005 году исследователи из Калифорнийского университета в Сан-Диего показали, как временные метки TCP можно использовать для оценки смещения часов устройства и, следовательно, для удаленного получения аппаратного отпечатка устройства. [13]
В 2010 году Electronic Frontier Foundation запустила веб-сайт, на котором посетители могут проверить отпечаток своего браузера. [14] После сбора выборки из 470161 отпечатка они измерили не менее 18,1 бит энтропии, возможной при отпечатке браузера, [15] но это было до достижений отпечатка холста , который, как утверждается, добавляет еще 5,7 бит.
В 2012 году Китон Мауэри и Ховав Шахам, исследователи из Калифорнийского университета в Сан-Диего , показали, как элемент HTML5 canvas может быть использован для создания цифровых отпечатков веб-браузеров. [16] [17]
В 2013 году было обнаружено, что по крайней мере 0,4% из 10 000 лучших сайтов Alexa используют скрипты снятия отпечатков пальцев, предоставленные несколькими известными третьими лицами. [10] : 546
В 2014 году было обнаружено, что 5,5% из 10 000 лучших сайтов Alexa использовали скрипты отпечатков Canvas, обслуживаемые в общей сложности 20 доменами. Подавляющее большинство (95%) скриптов обслуживались AddThis , который начал использовать отпечатки Canvas в январе того года, без ведома некоторых своих клиентов. [18] : 678 [19] [16] [20] [4]
В 2015 году в Firefox версии 41 была представлена функция защиты от снятия отпечатков браузера , [21] но с тех пор она осталась на экспериментальной стадии и не была инициирована по умолчанию. [22]
В том же году в Firefox версии 42 была представлена функция под названием «Улучшенная защита от отслеживания » для защиты от отслеживания во время приватного просмотра [23] путем блокировки скриптов со сторонних доменов, найденных в списках, опубликованных Disconnect Mobile .
На WWDC 2018 компания Apple объявила, что Safari на macOS Mojave «представляет упрощенную системную информацию, когда пользователи просматривают веб-страницы, предотвращая отслеживание их действий на основе конфигурации системы». [24]
В 2019 году, начиная с версии Firefox 69, улучшенная защита от отслеживания была включена по умолчанию для всех пользователей, в том числе и во время не приватного просмотра. [25] Впервые эта функция была представлена для защиты приватного просмотра в 2015 году, а затем была расширена до стандартного просмотра в качестве дополнительной функции в 2018 году.
Мотивация концепции отпечатков пальцев устройств исходит из криминалистической ценности человеческих отпечатков пальцев .
Чтобы с течением времени уникально различать некоторые устройства по их отпечаткам, отпечатки должны быть как достаточно разнообразными, так и достаточно стабильными. На практике ни разнообразие, ни стабильность не достижимы полностью, и улучшение одного из них имеет тенденцию отрицательно влиять на другое. Например, ассимиляция дополнительной настройки браузера в отпечаток браузера обычно увеличивает разнообразие, но также снижает стабильность, поскольку если пользователь изменяет эту настройку, то отпечаток браузера также изменится. [1] : 11
Определенную степень нестабильности можно компенсировать, связывая отпечатки пальцев, которые, хотя и частично различны, вероятно, принадлежат одному и тому же устройству. Это можно сделать с помощью простого алгоритма связывания на основе правил (который, например, связывает отпечатки пальцев, которые различаются только для версии браузера, если она увеличивается со временем) или алгоритмов машинного обучения. [26]
Энтропия — один из нескольких способов измерения разнообразия.
Приложения, локально установленные на устройстве, могут собирать большой объем информации о программном обеспечении и оборудовании устройства, часто включая уникальные идентификаторы, такие как MAC-адрес и серийные номера , назначенные оборудованию машины. Действительно, программы, которые используют управление цифровыми правами, используют эту информацию именно для цели уникальной идентификации устройства.
Даже если они не предназначены для сбора и распространения идентификационной информации, локальные приложения могут непреднамеренно раскрывать идентификационную информацию удаленным сторонам, с которыми они взаимодействуют. Наиболее ярким примером являются веб-браузеры, которые, как было доказано, раскрывают разнообразную и стабильную информацию в таком объеме, чтобы обеспечить удаленную идентификацию, см. § Отпечаток браузера.
Разнообразная и стабильная информация может быть также собрана ниже уровня приложения, используя протоколы, которые используются для передачи данных. Некоторые примеры протоколов, которые можно использовать для снятия отпечатков пальцев, отсортированы по уровню модели OSI :
Пассивные методы дактилоскопирования требуют, чтобы дактилоскопист просто наблюдал за трафиком, исходящим от целевого устройства, в то время как активные методы дактилоскопирования требуют, чтобы дактилоскопист инициировал соединения с целевым устройством. Методы, которые требуют взаимодействия с целевым устройством через соединение, инициированное последним, иногда рассматриваются как полупассивные. [13]
Сбор большого количества разнообразной и стабильной информации из веб-браузеров возможен в основном благодаря клиентским скриптовым языкам, которые были введены в конце 1990-х годов. Сегодня существует несколько библиотек отпечатков браузеров с открытым исходным кодом, таких как FingerprintJS, ImprintJS и ClientJS, где FingerprintJS обновляется чаще всего и в значительной степени заменяет ImprintJS и ClientJS. [30]
Браузеры предоставляют свое имя и версию вместе с некоторой информацией о совместимости в заголовке запроса User-Agent. [31] [32] Поскольку это заявление свободно дается клиентом, ему не следует доверять при оценке его идентичности. Вместо этого тип и версия браузера могут быть выведены из наблюдения за причудами в его поведении: например, порядок и количество полей заголовка HTTP уникальны для каждого семейства браузеров [33] : 257 [34] : 357 и, что наиболее важно, каждое семейство браузеров и версия отличаются своей реализацией HTML5 , [9] : 1 [33] : 257 CSS [35] : 58 [33] : 256 и JavaScript . [10] : 547,549-50 [36] : 2 [37] [38] Такие различия можно удаленно протестировать с помощью JavaScript. Сравнение поведения парсеров с помощью расстояния Хэмминга показало, что оно эффективно идентифицирует и различает большинство версий браузеров. [9] : 6
Комбинация расширений или плагинов , уникальных для браузера, может быть добавлена к отпечатку напрямую. [10] : 545 Расширения также могут изменять поведение любых других атрибутов браузера, добавляя дополнительную сложность к отпечатку пользователя. [39] : 954 [40] : 688 [8] : 1131 [41] : 108 Плагины Adobe Flash и Java широко использовались для доступа к пользовательской информации до их устаревания. [34] : 3 [10] : 553 [38]
Агенты пользователя могут предоставлять информацию об аппаратном обеспечении системы , например, модель телефона , в заголовке HTTP. [41] : 107 [42] : 111 Свойства операционной системы пользователя , размера экрана , ориентации экрана и соотношения сторон дисплея также могут быть получены с помощью JavaScript для наблюдения за результатами медиа-запросов CSS . [35] : 59-60
Средство снятия отпечатков пальцев может определить, какие сайты браузер ранее посещал из предоставленного им списка, запросив список с помощью JavaScript с селектором CSS :visited
. [43] : 5 Обычно списка из 50 популярных веб-сайтов было достаточно для создания уникального профиля истории пользователя, а также для предоставления информации об интересах пользователя. [43] : 7,14 Однако с тех пор браузеры снизили этот риск. [44]
Ограничительные рамки букв различаются в разных браузерах в зависимости от конфигурации сглаживания и подсказок шрифтов и могут быть измерены с помощью JavaScript. [45] : 108
Canvas fingerprinting использует элемент HTML5 canvas , [46] который используется WebGL для рендеринга 2D и 3D графики в браузере, чтобы получить идентификационную информацию об установленном графическом драйвере , графической карте или графическом процессоре (GPU). Методы на основе Canvas также могут использоваться для идентификации установленных шрифтов . [42] : 110 Кроме того, если у пользователя нет GPU, вместо этого дактилоскописту может быть предоставлена информация о CPU .
Скрипт снятия отпечатков холста сначала рисует текст указанного шрифта, размера и цвета фона. Изображение текста, отображаемое браузером пользователя, затем восстанавливается методом ToDataURL Canvas API. Хешированные текстовые кодированные данные становятся отпечатком пальца пользователя. [18] [17] : 2-3,6 Было показано, что методы снятия отпечатков холста производят 5,7 бит энтропии. Поскольку метод получает информацию о графическом процессоре пользователя, полученная информационная энтропия «ортогональна» энтропии предыдущих методов снятия отпечатков браузера, таких как разрешение экрана и возможности JavaScript. [17]
Тесты производительности можно использовать для определения того, использует ли процессор пользователя AES-NI или Intel Turbo Boost , сравнивая время процессора , используемое для выполнения различных простых или криптографических алгоритмов . [47] : 588
Также можно использовать специализированные API , такие как Battery API, который создает краткосрочный отпечаток на основе фактического состояния батареи устройства, [48] : 256 или OscillatorNode, который можно вызвать для создания формы сигнала на основе энтропии пользователя. [49] : 1399
Аппаратный идентификатор устройства, представляющий собой криптографическую хэш-функцию, указанную поставщиком устройства , также может быть запрошен для построения отпечатка пальца. [42] : 109,114
Существуют различные подходы к смягчению последствий снятия отпечатков браузеров и повышению конфиденциальности пользователей путем предотвращения нежелательного отслеживания, но не существует универсального решения, которое могло бы предотвратить снятие отпечатков и при этом сохранить все возможности современного веб-браузера.
Пользователи могут попытаться уменьшить свою идентификационную способность, выбрав веб-браузер , который минимизирует доступность идентификационной информации, такой как шрифты браузера, идентификатор устройства, рендеринг элемента холста , информация WebGL и локальный IP-адрес . [42] : 117
По состоянию на 2017 год Microsoft Edge считается браузером с наибольшим количеством отпечатков, за ним следуют Firefox и Google Chrome , Internet Explorer и Safari . [42] : 114 Среди мобильных браузеров Google Chrome и Opera Mini являются наиболее отпечатковыми браузерами, за ними следуют мобильный Firefox , мобильный Edge и мобильный Safari. [42] : 115
Tor Browser отключает функции, позволяющие считывать отпечатки пальцев, такие как Canvas и WebGL API, и уведомляет пользователей о попытках снятия отпечатков пальцев. [18]
Чтобы уменьшить разнообразие, браузер Tor не позволяет ширине и высоте окна, доступного для веб-страницы, быть любым числом пикселей, а допускает только некоторые заданные значения. Результатом является то, что веб-страница является windowboxed : она заполняет пространство, которое немного меньше окна браузера. [50]
Подделка части информации, доступной для снятия отпечатков пальцев (например, пользовательского агента ), может привести к снижению разнообразия, [51] : 13 , но обратное также может быть достигнуто, если поддельная информация отличает пользователя от всех остальных, кто не использует такую стратегию, больше, чем реальная информация браузера. [10] : 552
Подделка информации по-разному при каждом посещении сайта, например, путем внесения в звук и рендеринг холста небольшого количества случайного шума, позволяет снизить стабильность. [7] : 820,823 Этот метод был принят браузером Brave в 2020 году. [52]
Слепая блокировка клиентских скриптов, обслуживаемых сторонними доменами, а также, возможно, и доменами первой стороны (например, отключением JavaScript или использованием NoScript ), иногда может сделать веб-сайты непригодными для использования. Предпочтительный подход заключается в блокировке только сторонних доменов, которые, как кажется, отслеживают людей, либо потому, что они находятся в черном списке отслеживающих доменов (подход, которого придерживается большинство блокировщиков рекламы ), либо потому, что намерение отслеживания выводится из прошлых наблюдений (подход, которого придерживается Privacy Badger ). [53] [19] [54] [55]
Разные браузеры на одном и том же компьютере обычно имеют разные отпечатки пальцев, но если оба браузера не защищены от дактилоскопии, то два отпечатка пальцев могут быть идентифицированы как исходящие от одного и того же компьютера. [56]