Тонкая настройка HTTPS на Apache — Forward Secrecy , RC4 , SSL 3 и все-все-все

Всеобщая мода на HTTPS захватила таки и меня. Я перевел свои сайты на https:// (посредством бесплатного сертификата от Let’s Encrypt) и решил оценить их качество, проверив с помощью бесплатного сервиса SSL Server Test https://www.ssllabs.com/ssltest/

Я ввел адрес acdc.foxylab.com (Hostname), нажал кнопку «Submit«, подождал несколько минут и результат …… меня немного удивил:
Моему сайту была выставлена невысокая оценка C (при том, что высшая оценка — A+).
Разберемся, как же улучшить оценку на примере моего сервера Apache под управлением операционной системы Ubuntu.
Претензия № 1 — сервер не поддерживает Forward Secrecy
Forward Secrecy (FS) — секретность будущих сообщений — технология, защищающая прошлые сессии от взлома ключей в будущем

Претензия № 2 — сервер позволяет использовать шифр RC4
Уязвимость RC4 связана с недостаточной случайностью потока битов, которым скремблируется шифруемое сообщение.

Претензия № 3 — сервер позволяет использовать протокол SSL 3
В протоколе SSL версии 3 из-за использования режима CBC была найдена уязвимость Padding Oracle On Downgraded Legacy Encryption (POODLE) (CVE-2014-3566), позволяющая проведение атаки man-in-the-middleMITM.

Производители браузеров отключили использование протокола SSL 3.0:
Firefox — с версии 34;
Chrome — с версии 39;
Internet Explorer 11.
Единственным браузером, который поддерживает только протокол SSL 3.0, остается Internet Explorer 6.

Альтернативой протоколу SSL 3.0 являются более безопасные протоколы, такие как TLS 1.0, TLS 1.1 или TLS 1.2.

Учтем эти претензии и настроим сервер!
Редактируем файл /etc/apache2/mods-available/ssl.conf:

задаем SSLCipherSuite без использования шифра RC4 (строка содержит !RC4):
«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 !RC4»;
включаем SSLHonorCipherOrder:

добавляя после all ключи -SSLv2 -SSLv3, разрешаем использовать все протоколы, кроме SSL версий 2 и 3:

Выполняем проверку с помощью консольного клиента OpenSSL (клиент для Windows доступен здесь):

Строка sslv3 alert handshake failure подтверждает, что протокол SSL версии 3 на сервере отключен.

Проверяем конфигурацию сервера:

Перезагружаем сервер:

Проверяем сервер с помощью SSL Server Test заново:

Оценка A!!! Voila!

Для получения оценки A+ сервер должен поддерживать strict HTTP Transport Security (HSTS) и TLS Fallback SCSV.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *