Объяснение
Как работает снятие отпечатков браузера
Прежде чем прочитать ваши cookie, сайт измеряет ваш браузер: что рисует его графический стек, как звучит звуковой, какие часы он держит. Эти измерения и есть отпечаток, а причина, по которой аккаунты связывают друг с другом, почти никогда не одно неверное значение — это набор значений, которые между собой не сходятся.
- Главная
- Как работает Argus
- Отпечатки
Отпечаток — не одно число. Это несколько десятков свойств, которые страница читает за миллисекунды, без разрешения и не оставляя следа, и ценность их для сайта в том, что они переживают очистку cookie и смену IP. Эта страница разбирает, что именно измеряют, почему непротиворечивость важнее сокрытия и где Argus подставляет свои ответы.
Измерение
Что сайт читает на самом деле
Интереснее всего сигналы, под которыми лежит железо. Если попросить две машины нарисовать одну и ту же фигуру, пиксели выйдут чуть разными: различаются видеокарта, драйвер и растеризатор шрифтов, — страница берёт от результата хеш и получает число, устойчивое для вашего устройства и редкое среди всех остальных. Тот же приём работает со звуковым стеком. Рядом с ними лежат декларативные свойства: платформа, языки, часовой пояс, геометрия экрана, объём памяти, число ядер процессора.
Ничего экзотического или скрытого здесь нет. Каждое из этого — документированный веб-API, делающий ровно то, для чего он задуман, и именно поэтому блокировать их не вариант: браузер, отказывающийся сообщить размер экрана, заметнее того, что сообщает обычный размер экрана. Argus закрывает эти поверхности:
- ✓Canvas, WebGL (включая сообщаемые vendor и renderer) и звук
- ✓Платформа, языки, часовой пояс, экран, объём памяти устройства и число ядер процессора
Отпечатки
Одно расходящееся значение портит весь набор
Вот на чём люди теряют аккаунты. Отпечаток оценивают как набор, и важна не проверка «необычное ли это значение», а проверка «описывают ли эти значения машину, которая могла бы существовать». User-agent, заявляющий macOS, рядом с метаданными UA-CH, где написано Windows, не описывает ни одного реального компьютера. Как и устройство с экраном 4K, двумя ядрами процессора и часовым поясом в трёх часах от собственного исходящего IP.
Случайные значения на каждый профиль делают только хуже: чем больше полей вы перемешиваете независимо друг от друга, тем вероятнее, что два из них разойдутся. Поэтому Argus собирает личность как единое целое — Аппаратная личность генерируется для каждого профиля целиком и согласованно — так, чтобы ничто ничему не противоречило.
- ✓Пресеты Windows, macOS и Linux, а user-agent и метаданные UA-CH генерируются им под стать
- ✓Платформа, число ядер, память, экран, часовой пояс и языки создаются вместе, как один непротиворечивый набор
Сетевая половина той же задачи — адрес, с которого приходит сессия, и изнутри браузера никакая работа с отпечатками её не решает. Для этого есть прокси на каждый профиль.
Браузер
Где подставляется значение
Большинство антидетект-инструментов управляет браузером, который они не собирали, поэтому вмешаться они могут только в JavaScript: расширение или внедрённый скрипт подменяет настоящую функцию обёрткой, возвращающей другой ответ. Это работает ровно до того момента, когда страница посмотрит на саму обёртку. Переприсвоенная нативная функция больше не приводится к строке как нативная, меняются прототипы и дескрипторы свойств, и обёртка сама становится уликой: страница теперь знает не только то, что вы что-то прячете, но и то, что вы из тех посетителей, которые прячут.
Argus поставляет собственную сборку Chromium, поэтому подмена происходит слоем ниже. Личность применяется ниже страницы — там, где скрипт не сможет заглянуть в обход.
- ✓Скрипт видит подменённое значение потому, что другого там просто нет, а не потому, что обёртка спрятала настоящее
Страница допрашивает рендерер и получает один ответ.
Отпечатки
Четыре режима, на каждую поверхность
Подменять всё — не автоматически самая безопасная настройка, поэтому каждая поверхность настраивается отдельно, а не одним общим переключателем.
- ✓Каждая поверхность работает в одном из четырёх режимов: настоящий, шум, выключено или вручную
Real пропускает собственный ответ машины — это то, что нужно там, где ваше железо ничем не выделяется. Noise искажает результат так, что хеш у каждого профиля свой, а вывод по-прежнему выглядит как то, что произвела видеокарта. Off отказывает поверхности. Manual закрепляет ровно то значение, которое вы впишете, — на случай, когда профиль должен и дальше сообщать то же, что сообщал месяц назад.
Отпечатки
Пресеты, закрепление и повторный бросок
Новый профиль получает непротиворечивую личность без каких-либо действий с вашей стороны; редактор нужен для тех частей, которые вы хотите решить сами.
- ✓Редактор в каждом профиле — для тех значений, которые вы хотите задать сами
- ✓Перегенерация в один клик даёт новую личность, сохраняя вашу конфигурацию
Повторный бросок важнее, чем кажется. Когда личность профиля должна смениться — старт с чистого листа после блокировки, профиль, переданный другому клиенту, — вам нужны новая аппаратная личность и тот же прокси, те же cookie, теги и заметки. Один клик делает это, вместо того чтобы удалять профиль и восстанавливать его настройки по памяти.
Доказательство
Проверьте сами — и знайте, что именно доказывает проверка
Всё сказанное выше — аргумент. Рынок, для которого написана эта страница, не решает споры прозой: он открывает чекер. Так и сделайте: откройте профиль, зайдите в один из них и прочитайте результат сами. Внимания стоят четыре. CreepJS — самый суровый и единственный, кто оценивает внутреннюю согласованность, а не список значений; Whoer — тот, на который операторы чаще всего ссылаются друг другу; BrowserLeaks — чтобы прочитать одну поверхность в отдельности: canvas, WebGL, звук; и Pixelscan, который пристальнее всех смотрит, сходятся ли адрес и устройство.
И прочитайте число честно, потому что оценка — это не приговор. Чекер измеряет то, что видит страница, и сверяет это само с собой. Зелёный результат означает, что личность, которую страница может прочитать, непротиворечива. Он не доказывает, что конкретный сайт не пометит аккаунт, и ничего не говорит о внутренностях браузера, до которых чекер не дотягивается. Кто обещает второе, исходя из первого, что-то вам продаёт. Зато два провала с этой страницы, которые чекер действительно поймает, ловить стоит: значение, противоречащее соседним, и кандидат WebRTC с вашим настоящим адресом.
Argus поставляет ту же проверку как инструмент — версию, которая масштабируется дальше одного профиля. Она измеряет то, что на самом деле видит страница внутри запущенного профиля: кандидатов WebRTC, часовой пояс, язык, user agent, платформу, экран, железо, строки WebGL, хеши шума, — сверяет каждое с личностью, которую лаунчер объявил для этого профиля, и помечает расходящиеся. Она есть в локальном API и как инструмент для агента, так что проверить двести профилей — это цикл, а не полдня. Ограничения у неё те же, что названы выше, и она говорит об этом в собственном описании, а не в сноске.
Честно
Чего отпечаток не исправит
Непротиворечивая личность отвечает на один из трёх вопросов, которые сайт задаёт на входе. С двумя другими она не делает ничего, и схема, которая ошибается в них, проваливается независимо от того, насколько хорош отпечаток.
Второй вопрос — адрес. Профиль, показывающий варшавское устройство и приходящий с серверного диапазона во Франкфурте, противоречит себе ещё до того, как страница догрузится. Сетевую половину разбирает как работают прокси в Argus — включая то, как покупать прокси, которые переживут нужные вам сайты.
Третий — состояние. Два профиля с безупречными и совершенно разными отпечатками всё равно один аккаунт, если у них общая банка cookie, общий кэш или общая регистрация service worker'а. На диске их разводит изоляция профилей.
Готовы запускать профили в масштабе?
Скачайте Argus для Mac или Windows и начните бесплатно с 5 профилями.

