- PVSM.RU - https://www.pvsm.ru -
Рассказываем об инструменте для конфигурации SSL, который разработали в Mozilla.
Под катом — о его возможностях и других утилитах для настройки сайтов.
[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:
Например, в первом случае генератор использует алгоритм шифрования 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]. После сканирования системы выдает набор рекомендаций для повышения безопасности интернет-ресурса.
Фото — sebastiaan stam [26] — Unsplash
Еще одна полезный инструмент — Firefox Monitor [27]. Она отслеживает последние утечки данных и посылает уведомления, если информация с какого-либо сайта попала в руки хакеров. Таким образом, администраторы получают возможность оперативно принять меры, минимизировать ущерб и сделать так, чтобы история не повторилась в будущем.
Наши публикации из блогов и социальных сетей:
Как защитить виртуальный сервер в интернете [28]
Зачем нужен мониторинг? [29]
Получение OV и EV сертификата — что нужно знать? [30]Mobile-first индексация с первого июля — как проверить свой сайт? [31]
F.A.Q. по частному облаку от 1cloud [32]Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов [33]
Есть мнение: технология 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
Нажмите здесь для печати.