Представьте ситуацию: вы тщательно подготовились к работе с мультиаккаунтингом - настроили окружение, для каждого потока прописали уникальный резидентный прокси, уверены в чистоте ваших IP-адресов. Но после старта все ваши аккаунты один за другим улетают в бан, хотя каждый поток работал со своего уникального IP-адреса. Как говорится - ситуация патовая, в чем может быть дело?
Причина, по которой вы лишились своих профилей может быть в TLS-фингерпринтинге. Это не какая то скрытая технология цивилизации древних Атцеков, а вполне себе современная методика, которая работает глубже уровня IP-адреса и позволяет идентифицировать устройства и сессии по характерному отпечатку TLS-соединения.
Другими словами, если у всех ваших запросов будет одинаковый TLS-отпечаток, даже самые качественные прокси не спасут от блокировки на платформах, которые умеют работать с этими отпечатками.
Что такое TLS-фингерпринтинг и как он работает
TLS (Transport Layer Security) - это криптографический протокол, обеспечивающий защищенное HTTPS-соединение между клиентом и сервером. И тут нас интересует самый первый обмен данными - TLS-рукопожатие. Во время этого виртуального обмена клиент отправляет сообщение ClientHello с набором параметров для согласования шифрования. Вот эти то параметры во многом и могут спалить, серверу кто к нему подключается.
Именно набор данных, которые содержаться в ClientHello и формирует уникальный TLS-отпечаток, один из цифровых идентификаторов клиента.
На скриншоте ниже я привел пример такого отпечатка - это скриншот реального TLS-рукопожатия, которое я перехватил Wiresharkом на своем локальном устройстве.

Проблема (а для кого-то это реально станет проблемой) в том, что каждый браузер, библиотека или ОС реализуют TLS по-своему, поэтому то набор параметров и получается уникальным.
Отпечаток TLS всегда будет постоянным для конкретного клиента независимо от его IP-адреса или используемого прокси. Он может незначительно измениться, если изменится набор шрифтов или расширений, но в большинстве случаев будет идентичен.
Из чего формируется TLS-отпечаток:
Версия TLS. Стандартный Chrome поддерживает TLS версии 1.3, а у Python библиотеки requests будет версия 1.2 или тоже 1.3, как у Хрома и т.д.
Набор шифров (Cipher Suites). У каждого браузера они плюс минус похожи, но отличия будут - у Firefox примерно 15 шифров, а у Chrome около 17, скрипты (python requests, curl) имеют еще более короткий список, характерный для библиотеки OpenSSL, но при этом сами алгоритмы шифрования могут отличаться.
Список расширений TLS. Сюда относят дополнительные опции протокола (SNI, ALPN, OCSP и др.), которые решают различные прикладные задачи. Набор и количество расширений также зависит от браузера, у каждого из них цифра будет своя - это и формирует разницу.
Поддерживаемые группы (кривые). Это уже вообще "математический язык", на котором строится защита. У каждого браузера свой уникальный список методов.
Алгоритмы подписи. Предпочтительные алгоритмы для цифровой подписи в рамках TLS (различаются по приоритетам между клиентами). Это такой список стандартов, которые ваш браузер в состоянии проверить. У Chrome это проверка по одним алгоритмам, у Safari по другим, суть вы думаю уловили.
Тут еще важно понимать нюанс - сам набор может быть примерно одинаковым, а вот порядок их передачи разным. Если два разных клиента будут поддерживать один и тот же список шифров или расширений, но отправят их в разной последовательности - мы получим разные отпечатки. Вот такая тонкость - любая, казалось бы, мелочь - а итог разный.
Интересная аналогия с приготовлением пищи - если вы сначала положите в сковороду чеснок, и только перед подачей блюда опустите в нее мясо, на 5-10 минут - у него будет совершенно другой вкус, чем у блюда приготовленного по классическому рецепту - сначала мясо, а перед подачей за 5 минут чеснок. Так и тут - порядок передачи имеет серьезное значение!
JA3 - при чем тут третья часть популярной в 00-х игры на ПК?
Кто такой же древний мамонт как и я, и помнит игру про наемников Jagged Aliance, вероятно подумал - дед опять забыл таблетки принять, но нет - я все правильно пишу - речь не про гейминг, а все так же про TLS-отпечатки, а вернее про технику их передачи.
JA3 - это хэш, длиной 32 символа, который вычисляется по совокупности перечисленных выше параметров. Его удобно хранить и сверять. И вот этот хеш и будет нашим отпечатком.
Каждая уникальная комбинация параметров даст свой JA3-хэш, и даже минимальное отличие сформирует разные хеши - Chrome 120 на Windows 11 и на Firefox 121 на одном и том же устройстве даст разные JA3-отпечатки.
Узнать свой JA3 хэш можно с использованием специальных сервисов (tls.peet.ws или через встроенный функционал Wireshark).
Справка: Wireshark - это программное обеспечение для анализа сетевого трафика (сниффер), с помощью которого вы можете увидеть в реальном времени данные, проходящие через ваш компьютер. Предупреждаю, стоит только начать и остановиться потом будет сложно.

