Из-за CRIME, насколько я понимаю, сжатие на SSL-соединениях нужно отключить. В более новых версиях apache это можно сделать с помощью недавно введенной директивы SSLCompression off
, в более старых версиях это невозможно (в Debian до версии 2.2.16-6 + squeeze10).
Я думаю, что нашел способ добиться этого в более старых версиях, но я не уверен, почему в некоторых онлайн-тестах, таких как Qualsys SSL Test это означает, что сжатие все еще продолжается. Мой тест показывает нечто иное. Может ли кто-нибудь просмотреть код конфигурации и сказать мне, что я правильно не понимаю?
Используйте следующие директивы из mod_headers внутри блока виртуального хоста SSL, чтобы отключить сжатие:
RequestHeader unset Accept-Encoding
Header unset Vary
Это удаляет строку заголовка из клиентского запроса, указывающую, что ответ может быть отправлен клиенту в сжатом виде.
Проверяя это с помощью curl и переключателя --raw, я вижу, что не-ssl-соединения сжимаются, а ssl-соединения являются открытым текстом. Используйте ...
curl --raw -k -H 'Accept-Encoding: gzip,deflate' http://host.example.tld
...Проверять.
Некоторые инструменты онлайн-тестирования по-прежнему говорят мне, что мое решение не работает, в то время как другие говорят наоборот. Теперь мне интересно, работает ли мое решение по отключению сжатия для ssl-соединения?
Первый, ПРЕСТУПЛЕНИЕ применяется только в том случае, если на вашем сайте используются все три:
Это полезно только для перехвата активных сеансов и наиболее полезно, если вашему серверу не требуется сопоставление IP-адресов сеанса. Хотя многие веб-сайты используют эту комбинацию, она не так распространена, как многие думают. Кроме того, некоторые статистические данные показывают, что <7% браузеров в Интернете на самом деле поддерживают сжатие, которое делает возможным CRIME.
Что НЕ РАБОТАЕТ:
В Vary
Поле просто сообщает вышестоящим прокси, разрешено ли им кэшировать динамическую страницу. Хотя это важно учитывать для вашей стратегии кеширования, не столько для этой конкретной уязвимости.
Отключение Accept-Encoding
поле повлияет только на mod_deflate или mod_gzip; это не влияет на сжатие SSL / TLS. Так что ваш метод не сработает.
Что работает:
Есть два варианта защиты вашего сервера. Вы можете отключить поддержку сжатия в своей библиотеке SSL / TLS, перекомпилировав ее без сжатия; или вы можете исправить свой сервер для поддержки SSLCompression
директива. Apache 2.4.x изначально поддерживает эту директиву. Apache 2.2.22 можно относительно легко исправить.
Различные дистрибутивы операционной системы сейчас переносят исправления, уточняйте у поставщика дистрибутива (большинство дистрибутивов Linux используют старые версии Apache, для которых они написали собственные обратные порты исправлений безопасности. Так что вы в значительной степени будете в милость вашего Distro, если вы используете их санкционированные пакеты).
Насколько вы уверены:
Очень простой в использовании Сканер "проблем" SSL доступен в SSL Labs. Он определит, является ли ваш сервер уязвимым для CRIME. Вы можете частично игнорировать предупреждения BEAST, поскольку все современные браузеры исправили проблему на стороне клиента. Однако это будет зависеть от конкретных обстоятельств.