Evercookie - перешкода в анономном серфінгу, proxy checker - grabber

Evercookie - всюдисущі кукіси

Evercookie - перешкода в анономном серфінгу, proxy checker - grabber

Принцип роботи Cookies

Відповідь сервера виглядає як видача на екран запитуваної сторінки, але разом з нею йде і HTTP-відповідь, де і може міститися команда, згідно з якою браузер збереже кукіси:

Якщо рядок Set-cookie у відповіді сервера присутня, то вказане в ній зіставлення name = value (ім'я = значення) браузер запам'ятовує і при кожному наступному запиті її значення до нього приєднує.

Flash- cookies

Для цих цілей крім класичних HTTP-печенек, в роботі з якими вже все освоїлися, використовуються альтернативні місця зберігання інформації, яку браузер записує на комп'ютері користувача. Перше, про що слід поговорити - це сховище як хорошого, так одночасно і поганого Flash, коли він встановлений на комп'ютері користувача. Дані записуються в так звані файли LSO (Local Shared Objects) - вони схожі за форматом на файли cookies і зберігаються на локальних комп'ютерах користувачів. Схема роботи з ними браузера багато в чому схожий на роботу з «печеньки», в цих фалах також зберігається невелика текстова запис, але Flash-cookies мають ряд переваг:

  • Можливість роботи з LSO файлами є у всіх браузерів встановлених на комп'ютері (звичайні cookie прив'язані до одного браузеру). Спільними для всіх виявляються і інформація про сесії і деякий ідентифікатор, даний цьому користувачеві для його відстеження.
  • Flash-cookies дають можливість зберігати набагато більше різних налаштувань користувача та інформації про нього, тому як файли в сховище як правило можуть мати обсяг до 100 Кб.

Evercookie - перешкода в анономном серфінгу, proxy checker - grabber

Тут же спливає весь набір ресурсів, які зацікавлені в збереженні зв'язків зі своїми відвідувачами, навіть якщо вони раптом вирішать почистити кешовану пам'ять свого браузера разом з «печеньки».

Evercookie: кукіси скрізь

Більш-менш грамотні розробники і просунуті користувачі найчастіше знають і про схему роботи LSO, але ось про різноманітні нових техніках збереження інформації та позначки даних багато хто просто не здогадуються. А вони часто бувають досить хитрі, але дуже продуктивні. Наприклад недавно розроблені сховища, що з'явилися в HTML5 (Session Storage, Local Storage, Global Storage, Database Storage via SQLite).

Секрет технології в тому, щоб задіяти для зберігання інформації всі доступні браузеру сховища: контейнери HTML5, вищезгадані LSO і стандартні HTTP-кукіси. Крім цього Еvercookie використовують і ексклюзивні прийоми, які залишають на комп'ютері потрібну позначку. І цих варіантів дуже багато - генерація персональних мітить PNG-зображень, використання Історії браузера, і зберігання даних в контейнерах ETag і userData, останній доступний тільки в Internet Explorer.

Ефективність роботи evercookie можна перевірити дослідним шляхом вже на сайті розробника samy.pl/evercookie. Там є кнопка з написом «Click to create an evercookie», після натискання якої в Вашому комп'ютері буде прописаний cookie зі згенерованих випадковим числом. Після чого потрібно пройтися по браузеру і іншим додаткам, видаливши кукіси і очистивши кеш де тільки зможете.

Evercookie - перешкода в анономном серфінгу, proxy checker - grabber

Швидше за все користувач обмежиться видаленням кукисов в настройках браузера, і буде впевнений, що йому все вдалося почистити. Але, навіть перезагрузив сторінку або закривши і відкривши браузер, натиснувши на кнопку «Click to rediscover cookies» відбудеться чудо - сайт звідки то відродив дані і видав число, яке зберігав у кукис.

Evercookie - перешкода в анономном серфінгу, proxy checker - grabber

Але все ж було видалено? Як це відбулося? Давайте детально розберемося з технологіями, задіяні в evercookie і подібних бібліотеках.

графічні кукіси

Цей прийом представляє особливий інтерес, тому що використовує нестандартний підхід - зберігання інформації в кеші за допомогою PNG-зображень. Коли йде процес запису кукисов бібліотекою evercookie, вона звертається до свого скрипту evercookie_png.php з особливою «печивом», що містить текст, відмінний від стандартної інформації про сесію. Цей текст зчитується програмним PHP-сценарієм, який і створює зображення у форматі *. PNG, в підібраний кольорах якого буде закодована інформація про відвідування ресурсу. В результаті файл відправляється користувачеві на комп'ютер з відміткою про зберігання терміном на 20 років. Слідом за цим спеціальні HTTP-кукіси видаляються.

Отримавши такий запит від користувача, evercookie виконує такий же як і в першому випадку запит до PHP-сценарії, але в цьому випадку ніякі дані про користувача не надаються. Сценарій згенерувати зображення PNG не може, через відсутність інформації і браузеру приходить помилковий HTTP-відповідь «304 Not Modified", після чого браузер змушений витягти файл з своєї локальної кешованої пам'яті. Цей файл і містить той самий зображення, яке відсилається ресурсу і потрапляє на сторінку під тегом HTML5 Canvas. Тепер evercookie не складно витягти RGB-значення, зчитуючи по черзі всі пікселі малюнка Canvas і відновлюючи споконвічні збережені кукіси. Все геніальне просто!

Трюк з Історією

Так, поганенько розробники браузерів дбають про нашу безпеку в Мережі.

Давай-давай, удаляй!

А що ж станеться, якщо користувач поудалял всі свої кукіси? На це у бібліотеки evercookie приховано останнім потужна зброя. Різні місця зберігання даних, а зараз їх десять, пов'язані таким чином, що якщо кукіси залишилися хоча б в одному з них, у всіх інших вони відновляться автоматично.

Для прикладу - якщо користувач візьметься за справу грунтовно і почистить стандартні кукіси, дані LSO, перевірить HTML5-сховища (що буває рідко), все одно в системі будуть жити кукіси, збережені у вигляді PNG або web Історії. Відвідавши сайт наступного разу, можна виявити, що система evercookie не тільки запросто розпізнала тебе, а й відродила всі раніше віддалене.

Тут варто згадати і про цікаву передачу «печива» між різними браузерами, встановленими в межах однієї ОС. Якщо є можливість збереження інформації в Local Shared Object, то кукіси будуть відтворені і в інших браузерах.

Крім докладно описаних способів зберігання даних, evercookie використовує технологію Isolated Storage, реалізовану в Silverlight, а також вона може «наслідити» через Java-аплета.

Як застосувати?

Бібліотека Evercookie знаходиться в Інтернеті у відкритому доступі, а тому кожен може її завантажити і досліджувати, а також налаштувати під свої потреби. До використовує її серверу ніяких вимог немає, потрібно лише мати доступ до JS-сценарієм, в якому і зберігається код evercookie. Якщо необхідно задіяти Flash-кукісиі зберігання в LSO, то в папці зі скриптом перевірте наявність файлу evercookie.swf, а за роботу варіантів зі сховищем ETag і кешуванням PNG відповідають PHP-сценарії evercookie_etag.php і evercookie_png.php.
Налагодити роботу evercookie можна на кожній сторінці ресурсу, підключивши відповідний Java-script:

Існує альтернативний і більш просунутий спосіб генерувати і зберігати кукіси на основі callback-функції. Її можливості полягають в отриманні Cookies з усіх сховищ і порівняння їх між собою.

На різних ресурсах бібліотека evercookie вже довела свою дієвість, а найбільшу популярність отримала серед інтернет-магазинів, організаторів голосувань та інших. Однак, web-розробникам слід звернути увагу на два важливих моменти. Інші домени теж можуть вважати збережені evercookie кукіси і отримати доступ до конфіденційної інформації, а значить зберігати її подібним чином не можна. Ось що можна побачити в перших рядках інформації файлу з бібліотеки evercookie.js:

А друге - деякі антивіруси не допускатимуть користувачів на сайти, що використовують цю технологію. Наприклад, Касперський, ідентифікує скрипт evercookie як spyware.

Загальна доступність бібліотеки evercookie трохи насторожує, особливо коли шляхів для боротьби з нею особливо не видно.

Тримаємо оборону.

Проблем з очищенням кеша і Flash не виникає, але от щоб підчистити всі сліди evercookie, доведеться сильно постаратися, тому як сказано вище, якщо забудете «печеньку» хоч в одному місці, все значення скриптом буду відновлені у всіх доступних місцях зберігання даних.

Варто задуматися про це, тому як в самий найближчий час в бібліотеку обіцяють додати ще кілька технологій позначки і зберігання даних:

  • Застосування кешування в HTTP Authentication;
  • Застосування Java для створення унікального числового значення, який позначить конкретний ПК.

І на закінчення ...

Як виявилося, evercookie - вже далеко не єдина в своєму роді подібна бібліотека. Їй на п'яти наступає, а може навіть в чому то і перевершує Panoptiсlick. Про неї і методах боротьби з її діями можна знайти інформацію в Мережі.

P.S. На поле сookies розгортаються цілі битви, де війна йде по-справжньому і щит протистоїть мечу. Саме наслідком популярності бібліотеки стала поява продуктів, спрямованих на боротьбу з нею. Утиліта. Mil Shield не тільки підчистить всюди, де наслідила evercookie, але зробить навіть більше, якщо вірити загадкового обіцянці розробників.

Поділитися в соц. мережах