Резюмируем: TLS-фингерпринтинг позволяет достатоверно отделить одного клиента от другого, анализируя только лишь сетевые параметры шифрованного соединения. Ни смена IP, ни подмена User-Agent здесь не помогут - "почерк" вашего TLS-рукопожатия останется прежним.
Почему прокси не скрывают TLS-отпечаток
Использование прокси-сервера по-дефолту рассматривается как способ скрыть или подменить свою личность в сети. И отчасти это так и работает. Если вы будете использовать прокси чтобы замаскировать IP-адрес одного конкретного юзера на конкретном устройстве - все получится, прокси скроет реальный IP-адрес.
Не хочется душнить по поводу предыдущего абзаца - но соблазн велик. Смена IP-адреса не скрывает вас со 100% уверенностью, при желании сервис может вытащить ваш реальный IP-шник, есть несколько способов и все они известны. Так что без дополнительной защиты просто использование прокси - это иллюзия маскировки, не более того.
С мультиаккаунтингом это так не работает. Прокси работает на сетевом уровне, и его возможности ограничены передачей трафика через другой IP.
При HTTPS-соединении TLS-рукопожатие происходит напрямую между вашим устройством и целевым сервером, а прокси лишь пересылает уже зашифрованные данные, не вмешиваясь в их содержимое.
Прокси меняет для запроса лишь некоторые внешние атрибуты:
IP-адрес, который видит сайт (маскируя ваш реальный адрес);
Геолокацию (зависит от IP прокси);
Маршрут трафика в сети (пропускает через себя);
В некоторых случаях позволяет обойти региональные блокировки контента.
Однако прокси не способен изменить такие вещи, как:
TLS-отпечаток вашего браузера или скрипта;
Отпечатки браузера: Canvas, WebGL, аудио, шрифты и пр.;
HTTP-заголовки и характеристики самого клиента (если вы их вручную не меняли);
Другие аппаратно-программные признаки (разрешение экрана, часовой пояс, плагины и т.д.).
Отсюда следует простой вывод: даже самый надежный прокси, не делает ваш запрос невидимым для систем фингерпринтинга. Если вы запускаете несколько сессий через разные прокси, но одним и тем же клиентом (который просто позволяет менять ip-адреса, не трогая ничего из вышеперечисленного), то для целевого сайта все эти сессии выглядят как исходящие с одного и того же устройства.
Типичная ошибка новичков - покупать дорогие резидентные прокси в надежде, что смена IP решит проблему анонимности или мультиаккаунтинга. Дороже - не значит сильнее защищенные. Дорогие прокси это не про полную защищенность, а про качество полученных IP-адресов. Дорогие прокси с большей степенью вероятности не будут висеть в черных списках и не будут иметь какую-то серую историю использования (хотя и это не факт, но шанс получить мертвый пул меньше, и вот это уже факт).
Если вы не меняете TLS-отпечаток (и не только его, так как TLS-отпечаток - лишь одна из составляющих браузерного фингерпринта), то хоть по 5$, хоть по 10$ вы купили прокси для каждого аккаунта, результат будет предсказуем - бан ваших профилей или усложнение работы (частая капча, ошибки и т.п.).
Вот вам и ответ - почему вас банят даже с чистых прокси - IP-адрес новый, а цифровой след остался прежним.

