Предоставьте Apache SSLCipherSuite, который пройдет проверку соответствия PCI
Я пытаюсь получить сервер Fedora 14 с Apache 2.2.17, чтобы передать проверку соответствия PCI-DSS McAfee ScanAlert. Моя первая попытка использовать стандартные SSLCipherSuite и SSLProtocol-директивы, установленные в ssl.conf...
SSLProtocol ALL -SSLv2
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
не удалось назвать, что слабые шифры были включены. Сканирование с помощью инструментов ssllabs и serversniff показало, что действительно доступны 40 и 56 бит ключей.
Затем я изменил на...
SSLProtocol -ALL +SSLv3 +TLSv1
и попробовал все перечисленные ниже строки на разных сайтах, чтобы передавать проверки PCI из разных поставщиков...
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH
SSLCipherSuite ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:RC4+RSA:+HIGH:+MEDIUM
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH
Я перезапускаю apache после обновлений, и apachectl configtest говорит, что мой синтаксис в порядке. Последующие сканирования ScanAlert все провалились, а другие инструменты сканирования продолжают показывать доступные 40 и 56 бит шифров. Я попытался добавить SSLProtocol и SSLCipherSuite прямо в VirtualHost в httpd.conf, и это не помогло.
На самом деле кажется, что что-то где-то переопределяет эти параметры, но я ничего не могу найти где-либо, что устанавливает эти значения, отличные от ssl.conf.
Если кто-то может предоставить известный хороший SSLCipherSuite, прошедший недавнее сканирование PCI, это поможет значительно решить мою проблему.
Спасибо.
Ответы
Ответ 1
После нескольких часов поиска и вытягивания волос я нашел свою проблему.
Директивы SSLProtocol и SSLCipherSuite по умолчанию в моем ssl.conf хранятся в контейнере по умолчанию, помеченном как <VirtualHost _default_:443>
.
У моего фактического сайта есть собственный контейнер с его IP-адресом, например: <VirtualHost 64.34.119.12:443>
. Изменение значений в контейнере _default_
не повлияло, но добавление более сильных директив SSLProtocol и SSLCipherSuite непосредственно к контейнеру VirtualHost на конкретном сайте, наконец, позволило им вступить в силу.
Не знаю, почему настройка контейнера _default_
или их наличие в контейнере VirtualHost в httpd.conf не работала.
В качестве окончательного ответа на вопрос я использовал...
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH
передать сканирование ScanAlert. Я бы поспорил, что большинство других строк выше будет работать также.
Ответ 2
При обнаружении новых уязвимостей и обновлении браузеров ответы здесь могут (будут) устаревать. Я бы посоветовал вам полагаться на Mozilla SSL Configuration Generator, чтобы проверить, какую конфигурацию вы должны использовать.
![enter image description here]()
Ответ 3
Вы сказали Apache, чтобы обеспечить шифрование?
SSLHonorCipherOrder на
Ответ 4
FYI - я обнаружил, что этот параметр:
SSLCipherSuite HIGH:!SSLv2:!ADH
Произведен тот же список протоколов, что и этот параметр:
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH
В соответствии с:
openssl ciphers -v 'ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH'
openssl ciphers -v 'HIGH:!SSLv2:!ADH'
Ответ 5
Для Qualys рекомендуется следующая конфигурация, она предоставила нам A на своем сканере
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
Да, также убедитесь, что Apache может прочитать новую конфигурацию. Я помещаю его непосредственно в контейнер виртуального хоста.
На своем веб-сайте: https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy
Ответ 6
Посмотрите Mozilla Wiki.
Цель этого документа - помочь операционным командам с настройкой TLS на серверах.