Различные версии TLS в ClientHello от одного и того же клиента

521
user9371654

У меня есть клиент Python. Используя ssl.SSLContext()( документация здесь ) и set_ciphers(myciphers)(где myciphers - мой список наборов шифров, которые я изменяю при каждом рукопожатии, то есть при каждом соединении с сокетом). Я могу контролировать список клиентских шифров. По умолчанию SSLContextв python отключают SSL 2.0 и SSL 3.0 по умолчанию, и я не изменяю версии в коде моего клиента.

Я отправляю 3 рукопожатия на сайт, используя разные списки шифров в каждом. Я не меняю версию.

В Wireshark ClientHello в столбце "протокол" я вижу разные версии? Я связываюсь с тем же сайтом. Клиент не меняет версию.

1) Можете ли вы объяснить мне, почему я вижу другую версию протокола TLS? 2) Если это не фактическая версия, предложенная клиентом (которая должна быть TLS 1.2), где я могу получить реальную версию TLS, предложенную клиенту?

Вот скриншот, чтобы уточнить (пожалуйста, извините за его форму, но для анонимности сайтов и имен ПК): enter image description here

РЕДАКТИРОВАТЬ: Хотя в столбце ClientHello отображается TLSv1, когда я нажимаю на кнопку записи и вижу расширенную область. Я вижу это:

> Secure Socket Layer > TLSv1.2 Record Layer: Handshake Protocol: Client Hello 

Я сбит с толку. Для меня очень важно убедиться, что мой клиент всегда пробует TLS 1.2. Я оставил Python по умолчанию, который должен делать это в соответствии с их документацией.

РЕДАКТИРОВАТЬ 2: Я делаю просмотр фильтра, чтобы увидеть TLS 1.0 (как показано на экране, там ClientHellos отправляет TLSv1). Но с этим фильтром просмотра:

ssl.handshake.version==0x0301 

Никаких ClientHellсообщений мне не показывается. Только некоторые ServerHello. Пожалуйста, объясните мне. Это довольно запутанно.

0
Возможно, вы обнаружили ошибку в анализаторе Wireshark для TLS (или любой другой код, который заполняет имя протокола в любом столбце, который вы видите в окне сводки). Можете ли вы найти определенный набор шифров, который запускает его? Возможно, некоторые шифры были устаревшими до TLS 1.2, поэтому каждый раз, когда эти устаревшие шифры появляются, в сводной колонке указывается, что это должен быть TLS 1.0. Spiff 6 лет назад 0

0 ответов на вопрос