Как за вами (и мной) следят в интернете

Вы постоянно встречаете рекламу, которая знает что вы недавно искали в Интернете? На какую тему искали товары и услуги, читали статьи? Сайты, на которых вы не оставляли данные, поздравляют с Днем Рождения, а одинокие мамочки в радиусе 1 километра хотят познакомиться? Кажется, рептилоиды читают мысли прямо онлайн?

Что же, это отчасти правда, и я расскажу о нескольких технологиях простого “шпионажа” за пользователями.

Сначала были куки

Куки (англ. cookies, печенье) – небольшие текстовые записи, которые сайты оставляют в браузерах пользователей на определенный срок. Это нужно чтобы сайт “запомнил” что-то о вас.

Эта технология существует практически с начала существования интернета, и многие функции сайтов работают благодаря ей, например:

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

Обычно, доступ к записанному куки может получить только тот домен (грубо говоря, сайт) который их и создал. Например, вы прочли 3 статьи про телевизоры на сайте A, и эти данные записались в куки. Затем вы перешли на сайт Б и читаете статьи там.

Б не может получить данные, оставленные А.

Сторонние куки

Сторонние куки (third-party cookies) – записи, которые оставляет не тот домен, к которому вы общаетесь, а другой.

Работает это вот как.

Вы посещаете сайт А. Он загружает скрипт (обычно JavaScript) с сайта В. Этот скрипт записывает куки чтобы в будущем опознать вас, собирает данные о тех или иных ваших действиях, например, какие страницы А вы посетили, какие кнопки нажали, на сколько прокрутили страницу.

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

У поисковых систем Яндекс и Google есть свои трекеры, они отправляют данные в системы сбора статистики Яндекс.Метрика и Google Analytics. Они не собирают конфиденциальные данные посетителей сайтов, но позволяют их владельцам оценить посещаемость и эффективность ресурса по разным критериям.

Крупные социальные сети и системы размещения рекламы имеют собственные трекеры. Они нужны чтобы таргетировать (нацеливать на аудиторию) и анализировать эффективность рекламы в интернете.

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

А если я не хочу чтобы за мной следили через cookies?

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

  • Можно полностью заблокировать cookie, как для всех сайтов, так и для определенных. Но на многих из них возникнут проблемы с функциональностью.
  • Можно блокировать только сторонние куки,
  • Можно очищать их вручную когда захотите.
  • Использовать анонимный режим браузера (такой как инкогнито в Chrome). После закрытия такой вкладки все куки удаляются.

А еще, по европейскому законодательству, сайт обязаны предоставлять пользователям право прямо в интерфейсе выбирать какие cookies они хотели бы использовать, а какие нет. В РФ пока достаточно подробного уведомления о применяемой технологии.

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

Получение характеристик устройства

Сайты могут извлекать определённую информацию о программном обеспечении и устройстве пользователей, например, с помощью переменных WebAPI браузера: navigator, screen, history и других.

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

<script>var OSName="Неизвестная ОС";if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS"; if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";if (navigator.appVersion.indexOf("Android")!=-1) OSName="Android";if (navigator.appVersion.indexOf("applewebkit")!=-1) OSName="что-то от Apple";  navigator.getBattery().then(function(battery) {document.write("<h3>Что удалось узнать о вас</h3><ul><li>Система: <b>"+navigator.platform+" "+OSName+" "+navigator.deviceMemory+"Gb RAM</b></li><li>Разработчик браузера: <b>"+window.navigator.vendor+" "+window.navigator.vendorSub+"</b></li><li>Версия: <b>"+window.navigator.appVersion+"</b></li><li>Заряд батареи: <b>"+battery.level*100+"%</b></li><li>В этой вкладке вы посмотрели: <b>"+history.length+" страниц</b>.</li></ul>");})</script> 

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

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

Следящий пиксель

Итак, чтобы отслеживать посетителя, нужно записать в его браузер куки. Такой способ не устраивает рекламщиков по очень простым причинам:

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

Чтобы преодолеть эти недостатки рекламные системы разработали технологии следящего, он же трекинговый, пикселя. Для простых пользователей механизм его работы может быть немного неожиданным. Слежение происходит вот как.

Допустим, вы знаете как работают следящие куки, и запретили их прием. Теперь сайт В не может следить за вами с их помощью. Однако, вы не можете отключить JavaScript, ведь тогда сайты А и Б перестанет нормально работать.

Тут и кроется секрет. А и Б загружают с В JavaScript, способный считать некоторые характеристики вашего оборудования, и в добавок тот самый пиксель – крошечное (обычно 1x1 px, иногда чуть больше) изображение определенного цвета или нескольких, скрытое на странице.

Человеческий глаз различает не так много цветов, или их различия для нас не существенны, ведь мы не машины. Для нас, например, бирюзовый – одинаков на вашем компьютере, телефоне или телевизоре. Но это не так. То, какой цвет мы видим, зависит как минимум от GPU (видеокарты), матрицы экрана и некоторых его настроек.

После загрузки следящего пикселя, тот самый скрипт, загруженный с В, получает текстовое значение цвета пикселя. Но не изначальное, а то, которое отобразилось на вашем экране. Это значение может однозначно идентифицировать несерийные устройства (допустим, вы сами собрали ПК). Если же оно серийное (стандартный ноутбук или смартфон) значение может быть не уникальным, но все равно поможет опознать устройство.

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

Digital Fingerprinting

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

Фингерпринт – ваш уникальный идентификатор, и хранится он на сторонних серверах. Вот пример характеристик, которые часто участвуют при составлении фингерпринта:

  • заголовки браузера User Agent и HTTP_ACCEPT;
  • список установленных в браузере плагинов;
  • временная зона/часовой пояс;
  • размеры экрана в пикселях и глубина цвета;
  • установленные в системе шрифты;
  • язык;
  • платформа операционной системы;
  • доступное количество ядер процессора, доступная оперативная память;
  • хэш контента в <canvas>. Работает подобно следящему пикселю, но в html-тег <canvas> можно выводить самое разное содержимое, от текста до 3D-модели. Очень точно идентифицирует устройство;
  • хэш аудиоконтента – аналогично пикселю, но для идентификации подается звук. То есть устройство идентифицируют на основе звукового оборудования;
  • разработчик WebGL и рендерер. Чтобы воспроизводить 3D-контент браузеры используют технологию WebGL, а для улучшения качества разработки браузеры сообщают всем желающим версию рендерера, то есть видеокарты устройства.

Полагаю, у многих из вас возникла определенная мысль, примерно такая:

И что с того, что какая-то система копит информацию о моем устройстве? Я – не мой смартфон, по нему об мне всё не узнать. Информация анонимная, да и техники у меня просто куча! Смартфон, ноутбук, рабочий компьютер, планшет. Ни один шпион не уследит.

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

Надеюсь, я смог изложить все достаточно простым языком. В качестве заключения, скажу, что описанные механизм слежения не новы, и очень распространены. Так что за всеми нами, со всеми нашими электронными игрушками, следят, и уже давно.

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

*обложка статьи на основе кадра из игры Observer System Redux

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