TLS - онлайн сервисы для проверки fingerprints
TLS Fingerprinting: обзор инструментов BrowserLeaks и TrackMe
https://browserleaks.com/tls https://tls.peet.ws/
Данная статья посвящена двум веб-сервисам для анализа TLS-соединений и
пассивного фингерпринтинга: BrowserLeaks.com/tls и tls.peet.ws (TrackMe).
Оба инструмента позволяют получить детальную информацию о TLS-рукопожатии
браузера, но решают разные задачи и ориентированы на разную аудиторию.
BrowserLeaks.com/tls — TLS Client Test
Что это
BrowserLeaks — это набор инструментов для проверки приватности и безопасности веб-браузера, работающий с 2011 года. Раздел [https://browserleaks.com/tls TLS Client Test] — специализированный диагностический инструмент, который анализирует SSL/TLS-стек клиента в реальном времени.
Функциональные возможности
- Определение поддерживаемых версий TLS: 1.0, 1.1, 1.2, 1.3.
- Полный перечень cipher suites с маркировкой небезопасных (CBC, SHA-1, NO PFS).
- Список TLS-расширений в порядке их отправки клиентом.
- Информация о группах ключей (key exchange groups), включая x25519.
- Тест [https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
Mixed Content] (активный и пассивный).
- Проверка Encrypted Client Hello (ECH) — технологии шифрования SNI.
- Генерация TLS-фингерпринтов: JA3, JA4, JA4_r, JA4_o, JA4_ro, JA3_r, JA3_n,
JA3_rn.
- JSON API по адресу tls.browserleaks.com.
Где применяется и для чего
- Аудит безопасности браузера: пользователь может проверить, какие
протоколы и шифры поддерживает его браузер, выявить устаревшие и небезопасные.
- Проверка ECH: убедиться, что SNI шифруется при соединении.
- Исследование TLS-фингерпринтинга: наглядная демонстрация того, какие
данные TLS-рукопожатия доступны серверу и как формируются JA3/JA4-отпечатки.
- Тестирование конфигураций: разработчики и пентестеры используют для
анализа TLS-стека при настройке защищённых соединений.
Дополнительные инструменты на том же ресурсе
BrowserLeaks также предлагает тесты WebRTC, Canvas Fingerprinting, WebGL, Font Fingerprinting, Geolocation API, HTTP/2 Fingerprinting, QUIC Client Test, TCP/IP Fingerprinting и другие — все доступны с главной страницы browserleaks.com.
tls.peet.ws (TrackMe) — сервер пассивного фингерпринтинга
Что это
TrackMe — это открытый проект на Go (репозиторий: github.com/wwhtrbbtt/TrackMe, лицензия GPL-3.0), созданный разработчиком Peter (peet). Представляет собой кастомный low-level HTTP/1 и HTTP/2 сервер, который пассивно анализирует входящие запросы и возвращает детальную информацию о TLS- и HTTP-отпечатках клиента.
Функциональные возможности
- JA3 и JA4: классические TLS-фингерпринты по методологии Salesforce и
FoxIO.
- Akamai HTTP/2 fingerprint: отпечаток по методологии Black Hat EU 2017
([https://www.blackhat.com/docs/eu-17/materials/eu-17-Shuster-Passive-Fingerprinting-Of-HTTP2-Clients-wp.pdf Shuster, PDF]).
- PeetPrint: собственный алгоритм автора, расширяющий JA3. Лучше
подходит для TLS 1.3, так как JA3 имеет ограничения (issue #78).
- Полные данные TLS-рукопожатия: cipher suites, extensions, curves,
signature algorithms.
- Информация об HTTP/1.1 и HTTP/2 запросах (фреймы, заголовки).
- Определение IP TTL.
- REST API:
- /api/all — все собранные данные.
- /api/tls — только TLS-данные.
- /api/clean — только отпечатки (JA3 +
Akamai).
- /api/request-count — счётчик запросов (требуется БД).
- /api/search-ja3 — поиск по JA3 (требуется БД).
- /api/search-h2 — поиск по Akamai-отпечатку (требуется БД).
- /api/search-peetprint — поиск по PeetPrint (требуется БД).
- Возможность развёртывания через Docker.
Формат PeetPrint
Расширенный отпечаток включает: supported-tls-versions, supported-protocols, supported-groups, supported-signature-algorithms, psk-key-exchange-mode, certificate-compression-algorithms, cipher-suites, sorted-extensions. Все GREASE-значения заменяются на строку "GREASE".
Где применяется и для чего
- Исследование пассивного фингерпринтинга: сервер показывает, как
клиент может быть идентифицирован без cookies и JavaScript — только по TLS- и HTTP-параметрам.
- Разработка инструментов обхода: проекты вроде
tls-client используют такие сервисы для тестирования маскировки отпечатков.
- Построение баз данных отпечатков: сервер поддерживает поиск
корреляций между JA3, User-Agent, Akamai-отпечатком и PeetPrint.
- Образовательные цели: наглядная демонстрация работы TLS 1.3, HTTP/2
фреймов и фингерпринтинга.
- Фрод-мониторинг и детектирование ботов: в production-среде аналогичные
методы используются для выявления нестандартных TLS-клиентов.
Самостоятельный запуск
Проект можно запустить локально через Docker:
docker build -t "trackme:Dockerfile" . docker run -p 80:80 -p 443:443 "trackme:Dockerfile"
Либо скомпилировать бинарник: go build -o TrackMe cmd/main.go.
Сравнение и ключевые различия
| Параметр | BrowserLeaks.com/tls | tls.peet.ws (TrackMe) |
|---|---|---|
| Аудитория | Конечные пользователи | Разработчики, исследователи |
| Год запуска | 2011 | ~2022 |
| Формат данных | Веб-интерфейс + JSON | JSON API |
| Язык реализации | PHP/JS | Go |
| Лицензия | Проприетарная | GPL-3.0 (открытый исходный код) |
| Уникальная функция | ECH-тест, Mixed Content | PeetPrint, поиск корреляций |
| HTTP/2 фингерпринтинг | Есть (отдельный раздел /http2) | Akamai-формат
встроен |
| Возможность self-hosting | Нет | Да (Docker) |
Связанные технологии и ссылки
JA3 — метод TLS-фингерпринтинга, разработанный Salesforce в 2017 году ([https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/ статья], репозиторий).
JA4 — развитие метода от FoxIO с поддержкой QUIC и DTLS ([https://github.com/FoxIO-LLC/ja4/blob/main/technical_details/JA4.md спецификация]).
HTTP/2 fingerprinting — методология Akamai для идентификации клиентов по фреймам HTTP/2 ([https://lwthiker.com/networks/2022/06/17/http2-fingerprinting.html статья lwthiker]).
TLS 1.3 — подробная спецификация каждого байта рукопожатия: tls13.xargs.org.
Состояние TLS-фингерпринтинга — обзор Fastly: [https://www.fastly.com/blog/the-state-of-tls-fingerprinting-whats-working-what-isnt-and-whats-next статья Fastly]. ```
