Почему Chrome жалуется на «устаревшую криптографию»?

Почему Chrome жалуется на «устаревшую криптографию»?

Я размещаю веб-сайт ASP.NET с wildcard ssl-сертификатом на IIS / Windows 2008R2. Хотя Chrome отлично работает с моим веб-сайтом и показывает зеленый замок https-соединения, в https-данных упоминается «устаревшая криптография»:

подробности о хроме https

Я предполагаю, что это связано с SHA1, который также упоминается Chrome в том же окне.

Однако, согласно проверке сертификатов SSL от Digicert, следует использовать SHA256:

введите описание изображения здесь

Теперь я не уверен, что происходит и как решить эту проблему. Похоже, чтоэтот пост в блогеописывает обходной путь решения этой проблемы, но он кажется настолько неясным (Шаг 1: Установить OpenSSL?), что я не могу себе представить, что это официальный способ сделать это в Windows 2008 R2.

Как мне избавиться от предупреждения о сертификате SSL?

Редактировать:После применениясценарийрекомендованный Грантом, мой SSLabs был улучшен с C до A, и Chrome использует TLS 1.2 вместо 1.0. Однако предупреждение об «устаревшей криптографии» все еще там.

решение1

Проблема не в SHA, а в TLS 1.0.

Отчет SSL Labsдля вашего домена дает полную историю. Ваш сервер поддерживает только TLS 1.0, а не 1.1 или 1.2. Кроме того, он все еще поддерживает устаревшие шифры, такие как RC4, и не поддерживает совершенную прямую секретность.

Настроить IIS для повышения безопасности вполне возможно, но делать это вручную — утомительно. Этот замечательный сценарий, написанный Александром Хассом, установит ряд параметров реестра, чтобы отключить старые небезопасные методы шифрования для IIS7.5 и IIS8.

После запуска скрипта перезагрузите сервер, и вы должны получить оценку A на SSLLabs, а предупреждения в Chrome должны прекратиться.

решение2

Я тестирую это на новом сервере 2012 R2, при примененииАлександр Хасс сценарий(AH-Script), я все еще получаю устаревшую криптографию:

Chrome устарела криптография

Мой Chrome 43 поддерживает следующие наборы шифров:

[C02B]  TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
[C02F]  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
[009E]  TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
[CC14]  TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
[CC13]  TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[CC15]  TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[C00A]  TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
[C014]  TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
[0039]  TLS_DHE_RSA_WITH_AES_256_SHA
[C009]  TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
[C013]  TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
[0033]  TLS_DHE_RSA_WITH_AES_128_SHA
[009C]  TLS_RSA_WITH_AES_128_GCM_SHA256
[0035]  TLS_RSA_AES_256_SHA
[002F]  TLS_RSA_AES_128_SHA
[000A]  SSL_RSA_WITH_3DES_EDE_SHA
[00FF]  TLS_EMPTY_RENEGOTIATION_INFO_SCSV

поэтому используется: [C013], довольно далеко внизу. Кажется, Chrome предпочитает SHA256 и GCM вместо CBC.

Я взял AH-Script и добавил [009E] (третий сверху) в список наборов шифров. После перезагрузки я теперь получаю:

Chrome Современная криптография

Я попытался заставить работать два верхних [C08B] и [C02F], но не смог.

Итак, исправив скрипт и запустив его, я получил modern cryptography.

Я удалил один из существующих шифров, поскольку длина этой строки ограничена. Начало моей строки теперь выглядит так:

$cipherSuitesOrder = @(
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256',
'TLS_DHE_RSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',

Редактировать:Я только что протестировал это на sslLabs.com, и использование TLS_DHE_RSA_WITH_AES_128_GCM_SHA256дает мне результат Bниже, чем Aу меня было раньше.

Этот сервер поддерживает слабые параметры обмена ключами Диффи-Хеллмана (DH). Оценка ограничена B.

Так что, возможно, вы не захотите его использовать. Почему Chrome так высоко его оценивает, я не знаю?

решение3

Сообщение "устаревшая криптография" в Chrome появляется из-за того, что сервер поддерживает слабые обмены ключами Диффи-Хеллмана (DH). Более конкретно, это задокументировано вСпецификация HTTP/2 в черном списке Cipher Suite.

Когда вы используетеСкрипт PowerShell от Александра Хасса(из текущего принятого ответа), затемон включает в себя эти шифры, которыев черном списке:

TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA

Если вы посмотрите наСлужба приложений Azure использует следующий порядок наборов шифров::

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

Это привело к получению рейтинга A в Qualys SSL Labs (июль 2016 г.) и поддержке Forward Secrecy для большинства распространенных браузеров.

Я обнаружил проблему Chrome, поскольку на моем локальном IIS Express на Windows 10 он возвращал сообщение об ошибке ERR_SPDY_INADEQUATE_TRANSPORT_SECURITYв Chrome 51 с настроенными в моей системе черными списками наборов шифров.

Связанный контент