
Когда пользователь открывает сайт через HTTPS, браузер и сервер согласовывают параметры защищённого соединения. Сервер подтверждает свою подлинность цифровым сертификатом, после чего стороны формируют сеансовые ключи и начинают зашифрованный обмен HTTP-запросами и ответами. Перехваченный трафик без этих ключей практически невозможно прочитать или незаметно изменить.
В повседневной речи этот процесс до сих пор называют SSL-шифрованием, а цифровой сертификат – SSL сертификатом. На самом деле современные сайты используют TLS. SSL был его предшественником и больше не считается безопасным протоколом.
Чем отличаются SSL, TLS и HTTPS
SSL, или Secure Sockets Layer, был ранним протоколом защиты сетевых соединений. Все его версии устарели и не должны использоваться современными сайтами. Названия «SSL сертификат» и «SSL-шифрование» остаются распространёнными в основном по привычке.
TLS, или Transport Layer Security, – актуальный протокол, который создаёт защищённый канал между клиентом и сервером. Во время TLS handshake стороны выбирают версию протокола и алгоритмы, проверяют сервер и формируют ключи. Сегодня в основном используются TLS 1.2 и TLS 1.3.
HTTPS – это передача обычного HTTP-трафика внутри TLS-соединения. HTTP определяет, как браузер и сервер обмениваются запросами и ответами, сертификат помогает проверить сервер, а TLS защищает сам канал связи.
Какую роль выполняет SSL сертификат
SSL сертификат – это цифровой документ с данными о домене, открытым ключом, сроком действия, информацией об издателе и его цифровой подписью. Он не шифрует весь трафик самостоятельно. Его главная задача – помочь браузеру проверить, что открытый ключ действительно принадлежит серверу нужного домена.
Уровень проверки зависит от типа сертификата. DV-сертификат подтверждает контроль над доменом, но не юридическую идентичность владельца. При выпуске OV-сертификата дополнительно проверяется организация. Шифрование в обоих случаях полноценное, разница заключается именно в объёме проверенных данных.
Открытый ключ содержится в сертификате, а соответствующий закрытый ключ хранится на сервере. Сервер доказывает, что владеет этой парой ключей, а цифровая подпись центра сертификации подтверждает подлинность сертификата.
Браузеры и операционные системы содержат списки доверенных корневых сертификатов. Сертификат сайта связывается с ними через один или несколько промежуточных сертификатов. Если часть этой цепочки отсутствует, сайт может показывать ошибку даже при действующем сертификате домена.
Как происходит TLS handshake между браузером и сервером
TLS handshake проходит до начала основного обмена данными. В TLS 1.2 и TLS 1.3 отдельные детали различаются, но общая последовательность остаётся похожей.
- Браузер отправляет параметры соединения. В сообщении ClientHello передаются поддерживаемые версии TLS, криптографические параметры и служебные данные. Пароли, содержимое форм или готовый сеансовый ключ на этом этапе не отправляются.
- Сервер выбирает параметры и отправляет сертификат. В ответе ServerHello он определяет версию протокола и алгоритмы, передаёт цепочку сертификатов и данные для согласования ключей. Если совместимых параметров нет, соединение прерывается.
- Браузер проверяет сертификат. Он сверяет домен, срок действия, цифровую подпись и цепочку доверия. По возможности также проверяется статус отзыва сертификата. Критическая ошибка приводит к появлению предупреждения об опасном соединении.
- Стороны формируют общий секрет. Браузер и сервер обмениваются криптографическими данными и отдельно вычисляют одинаковый общий секрет, из которого создаются сеансовые ключи. В типичном TLS 1.3 браузер не отправляет серверу готовый секретный ключ, просто зашифрованный открытым RSA-ключом.
- Начинается зашифрованный обмен. После завершения handshake стороны переходят к быстрому симметричному шифрованию HTTP-запросов и ответов. Сеансовые ключи связаны с конкретным соединением, а не со сроком действия сертификата.
Почему TLS использует разные типы шифрования
| Подход | Где используется | Какую задачу решает | Почему не используется самостоятельно |
| Асимметричная криптография | Аутентификация и согласование ключей | Работает с открытым и закрытым ключами, помогает проверить сервер | Требует больше вычислительных ресурсов |
| Симметричная криптография | Основной обмен данными после handshake | Быстро шифрует трафик и контролирует его целостность | Сторонам сначала нужно безопасно получить общие ключи |
Открытый ключ можно передавать, а закрытый должен оставаться у владельца. Асимметричная криптография помогает серверу подтвердить владение ключом и принять участие в согласовании общего секрета. Для постоянной передачи большого объёма данных она требовала бы слишком много ресурсов.
После handshake согласованными сеансовыми ключами защищаются страницы, HTTP-заголовки, cookies, формы и ответы API. Симметричное шифрование работает значительно быстрее и также позволяет обнаружить изменение данных во время передачи.
Какие данные защищает HTTPS
HTTPS защищает логины, пароли, платёжные и контактные данные, содержимое форм, cookies, HTTP-заголовки, путь страницы, параметры запроса и ответ сервера. В сети могут оставаться видимыми IP-адреса, время и примерный объём обмена, а иногда и домен. Само содержимое запроса при этом остаётся зашифрованным.
При этом HTTPS не устраняет уязвимости сайта, заражение устройства, фишинг или утечку из базы данных после взлома сервера. Он защищает информацию во время передачи, но не заменяет обновление программного обеспечения, контроль доступа, резервные копии и другие меры безопасности.
TLS-шифрование обеспечивает три основных свойства защищённого соединения:
- Конфиденциальность. Перехваченный трафик выглядит как зашифрованный поток. Без нужных ключей из него нельзя просто прочитать пароль, сообщение или ответ сервера.
- Целостность. TLS позволяет обнаружить изменение данных. Если кто-то попытается подменить реквизиты или добавить код на страницу во время передачи, криптографическая проверка не пройдёт.
- Аутентификация. Браузер проверяет, что сертификат соответствует нужному домену и связан с доверенным центром сертификации. Это снижает риск подключения к серверу, который выдаёт себя за настоящий сайт.
Можно ли перехватить данные, защищённые HTTPS
Сетевой трафик можно записать, но при правильной настройке TLS 1.2 или TLS 1.3 прочитать его без ключей практически невозможно. Владелец обычной публичной Wi-Fi-сети не получает из-за этого доступ к паролям, содержимому форм или открытым страницам.
Реальные риски чаще связаны с просроченным или неправильно установленным сертификатом, устаревшими протоколами, компрометацией сервера, фишингом, вредоносным программным обеспечением и игнорированием предупреждений браузера.
На управляемых корпоративных устройствах трафик иногда проверяется через специально установленный доверенный сертификат. В таком случае система компании сознательно выступает промежуточным звеном для этого устройства.
Как проверить, защищено ли соединение с сайтом
Адрес сайта должен начинаться с https://. Рядом с ним браузер позволяет открыть информацию о соединении и сертификате. Одного значка замка недостаточно: фишинговый сайт также может иметь действующий сертификат для собственного домена.
Внимательно проверьте адрес. В нём не должно быть лишних слов, заменённых букв или необычного доменного окончания. В данных сертификата можно увидеть домены, для которых он выпущен, срок действия и центр сертификации.
После критического предупреждения браузера не вводите пароль, платёжные или личные данные. Сначала проверьте адрес, дату и время на устройстве. Владелец сайта должен исправить сертификат или конфигурацию сервера, а не советовать пользователям обходить предупреждение.
Типичные проблемы SSL/TLS на сайте
Чаще всего проблемы с защищённым соединением связаны не с самим принципом TLS, а с неправильной установкой или несвоевременным обновлением сертификата.
- Просроченный или недействительный сертификат. После окончания срока действия браузеры показывают предупреждение, а приложения и API могут отказаться подключаться. Сертификат нужно обновить и проверить, что сервер использует новый файл.
- Неполная цепочка сертификатов. Без нужного промежуточного сертификата сайт может открываться на одних устройствах и не работать на других. На сервере устанавливают полную цепочку от центра сертификации.
- Несоответствие домену. Сертификат должен охватывать точное имя сайта, включая нужные варианты с www, без него и поддомены.
- Смешанный контент. Если HTTPS-страница загружает изображения, скрипты или стили через HTTP, браузер может их заблокировать. Нужно обновить внутренние URL, шаблоны, записи в базе и внешние подключения.
- Устаревшие протоколы и алгоритмы. SSL, TLS 1.0, TLS 1.1 и слабые алгоритмы следует отключить. Сервер настраивают на TLS 1.2 и TLS 1.3 с учётом версии программного обеспечения и необходимой совместимости.
Для каких сайтов нужен SSL сертификат
HTTPS нужен не только интернет-магазинам. Даже обычная форма обратной связи передаёт имя, email, номер телефона или текст сообщения. TLS также защищает саму страницу от изменения во время доставки пользователю.
SSL сертификат нужен корпоративным сайтам, блогам, личным кабинетам, форумам, API, административным панелям, веб-сервисам и лендингам. HTTP целесообразно оставить только для автоматического перенаправления на HTTPS.
Как выбрать SSL сертификат для сайта
Выбор зависит от количества доменов и поддоменов, уровня проверки и структуры проекта. Более высокая цена не означает автоматически более сильное шифрование.
Сертификат для одного домена подходит для одного основного сайта. Перед заказом нужно проверить, охватывает ли он адреса с www и без него. DV подтверждает контроль над доменом, а OV дополнительно содержит проверенные данные организации.
Wildcard-сертификат удобен, если сайт использует много поддоменов одного уровня, например личный кабинет, почту и раздел поддержки. Такая маска обычно не охватывает вложенные поддомены следующего уровня.
Мультидоменный SAN-сертификат позволяет защитить несколько разных доменов и поддоменов одним документом. На странице SSL сертификатов RX-NAME можно сравнить доступные варианты и выбрать сертификат с учётом структуры сайта.
Часто задаваемые вопросы о SSL/TLS-шифровании
Может ли владелец Wi-Fi видеть данные, переданные через HTTPS?
Он может видеть сам факт соединения, IP-адреса, время и примерный объём трафика. Пароль, содержимое формы и страницы при нормально работающем HTTPS остаются зашифрованными.
Шифрует ли SSL все данные на сайте?
TLS шифрует информацию во время передачи между клиентом и сервером. Данные в базе, файлах, журналах или резервных копиях требуют отдельной защиты.
Чем TLS 1.3 отличается от предыдущих версий?
TLS 1.3 исключил устаревшие механизмы, упростил набор алгоритмов и сократил процесс установления нового соединения. Для совместимости многие серверы одновременно поддерживают TLS 1.2.
Влияет ли SSL сертификат на скорость сайта?
Handshake и шифрование требуют ресурсов, но на современных системах эти затраты обычно невелики. TLS 1.3 и повторное использование сессий дополнительно уменьшают задержку.
Что произойдёт после окончания срока действия сертификата?
Браузеры покажут предупреждение, а некоторые клиенты полностью откажутся подключаться. Сертификат нужно обновить до окончания срока его действия.
Достаточно ли HTTPS для полной защиты сайта?
Нет. Также необходимы обновления CMS и модулей, надёжные пароли, контроль доступа, резервные копии, защита сервера и мониторинг.
Вывод
Во время HTTPS-соединения браузер и сервер согласовывают параметры TLS, проверяют сертификат и формируют ключи. После handshake HTTP-запросы и ответы передаются с применением быстрого симметричного шифрования.
TLS обеспечивает конфиденциальность, целостность данных и аутентификацию сервера, но защищает именно канал связи. Он должен быть частью комплексной безопасности сайта.
Проверьте, открываются ли все страницы через HTTPS без предупреждений. Если сертификата нет, срок его действия заканчивается или он не охватывает нужные домены, просмотрите SSL сертификаты RX-NAME и выберите вариант для структуры своего проекта.
Добавить комментарий