Наука та технології

За тобою стежать — це факт, з яким треба змиритися. Краще зосередитися на інших питаннях. Як вони це роблять? Чи можна сховатися від стеження? І чи варто?

У 1993 році журнал «Нью-Йоркер» надрукував знамениту карикатуру про пса за комп'ютером. «В інтернеті ніхто не знає, що ти собака», — повідомляла підпис. Через двадцять з гаком років справи йдуть з точністю до навпаки. В сьогоднішньому інтернеті будь-яка собака знає, хто ти такий, — і часом навіть краще, ніж ти сам.

Інтернет погано сумісний з таємницями, і таємниця приватного життя — не виняток. Про кожен клік, зробленому в браузері, за визначенням повинні знати дві сторони: клієнт і сервер. Це в кращому випадку. Насправді де двоє, там троє, а то й, якщо взяти в якості прикладу сайт «Хакера», всі двадцять вісім.

На прикладі

Щоб переконатися в цьому, досить включити вбудовані в Chrome або Firefox інструменти розробника. Згідно з ним, при завантаженні головної сторінки xakep.ru браузер здійснює 170 запитів. Більше половини цих запитів не мають ні найменшого відношення до документів, які розташовані на серверах «Хакера». Замість цього вони ведуть до 27 різних доменах, що належить кільком іноземним компаніям. Саме ці запити з'їдають 90% часу при завантаженні сайту.

Що це за домени? Рекламні мережі, кілька систем веб-аналітики, соціальні мережі, платіжний сервіс, хмара Amazon і пара маркетингових віджетів. Схожий набір, і часто навіть більш великий, є на будь-якому комерційному сайті. Побічний ефект цього полягає в тому, що твої візити на xakep.ru — ніякий не секрет. Про них знаємо не тільки ми (це само собою), але і володарі цих 27 доменів.

Багато з них не просто знають. Вони спостерігають за тобою з пильною цікавістю. Бачиш банер? Він завантажений з сервера Doubleclick, великої рекламної мережі, яка належить Google. З його допомогою Гугл дізнався, що ти побував на xakep.ru. Якби банера не було, він знайшов би інший спосіб. Ті ж дані можна отримати з допомогою трекера Google Analytics або через AdSense, за зверненням до шрифтів з Google Fonts або до jQuery на CDN Google. Хоч якась зачіпка знайдеться на значній частці сторінок в інтернеті.

Аналіз історії переміщень користувача інтернету допомагає Google з непоганою точністю визначити його інтереси, стать, вік, достаток, родинний стан і навіть стан здоров'я. Це потрібно для того, щоб точніше підбирати рекламу. Навіть незначне збільшення точності націлювання в масштабах Google — це мільярди доларів, але можливі і інші застосування. Згідно з документами, які опублікував Едвард Сноуден, американські та британські спецслужби перехоплювали трекери Google для ідентифікації підозрюваних.

За тобою стежать — це факт, з яким треба змиритися. Краще зосередитися на інших питаннях. Як вони це роблять? Чи можна сховатися від стеження? І чи варто?

Знайти і переховати

Для того, щоб стежити за людиною, потрібно вміти його ідентифікувати. Найпростіший і добре вивчений спосіб ідентифікації — це cookie. Проблема полягає в тому, що він найвразливішою для атак з боку поборників privacy. Про них знають і користувачі, і навіть політики. В Євросоюзі, наприклад, діє закон, що змушує сайти попереджати користувачів про шкоду кук. Толку нуль, але сам факт насторожує.

Інша проблема пов'язана з тим, що деякі браузери за замовчуванням блокують cookie, встановлені третьою стороною, наприклад, сервісом веб-аналітики або рекламною мережею. Таке обмеження можна обійти, прогнавши користувача через ланцюжок редиректів на сервер третьої сторони і назад, але це, по-перше, не дуже зручно, а по-друге, навряд чи когось врятує в довгостроковій перспективі. Рано чи пізно потрібно буде більше надійний метод ідентифікації.

У браузері куди більше місць, де можна сховати ідентифікаційну інформацію, ніж планували розробники. Потрібна лише деяка винахідливість. Наприклад, через властивість DOM window.name інших сторінок можна передати до двох мегабайт даних, причому на відміну від кук, доступних лише скриптам з того ж домена, дані в window.name доступні і з інших доменів. Замінити куки на window.name заважає лише ефемерність цього властивості. Воно не зберігає значення після завершення сесії.

Кілька років тому в моду увійшло зберігання ідентифікаційної інформації за допомогою так званих Local Shared Objects (РБП), які надає Flash. На користь РБП грали два чинники. По-перше, на відміну від кук, користувач не міг їх видалити засобами браузера. По-друге, якщо куки в кожному браузері свої, то РБП, як і сам Flash, один для всіх браузерів на комп'ютері. За рахунок цього можна ідентифікувати користувача, поперемінно працюючого в різних браузерах.