ТЕСТ HTTPS И ТЕСТ SSL-СЕРВЕРА

ТЕСТ HTTPS И ТЕСТ SSL-СЕРВЕРА

Tips and Tutorials

Posted by Christian Weiß on January 26, 2018

This free online service performs
a deep analysis of the configuration of any SSL web server on the public Internet.
Please note that the information you submit here is used only to provide you
the service. We don’t use the domain names or the test results, and we never will.

SSL Report v2.2.0

Время на прочтение

Привет! В последнее время было обнаружено довольно много уязвимостей, связанных с SSL, поэтому мне захотелось сделать перевод статьи, в которой собран список инструментов для тестирования SSL, TLS и различных уязвимостей. В статье довольно много терминов, поэтому хочу извиниться, если что-то перевела не совсем корректно. Если вы можете предложить лучший вариант перевода, пожалуйста, напишите в личные сообщения.


ТЕСТ HTTPS И ТЕСТ SSL-СЕРВЕРА

Вы часто вынуждены решать проблемы, связанные с SSL / TLS, если работаете веб-инженером, веб-мастером или системным администратором.

Существует множество онлайн-инструментов для работы с SSL-сертификатами, тестирования слабых мест в протоколах SSL/TLS, но когда дело доходит до тестирования внутренней сети на основе URL, VIP, IP, тогда они вряд ли будут полезны.


ТЕСТ HTTPS И ТЕСТ SSL-СЕРВЕРА

Для диагностики ресурсов внутренней сети, вам необходимо отдельное программное обеспечение/инструменты, которые вы можете установить в своей сети и провести необходимую проверку.

Возможны различные сценарии, например:

Следующие инструменты будут полезны в устранении подобных проблем.

Здравствуйте уважаемое сообщество,

Выбрав фреймворк Django для разработки корпоративного сайта, я столкнулся с проблемой тестирования его работы по протоколу HTTPS при использовании встроенного веб-сервера. Несмотря на поддержку работы с безопасными соединениями в Django, поставляемый в комплекте веб-сервер не обслуживает запросы по HTTPS.

Первое, что пришло в голову, поднять полноценный веб-сервер (например, Apache) для разработки и тестирования, но что если не хочется отказываться от удобств и простоты использования встроенного веб-сервера Django?

Поиск в Интернете по запросу «django + https» выдал несколько статей датированных 2009 и 2012 годами, в которых для тестирования HTTPS предлагается использовать stunnel.

Данная статья является инструкцией полученной в результате настройки stunnel под среду разработки Django на Ubuntu 12.04.1 LTS x64.

Программная среда

  • Python 2.7.3
  • virtualenv 1.8.4
  • Django 1.5.1

Установка и настройка stunnel

Для начала необходимо установить stunnel (версии 4.х, ветка 3.х более не поддерживается):

$ sudo apt-get install stunnel4

Базовые настройки stunnel находятся в файле /etc/default/stunnel4:

В нашем случая изменения вносить не нужно, так как stunnel будет использоваться лишь в связке с веб-сервером Django на время разработки и тестирования.

А вот то, что понадобится обязательно — сертификат X.509.

Генерация сертификата

В руководстве stunnel указаны следующие требования к сертификату:

Для генерации приватного ключа и сертификата воспользуемся OpenSSL (должен присутствовать в Ubuntu 12.04.1):

$ cd ~
$ openssl genrsa -out private.key
$ openssl req -new -x509 -key private.key -out stunnel.cert -days 365

Во время генерации необходимо ввести данные о владельце (коды стран для удобства).

На выходе получаем два файла private.key и stunnel.cert, которые необходимо объединить и добавить пустые строки согласно шаблона:

Теперь создадим файл конфигурации для туннеля.

Файл конфигурации

Создадим файл конфигурации в домашнем каталоге:

$ cd ~
$ vim stunnel.conf

В нашем случая он имеет следующее содержимое:

Давайте проверим, что получилось?

Создание туннеля и запуск веб-сервера

Переменная окружения HTTPS=on необходима для корректной симуляции HTTPS в Django, без нее метод request.is_secure() будет возвращать False.

Проверим «прослушиваемые» порты:

$ netstat –an

Туннель успешно создан — stunnel слушает на всех внешних интерфейсах порт 8443, а веб-сервер локальные соединения на порту 8000.

Для «уничтожения» туннеля подойдет команда killall:

12530 pts/1 00:00:00 stunnel4
12531 pts/1 00:00:00 stunnel4
12532 pts/1 00:00:00 stunnel4
12533 pts/1 00:00:00 stunnel4
12534 pts/1 00:00:00 stunnel4
12535 ? 00:00:00 stunnel4

$ killall stunnel4

Проверка работы

Откроем в браузере любой существующий на сервере URL, используя https:// вместо http://. При первом запросе мы должны увидеть предупреждения о ненадежном сертификате, т.к. подписан он был нами лично, а не аккредитованным центром (Certificate Authority). После подтверждения исключения безопасности, перед нами появится запрошенная страница, полученная по протоколу HTTPS.

Заключение

В результате мы получаем возможность отладки работы проекта Django с использованием HTTPS без необходимости держать полноценный веб-сервер.

Хочу отметить, что на сайте stunnel присутствует версия для Windows и Android, так что попытаться собрать подобную схему можно и на этих операционных системах.

Всем большое спасибо за внимание и надеюсь, что данная информация будет кому-то полезной.

Под конец перечислю те преимущества и недостатки, которые отметил для себя, а также приведу список ссылок.

Преимущества

+ не требуется установка полноценного веб-сервера;
+ возможность построения туннелей для нескольких Django веб-серверов;
+ использование преймуществ встроенного веб-сервера.

Недостатки

— это не полноценный веб-сервер с поддержкой HTTPS;
— необходимость в установке и настройки дополнительного ПО;
— фактически веб-сервер Django обрабатывает HTTP запросы (см. логи ниже).

Материалы

Инструмент для проверки установки SSL сертификатов от DigiCert — еще один прекрасный инструмент, который позволит вам преобразовать DNS в IP адрес, узнать кто выдал сертификат, его серийный номер, длину ключа, алгоритм подписи, SSL-шифрование, поддерживаемое сервером и срок действия сертификата.

Другие инструменты онлайн-проверки

Проверка уязвимости POODLE:

Проверка уязвимости FREAK:

Проверка уязвимости LogJam:

Проверка уязвимости SHA-1:

P. S. Приглашаем в наше Хостинг Кафе. Работают и активно развиваются 6 сайтов для поиска хостинговых услуг:

Проверяйте SSL, TLS и шифрование

Проверка SSL необходима для обеспечения правильного отображения параметров сертификата. Существует множество способов проверки SSL-сертификатов. Проверка с помощью инструментов в сети позволяет получить полезную информацию, находящуюся ниже. Она также поможет вам выявить угрозы на ранних стадиях, а не после получения жалобы клиента.

Я получил ряд вопросов после своей последней публикации «Усиление защиты Apache. Гид по безопасности» о проверке TLS и SSL. В этой статье я расскажу вам о некоторых полезных инструментах для проверки SSL-сертификатов в сети.

Qualys SSL Labs

Позволяет оценить ваш сайт в отношении безопасности SSL-сертификата. Предоставляет очень подробную техническую информацию. Советую системным администраторам, аудиторам, инженерам по интернет-безопасности для выявления и наладки “слабых” параметров.

OpenSSL

OpenSSL is a versatile command line tool that can be used for a large variety of tasks related to Public Key Infrastructure (PKI) and HTTPS (HTTP over TLS).

The Docker Image

The docker image creates a self-signed certificate (‘/CN=localhost’) for test purpose and start the s_server with the self-signed certificate. The internal port: 8443.
I use the container to verfiy and test a SSL/TSL connection with OpenSSL to my HTTPS clients. Sometimes I receive some error like ‘SSL Handshake Failure’ and the docker image helps me to analyze the HTTPS problems.

Clone the reporitory wechris/docker-openssl-sslcheck

“Docker Images with OpenSSL The s_server command implements a generic SSL/TLS server which listens for connections on a given port using SSL/TLS.”

# install openssl and some helpful tools

## And create self-signed ssl keys for test purposes (bind mount proper ones to running container)

# http and httpd ports. You can map these to whatever host ports you want with -p

# Default env vars for httpd. You can override these at runtime if you want to

Build the docker image:

docker build wechris/opensslserver

and start the container:

docker run 8443:8443 opensslserver wechris/opensslserver

If everything went right, we will see a privacy error, this is because we’re using a self-signed certificate (created in the preparation)


ТЕСТ HTTPS И ТЕСТ SSL-СЕРВЕРА

After passing the privacy error, we will see the response from the openssl s_server internal webserver:


ТЕСТ HTTPS И ТЕСТ SSL-СЕРВЕРА

OpenSSL comes with a client tool that can be used to connect to a secure server.
The s_client command implements a generic SSL/TLS client which connects to a remote host using SSL/TLS. It is a very useful diagnostic tool for SSL servers.

It is possible to access the container to test the HTTPS server or another one with the OpenSSL s_client inside the container

docker opensslserver /bin/sh

Test the docker image with the OpenSSL openssl s_client -connect localhost:8443

GlobalSign SSL Check

Проверка конфигурации SSL от GlobalSign предоставляет очень подробную информацию о веб-сервере и SSL. Инструмент ставит баллы в зависимости от данных сертификата, поддержки протоколов, обмена ключами и надёжности шифра. Это незаменимый инструмент при настройке нового безопасного URL или проведении аудита. Обязательно попробуйте!

HowsMySSL

Этот инструмент отличается от остальных. Он позволяет проверить клиента (браузер) и получить оценку состояния по следующим параметрам:

Для проверки клиента, просто зайдите на HowsMySSL в браузере.

COMODO SSL Analyzer

SSL анализатор от COMODO позволяет провести анализ https URL и быстро получить отчеты по различным параметрам, включая

Инструменты с открытым кодом для устранения проблем с SSL/TLS

DeepViolet — это написанный на языке Java инструмент анализа SSL/TLS, доступный в бинарном коде, вы также можете скомпилировать его из исходного кода.

Если вы ищете альтернативу SSL Labs для использования во внутренней сети, то DeepViolet будет хорошим выбором. Он сканирует следующее:

SSL Diagnos

Быстро оценивает надежность SSL на вашем веб-сайте. S SL Diagnos анализирует протокол SSL, алгоритмы шифрования, уязвимости Heartbleed, BEAST.

Используется не только для HTTPS, можно проверить стабильность SSL для SMTP, SIP, POP3 и FTPS.

SSLyze

SSLyze — это библиотека Python и инструменты командной строки, которые подключаются к конечной точке SSL и осуществляют сканирование для обнаружения любой пропущенной конфигурации SSL/TLS.

Сканирование через SSLyze – это быстро, потому что осуществление проверки распределяется между несколькими процессами. Если вы разработчик или хотите интегрировать в ваше существующее приложение, то у вас есть возможность записать результат в формате XML или JSON.

SSLyze также доступен в Kali Linux.

Не стоит недооценивать OpenSSL — один из самых мощных автономных инструментов, доступных для Windows или Linux для выполнения различных задач, относящихся к SSL, таких как верификация, генерация CSR, конвертация формата сертификатов и др.

SSL Labs Scan

Любите Qualys SSL Labs? Вы не одиноки – мне тоже нравится.

Если вы ищете инструмент командной строки для SSL Labs для автоматического или массового тестирования, то SSL Labs Scan будет, несомненно, полезен.

SSL Scan

SSL Scan совместим с Windows, Linux и Mac. S SL Scan помогает быстро определить следующие показатели:

Если вы работаете над проблемами, связанными с шифрованием, то SSL Scan станет полезным инструментом для ускорения поиска и устранения неполадок.

Test SSL

Как видно из названия, TestSSL — это инструмент командной строки, совместимый с Linux и других ОS. Он проверяет все важнейшие показатели и показывает, что в порядке, а что нет.

Testing protocols via sockets except SPDY+HTTP2

SSLv2 not offered (OK)
SSLv3 not offered (OK)
TLS 1 offered
TLS 1.1 offered
TLS 1.2 offered (OK)
SPDY/NPN h2, spdy/3.1, http/1.1 (advertised)
HTTP2/ALPN h2, spdy/3.1, http/1.1 (offered)

Testing ~standard cipher categories

Testing server preferences

Has server cipher order? yes (OK)
Negotiated protocol TLSv1.2
Negotiated cipher ECDHE-ECDSA-CHACHA20-POLY1305-OLD, 256 bit ECDH (P-256)
Cipher order
TLSv1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA AES256-SHA DES-CBC3-SHA
TLSv1.1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA AES256-SHA
TLSv1.2: ECDHE-ECDSA-CHACHA20-POLY1305-OLD ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-CHACHA20-POLY1305-OLD
ECDHE-RSA-CHACHA20-POLY1305 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES128-SHA256 AES128-GCM-SHA256 AES128-SHA AES128-SHA256
ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES256-SHA384 AES256-GCM-SHA384
AES256-SHA AES256-SHA256

Как можно видеть, он охватывает большое количество уязвимостей, шифровальных предпочтений, протоколов и др.

TestSSL.sh также доступен в Docker-образе.

TLS Scan

Вы можете собрать TLS-Scan из исходного кода или загрузить бинарный код для Linux/OSX. Он извлекает информацию из сертификата с сервера и выводит следующие показатели в формате JSON:

Он поддерживает протоколы TLS, SMTP, STARTTLS и MySQL. Вы также можете интегрировать результаты в анализатор логов, например, такие как Splunk, ELK.

Cipher Scan

Быстрый инструмент для анализа того, какие типы шифрования поддерживаются на веб-сайтах с использованием протокола HTTPS. Cipher Scan также дает возможность отображать результаты в формате JSON. Это оболочка, использующая команды пакета OpenSSL.

SSL Audit

SSL Audit — это инструмент с открытым исходным кодом для проверки сертификата и поддержки протоколов, шифрования и стандартов на основе SSL Labs.

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

Заглядывайте на VPS.today — сайт для поиска виртуальных серверов. 1500 тарифов от 130 хостеров, удобный интерфейс и большое число критериев для поиска самого лучшего виртуального сервера.

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.

Free SSL Server Test

Проверка SSL от SSL Shopper — подойдет для быстрой проверки типа сервера, срока действия, SAN и цепочки доверия. Вы сможете оперативно найти ошибку в цепочке сертификата или узнать, что он не работает должным образом. Инструмент отлично подходит для устранения неполадок в работе.

Оставьте комментарий

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