Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСети и протоколы

Туннель CONNECT: что видно посреднику

Родион Гаев
Родион Гаев
Ветеран
сообщений 2420
с фев
22 августа, 17:07первое сообщение

Спор в рабочем чате зашёл в тупик, выношу сюда. Гоню трафик через посредника по схеме http, сайты шифрованные. Один коллега уверяет, что посредник читает всё подряд вплоть до тела ответа. Второй говорит про глухую трубу, где не видно ничего вообще.

Мне кажется, правда где-то посередине, но пальцем ткнуть не могу. Хочется разложить по шагам: что уходит открытым текстом до того, как поднялось шифрование, и что остаётся видно после.

Вот что показывает отладочный вывод curl:

* Establish HTTP proxy tunnel to example.org:443
> CONNECT example.org:443 HTTP/1.1
> Host: example.org:443
< HTTP/1.1 200 Connection established
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
sysdiag
sysdiag
Знаток
сообщений 1975
с фев
1 января, 08:24#2

Правда ближе ко второму коллеге, с одной оговоркой.

Строка CONNECT example.org:443 уходит открытым текстом, это команда посреднику: открой мне трубу вот на этот узел и порт. Посредник отвечает кодом двести и с этой секунды перекладывает байты, внутрь не заглядывая. Ни адреса страницы, ни заголовков, ни печенек он не разбирает, они уже под шифрованием.

логи читаю раньше почты
anton_zzz
anton_zzz
Новичок
сообщений 96
с июн, второй сезон
8 июня, 11:41#3

а имя узла всё равно светится получается

Родион Гаев
Родион Гаев
Ветеран
сообщений 2420
с фев
15 ноября, 14:58#4
sysdiag: перекладывает байты, внутрь не заглядывая

Это я и хотел услышать. anton_zzz, судя по отладке, светится, причём дважды.

proxy_hands
proxy_hands
Знаток
сообщений 1405
с мая
22 апреля, 17:15#5

Дважды, именно. Первый раз в самой строке CONNECT, второй раз в приветствии клиента внутри рукопожатия: там едет поле с именем узла, и едет оно открытым текстом, до всякого шифрования. Так сделано ради серверов, где на одном адресе висит сотня сайтов и надо понять, чей сертификат подавать.

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

ЧтоВидно посреднику
Имя узла и портда, строкой CONNECT
Имя узла в приветствиида, открытым полем
Адрес страницынет
Заголовки и печенькинет
Тело ответанет
Объём и ритмда, целиком
Юля Ким
Юля Ким
Знаток
сообщений 1240
с мая
1 сентября, 08:32#6

Отмечу для полноты картины: без шифрования всё иначе. Обычный http через посредника уходит строкой вида GET http://example.org/page?id=7 HTTP/1.1, полным адресом. Тут посредник читает каждую букву.

Тимур Ш.
Тимур Ш.
Участник
сообщений 890
с июн
8 февраля, 11:49#7

Загляните в журнал посредника, если он ваш. У squid запись про туннель выглядит вот так, и в ней ровно то, что перечислил proxy_hands:

1690000123.456 4521 10.0.0.2 TCP_TUNNEL/200 5312 CONNECT example.org:443 - HIER_DIRECT/93.184.216.34 -

Пять с лишним килобайт в обе стороны, узел, порт, куда ушло. Содержимого нет ни байта.

бэкап перед правкой конфига
anton_zzz
anton_zzz
Новичок
сообщений 96
с июн, второй сезон
15 июля, 14:06#8

понял, спасибо, про приветствие вообще не знал

sysdiag
sysdiag
Знаток
сообщений 1975
с фев
22 декабря, 17:23#9

Проверить всё это можно за минуту на своей же машине, гадать незачем.

Ставим tcpdump на порт посредника и дёргаем curl рядом. Первым кадром с полезной нагрузкой пойдёт текст команды, он читается глазами. Дальше побегут байты рукопожатия, и имя узла в приветствии клиента тоже читается глазами, лежит оно почти в самом начале, среди мусора.

смотрим свой же туннель
смотрим свой же туннель

После такого дампа споры в чате обычно заканчиваются сами.

логи читаю раньше почты
Родион Гаев
Родион Гаев
Ветеран
сообщений 2420
с фев
1 мая, 08:40#10

Показал обоим дамп, каждый оказался прав наполовину. Записал себе памятку в три строки: имя узла открыто, содержимое закрыто, объём и ритм видны всегда.

Спасибо, вопрос снят.

proxy_hands
proxy_hands
Знаток
сообщений 1405
с мая
8 октября, 11:57#11

Мелочь на будущее: у сокетной схемы картина ровно та же. Имя узла едет в приветствии клиента, и его видно, какую схему подключения ни возьми.