- Проверка сервера Linux на поддержку TLS
- Требования
- Проверка поддержки TLS с помощью Openssl
- Проверка поддержки TLS с помощью Nmap
- Заключение
- Настройка протоколов TLS на Windows Server
- Проблемы версий протоколов SSL и TLS и совместимости приложений
- Как правильно настроить TLS для разного типа приложений?
- Отключение SSL для Powershell и других .NET приложений
- Включение TLS 1.2 для WinHTTP
- Настройка с помощью IISCrypto
- 10 онлайн-инструментов для проверки SSL, TLS и последних уязвимостей
- Проверяйте SSL, TLS и шифрование
- Symantec SSL Toolbox
- Wormly Web Server Tester
- DigiCert SSL Certificate Checker
- SSL Shopper
- GlobalSign SSL Check
- Qualys SSL Labs
- Free SSL Server Test
- COMODO SSL Analyzer
- SSL Checker
- HowsMySSL
- Другие инструменты онлайн-проверки
Проверка сервера Linux на поддержку TLS
TLS — это аббревиатура от Transport Layer Security. TLS облегчает безопасную связь между компьютерами в Интернете. На момент написания этой статьи TLS 1.3 является последней версией. Эта инструкция объясняет, как вы можете проверить, какие версии TLS поддерживает ваш сервер или веб-сайт работающие на сервере Linux. А также какой алгоритм шифрования используется.
Требования
- Сервер с операционной системой Linux
- Пользователь с привилегиями sudo
Проверка поддержки TLS с помощью Openssl
Openssl — это инструмент с открытым исходным кодом для реализации безопасных коммуникаций в Интернете. Инструмент openssl доступен во всех основных дистрибутивах Linux.
Если вдруг openssl не установлен на вашем компьютере или сервере Linux, вы можете установить его следующим образом.
В дистрибутивах на базе Ubuntu/Debian:
В дистрибутивах на базе CentOS/Red Hat:
Для того чтобы проверить поддержку TLSv1.3 на вашем сервере или веб-сайте, выполните следующую команду.
$ sudo openssl s_client -connect setiwik.ru:443 -tls1_3
Примечание: Не забудьте изменить проверяемый домен ‘setiwik.ru’, на свой домен.
Кроме того, вы можете заменить -tls1_3 на:
- -tls1_2 для TLSv1.2
- -tls1_1 для TLSv1.1
- -tls1 для TLSv1
Если вы видите цепочку сертификатов, а также сведения об успехе в выходных данных, то указанная версия TLS поддерживается. Если нет, то указанная версия TLS не поддерживается.
Цепочка сертификатов TLS
Версия и шифрования TLS
Вы так же можете проверить поддерживается ли конкретное шифрование. Это можно сделать следующим образом.
$ openssl s_client -cipher ‘AES256-GCM-SHA384’ -connect setiwik.ru:443
Как и прежде, обратите внимание на цепочку сертификатов и успешный ответ, который подтверждает, что указанное шифрование поддерживается.
Проверка поддержки TLS с помощью Nmap
Nmap — это инструмент, который в основном используется для поиска доступных сервисов и портов в сети. Выполните приведенную ниже команду, чтобы установить Nmap.
В дистрибутивах на базе Ubuntu/Debian:
В дистрибутивах на базе CentOS/Red Hat:
После установки вы можете использовать инструмент nmap для тестирования вашего сервера или веб-сайта на поддержку TLS. Делается это следующим следующим образом.
Ниже приведен пример ответа, показывающий версию TLS и шифрования, которые поддерживает мой сервер.
Проверка поддержки TLS с помощью инструмента nmap
Заключение
В этом статье мы рассмотрели, как проверить поддерживает ли сервер или веб-сайт TLS с помощью openssl и nmap. Тест TLS может сказать вам, насколько сильна безопасность вашего сайта. Надеемся, что эта информация будет полезной для вас.
Настройка протоколов TLS на Windows Server
Написать эту статью подоткнул тот факт, что Windows Server 2016, установленный из коробки, почему-то не имеел TLS протокол, включенный как основный по умолчанию, в то время как SSL3.0 был включен. Приводит это к разным последствиям, как для безопасности, так и для функционирования различных сервисов и приложений.
Проблемы версий протоколов SSL и TLS и совместимости приложений
Для начала рассмотрим проблемы связанные с версиями SSL протоколов:
- SSL v2 небезопасен, устарел и не рекомендуется для использования. См. атаку DROWN по этому протоколу.
- SSL v3 небезопасен и устаревший инструмент. См. атаку POODLE.
- TLS v1.0 также является устаревшим протоколом, но на практике он все же оказывается необходим. Его основная слабость (BEAST) была смягчена в современных браузерах.
- TLS v1.1 и TLS v1.2 оба не имеют известных проблем с безопасностью, но только v1.2 предоставляет современные криптографические алгоритмы.
SSL 2.0, SSL 3.0 и TLS 1.0 настоятельно рекомендуется отключить, так как большинство стандартов безопасности их уже давно не поддерживают (например, PCI DSS 3.1). Рекомендуемые протоколы TLS v1.1 и TLS v1.2 с актуальными алгоритмами шифрование и снятия хэшей.
Но и это оказывается не полной правдой. Дело в том, что использование протоколов зависит не только от системных настроек, но и от того, как написаны приложения. Например, я выяснил, что .NET приложения используют свои собственные настройки безопасности. Также известно, что если включить поддержку TLS 1.2 на SQL Server (например, применив патч https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server), установленный на Windows Server 2012, то приложения .NET и JAVA потеряют возможность подключаться к SQL.
Также давно известна проблема с вэб приложениями, написанными на базе интерфейса WinHTTP API. После включения TLS 1.1/1.2 они также перестают подключаться.
Службы IIS и ADFS при этом прекрасно используют новые протоколы, следуя системным настройкам. Более того, к сервисам Azure вы не сможете подключиться через TLS 1.2, но при этом, как выяснилось, Powershell даже в Windows Server 2016 использует SSL3.0 и TLS 1.0, несмотря на то, что согласно системной настройке они отключены.
Как правильно настроить TLS для разного типа приложений?
Начнем с того, что для всего есть свои реестровые ключи, однако нужно точно понимать, какой тип приложения вы хотите настроить, чтобы избежать проблем. Начну с того, что полный список доступных системных ключей в Windows 10/Windows Server 2016/2019 доступен по ссылке https://docs.microsoft.com/ru-ru/windows-server/security/tls/tls-registry-settings. Изменяя их, вы можете настроить IIS, ADFS и прочие службы. Однако, эти ключи не влияют на работу приложений .NET (и в частности, Powershell) и WinHTTP!
В чем же дело? Дело в библиотеках. IIS и ADFS используют Schannel — поставщик поддержки безопасности (SSP), реализующий стандартные протоколы проверки подлинности SSL, TLS и DTLS Internet. Интерфейс поставщика поддержки безопасности (SSPI) является интерфейсом API, используемым системами Windows для выполнения функций, связанных с безопасностью, включая проверку подлинности. В Windows все функции SSPI выполняет библиотека Schannel.dll, в которой реализованы все протоколы и наборы шифрования.
Итак, ветки реестра, которые нас интересуют:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols — включение и отключение протоколов для Schannel.dll, как клиентских, так и серверных. Для каждого протокола — своя ветка;
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers — здесь можно изменить список и порядок просмотра (это важно!) наборов шифрования;
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp — в параметре DefaultSecureProtocols настраиваются протоколы для приложений на WinHttp API;
- HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Cryptography\ECCParameters — настройка эллиптических кривых для криптографии;
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5 — отключение MD5 шифрования для маркеров безопасности.
Теперь пройдем по конкретным примерам и настройкам.
Отключение SSL и TLS 1.0 протоколов на системном в Schannel подробно описано в документации Microsoft. Отключить небезопасные можно как через реестр, так и с помощью Powershell.
В этой же статье ниже описано, как отключить небезопасные алгоритмы шифрования, такие как RC4.
Отключить небезопасные наборы шифрования (cipher suites) можно через параметр Functions в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002 .
Этот параметр является многострочным текстовым значением, который просто содержит построчный список наборов (один на строку). Удалите ненужные строки.
Порядок проверки наборов шифрования также удобно изменять с помощью групповых политик. Это также описано в документации.
Ну и наконец, для управления доступными наборами появились командлеты Powershell. Например, с помощью Disable-TlsCipherSuite вы можете отключить неугодный набор.
Отключение SSL для Powershell и других .NET приложений
Как я уже писал, системные настройки выше не влияют на Powershell сессии. Проверить, какие протоколы сейчас активны в вашей Powershell сессии, можно выполнив команду
Если в выводе команды увидите ssl30, tls, то их надо отключить.
Для этого в Windows Srver 2012 / Windows 2016 используйте ключ реестра
С помощью самого Powershell это можно изменить одной командой:
New-ItemProperty -path ‘HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319’ -name ‘SchUseStrongCrypto’ -value ‘1’ -PropertyType ‘DWord’ -Force | Out-Null
Включение TLS 1.2 для WinHTTP
Если коротко, то в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp нужно добавить параметр DefaultSecureProtocols, который в 16-ричном виде будет содержать сумму значений всех протоколов, которые необходимо включить. Например, для включения TLS 1.1 и 1.2 надо добавить значение 0x00000A00, которое будет суммой значений TLS 1.1 (0×00000200) и TLS 1.2 (0×00000800).
Готовый патч от Microsoft для исправления этого также можно скачать по ссылке KB3140245
Настройка с помощью IISCrypto
IISCrypto — это бесплатная утилита, не требующая установки, которая позволяет включить/выключить многие настройки Schannel через графический интерфейс, .NET и WinHTTP она не настраивает.
Скачать её можно с сайта разработчика без регистрации.
10 онлайн-инструментов для проверки SSL, TLS и последних уязвимостей
Привет! В последнее время было обнаружено довольно много уязвимостей, связанных с SSL, поэтому мне захотелось сделать перевод статьи, в которой собран список инструментов для тестирования SSL, TLS и различных уязвимостей. В статье довольно много терминов, поэтому хочу извиниться, если что-то перевела не совсем корректно. Если вы можете предложить лучший вариант перевода, пожалуйста, напишите в личные сообщения.
Проверяйте SSL, TLS и шифрование
Проверка SSL необходима для обеспечения правильного отображения параметров сертификата. Существует множество способов проверки SSL-сертификатов. Проверка с помощью инструментов в сети позволяет получить полезную информацию, находящуюся ниже. Она также поможет вам выявить угрозы на ранних стадиях, а не после получения жалобы клиента.
Я получил ряд вопросов после своей последней публикации «Усиление защиты Apache. Гид по безопасности» о проверке TLS и SSL. В этой статье я расскажу вам о некоторых полезных инструментах для проверки SSL-сертификатов в сети.
Symantec SSL Toolbox
Проверка CSR — очень важно проверить CSR перед отправкой для подписи запроса. Вы сможете удостовериться в том, что CSR содержит все требуемые параметры, например, CN, DN, O, OU, алгоритм и др.
Проверка установки сертификата — после установки всегда полезно удостовериться в том, что сертификат действителен и содержит необходимую информацию. Этот онлайн инструмент позволит вам проверить CN, SAN, название организации, OU, город, серийный номер, тип применяемого алгоритма, длину ключа и подробности о цепочке сертификата.
Wormly Web Server Tester
Тестирование web сервера от Wormly позволяет получить подробный обзор параметров ссылки. Обзор включает в себя данные о сертификате (CN, срок действия, цепочка сертификата), шифровании, длине открытого ключа, безопасности повторного согласования, протоколах типа SSLv3/v2, TLSv1/1.2.
DigiCert SSL Certificate Checker
Инструмент для проверки установки SSL сертификатов от DigiCert — еще один прекрасный инструмент, который позволит вам преобразовать DNS в IP адрес, узнать кто выдал сертификат, его серийный номер, длину ключа, алгоритм подписи, SSL-шифрование, поддерживаемое сервером и срок действия сертификата.
SSL Shopper
Проверка SSL от SSL Shopper — подойдет для быстрой проверки типа сервера, срока действия, SAN и цепочки доверия. Вы сможете оперативно найти ошибку в цепочке сертификата или узнать, что он не работает должным образом. Инструмент отлично подходит для устранения неполадок в работе.
GlobalSign SSL Check
Проверка конфигурации SSL от GlobalSign предоставляет очень подробную информацию о веб-сервере и SSL. Инструмент ставит баллы в зависимости от данных сертификата, поддержки протоколов, обмена ключами и надёжности шифра. Это незаменимый инструмент при настройке нового безопасного URL или проведении аудита. Обязательно попробуйте!
Qualys SSL Labs
Позволяет оценить ваш сайт в отношении безопасности SSL-сертификата. Предоставляет очень подробную техническую информацию. Советую системным администраторам, аудиторам, инженерам по интернет-безопасности для выявления и наладки “слабых” параметров.
Free SSL Server Test
Производит проверку вашей https ссылки и отображает следующую информацию, которую при желании можно скачать в PDF-формате:
- Совместимость PCI DSS
- Соответствие принципам NIST
- Размер DH
- Поддержка протоколов
- Поддержка шифров
- Откат TLS соединения
- Поддержка повторного согласования
- Основные наборы шифров
- Контент третьих лиц
COMODO SSL Analyzer
SSL анализатор от COMODO позволяет провести анализ https URL и быстро получить отчеты по различным параметрам, включая
- Серийный номер
- Отпечаток
- Действительность SSL-сертификата
- Эмитент
- Поддержка протокола (SSL/TLS)
- Защита от атак Downgrade
- Безопасность повторного согласования (по инициативе сервиса или клиента)
- Сжатие
- Session tickets
- Активные наборы шифрования
SSL Checker
Что действительно хорошо в SSL Checker, так это то, что инструмент позволяет настроить напоминание (за 30 дней) об истечении срока действия сертификата. Это отлично, мне кажется, что бесплатно эту услугу больше нигде получить нельзя. Кроме того, инструмент позволяет выполнить базовую проверку таких параметров, как:
- Цепочка сертификата
- Корневой сертификат
- Алгоритм подписи
- Отпечаток
- Элементы цепочки
- SAN
HowsMySSL
Этот инструмент отличается от остальных. Он позволяет проверить клиента (браузер) и получить оценку состояния по следующим параметрам:
- Поддерживаемая версия протокола
- Сжатие
- Поддержка session ticket
- Поддерживаемое шифрование
Для проверки клиента, просто зайдите на HowsMySSL в браузере.
Другие инструменты онлайн-проверки
Проверка уязвимости POODLE:
- https://shaaaaaaaaaaaaa.com/
Я считаю, что перечислил все бесплатные онлайн-инструменты для проверки параметров SSL-сертификата и получения достоверной технической информации для проведения аудита и обеспечения безопасности веб-приложений. Если вам понравилось, поделитесь с друзьями.
P. S. Приглашаем в наше Хостинг Кафе. Работают и активно развиваются 6 сайтов для поиска хостинговых услуг: