- PVSM.RU - https://www.pvsm.ru -

Как настроить HTTPS — поможет SSL Configuration Generator

Рассказываем об инструменте для конфигурации SSL, который разработали в Mozilla.

Под катом — о его возможностях и других утилитах для настройки сайтов.

Как настроить HTTPS — поможет SSL Configuration Generator - 1 [1]
Фото — Lai Man Nung [2] — Unsplash

Зачем нужен генератор

Прежде чем перейти к рассказу о возможностях инструмента, поговорим о его назначении. При работе с HTTPS шифрование применяется в четырех случаях [3]: во время обмена ключами, в SSL-сертификатах [4], при пересылке сообщений и составлении хеш-суммы (дайджеста [5]).

В каждом из них используются различные наборы алгоритмов, о которых договариваются клиент и сервер. Они выбирают ассиметричный шифр для «рукопожатия», симметричный шифр для кодирования сообщений и алгоритм хеширования для дайджеста.

Например, шифронабор ECDHE-ECDSA-CHACHA20-POLY1305 означает, что обмен ключами происходит по протоколу Диффи — Хеллмана на эллиптических кривых (ECDHE [6]). При этом используются эфемерные ключи [7] (одноразовые) для установки только одного соединения. Центр сертификации подписал сертификат при помощи алгоритма ECDSA [8] (Elliptic Curve Digital Signature Algorithm), а для шифрования сообщений применяется поточный алгоритм ChaCha20 [9]. За их целостность отвечает POLY1305, вычисляющий [10] 16-байтный аутентификатор.

Полный список всех доступных комбинаций алгоритмов можно найти на wiki-страничке Mozilla [11].

Для настройки криптографических методов, используемых сервером, в сети есть специальные инструменты. Такую функциональность имеет SSL Configuration Generator [12], разработанный в Mozilla.

Что он собой представляет

В Mozilla предлагают три рекомендуемые конфигурации для серверов, использующих TLS:

  • Современная — для работы с клиентами, использующими TLS 1.3 без обратной совместимости.
  • Промежуточная — рекомендуемая конфигурация для большинства серверов.
  • Устаревшая — доступ к сервису осуществляется с помощью старых клиентов или библиотек, таких как IE8, Java 6 или OpenSSL 0.9.8.

Например, в первом случае генератор использует алгоритм шифрования AES128/256 [13], алгоритм хеширования SHA256/384 [14] и режим работы симметричных блочных шифров GCM [15]. Вот пример шифронабора: TLS_AES_256_GCM_SHA384.

Во втором случае число используемых шифров гораздо больше, поскольку многие из них исключили [16] из TLS 1.3 для повышения безопасности. Плюс в шифронаборе TLS 1.3 не описывается [17] тип сертификата и механизм обмена ключами. Поэтому в промежуточной конфигурации имеются протокол Диффи — Хеллмана с эфемерными ключами и RSA [18].

С учетом этих требований SSL Configuration Generator строит конфигурационный файл (OpenSSL). При построении можно выбрать необходимое серверное программное обеспечение: Apache, HAProxy, MySQL, nginx, PostgreSQL и еще пять других. Вот пример современной конфигурации для Apache:

# generated 2019-07-04, https://ssl-config.mozilla.org/#server=apache&server-version=2.4.39&config=modern
# requires mod_ssl, mod_socache_shmcb, mod_rewrite, and mod_headers
<VirtualHost *:80>
    RewriteEngine On
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile      /path/to/signed_cert_and_intermediate_certs
    SSLCertificateKeyFile   /path/to/private_key

    # enable HTTP/2, if available
    Protocols h2 http/1.1

    # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
    Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>

# modern configuration, tweak to your needs
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

Генерируемые конфигурации можно использовать в своем проекте, нужно лишь отредактировать пути сертификата и секретного ключа и загрузить настройки. Однако, как говорит [19] один из резидентов Hacker News, важно обратить внимание на версию сервера, чтобы получить правильные результаты. В частности, вывод для nginx 1.0 и nginx 1.4 значительно отличается. Также есть мнение [20], что в некоторых случаях придется вручную подправить часть сгенерированных шифронаборов, чтобы сохранить обратную совместимость и получить высокую оценку в бенчмарках для сканирования сайтов.

Какие еще утилиты помогут с защитой сайтов

В портфолио Mozilla есть несколько утилит, которые помогут проверить надежность ресурса после конфигурирования SSL.

Первая — это Mozilla Observatory [21]. Изначально компания разрабатывала инструмент для проверки защищенности своих собственных доменов. Теперь он доступен всем вместе с исходным кодом [22]. Observatory сканирует сайты на самые популярные уязвимости, среди них: потенциально опасные cookies [23], XSS-уязвимости [24] и редиректы [25]. После сканирования системы выдает набор рекомендаций для повышения безопасности интернет-ресурса.

Как настроить HTTPS — поможет SSL Configuration Generator - 2
Фото — sebastiaan stam [26] — Unsplash

