SSL/TLS-сертификат
SSL/TLS-сертификат — это цифровой документ, удостоверяющий подлинность веб-сайта или другого сетевого ресурса и обеспечивающий шифрование данных между клиентом (например, браузером) и сервером. Сертификат подтверждает, что к ресурсу подключился именно тот сервер, к которому пользователь намеревался обратиться, и позволяет установить защищённое соединение по протоколам SSL (Secure Sockets Layer) и его преемнику TLS (Transport Layer Security). Без действующего сертификата современные браузеры блокируют доступ к сайту или выводят предупреждение о небезопасном соединении.
Принцип работы
SSL/TLS-сертификат базируется на асимметричной криптографии. Сервер обладает парой ключей: закрытым (приватным) и открытым (публичным). Открытый ключ включается в сертификат и распространяется всем клиентам. Закрытый ключ хранится на сервере в тайне.
Процесс установки защищённого соединения (рукопожатие, или handshake) включает несколько этапов:
- Приветствие: клиент отправляет серверу список поддерживаемых версий TLS и наборов шифров.
- Предоставление сертификата: сервер отправляет клиенту свой сертификат, содержащий открытый ключ и информацию о владельце.
- Проверка сертификата: клиент проверяет сертификат на целостность, срок действия и подлинность с помощью цепочки доверия (см. ниже). Если сертификат недействителен, соединение прерывается.
- Обмен ключами: клиент генерирует сеансовый ключ (симметричный), шифрует его открытым ключом сервера и отправляет обратно. Только сервер может расшифровать этот ключ своим закрытым ключом.
- Установка защищённого канала: после этого обе стороны используют сеансовый ключ для симметричного шифрования всех последующих данных в рамках сессии.
Структура сертификата
Стандартный SSL/TLS-сертификат (по версии X.509) содержит следующие поля:
- Версия (обычно v3).
- Серийный номер — уникальный идентификатор, присвоенный удостоверяющим центром.
- Алгоритм подписи — например, SHA-256 с RSA.
- Издатель — название удостоверяющего центра (CA), выпустившего сертификат.
- Срок действия — даты начала и окончания действия.
- Субъект — владелец сертификата (доменное имя, организация, страна и т. д.).
- Открытый ключ — сам ключ и алгоритм, для которого он предназначен.
- Расширения — дополнительные атрибуты, например, список допустимых доменов (SAN), использование ключа, политики сертификата.
- Цифровая подпись — подпись издателя, удостоверяющая подлинность всех данных.
Типы сертификатов
По уровню проверки (валидации)
- DV (Domain Validation) — проверка только права управления доменом. Самый простой и дешёвый тип. Выдаётся автоматически после подтверждения доступа к почте на домене или DNS-записи. Подходит для блогов, личных сайтов.
- OV (Organization Validation) — дополнительно проверяется существование организации и её реквизиты. Выдаётся после ручной проверки документов. Используется для коммерческих сайтов.
- EV (Extended Validation) — наиболее строгая проверка, включающая юридический статус, физический адрес и право на ведение деятельности. В браузерах ранее отображался зелёный адрес с названием организации. В настоящее время (с 2023 года) большинство браузеров отказались от специального отображения EV, но проверка остаётся.
По количеству доменов
- Однодоменные — действуют только на один домен (например,
example.com). - Wildcard — действуют на домен и все его поддомены одного уровня (например,
*.example.comпокрываетmail.example.com,blog.example.com). - Multi-Domain (SAN/UCC) — позволяют указать несколько разных доменов (например,
example.com,example.org,example.net) в одном сертификате.
По способу получения
- Платные — выпускаются коммерческими удостоверяющими центрами (CA) и имеют полную поддержку.
- Бесплатные — выпускаются некоммерческими CA, такими как Let's Encrypt. Срок действия обычно 90 дней, автоматическое продление. Подходят для большинства сайтов.
- Самоподписанные — создаются владельцем сервера без обращения к CA. Не доверяются браузерами по умолчанию, используются для тестирования или внутренних сетей.
Цепочка доверия
Браузеры и операционные системы содержат предустановленный список доверенных корневых удостоверяющих центров. Сертификат считается действительным, если можно построить цепочку доверия от него до одного из корневых сертификатов:
- Корневой сертификат — самоподписанный, хранится в хранилище доверенных корневых центров.
- Промежуточный сертификат — подписан корневым, используется для выпуска конечных сертификатов, чтобы не раскрывать корневой ключ.
- Конечный сертификат — сертификат сайта, подписанный промежуточным.
Если сертификат сайта подписан неизвестным или отозванным центром, браузер выдаёт ошибку.
Срок действия и отзыв
Сертификаты имеют ограниченный срок действия (обычно от 90 дней до 2 лет). После истечения срока соединение становится небезопасным. Сертификат может быть отозван досрочно, если закрытый ключ скомпрометирован, организация сменила владельца или домен больше не используется. Отзыв проверяется через CRL (Certificate Revocation List) или OCSP (Online Certificate Status Protocol).
Применение
SSL/TLS-сертификаты используются:
- Веб-сайты (HTTPS) — защита передачи паролей, данных банковских карт, личной переписки.
- Электронная почта (SMTPS, IMAPS, POP3S) — шифрование почтового трафика.
- VPN и удалённый доступ (IPsec, OpenVPN) — аутентификация серверов.
- Корпоративные приложения — защита внутренних API и веб-интерфейсов.
- Подпись кода — подтверждение подлинности программного обеспечения.
Критика и уязвимости
- Сложность управления — для крупных организаций требуется централизованное управление сертификатами, иначе возможны просрочки и утечки ключей.
- Зависимость от CA — компрометация удостоверяющего центра (например, DigiNotar в 2011 году) позволяет злоумышленникам выпускать поддельные сертификаты для любых сайтов.
- Let's Encrypt и автоматизация — бесплатные сертификаты снизили барьер входа, но также упростили создание фишинговых сайтов с HTTPS.
- Устаревшие протоколы — SSL 2.0 и 3.0, а также ранние версии TLS (1.0, 1.1) признаны небезопасными и отключены в современных браузерах. Рекомендуется использовать TLS 1.2 и 1.3.
- Проблемы с отзывом — механизмы CRL и OCSP не всегда работают оперативно, и браузеры могут не проверять статус сертификата в реальном времени.
Регулирование в России
В Российской Федерации деятельность по выпуску SSL/TLS-сертификатов регулируется Федеральным законом «Об электронной подписи» и нормативными актами Минцифры. С 2022 года в рамках импортозамещения активно развивается Национальный удостоверяющий центр (НУЦ) Минцифры России, который выпускает сертификаты для государственных информационных систем и сайтов госорганов. Для коммерческих организаций использование сертификатов от иностранных CA (например, Let's Encrypt, GlobalSign, DigiCert) не запрещено, но рекомендуется переход на российские удостоверяющие центры, аккредитованные Минцифры. С 1 сентября 2023 года вступили в силу требования об обязательном использовании сертификатов НУЦ для сайтов госорганов и подведомственных организаций.
Источники
- RFC 5246 — The Transport Layer Security (TLS) Protocol Version 1.2
- RFC 8446 — The Transport Layer Security (TLS) Protocol Version 1.3
- X.509 — ITU-T Recommendation
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»
- Приказ Минцифры России от 30.12.2022 № 943 «Об утверждении порядка использования сертификатов ключей проверки электронных подписей»
- Документация Let's Encrypt — Certificate Authority
- Материалы Национального удостоверяющего центра Минцифры России
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →