Як працюють антидетект-браузери: повне технічне пояснення

Поверхні відбитка, генерація узгодженої ідентичності, ізоляція сховищ на диску, маршрутизація для кожного профілю та чесні межі всього підходу.
Антидетект-браузер виконує чотири завдання. Він окремо зберігає дані перегляду кожного профілю, керує ідентичністю пристрою, яку повідомляє кожен профіль, незалежно маршрутизує трафік кожного профілю і підтримує узгодженість усього цього в часі. Ця стаття розбирає, як виконується кожне завдання, на рівні механізму, і завершується тим, чого цей підхід не вміє.
Поверхні відбитка
Почніть із того, що може прочитати сторінка, бо все інше — відповідь на це. Скрипт на будь-якому сайті може ставити браузеру запитання, і відповіді описують комп’ютер. Поверхні природно групуються.
| Поверхня | Що читає сторінка |
|---|---|
| Navigator | Назва й версія браузера, платформа, список мов, повідомлена кількість процесорів і обсяг пам’яті, підтримка дотику |
| Екран | Ширина, висота, доступна робоча область, глибина кольору, співвідношення пікселів пристрою |
| Canvas | Точні пікселі, отримані малюванням тексту й фігур поза екраном, згорнуті в стабільне значення |
| WebGL | Рядки виробника й рендерера графіки та хеші відтворених сцен |
| Аудіо | Вихід осцилятора, пропущений через граф обробки звуку, який залежить від стека |
| Шрифти | Які гарнітури встановлено, що виводиться з вимірювань тексту |
| Часовий пояс і годинник | Повідомлений пояс і зсув, порівняні з тим, звідки приходить трафік |
| Мережа | Сама адреса, погляд WebRTC на кандидатів з’єднання та форма рукостискання TLS |
Жоден окремий рядок не ідентифікує комп’ютер. Це робить комбінація, і саме в ній ловлять брехню: значення, які не можуть належати одному справжньому комп’ютеру, — гучніший сигнал, ніж будь-яке значення саме по собі.
Збирання дешеве й безшумне. Кожне значення в таблиці доступне будь-якій сторінці через задокументовані API без жодного запиту дозволу, і більшість надходить за першу секунду візиту. Яку б позицію ви не обіймали щодо цієї практики, це стале явище сучасного вебу і та база, проти якої проєктують антидетект-браузер.
Як генерується узгоджена ідентичність
Наївний підхід — перехопити кожне запитання й рандомізувати відповідь. Він не працює з структурної причини. Відповіді описують один комп’ютер, тож вони корелюють, а незалежні випадкові відповіді ці кореляції ламають. User-Agent Windows поруч зі шрифтами, що постачаються лише з macOS, розмір екрана, з яким жоден ноутбук не випускався, рядок графіки, який ніколи не співіснував із заявленою платформою: кожне з цього — суперечність, яку перевіряльник перевіряє дешево.
Тому працездатний антидетект-браузер генерує ідентичність як набір. Він виходить зі справжнього поширеного класу комп’ютерів і виводить із цього вибору кожне значення. Платформа визначає правдоподібний список шрифтів, рядки графіки й підтримку дотику. Екран береться з розмірів, з якими такий клас комп’ютерів справді постачається. Мова й часовий пояс походять із призначеного регіону профілю. Значення узгоджені між собою, бо їх обрано разом — з одного опису одного комп’ютера.
Друга властивість не менш важлива: набір зберігається. Його записують у профіль під час створення профілю, і кожна сесія повідомляє однакові значення, бо пристрій, що змінюється між візитами, описує обладнання, якого ні в кого немає. Стабільність — це здебільшого й є правдоподібність.
Ізоляція сховищ на диску
Завдання зі сховищем — найменш ефектне й найбезкомпромісніше. Кожен профіль володіє каталогом, і все, що браузер зберігає, лежить усередині нього: база cookie, Local Storage, IndexedDB, HTTP-кеш, реєстрації service worker, стан розширень, історія та збережені облікові дані. Два профілі — це два непересічні каталоги, і кожен запущений браузер спрямований на свій.
Перевіряти слід повну неперетинність, бо часткова ізоляція ламається непомітно. Cookie розділити легко. Кеш може ідентифікувати браузер, що повертається, через збережені ресурси. Service worker можуть тримати ідентифікатори й працювати між візитами. IndexedDB — це місце, де сучасні застосунки тримають записи, яким справді довіряють. Ізоляція, що охоплює відомі сховища і ділить будь-які інші, ізолювала лише видиму частину проблеми.
Персистентність — друга половина. Сесії накопичують цінність: пройдені перевірки безпеки, усталена історія входів, образ відвідувача, що повертається. Профіль зберігає свій каталог між сесіями, і саме це робить можливою роботу з акаунтами. Запис при закритті робить каталог довговічним, тому примусове завершення процесу профілю посеред сесії може коштувати щойно встановленої сесії.
Мережева маршрутизація
Кожен профіль має власний маршрут, який застосовується під час запуску його браузера, тож трафік виходить через проксі цього профілю, не зачіпаючи системних налаштувань чи маршруту будь-якого іншого профілю.
- Проксі прив’язується до профілю, а не до комп’ютера. Звичайні браузери беруть системний проксі. Тут кожен запущений профіль підключається через власну точку доступу.
- Розв’язання імен також іде через маршрут, бо запит, що приходить з однієї країни, тоді як його пошуки надходять з іншої, — суперечність на мережевому рівні.
- WebRTC обмежується так, щоб узгоджуватися з маршрутом. Залишений сам собі, він може виявити кандидатів з’єднання, яких проксі не торкався.
- Часовий пояс і мова підбираються під країну маршруту, бо адреса — єдине значення, яке неможливо згенерувати, тож решта історії має з нею погоджуватися.
Маршрут — також компонент, який найважливіше перевіряти незалежно, бо його купують у третьої сторони. Перевірка точки доступу перед призначенням і зчитування спостережуваної адреси замість заявленої виявляє збій, поки він ще є проблемою конфігурації, а не проблемою акаунта.
Що змінює сам браузер
Є два місця, де інструмент може змінити відповіді, які отримує сторінка, і різниця між ними — найтехнічніша розвилка цієї теми.
| Підхід | Як це працює | Слабке місце |
|---|---|---|
| Ін’єкція скриптів | Розширення або вбудований скрипт перевизначає функції, що викликає сторінка, тож читання canvas і запити navigator повертають підставлені значення | Самі перевизначення видимі. Підмінені функції можна розпізнати як підмінені, а будь-яка поверхня, про яку ін’єктор забув, відповідає справжнім значенням |
| Усередині власного коду браузера | Реалізація браузера відповідає збереженими значеннями профілю в тих шляхах коду, де справжні значення й утворюються | Значно більше роботи зі створення й підтримки, чим спеціалізовані інструменти й відрізняються від розширень |
Підхід з ін’єкцією — звідти ця категорія починалася, і його стеля добре відома: сторінка може перевірити, чи функції досі виглядають рідними, і може дістатися тієї самої поверхні шляхом, який ін’єкція не охопила. Тому спеціалізовані антидетект-браузери вносять зміни всередині самого браузера, щоб збережена ідентичність була тим, що реалізація повідомляє через кожен шлях, який її читає.
Що насправді відбувається, коли відкривається профіль
- Завантажується збережена ідентичність: один узгоджений набір значень пристрою, той самий, що й минулого разу.
- Браузер запускається на власному каталозі профілю, тож кожне постійне сховище — власне сховище профілю.
- Застосовується маршрут: проксі, розв’язання імен через нього, WebRTC, обмежений ним.
- Сесія працює, накопичуючи стан усередині каталогу.
- Під час закриття стан записується, тож наступне відкриття відновлює той самий пристрій, те саме сховище й той самий маршрут.
Кожну частину цього списку можна перевірити ззовні. Двічі відкрийте сторінку тесту відбитка й порівняйте значення між відкриттями. Погляньте на каталог профілю на диску. Зчитайте спостережувану адресу. Інструмент цієї категорії має запрошувати до такої перевірки, бо механізм і є продуктом.
Чесні межі
У підходу є краї, і знати їх — частина компетентного використання.
- Він не може зробити браузер неідентифікованим, і ніхто не може виміряти таке твердження. Реалістична мета — профіль, що виглядає як звичайний, внутрішньо узгоджений комп’ютер і залишається стабільним.
- Він не виправляє суперечностей, які вносите ви. Маршрут в одній країні з часовим поясом в іншій — помилка конфігурації, і інструмент може лише зробити правильну конфігурацію найлегшою.
- Він не охоплює поведінку. Таймінг, обсяг і ритм читаються разом із середовищем, і флот, що діє синхронно, видає себе, наскільки б чистим не було кожне середовище.
- Він не охоплює заявлену особу. Спільні дані відновлення, спільні платіжні засоби й повторно використаний текст пов’язують акаунти через власні записи платформи, далеко над браузером.
- Він не змінює правил платформ. Ізоляція розділяє легітимні середовища. Що дозволено, вирішує платформа, і жодного результату на платформі, яку ми не контролюємо, тут не обіцяно.
Читайте межі як означення, а не як розчарування. Антидетект-браузер — це інструмент узгодженості: окреме сховище, стабільна й правдоподібна ідентичність, відповідний маршрут, об’єднані для кожного профілю та однаково повторювані при кожному відкритті. У цьому весь механізм, а все інше, що пишуть про категорію, — варіації на цю тему.

