Проверка SSL-сертификата
Инструкция о том, как проверить SSL-сертификат.
Введение
Каждый день мы пользуемся различными онлайн-сервисами: банковскими приложениями, мессенджерами, проверяем электронную почту, заказываем доставку еды, совершаем покупки билетов. Обезопасить работу с этими сервисами помогают SSL-сертификаты, устанавливая зашифрованное соединение между клиентом и сервером по TLS/SSL протоколу, более подробно о котором рассказано в одной из наших статей.
При помощи SSL-сертификата наш браузер убеждается в подлинности ресурса, к которому мы обращаемся, а значит можно безопасно передавать чувствительные данные, такие как логины и пароли или информацию с банковских карт.
Работа SSL-сертификата
Технически SSL-сертификат, представляет из себя файл, выданный центром сертификации, содержащий внутри техническую информацию:
- серийный номер
- данные об издателе
- данные о владельце
- срок действия
- алгоритмы шифрования
Такой файл помещается в определенный каталог на сервере, предоставляющий доступ к своим сервисам. При обращении к такому серверу устанавливается HTTPS-соединение. HTTPS ー это расширение протокола HTTP, поддерживающее установку шифрованных соединений. Схема взаимодействия между сервером и клиентом выглядит следующим образом:
- Клиентское устройство подключается к серверу, защищенному SSL-сертификатом и запрашивает идентификацию.
- Сервер отправляет клиенту копию установленного сертификата.
- На стороне клиента начинается проверка, является ли сертификат подлинным. Происходит запрос в центр сертификации, если сертификат заслуживает доверия, сервер получает подтверждение.
- Клиент и сервер согласуют симметричный ключ, используемый в дальнейшем на весь сеанс связи.
- Происходит передача и получение данных между клиентом и сервером, пока соединение не будет прервано, например, пользователь не покинет сайт.
Может показаться, что описанная последовательность действий занимает много времени, однако это не так. При стабильном подключении к интернету на эту процедуру уходят считанные миллисекунды, это незаметно для пользователя. Установленное соединение защищено от прослушивания и модификации трафика.
Для чего проверять SSL-сертификат
Наличие сертификата обеспечивает не только защищенное соединение, но и лучшее ранжирование со стороны поисковых систем, а значит, важно убедиться в его актуальности и корректности установки. Сделать это можно несколькими способами: вручную или при помощи интерактивных веб-инструментов.
Ручная проверка
Когда мы переходим на любой сайт, нужно обратить внимание на адресную строку браузера. Если там видим замочек, далее перед адресом сайта буквы https, значит такое соединение безопасно, на картинке ниже показан пример. Если сертификат недействителен или присутствуют какие-либо несоответствия, браузер предупредит пользователя о возможной угрозе безопасности.
Нажав на замок, можно узнать больше информации об используемом сертификате.
Проверка при помощи онлайн-сервисов
Существует несколько популярных инструментов для экспресс проверки установленного сертификата, которые выдают наглядный результат. Расскажем о некоторых их них.
SSL Checker
Этот инструмент примечателен тем, что при проверке можно указать порт, на котором работает проверяемый сервис, хотя для большинства он будет по умолчанию 443. А также позволяет настроить уведомления об истечении срока действия сертификата, при этом обещает не заниматься рекламными рассылками на указанную почту.
SSL Labs
Сервис предоставляет подробную информацию об используемом сертификате, подсвечивая слабые места. Интересная особенность ー отчет об имитации установки соединений с разных браузеров и их множеством версий.
SeoLik
Еще один ресурс для получения базовой информации об SSL-сертификате, таких как период действия, алгоритм подписи, серийный номер. Помимо описанного функционала, здесь можно найти множество полезных инструментов для проведения аудита сайта.
SSL Shopper
Очень наглядное средство проверки, которое позволяет быстро диагностировать проблемы с SSL-сертификатом, убедиться в его правильной установке, надежности, и отсутствии выдаваемых пользователям ошибок.
Wormly Web Server Tester
Проверка от Wormly показывает не только типовые результаты тестирования, но и дает оценку в процентах насколько SSL-сертификат удовлетворяет параметрам контроля. Очень полезной может быть информация о влиянии на производительность веб-сервера, которую данный сервис предоставляет.
Immuni Web
Тестирование направлено на выявление широкого спектра проблем безопасности, связанных как с самим SSL-сертификатом, так и с программным обеспечением сервера. Анализирует правильность выполнения требования стандартам безопасности таких как PCI DSS, HIPAA и NIST.
DigiCert SSL Certificate Checker
Данный сервис помимо базовой информации об SSL-сертификате показывает название ПО, используемого в качестве веб-сервера, а также доступные алгоритмы и протоколы шифрования.
Автоматизация проверки SSL-сертификата
Для администраторов проверять огромное количество сертификатов вручную не очень удобно. Процесс можно автоматизировать. Скачиваем с GitHub готовый скрипт:
wget https://raw.githubusercontent.com/o-pod/security/master/ssl-check-revoc.sh
Теперь необходимо дать скрипту право на исполнение:
chmod a+x ssl-check-revoc.sh
Можно вывести информацию о сертификате интересующего домена командой:
./ssl-check-revoc.sh -v mydomain.com
Вместо mydomain.com нужно указать конкретный домен.
Данный скрипт можно использовать в рамках автоматической проверки, интегрируя его со своей системой мониторинга, либо с системой мониторинга Zabbix.
Проверка уязвимостей
Безопасность соединения ー комплекс мер защиты данных, который состоит из нескольких составляющих: SSL-сертификат, ПО сервера, доступные алгоритмы шифрования и некоторые из них могут содержать известные уязвимости. Существуют инструменты для проверки наличия уязвимостей, расскажем о наиболее известных.
Проверка уязвимости POODLE
POODLE (Padding Oracle On Downgraded Legacy Encryption) ー уязвимость найдена в 2014 году, она связана с использованием протокола SSLv3 и позволяет злоумышленнику провести захват и модификацию трафика. При ее обнаружении следует принять все меры по ее устранению. Один из способов узнать о ее наличии ー воспользоваться онлайн-сервисом. Все что требуется ーуказать адрес проверяемого ресурса и нажать Submit. На картинке ниже представлен образец отчета по сайту, который не содержит данной уязвимости.
Проверка уязвимости FREAK
FREAK (Factoring RSA Export Keys) ー уязвимость, которая была обнаружена в 2015, связанная с экспортом RSA-ключей. Эта уязвимость позволяет получить доступ к данным, передаваемым между сервером и клиентом, путем манипуляции криптографическими ключами. Для проверки необходимо скачать проект с GitHub:
git clone https://github.com/drwetter/testssl.sh.git
Перейти в папку с репозиторием:
cd testssl.sh/
Запустить скрипт с указанием проверяемого домена, в примере это mydomain.com:
./testssl.sh -F mydomain.com
Если скрипт выдал результат not vulnerable (OK), значит эта уязвимость отсутствует.
Проверка уязвимости LogJam
LogJam была обнаружена в 2015 году и очень похожа на описанную выше FREAK, с той лишь разницей, что вместо манипуляций со сменой шифров RSA, здесь происходит откат протокола Диффи-Хеллмана до экспортного уровня. А использование 512-битного ключа в сочетании с использованием неуникальных начальных простых чисел давало шанс подобрать ключ и расшифровать трафик. Проверить сайт можно при помощи онлайн-сервиса, нужно указать имя проверяемого домена и нажать кнопку Perform SSL check. Если в строке, начинающейся на «LOGJAM (CVE-2015-4000)» будет результат not vulnerable (OK) — уязвимости нет.
О сертификатах НЦС
Национальный удостоверяющий центр — специализированная информационная система, отвечающая за создание сертификатов безопасности. Он входит в состав инфраструктуры, которая оказывает государственные и муниципальные услуги в цифровом формате.
При необходимости получить сертификат можно на сайте Госуслуг. Успешность выдачи документа зависит от результатов проверки связи инициатора запроса с сайтом.
Проверить наличие сертификатов Минцифры можно при помощи сервиса Яндекс.Вебмастер, перейдя в меню Инструменты → Проверка наличия сертификата НУЦ. В строке поиска ввести интересующий адрес сайта и нажать кнопку Проверить.
Заключение
Эта инструкция пригодится разработчикам и владельцам сайтов для обеспечения базовой защиты информации, а также пользователям, желающих убедиться в безопасности взаимодействия с тем или иным ресурсом.