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

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

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

После многих сканирований с использованием Nexpose я создал конфигурацию 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;
}

К сожалению:

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

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

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

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