Конфигурация SSL для веб-сервера, совместимого с требованиями PCI-DSS об отключении CBC и TLSv1.0

Я ищу конфигурацию веб-сервера (nginx), которая поддерживает текущие (ноябрь 2015 г.) требования PCI-DSS к SSL:

  • Нет TLSv1.0 (только TLSv1.1 и TLSv1 .2 и TLSv1.3 в будущем).
  • Нет слабых ssl-шифров, это означает отсутствие CBC (Cipher Block Chaining), DES, IDEA Cipher Suites, нет RC4 и т. Д.

После многих сканирований с использованием Nexpose I. создал конфигурацию Nginx, которая, наконец, соответствует этим очень строгим требованиям. Моя текущая тестовая конфигурация выглядит так:

server {
#(..)
ssl_certificate      asdf.crt;
ssl_certificate_key  sadf.key;

ssl_protocols TLSv1.1 TLSv1.2; #see about TLSv1.1 below
ssl_ecdh_curve secp521r1;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_dhparam asdf-dh2048.pem; #sorry, no support for Java 6u45
ssl_ciphers    #ssh_ciphers of course should be in one line
  ECDHE-ECDSA-AES256-GCM-SHA384:
  ECDHE-ECDSA-AES128-GCM-SHA256:
  ECDHE-RSA-AES256-GCM-SHA384:
  ECDHE-RSA-AES128-GCM-SHA256:
  DHE-RSA-AES256-GCM-SHA384:
  DHE-RSA-AES128-GCM-SHA256:
  AESGCM:
  !aNULL:!eNULL:!EXPORT:!RC4:!MD5:!PSK;
}

К сожалению:

  • Есть только 7 ssl_cipher, и обычно используются только первые 6.
  • Даже если я включаю TLSv1.1, он не совпадает, приведенные выше шифры являются доступно только в TLSv1.2.
  • Сканирование с использованием https://www.ssllabs.com/ssltest показывает, что на веб-сайте есть решетка A + (отлично!), но также показывает, что многие (или большинство) браузеров и библиотек не смогут подключиться из-за «несоответствия протокола или набора шифров» (не работает: IE 6-10, Java 6 и 7, Android 2.3-4.4, OpenSSL 0.9.8, Safari 5-8 и т. Д.).
  • Я удалил TLSv1.0, поэтому нет возможности подключиться с помощью приложений, установленных на Win XP, Win Vista, Win Serv 2003, я знаю.
  • Сканирование с использованием Nexpose не показывает никаких проблем (т.е. нет CBC в использовании и т. д.).

Nginx использует openssl, поэтому согласно https://www.openssl.org/docs/manmaster/apps/ciphers.html (глава «Имена CIPHER SUITE» в середине page) после удаления CBC, RC4 и других «слабых» элементов я не вижу возможности использовать протоколы TLSv1.0 или TLSv1.1. Я также не вижу возможности использовать TLSv1.2 с большим количеством шифров.

Кто-нибудь знает, что в моей конфигурации можно изменить, для повышения совместимости с браузерами / библиотеками / системами и при этом соответствовать требованиям PCI-DSS?

2
задан 7 December 2015 в 23:03
1 ответ

Если отключить TLS1.0 и отключить все шифры CBC, то для увеличения совместимости с браузерами не так уж и много нужно сделать.

Однако, CBC-шифры НЕ считаются "слабыми", если TLS1.0 отключен. Атака уязвимости BEAST основана на отсутствии в TLS1.1 и выше.

.
1
ответ дан 3 December 2019 в 12:43

Теги

Похожие вопросы