TCP-отпечаток

TCP-отпечаток — параметры сетевых пакетов, по которым можно примерно определить операционную систему устройства, установившего соединение.

Обновлено · Редакция Prokso

Прежде чем обмениваться данными, устройство и сервер устанавливают TCP-соединение. Первый пакет от клиента несёт несколько служебных значений: начальный TTL, размер окна, максимальный размер сегмента и набор опций TCP вместе с их порядком. Каждая операционная система заполняет эти поля немного по-своему.

Например, Windows обычно начинает с TTL 128, а Linux, Android, macOS и iOS — с 64. Различаются и набор опций, и их последовательность. Из этих деталей складывается TCP-отпечаток, по которому можно предположить, какая ОС находится на другой стороне соединения.

Такой анализ называют пассивным: серверу не нужно ничего отправлять, достаточно посмотреть на пришедшие пакеты. Самый известный инструмент этого типа — p0f, но похожие проверки встроены и в разные системы защиты сайтов. Результат всегда приблизительный: настройки сети и промежуточные устройства могут менять значения.

С прокси картина другая. Ваше устройство устанавливает TCP-соединение только с прокси, а к сайту отдельное соединение открывает выходной узел. Поэтому сайт видит TCP-отпечаток не вашего компьютера, а устройства, через которое идёт трафик: сервера в дата-центре, домашнего роутера или телефона для резидентских и мобильных прокси.

Отсюда возможное расхождение. Браузер в заголовке User-Agent сообщает, например, «Windows», а TCP-отпечаток соединения похож на Linux, потому что выходной узел работает на Linux. Сайт может заметить, что эти данные не совпадают, и учесть это в своей оценке.

Некоторые значения меняются и без прокси. Каждый роутер на пути уменьшает TTL на единицу, так что сервер видит не начальное число, а чуть меньше, и округляет его до ближайшего типичного. Размер сегмента может уменьшаться, если трафик идёт через туннель или мобильную сеть. Из-за этих особенностей даже обычное домашнее соединение не всегда даёт «чистый» отпечаток. Поэтому одно расхождение редко что-то решает само по себе.

TCP-отпечаток дополняет TLS-отпечаток и отпечаток браузера: первый описывает сетевой уровень, второй — программу, третий — среду браузера. Ни один из них по отдельности не даёт точного ответа, поэтому сайты смотрят на совокупность признаков. Знать об этом механизме полезно, чтобы понимать, почему один и тот же IP может по-разному восприниматься с разных устройств.

Вопросы и ответы

Чей TCP-отпечаток видит сайт, когда я работаю через прокси?

Сайт видит TCP-соединение от выходного узла прокси, поэтому и TCP-отпечаток принадлежит этому устройству, а не вашему компьютеру.

Можно ли точно определить ОС по TCP-отпечатку?

Нет, результат приблизительный. Значения вроде TTL и размера окна могут менять настройки сети и промежуточные устройства, поэтому сайты смотрят на совокупность признаков.

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт