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

SSLCipherSuite - отключить слабое шифрование, cbc cipher и алгоритм на основе md5

Недавно разработчик провел сканирование PCI с помощью TripWire на нашем сервере LAMP. Они выявили несколько проблем и проинструктировали их исправить следующее:

Проблема: сервер SSL поддерживает слабое шифрование для SSLv3, TLSv1,

Решение: добавьте следующее правило в httpd.conf

SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

Проблема: сервер SSL поддерживает шифры CBC для SSLv3, TLSv1

Решение: отключите все наборы шифров, использующие шифры CBC.

Проблема: сервер SSL поддерживает слабый алгоритм MAC для SSLv3, TLSv1

Решение: отключите все наборы шифров, использующие алгоритмы MAC на основе MD5.

Я попытался найти в Google подробное руководство о том, как создать директиву SSLCipherSuite для удовлетворения моих требований, но не нашел ничего, что мог бы понять. Я вижу примеры директив SSLCipherSuite, но мне нужно объяснение того, что делает каждый компонент директивы. Так что даже в директиве SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM, Я не понимаю, например, что !LOW средства.

Может ли кто-нибудь а) сказать мне директиву SSLCipherSuite, которая будет соответствовать моим потребностям, или б) показать мне ресурс, который четко объясняет каждый сегмент SSLCipherSuite и как его создать?

Если их единственная жалоба - MAC на базе MD5, вы сможете просто добавить !MD5 в существующий набор шифров, чтобы выполнить рекомендацию.

Тем не менее, я вижу, что они также жалуются на использование режима CBC. К сожалению, нет CBC группа шифров. Данная вам рекомендация также не исключает шифровальных характеристик режима CBC, по крайней мере, в моей версии openSSL (1.0.1e). Какая жалость. Если вам нужно исключить все такие шифры, вы можете исключить все шифры CBC явно, хотя вам придется обновлять это по мере их включения. Обратите внимание, что даже HIGH включает шифры CBC.

Включая оба ALL и RC4+RSA избыточно. Мне не хотелось бы доверять консультанту по безопасности (даже компьютеризированному), который не может даже построить хорошо сформированную спецификацию шифрования, отвечающую их собственным рекомендациям.

В SSLCipherSuite принимает спецификацию шифра OpenSSL. Вы можете найти это в документации openssl (ссылка), но я считаю, что эта документация обычно довольно устарела. Однако вы можете проверить его, запустив openssl ciphers ${cipherspec} на вашем сервере; выход будет :-отделенный список шифров, которые были бы разрешены данной спецификацией, или ошибка, указывающая, что ни один из них не был разрешен.

Точно так же, если вы хотите знать, что LOW содержит, делать:

falcon@tiernyn ~ $ openssl ciphers 'LOW'
EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:ADH-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5

!LOW означает исключить те. +HIGH означает отдавать предпочтение высокозащищенным при заказе.

Если вам нужен список всех шифров, которые используют CBC в вашем cipherspec, с разделителями строк, выполните:

openssl ciphers ${cipherspec} | sed 's/:/\n/g' | grep CBC

Это те, которые вам нужно исключить. Однако вы можете счесть более разумным grep -v CBC и включать только те (просто настройте их в :-delimited список и использовать его как шифровальную спецификацию).

В mod_ssl документация объясняет компоненты SSLCipherSuite настройки, Вот.

Если вы хотите выполнить все эти требования к сканированию, вам в значительной степени нужно запустить только RC4 с SSLCipherSuite RC4-SHA (или запустите новый TLS, который может оказаться практичным или непрактичным для вашей системы).