BrowserLeaks — набор отдельных тестов, а не единая оценка. Разбираем, что видят WebRTC, DNS, Canvas, WebGL, шрифты и TLS — и что не видит ни один из них.
Введите «browserleaks» в поиске — и попадёте на страницу с отдельными плитками тестов: IP, WebRTC, Canvas, WebGL, шрифты, TLS, каждая открывается в свой собственный отчёт. Те, кто заходит сюда впервые, обычно ожидают увидеть одно число — как кредитный рейтинг или оценку доверия, — и теряются, когда единого числа не находится. Это не изъян дизайна. Это нормальная реакция на инструмент принципиально другого рода: набор проверок, где каждый тест независимо измеряет одну поверхность вашего браузера, и ни один не пытается обобщить остальные.
Ключевые выводы
- Наборы в духе BrowserLeaks запускают по одному независимому тесту на каждую поверхность — IP/WebRTC, DNS, Canvas, WebGL, шрифты, TLS — единой сводной оценки, к которой можно стремиться, не существует.
- Каждый тест отвечает на вопрос «что здесь раскрыто», а не «насколько узнаваемым это делает меня в целом». Это разные вопросы с разными ответами.
- Чистый результат по каждому отдельному тесту не означает, что вас трудно отследить — это лишь значит, что ни одна из проверенных поверхностей сама по себе не выдала ничего неожиданного.
- Структурное слепое пятно любого теста на стороне браузера: ничто, работающее внутри браузера, не может сопоставить ваш часовой пояс или язык с IP-адресом, с которого сервер реально увидел приход вашего соединения.
- Правильный подход — читать результаты по тестам отдельно; ранжировать или сводить весь набор в одну оценку — значит навязывать точность, которую он никогда не был рассчитан давать.
Набор тестов, а не оценка
Инструменты вроде BrowserLeaks выглядят разрозненно на фоне сводной оценки вендора именно потому, что решают другую задачу. Сводная оценка сжимает множество сигналов в одно число, вес которого вендор выбирает сам. Набор тестов действует противоположным образом: он намеренно держит каждую поверхность отдельно, потому что утечка разрешения на камеру, устаревший DNS-резолвер и характерный хеш canvas — это три никак не связанных между собой отказа с тремя разными способами устранения. Сведение их в одну оценку лишь скроет, какой именно из них важен именно для вас.
Это значит, что правильное чтение результатов набора — не в итоговом числе, а в том, чтобы пройтись по каждой панели и задать два вопроса: что именно раскрывает этот конкретный тест и важно ли это для того, что вы пытаетесь защитить. В следующем разделе мы пройдём основные панели именно в таком порядке.
Что на самом деле раскрывает каждая панель
IP и WebRTC. Панель WebRTC проверяет, не раскрывает ли стек реального времени вашего браузера — созданный для видео- и голосовой связи между устройствами напрямую — ваш настоящий публичный IP-адрес даже при включённом VPN. WebRTC согласовывает соединения через фреймворк ICE, который собирает все сетевые пути, по которым можно достучаться до вашего устройства, включая те, что VPN не маршрутизирует, и может передать этот список любой странице, которая его запросит. Утечка через WebRTC сводит на нет саму цель, ради которой люди обычно и включают VPN, — скрыть свой IP. «Защита от утечек WebRTC: обязательна для VPN» подробно разбирает, как именно происходит утечка и как закрыть её, не сломав видеозвонки.
DNS. Панель DNS проверяет, какой резолвер на самом деле обрабатывал ваши запросы к доменным именам — зашифрованный резолвер вашего VPN или резолвер вашего провайдера, раскрывающий каждое имя хоста, к которому вы обращались, за пределами туннеля, который, как вам казалось, вас защищал. Этот тест существует потому, что VPN может незаметно не перенаправить DNS, при этом корректно маршрутизируя остальной трафик, — и без специальной проверки этот сбой останется невидимым. «Защита от DNS-утечек: скройте свои следы в сети» объясняет механику и то, как DNS over HTTPS закрывает этот пробел.
Canvas. Панель canvas рисует скрытый текст и фигуры на внеэкранном (off-screen) Canvas-элементе и хеширует получившиеся пиксели — значение, которое чуть отличается в зависимости от GPU, драйвера, ОС и шрифтового движка, и остаётся стабильным между визитами без каких-либо cookie. Этот тест показывает, генерируется ли этот хеш и насколько стабильным он выглядит при повторных загрузках; сам по себе он ничего не говорит о том, насколько распространён или редок именно ваш хеш среди других посетителей. «Canvas-фингерпринтинг: как сайты узнают ваше устройство» разбирает, за счёт чего пиксели расходятся и почему некоторые популярные средства защиты дают обратный эффект.
WebGL. Панель WebGL напрямую опрашивает ваше графическое оборудование — строки вендора и рендерера GPU, поддерживаемые расширения, числовые лимиты — а также может отрендерить 3D-сцену и хешировать результат точно так же, как canvas. Она проверяет, раскрыт ли этот аппаратный отпечаток и насколько он детализирован, а не то, опасно ли само по себе это раскрытие. «WebGL-фингерпринтинг: как GPU выдаёт вашу личность» содержит полную механику.
Шрифты. Панель шрифтов перечисляет или измеряет, какие шрифты установлены в вашей системе, — один из самых характерных сигналов, который обычный браузер выдаёт просто за счёт сочетания конкретной ОС, языкового пакета и набора установленных приложений. Она сообщает, что можно обнаружить, а не насколько это сужает круг именно до вас. «Фингерпринтинг по шрифтам: как шрифты выдают вас» разбирает перечисление и измерение как две разные техники и объясняет, почему они раскрывают разный объём информации.
TLS и сетевой уровень. Панель TLS смотрит на уровень ниже того, что может увидеть любой JavaScript: точный порядок и содержание наборов шифров, расширений и эллиптических кривых, которые ваш TLS-клиент предлагает во время handshake, сведённые в хеш в стиле JA3/JA4. Это единственная панель, которая вообще не читает браузерные API, — она читает то, как ваш TLS-стек согласовывает соединение, и именно поэтому способна отличить настоящий браузер от скриптового HTTP-клиента, даже если все остальные сигналы подделаны безупречно. «TLS-фингерпринтинг: как JA3/JA4 идентифицируют ваш клиент» разбирает, что на самом деле содержит handshake.
Раскрытие — не то же самое, что уникальность
Каждая панель выше отвечает на вопрос «раскрыт ли этот сигнал и что он содержит». Ни одна не отвечает на вопрос «насколько узнаваемой делает меня комбинация всех этих сигналов». Это действительно разные вопросы, и их смешение — самая частая ошибка при чтении набора тестов на утечки: чистая панель WebRTC и чистая панель DNS ничего не говорят о том, достаточно ли редка ваша комбинация canvas, шрифтов и WebGL, взятая вместе, чтобы отслеживать вас между сессиями вообще без каких-либо cookie.
«Энтропия отпечатка браузера и множество анонимности» разбирает, как отдельные сигналы складываются в единую цифру уникальности — расчёт, который набор тестов по отдельным поверхностям намеренно не пытается делать. А если вы когда-либо сравнивали результат набора тестов на утечки с процентом анонимности от какого-то вендора и не смогли их свести воедино, это ожидаемо, а не признак того, что один из них ошибается: «Почему тесты отпечатка браузера расходятся в оценках» объясняет, почему проверка раскрытия, оценка уникальности и проверка согласованности — это три разных измерения, которые просто носят одно и то же слово «оценка».
Слепое пятно, общее для любого набора на стороне браузера
Каждая рассмотренная выше панель работает целиком внутри вашего браузера, читая то, что видит изнутри JavaScript (а для TLS — клиентский стек). Это даёт им всем одно и то же структурное ограничение: ничто, работающее внутри вашего браузера, не знает, где именно на другом конце реально завершилось ваше сетевое соединение. Intl.DateTimeFormat().resolvedOptions().timeZone возвращает то, что ваш браузер настроен сообщать, а не маршрут, по которому прошли ваши пакеты, и не IP, с которого сервер реально увидел приход соединения.
Сравнение заявленных браузером часового пояса и языка с реальной геолокацией IP улавливает конкретный и распространённый сбой: VPN меняет ваш видимый IP, но не трогает системные часы и региональные настройки, в результате браузер изнутри выглядит вполне согласованным, но противоречит тому месту, где он якобы находится. «Утечки часового пояса и языка: браузер против вашего IP» подробно разбирает, как именно возникает это несоответствие и как его используют системы обнаружения. Чтобы закрыть этот пробел, нужен сервер, который реально наблюдал приход соединения, — а это лежит вне любого теста, читающего только атрибуты браузера: сколько бы панелей на стороне браузера ни добавляли в набор, это его не раскроет.
Как читать собственные результаты
Всё это не аргумент против запуска набора тестов на утечки — проверка каждой панели по отдельности действительно правильный способ найти конкретную, устранимую уязвимость: например, утечку WebRTC, которую пропустил ваш VPN, или DNS-резолвер, обходящий туннель. Ошибка в другом — ожидать, что набор панелей в сумме даст один вердикт о том, насколько вы в целом отслеживаемы или защищены.
Если вам действительно нужен именно такой сводный взгляд — ваши сигналы, проверенные вместе на внутреннюю согласованность, плюс сетевое сопоставление, которое набор на стороне браузера структурно не может сделать, — запустите проверку отпечатка браузера BrowserInsight вместе с проверкой VPN и прокси. Вдвоём они покрывают те же самые поверхности (canvas, WebGL, шрифты и TLS — на стороне отпечатка, WebRTC и DNS — на стороне VPN) и добавляют сравнение часового пояса с IP, представляя результат в виде вердиктов о согласованности, а не набора разрозненных панелей. Если нужна только сетевая половина, проверка IP-адреса покажет геолокацию, провайдера и ASN, которые сервер видит для вашего соединения.
Часто задаваемые вопросы
Если все тесты в духе BrowserLeaks дают чистый результат, значит ли это, что я анонимен?
Нет. Каждый тест сообщает только о том, раскрыта ли его конкретная поверхность — чистые результаты WebRTC и DNS говорят лишь о том, что ваш VPN не даёт утечек по этим двум каналам. Это ничего не говорит о том, достаточно ли редка ваша комбинация canvas, WebGL и шрифтов, взятая вместе, чтобы отслеживать вас между визитами без cookie. Это отдельный вопрос уникальности, разобранный в «Энтропия отпечатка браузера и множество анонимности».
Почему BrowserLeaks не даёт одну общую оценку, как некоторые другие инструменты?
Потому что набор тестов по отдельным поверхностям создан для того, чтобы выявлять и диагностировать по одной утечке за раз, а не обобщать их. Сводная оценка требует выбрать веса для того, насколько важен каждый сигнал, а это решение вендора, а не измерение — о том, как это решение различается между вендорами, читайте в «Почему тесты отпечатка браузера расходятся в оценках».
Какой один тест важнее всего, если время есть только на один?
Зависит от того, что вы защищаете. Если вы полагаетесь на VPN, чтобы скрыть IP, панели WebRTC и DNS ловят два самых распространённых способа, которыми VPN даёт утечку, даже работая в остальном исправно. Если вас беспокоит отслеживание между сайтами без cookie, важнее тесты canvas, WebGL и шрифтов.
Может ли набор тестов на стороне браузера сам поймать VPN с несовпадающим часовым поясом?
Сам по себе — нет. Это сравнение требует наблюдения на стороне сервера за IP, с которого реально пришло соединение, сопоставленного с тем, что браузер сообщает о часовом поясе и локали, — а это ничто, работающее чисто в браузере, увидеть не может. Инструменты, сочетающие проверку браузера с серверным IP-запросом, такие как отдельная проверка VPN и прокси, способны сделать это сравнение; набор тестов на утечки, работающий только в браузере, структурно на это не способен.
Рекомендуем почитать
- Защита от утечек WebRTC: обязательна для VPN
- Защита от DNS-утечек: скройте свои следы в сети
- Canvas-фингерпринтинг: как сайты узнают ваше устройство
- WebGL-фингерпринтинг: как GPU выдаёт вашу личность
- TLS-фингерпринтинг: как JA3/JA4 идентифицируют ваш клиент
- Энтропия отпечатка браузера и множество анонимности
- Утечки часового пояса и языка: браузер против вашего IP
- Почему тесты отпечатка браузера расходятся в оценках


