Отключить сжатие для соединений SSL/TLS в Apache < 2.2.16 с помощью mod_header

Из-за 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-соединения или нет?

1 ответ

Во-первых, CRIME применяется только в том случае, если ваш сайт использует все эти три:

  1. SSL или TLS
  2. компрессия
  3. Сеансы аутентифицированные с помощью cookie

Это полезно только для перехвата активных сеансов и наиболее полезно, если ваш сервер не требует сопоставления IP-адреса сеанса. Хотя многие сайты используют эту комбинацию, она не так распространена, как многие думают. Кроме того, некоторые статистические данные показывают, что <7% браузеров в Интернете фактически поддерживают сжатия, которые делают возможным CRIME.

Что НЕ работает:
Vary Поле просто сообщает прокси-серверам верхнего уровня, разрешено ли им кэшировать динамическую страницу. Хотя это важно учитывать для вашей стратегии кэширования, но не для этой конкретной уязвимости.

Отключение Accept-Encoding поле будет влиять только на mod_deflate или mod_gzip; это не влияет на сжатие SSL/TLS. Таким образом, ваш метод не будет работать.

Что работает:
Есть два варианта защиты вашего сервера. Вы можете отключить поддержку сжатия в вашей библиотеке SSL / TLS, перекомпилировав ее без сжатия; или вы можете исправить свой сервер для поддержки SSLCompression директивы. Apache 2.4.x изначально поддерживает эту директиву. Apache 2.2.22 может быть исправлен относительно легко.

Различные дистрибутивы операционной системы теперь переносят патчи, уточните у своего поставщика Distro (в большинстве дистрибутивов Linux используются старые версии Apache, для которых они написали пользовательские резервные порты патчей безопасности). милость вашего дистрибутива, если вы используете их санкционированные пакеты).

Насколько вы уверены:
Существует очень простой в использовании сканер SSL "Problem", доступный в SSL Labs. Он обнаружит, уязвим ли ваш сервер к ПРЕСТУПЛЕНИЮ. Вы можете частично игнорировать предупреждения BEAST, поскольку все современные браузеры исправили проблему на стороне клиента. Это будет зависеть от вашего конкретного набора обстоятельств, однако.

Другие вопросы по тегам