Еще одна полезный инструмент — Firefox Monitor [27]. Она отслеживает последние утечки данных и посылает уведомления, если информация с какого-либо сайта попала в руки хакеров. Таким образом, администраторы получают возможность оперативно принять меры, минимизировать ущерб и сделать так, чтобы история не повторилась в будущем.

Наши публикации из блогов и социальных сетей:

Как настроить HTTPS — поможет SSL Configuration Generator - 3 Как защитить виртуальный сервер в интернете [28]
Как настроить HTTPS — поможет SSL Configuration Generator - 4 Зачем нужен мониторинг? [29]
Как настроить HTTPS — поможет SSL Configuration Generator - 5 Получение OV и EV сертификата — что нужно знать? [30]

Как настроить HTTPS — поможет SSL Configuration Generator - 6 Mobile-first индексация с первого июля — как проверить свой сайт? [31]
Как настроить HTTPS — поможет SSL Configuration Generator - 7 F.A.Q. по частному облаку от 1cloud [32]

Как настроить HTTPS — поможет SSL Configuration Generator - 8 Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов [33]
Как настроить HTTPS — поможет SSL Configuration Generator - 9 Есть мнение: технология DANE для браузеров провалилась [34]

Автор: 1cloud

Источник [35]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/https/323060

Ссылки в тексте:

[1] Image: https://habr.com/ru/company/1cloud/blog/459002/

[2] Lai Man Nung: https://unsplash.com/photos/6TkWJkbC49U

[3] в четырех случаях: https://www.smashingmagazine.com/2017/06/guide-switching-http-https/

[4] SSL-сертификатах: https://1cloud.ru/services/ssl

[5] дайджеста: https://dic.academic.ru/dic.nsf/ruwiki/278392

[6] ECDHE: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%94%D0%B8%D1%84%D1%84%D0%B8_%E2%80%94_%D0%A5%D0%B5%D0%BB%D0%BB%D0%BC%D0%B0%D0%BD%D0%B0_%D0%BD%D0%B0_%D1%8D%D0%BB%D0%BB%D0%B8%D0%BF%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D1%85

[7] эфемерные ключи: https://ru.wikipedia.org/wiki/%D0%AD%D1%84%D0%B5%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BB%D1%8E%D1%87

[8] ECDSA: https://ru.wikipedia.org/wiki/ECDSA

[9] ChaCha20: https://www.cryptopp.com/wiki/ChaCha20

[10] вычисляющий: https://cr.yp.to/mac.html

[11] wiki-страничке Mozilla: https://wiki.mozilla.org/Security/Server_Side_TLS#Cipher_names_correspondence_table

[12] SSL Configuration Generator: https://ssl-config.mozilla.org/

[13] AES128/256: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard

[14] SHA256/384: https://ru.wikipedia.org/wiki/SHA-2#SHA-256

[15] GCM: https://ru.wikipedia.org/wiki/Galois/Counter_Mode

[16] исключили: https://en.wikipedia.org/wiki/Cipher_suite#TLS_1.3_handshake

[17] не описывается: https://wiki.openssl.org/index.php/TLS1.3

[18] RSA: https://ru.wikipedia.org/wiki/RSA

[19] говорит: https://news.ycombinator.com/item?id=9355636

[20] есть мнение: https://habr.com/ru/post/325230/#comment_10144438

[21] Mozilla Observatory: https://observatory.mozilla.org/

[22] с исходным кодом: https://github.com/mozilla/http-observatory

[23] потенциально опасные cookies: https://infosec.mozilla.org/guidelines/web_security#cookies

[24] XSS-уязвимости: https://infosec.mozilla.org/guidelines/web_security#x-xss-protection

[25] редиректы: https://infosec.mozilla.org/guidelines/web_security#http-redirections

[26] sebastiaan stam: https://unsplash.com/photos/RChZT-JlI9g

[27] Firefox Monitor: https://monitor.firefox.com/

[28] Как защитить виртуальный сервер в интернете: https://1cloud.ru/blog/kak-zaschitit-server-v-internete?utm_source=habrahabr&utm_medium=cpm&utm_campaign=ssl&utm_content=blog

[29] Зачем нужен мониторинг?: https://1cloud.ru/blog/zachem-nujen-monitoring?utm_source=habrahabr&utm_medium=cpm&utm_campaign=ssl&utm_content=blog

[30] Получение OV и EV сертификата — что нужно знать?: https://1cloud.ru/blog/poluchenie-ssl-sertifikatov-ov-ev?utm_source=habrahabr&utm_medium=cpm&utm_campaign=ssl&utm_content=blog

[31] Mobile-first индексация с первого июля — как проверить свой сайт?: https://www.facebook.com/1cloudru/photos/a.1526614574327724/2361028900886283

[32] F.A.Q. по частному облаку от 1cloud: https://www.facebook.com/1cloudru/photos/a.1526614574327724/2362462034076303/

[33] Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов: https://habr.com/ru/company/1cloud/blog/458204/

[34] Есть мнение: технология DANE для браузеров провалилась: https://habr.com/ru/company/1cloud/blog/454322/

[35] Источник: https://habr.com/ru/post/459002/?utm_source=habrahabr&utm_medium=rss&utm_campaign=459002