Назад | Перейти на главную страницу

Ожидаемые наборы шифров не отображаются в трассировке пакетов - сбой рукопожатия

Я хочу начать с того, что не являюсь экспертом в области сетей или Wireshark, но у меня есть опыт веб-разработки, в частности .net и iis / windows server.

Я пытаюсь добавить пару шифров в Cipher Suite своего сервера. Это потому, что сервер, к которому я подключаюсь, сделал патч для своего сервера и попросил людей подключиться к нему с добавленными шифрами. В настоящее время я получаю сообщение об ошибке установления связи TLS при подключении к ним.

Вот те, которые мне нужны:

ECDHE-RSA-AES128-GCM-SHA256(OpenSSL) - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
ECDHE-RSA-AES256-GCM-SHA384(OpenSSL) - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA

Я добавил эквивалент Cipher Suite, который мне действительно нужен.

Несмотря на то, что я добавил их (используя gpedit.msc и iiscrypto), я поместил их в первую часть всего списка шифров, но, похоже, они не отображаются, когда я отслеживаю их в Wireshark.

IISCrypto Обновление: Шифры с изображения выше изменены на TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 и TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Заказ SSL Ciperh Suite

TLS__ECDHE_RSA_AES128_GCM_SHA256,TLS_ECDHE_RSA_AES256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_CBC_SHA

Wireshark Trace 3 выделенных шифра не отображаются на трассировке Каковы общие причины этого?

ОБНОВЛЕНИЕ: подтверждение того, что сервер принимает шифры, запрошенные через nmap.

| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 1024) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 1024) - A

Я думаю, что ваш вопрос основан на непонимании того, как работает рукопожатие TLS и, в частности, выбор шифра, и что вы можете увидеть на проводе.

Выбор шифра выполняется клиентом, отправляющим список шифров, которые клиент принимает, а затем сервер выбирает один шифр из этого предложения клиента. Это означает, что в рукопожатие TLS включаются только приемлемые для клиента шифры. Список приемлемых сервером шифров не включается в рукопожатие, поэтому вы его не видите.

Вы можете получить шифры, поддерживаемые сервером, только с помощью конфигурации клиента, которая предлагает только этот конкретный шифр. Если сервер принял шифр, он поддержит его, если нет (скорее всего), не поддержит. И это именно то, что делает использованная вами команда nmap - просто пробует множество разных шифров и проверяет успешность рукопожатия.

Если вы говорите об этих шифрах для использования в SSL / TLS, вам необходимо соответствующим образом настроить их для Windows. Если они не отображаются во время переговоров, вы, вероятно, не правильно настроили его.

Вам необходимо настроить клиент и / или сервер для их поддержки:

  1. Общая информация о SChannel Cipher: https://docs.microsoft.com/en-us/windows/win32/secauthn/cipher-suites-in-schannel
  2. Настроить их с помощью политики: https://docs.microsoft.com/en-us/windows-server/security/tls/manage-tls

А если вы дружите с Linux, вот прочная статья об использовании nmap для вывода согласования шифра SSL / TLS в консоль: https://medium.com/@rootsecdev/configuring-secure-cipher-suites-in-windows-server-2019-iis-7d1ff1ffe5ea

Какая общая причина этого? ... неправильная конфигурация. Вы либо изначально не настроили это правильно, либо параметр был перезаписан чем-то (например, групповой политикой, каким-либо продуктом безопасности) и т. Д.