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

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

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

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

Однако, согласно Digicert's SSL Certificate Checker, следует использовать SHA256:

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

Как мне продолжить, чтобы избавиться от предупреждения о сертификате ssl?

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

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

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

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

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

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

Мой 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] (третий сверху) в список шифров, после перезагрузки я теперь получаю:

Я пытался заставить работать два верхних [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 так высоко оценивает это, я не знаю?

Сообщение «устаревшая криптография» в 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 г.) и поддерживает прямую секретность для большинства распространенных браузеров.

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