Отпечаток холста — как?


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

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

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

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

Хорошо, достаточно просто для реализации, но вы должны задать вопрос: «Почему битовая комбинация настолько различается, чтобы ее можно было использовать?»

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

Идея использования рисования на холсте через WebGL для идентификации браузеров была изобретена еще в 2012 году в статье Китона Мауэри и Ховава Шахама: «Pixel Perfect: Fingerprinting Canvas в HTML5». Цитировать:

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

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

В документе говорится:

«В 294 экспериментах на Amazon Mechanical Turk мы наблюдали 116 уникальных значений отпечатка пальца при выборочной энтропии 5,73 бита. Это так, даже несмотря на то, что количество пользователей в наших экспериментах мало различается в браузере и ОС».

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

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

Неужели существует так много вариантов рендеринга шрифтов и 3D-графики? Кажется, да. Например, взгляните на изображения разницы, взятые из оригинальной статьи, для одной строки текста, отображаемой с помощью text_arial:

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

В рендере задействовано 200 полигонов и наложенная текстура.

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

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


Добавить комментарий