Тем не менее, сами по себе прокси остаются важным инструментом - они решают задачу разделения и маскировки IP-адресов. Но для полноценной анонимности их необходимо сочетать с другими мерами антидетекта.
Как платформы используют TLS-фингерпринтинг для блокировок
Технологию TLS-фингерпринтинга уже давно используют практически все крупные платформы, борющиеся с ботами, мошенничеством и мультиаккаунтингом. Более того, даже многие средние по размеру сервисы подключают готовые решения для снятия отпечатков устройства. Можно сказать так - если веб-платформа серьезно относится к безопасности, велика вероятность, что при каждом вашем HTTPS-запросе она пассивно собирает TLS-отпечаток клиента и сверяет его с известными шаблонами.
Теперь к персоналиям:
Cloudflare и аналогичные антибот-сервисы. Cloudflare, защищая сайты от ботов, активно анализирует TLS-рукопожатия. Если JA3-хэш вашего запроса не совпадает с шаблоном ни одного распространенного браузера, запрос помечается как подозрительный. Например, вызовы из Python-скрипта с библиотекой requests имеют совсем иной TLS-почерк, чем у Chrome/Firefox, и Cloudflare их либо блокирует, либо выдает капчу или вызывает специальную страницу с JS-челленджем (Turnstile). Таким образом, если dfi клиент выдает себя на этапе TLS, защита среагирует независимо от IP.
Социальные сети и рекламные кабинеты (Meta, TikTok, и т.д.). Facebook и Instagram применяют очень строгий фингерпринт-контроль. Их системы связывают между собой аккаунты с одинаковыми TLS-отпечатками, даже если те никогда не входили с одного IP-адреса. В результате блокировка одного профиля может автоматически затронуть все связанные аккаунты.
Meta помимо TLS учитывает десятки других признаков (Canvas, WebGL, фоновые сенсоры и пр.) для построения многомерного портрета пользователя.
TikTok также агрессивно отслеживает мультиаккаунты - помимо TLS-отпечатка, они смотрят на поведение (одновременный вход, схожие действия), но одного только общего TLS-профиля уже будет достаточно, чтобы связать ваши учетные записи между собой.
Маркетплейсы и e-commerce (Wildberries, Ozon, Amazon и др.). Крупные торговые платформы применяют TLS-фингерпринтинг не только против мультиаккаунтов селлеров, но и для защиты от массированного парсинга данных.
Wildberries и Ozon борются с автоматическим сбором цен конкурентов, отслеживая однотипные TLS-отпечатки на множестве запросов. Если вы запустите парсер с несколькими прокси, но он везде будете использовать одну и ту же библиотеку HTTP (а значит и один отпечаток) - маркетплейс довольно быстро это вычислит. В течение нескольких часов IP-адреса ваших прокси попадут на карандаш или вообще улетят в бан, поскольку система увидит сотни запросов с идентичным TLS-почерком и заблокирует весь диапазон IP-адресов как вредоносный.
Рекламные системы (Google Ads и др.). Google Ads проверяет TLS-отпечаток при создании новых рекламных аккаунтов и при подозрительной активности. Если вы пытаетесь завести, несколько кабинетов с разных IP-адресов, но на одном и том же устройстве, то все они будут помечены и отправлены на ручную модерацию (или просто превентивно заблокированы).
Другие площадки (Amazon/eBay, LinkedIn, Twitter/X, Авито) также в той или иной степени учитывают TLS-фингерпринт при автоматическом поиске аномалий.
Сейчас внимательно! Я старался уточнять, но если у кого-то сформировалось впечатление, что при использовании одного устройства и нескольких прокси, вас выдаст именно TLS-отпечаток - это далеко не так. TLS всего лишь один из методов, который используется антибот-системами для определения аномальной активности. Антифрод-системы работают по методу скоринга (начисления штрафных баллов), и TLS-отпечаток просто один из кирпичиков в общем каркасе.
Способы обхода TLS-фингерпринтинга
Если TLS-отпечаток может нас выдать, логичный подход для обхода - изменить или замаскировать его. В идеале наш клиент должен выглядеть как самый обыкновенный браузер реального пользователя, или каждый поток автоматизированных запросов должен иметь разные TLS-профили, чтобы их нельзя было связать друг с другом. Логично? Конечно логично, но как этого добиться?
Вот какие способы для борьбы с TLS-фингерпринтингом используют:
Использовать настоящий браузер через автоматизацию. Самый простой способ сгенерировать правдоподобный TLS-пакет - это реально открыть браузер (Chrome, Firefox и т.п.), который сам осуществит обмен данными с сервером. Инструменты типа Selenium, Puppeteer, Playwright в связке с браузером Chromium/Firefox дают аутентичный TLS-отпечаток штатного браузера. Даже в headless-режиме современные браузеры обмениваются с сервером теми же ClientHello, что и в обычном, поэтому по одному TLS-отпечатку их не отличить от обычного пользователя. Однако запуск браузера через средства автоматизации может оставлять другие следы, но это уже тема другой статьи.
Использовать антидетект-браузеры. Антидетект-браузеры - это одно из самых надежных решений. По сути, антидетект-браузеры - это модифицированные Chromium или Firefox, которые для каждого профиля генерируют уникальный набор фингерпринтов: от Canvas и WebGL до TLS. Они могут при старте нового профиля выдавать ему случайный, но реалистичный TLS-отпечаток, взятый из базы реальных устройств. Или же сгенерировать параметры на лету, рандомизируя их под правдоподобные комбинации. Плюс в некоторых случаях можно настроить эти параметры вручную, но подмена TLS-отпечатка это уже более тонкая настройка, и выполнять ее не профессионалам не рекомендуется. Отпечаток должен выглядеть достоверно. Если задать несуществующую в природе комбинацию TLS-параметров, умные системы это тоже распознают как подделку. Качественные антидетекты избегают таких ошибок, предоставляя профили неотличимые от обычных пользователей.
Антидетект-браузер в связке с уникальным прокси на каждый аккаунт - стандартное решение для безопасного мультиаккаунтинга. В контексте веб-парсинга антидетект-браузер менее удобен (сложнее масштабировать на сотни потоков), как правило их используют точечно, для прохождения сложной капчи.
Имитация TLS-пакета программными методами. Профессионалы могут настраивать низкоуровневые параметры TLS-соединения вручную. Есть библиотеки и патчи для HTTP-клиентов, которые позволяют задать свой порядок шифров, расширений и т.д., тем самым эмулировать TLS-рукопожатие нужного браузера.
Ротация TLS-отпечатков. Если эмулировать браузерный профиль сложно, можно попробовать альтернативный подход - частую смену TLS-отпечатка, чтобы каждый поток запросов выглядел по-разному. Некоторые прокси провайдеры или сервисы парсинга предлагают функцию динамической подмены TLS-профиля. По сути, ваш запрос проходит через специальный сервер, который рандомизирует параметры TLS перед соединением с нужным сайтом. Однако важно, чтобы подменяемые отпечатки тоже соответствовали реальным устройствам, иначе вместо одного подозрительного профиля вы можете создать несколько подозрительных.

Каждый из методов имеет свои плюсы и минусы по сложности реализации и эффективности. Лучше всего комбинировать несколько подходов.
Для массового парсинга данных использовать ротацию прокси + утилиты для спуффинга TLS, а для управления учетными записями - антидетект-браузеры + выделенные прокси для каждого профиля.
Общий же принцип один - недостаточно скрыть свой IP, нужно еще и убедить сервер, что вы обычный пользователь.

Заключение
Эпоха, когда смены IP-адреса было достаточно для анонимности или обхода банов, осталась позади. TLS-фингерпринтинг доказал свою эффективность в распознавании ботов и связывании учетных записей, поэтому крупные интернет-платформы внедрили его повсеместно. Если вас необъяснимо блокируют даже при использовании чистых резидентных прокси, очень вероятно, что дело именно в TLS-отпечатке вашего клиента. А значит важно следить не только за чистотой прокси, но и за тем, какой след оставляет ваш софт.
