Рейтинг:2

В TLS знает ли клиент открытый ключ сервера перед началом обмена данными?

флаг cn

Я читаю об атаке с тупиком. Меня спросили, можно ли предотвратить атаку, проверив целостность Привет сервер сообщение.

Мой ответ был бы отрицательным, потому что человек посередине все еще не может отправить оригинал Привет сервер сообщение и отправить свое.

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

Если это так, мой ответ должен быть правильным.

Есть ли способ, которым клиент может узнать открытый ключ сервера до того, как Привет сервер сообщение?

dave_thompson_085 avatar
флаг cn
Публичный ключ какого сервера? Тот, который используется для аутентификации, или тот, который используется для обмена ключами, который всегда отличается в 1.3 и часто, но не всегда отличается в более ранних протоколах? _Только_ эфемерный ключ kx в 1.3 находится в ServerHello, и его нельзя использовать для проверки целостности чего бы то ни было. Но Logjam не будет применяться к версии 1.3, потому что он больше не допускает слишком маленьких или непроверенных и потенциально дефектных групп FFDH для kx.
Jack avatar
флаг cn
@dave_thompson_085, как показано здесь: https://cryptologie.net/upload/logjam.png сообщение ServerHello отправляет certS, sign(skS,[p512, g, g^b]). Я пытаюсь выяснить, может ли в этот момент клиент проверить подлинность сервера, можно ли предотвратить атаку с застреванием?
dave_thompson_085 avatar
флаг cn
На этой диаграмме показаны только определенные элементы данных, относящиеся к атаке, а не весь протокол и определенно не содержащие их сообщения. См. RFC 2246 и последующие. Хотя, как говорит Маартен, критически важным элементом для _проверки_ является выбранный набор шифров, и _который_ действительно находится в ServerHello.
Рейтинг:1
флаг in

Атака, которую мы называем Logjam, изображена на рисунке 2. и полагается на недостаток в том, как TLS составляет DHE и DHE_EXPORT. Когда сервер выбирает DHE_EXPORT для рукопожатие, оно продолжается путем выдачи подписанного Обмен ключами сервера сообщение, содержащее 512-битный $p_{512}$, но структура этого сообщение идентично сообщению, отправляемому во время стандартного DHE наборы шифров. Важно отметить, что подписанная часть сервера сообщение не содержит каких-либо указаний на конкретный набор шифров который выбрал сервер. При условии, что клиент предлагает DHE, активный злоумышленник может переписать КлиентПривет к предложить соответствующий DHE_EXPORT набор шифров, принятый сервер и удалить другие наборы шифров, которые можно было выбрать вместо. Злоумышленник переписывает СерверПривет ответ на заменить выбранный DHE_EXPORT набор шифров с совпадением неэкспортный набор шифров и пересылает Обмен ключами сервера сообщение клиенту как есть. Клиент будет интерпретировать кортеж экспортного класса $(p_{512}, г, г^б)$ выбраны действительные параметры DHE сервером и продолжите рукопожатие. клиент и сервер имеют разные расшифровки рукопожатия в этом этапе, но злоумышленник, который может вычислить $б$ близко к реальному время может затем получить мастер-секрет и ключи подключения завершить рукопожатие с клиентом, а затем свободно читать и записывать данные приложения, притворяясь сервером.

И ваш вопрос гласит:

Я читаю об атаке с тупиком. Меня спросили, можно ли предотвратить атаку, проверив целостность сообщения Server Hello.

И я думаю, что ответ да, но только в том случае, если он подпишет/проверит набор наборов шифров, предлагаемых в рамках СерверПривет, и кажется, что по крайней мере TLS до 1.2 не может этого сделать. Другими словами, вам придется изменить протокол TLS, чтобы включить предлагаемые наборы шифров в генерацию/проверку подписи, что сделает его несовместимым с любым другим программным обеспечением TLS.

Так что в настоящее время кажется, что просто запретить выполнение выполнить DHE_EXPORT (или 1024-битный эфемерный DH) — это путь вперед для TLS до версии 1.2.

Jack avatar
флаг cn
Здравствуйте, извините, но почему вы сказали, что да? Также вопрос будет чисто на этапе ServerHello (проверка личности там)
Maarten Bodewes avatar
флаг in
Я имел в виду, что **теоретически** вы также можете подписать набор шифров в `ServerHello`, но это будет означать изменение общего протокола. Если вы просто **используете** протокол, то это категорическое **нет**.
dave_thompson_085 avatar
флаг cn
Технически стандарты для 1.1 и 1.2 (RFC 4346 и 5246) уже запрещают все пакеты экспорта (DHE, staticDH, DHanon, plainRSA и (!) Kerberos, помните это?), так что это _должно_ быть проблемой только до 1.0, но в практика, ну...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.