В 1993 году журнал «Нью-Йоркер» напечатал знаменитую карикатуру про пса за компьютером. «В интернете никто не знает, что ты собака», — сообщала подпись. Спустя двадцать с лишним лет дела обстоят с точностью до наоборот. В сегодняшнем интернете любая cобака знает, кто ты такой, — и порой даже лучше, чем ты сам. Интернет плохо совместим с тайнами, и тайна частной жизни — не исключение. О каждом клике, сделанном в браузере, по определению должны знать две стороны: клиент и сервер. Это в лучшем случае. На самом деле где двое, там и трое, а то и, если взять в качeстве примера сайт «Хакера», все двадцать восемь. На примере Чтобы убедиться в этом, достаточно включить встроенные в Chrome или Firefox инструменты разработчика. Согласно им, при загрузке главной страницы xakep.ru браузер совершает 170 запросов. Больше половины этих запросов не имеют ни малейшего отношения к документам, которые расположены на серверах «Хакера». Вместо этого они ведут к 27 различным доменам, принадлежащим нескольким иностранным компаниям. Именно эти запросы съедают 90% времени при загрузке сайта. Что это за домены? Рекламные сети, несколько систем веб-аналитики, социальные сети, платежный сервис, облако Amazon и пара маркетинговых виджетов. Похожий набор, и зачастую даже более обширный, имеется на любом коммерческом сайте. Побочный эффект этого заключается в том, что твои визиты на xakep.ru — никакой не секрет. О них знаем не только мы (это само собой), но и обладатели этих 27 доменов. Многие из них не просто знают. Они наблюдают за тобой с самым пристальным интересом. Видишь баннер? Он загружен с сервера Doubleclick, крупной рекламной сети, которая принадлежит Google. С его помощью Гугл узнал, что ты побывал на xakep.ru. Если бы баннера не было, он нашел бы другой способ. Те же данные можно извлечь с помощью трекера Google Analytics или через AdSense, по обращению к шрифтам с Google Fonts или к jQuery на CDN Google. Хоть какая-то зацепка найдется на значительной доле страниц в интернете. Анализ истории перемещений пользователя по интернету помогает Google с неплохой точностью определить его интересы, пoл, возраст, достаток, семейное положение и даже состояние здоровья. Это нужно для того, чтобы точнее подбирaть рекламу. Даже незначительное увеличение точности таргетинга в масштабах Google — это миллиарды долларов, но возможны и другие применения. Согласно документам, которые опубликовал Эдвард Сноуден, американские и британские спецслужбы перехватывали трекеры Google для идентификации подозреваемых. За тобой следят — это факт, с которым нужно смириться. Лучше сосредоточиться на других вопросах. Как они это делают? Можно ли скрыться от слежки? И стоит ли? Найти и перепрятать Для того чтобы следить за человеком, нужно уметь его идентифицировать. Самый простой и хорошо изученный способ идентификации — это cookie. Проблема заключается в том, что он уязвимее всего для атак со стороны поборников privacy. О них знают и пользователи, и даже политики. В Евросоюзе, к примеру, действует закон, вынуждающий сайты предупреждать пользователей о вреде кук. Толку ноль, но сам факт настораживает. Другая проблема связана с тем, что некоторые браузеры по умолчанию блокируют cookie, установленные третьей стороной — например, сервисом веб-аналитики или рекламной сетью. Такое ограничение можно обойти, прогнав пользователя через цепочку редиректов на сервер третьей стороны и обратно, но это, во-первых, не очень удобно, а во-вторых, вряд ли кого-то спасет в долгосрочной перспективе. Рано или поздно потребуется более надежный метод идентификации. В браузере куда больше мест, где можно спрятать идентификационную информацию, чем планировали разработчики. Нужна лишь некоторая изобретательность. Например, через свойство DOM window.name другим страницам можно передать до двух мегабайт данных, причем в отличие от кук, доступных лишь скриптам с того же домена, данные в window.name доступны и из других доменов. Заменить куки на window.name мешает лишь эфемерность этого свойства. Оно не сохраняет значение после завершения сессии. Несколько лет назад в моду вошло хранение идентификационной информации при помощи так называемых Local Shared Objects (LSO), которые предоставляет Flash. В пользу LSO играли два фактора. Во-первых, в отличие от кук, пользователь не мог их удалить средствами браузера. Во-вторых, если куки в каждом браузере свои, то LSO, как и сам Flash, один для всех браузеров на компьютере. За счет этого можно идентифицировать пользователя, попеременно работающего в разных браузерах.