Отпечаток пальца устройства или отпечаток пальца машины — это информация, собранная о программном и аппаратном обеспечении удаленного вычислительного устройства с целью идентификации. Информация обычно преобразуется в краткий идентификатор с использованием алгоритма снятия отпечатков пальцев . Отпечаток браузера — это информация, собираемая специально при взаимодействии с веб-браузером устройства. [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 можно использовать для создания цифровых отпечатков веб-браузеров. [16] [17]
В 2013 году было обнаружено, что по крайней мере 0,4% из 10 000 лучших сайтов Alexa используют сценарии снятия отпечатков пальцев, предоставленные несколькими известными третьими сторонами. [10] : 546
В 2014 году было обнаружено, что 5,5% из 10 000 лучших сайтов Alexa используют сценарии снятия отпечатков пальцев Canvas, обслуживаемые в общей сложности 20 доменами. Подавляющее большинство (95%) скриптов обслуживалось AddThis , который начал использовать отпечатки пальцев холста в январе того же года без ведома некоторых своих клиентов. [18] : 678 [19] [16] [20] [4]
В 2015 году функция защиты от снятия отпечатков пальцев браузера была представлена в Firefox версии 41 [21] , но с тех пор она осталась на экспериментальной стадии и не запускается по умолчанию. [22] В том же году в Firefox версии 42 была представлена
функция под названием Enhanced Tracking Protection , предназначенная для защиты от отслеживания во время частного просмотра [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 используется элемент холста HTML5 [46] , который используется WebGL для рендеринга 2D- и 3D-графики в браузере, чтобы получить идентифицирующую информацию об установленном графическом драйвере , видеокарте или графическом процессоре (GPU). Методы Canvas также могут использоваться для идентификации установленных шрифтов . [42] : 110 Кроме того, если у пользователя нет графического процессора, вместо него дактилоскопическому сканеру может быть предоставлена информация о ЦП .
Сценарий снятия отпечатков пальцев холста сначала рисует текст указанного шрифта, размера и цвета фона. Изображение текста, отображаемое браузером пользователя, затем восстанавливается с помощью метода ToDataURL Canvas API. Хешированные текстовые данные становятся отпечатком пальца пользователя. [18] [17] : 2-3,6 Было показано, что методы снятия отпечатков пальцев с холста производят 5,7 бит энтропии. Поскольку этот метод получает информацию о графическом процессоре пользователя, полученная энтропия информации «ортогональна» энтропии предыдущих методов отпечатков пальцев браузера, таких как разрешение экрана и возможности JavaScript. [17]
Сравнительные тесты можно использовать для определения того, использует ли ЦП пользователя AES-NI или Intel Turbo Boost, путем сравнения времени ЦП , используемого для выполнения различных простых или криптографических алгоритмов . [47] : 588
Также можно использовать специализированные API , такие как 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 отключает функции снятия отпечатков пальцев, такие как Canvas и API WebGL, и уведомляет пользователей о попытках снятия отпечатков пальцев. [18]
Чтобы уменьшить разнообразие, браузер Tor не позволяет ширине и высоте окна, доступного для веб-страницы, иметь любое количество пикселей, а допускает только некоторые заданные значения. В результате веб-страница оказывается в окне браузера : она занимает пространство, немного меньшее, чем окно браузера. [50]
Подмена некоторой информации, доступной сканеру отпечатков пальцев (например, пользовательского агента ), может привести к уменьшению разнообразия [51] : 13 , но может быть достигнуто и обратное, если поддельная информация отличает пользователя от всех остальных, которые не используют такую информацию. стратегия больше, чем реальная информация браузера. [10] : 552
Подмена информации по-разному при каждом посещении сайта, например, путем искажения звука и рендеринга холста небольшим количеством случайного шума, позволяет снизить стабильность. [7] : 820 823 Этот метод был принят браузером Brave в 2020 году. [52]
Слепая блокировка клиентских скриптов, обслуживаемых сторонними доменами, а также, возможно, и собственными доменами (например, путем отключения JavaScript или использования NoScript ), иногда может сделать веб-сайты непригодными для использования. Предпочтительный подход — блокировать только сторонние домены, которые, по всей видимости, отслеживают людей, либо потому, что они находятся в черном списке отслеживающих доменов (подход, которому придерживается большинство блокировщиков рекламы ), либо потому, что намерение отслеживания вытекает из прошлых наблюдений (подход, которым пользуется большинство блокировщиков рекламы). подход, за которым следует Privacy Badger ). [53] [19] [54] [55]
Разные браузеры на одном и том же компьютере обычно имеют разные отпечатки пальцев, но если оба браузера не защищены от снятия отпечатков пальцев, то два отпечатка пальца могут быть идентифицированы как исходящие с одного и того же компьютера. [56]