База знаний Антона Сидорова
База знаний по аналитике, ИТ архитектуре, API. Документирование. Тесты инструментов.
Project maintained by daemon110282
Hosted on GitHub Pages — Theme by mattgraham
Сертификаты безопасности Security Certificates
Зачем
Нужны для подтверждения подлинности участников информационного взаимодействия, обеспечения защищённого обмена данными и установления доверия между системами.
Сертификат безопасности — это цифровое удостоверение, позволяющее информационным системам проверять, кому они доверяют, с кем устанавливают соединение и каким открытым ключом можно пользоваться.
Use case:
- Аутентификация
- Подтверждение подлинности сервера или клиента
- Проверка, что пользователь подключился к настоящему bank.ru
- Клиентский client certificate для аутентификации систем Mutual TLS (mTLS)
- Шифрование
- Обеспечение конфиденциальности передаваемых данных
- HTTPS-соединение между браузером и сервером
- TLS-сертификаты для защиты каналов связи
- Целостность
- Обнаружение изменения данных при передаче
- Проверка целостности сообщения
- Электронная подпись
- Подтверждение авторства и целостности документа
- Подписание договора электронной подписью
- Доверие
- Подтверждение того, что сертификат выдан доверенным удостоверяющим центром
- Проверка цепочки сертификатов
Термины
- Сертификат - Связь открытого ключа с идентичностью
- Открытый ключ - Используется для проверки подписи или шифрования
- Закрытый ключ - Используется для создания подписи или расшифрования
- CA -Удостоверяющий центр, выпускающий сертификаты
- PKI - Инфраструктура управления ключами и сертификатами
- TLS - Протокол защищённого обмена данными
- mTLS - TLS с взаимной аутентификацией клиента и сервера
- CRL / OCSP -Механизмы проверки отзыва сертификатов
- Self-Signed Certificate (самоподписанный сертификат) — это цифровой сертификат, который подписан собственным закрытым ключом владельца, а не удостоверяющим центром (CA — Certificate Authority). Иными словами, организация или разработчик самостоятельно создаёт сертификат и подписывает его, не обращаясь к внешнему доверенному удостоверяющему центру.
- Проблема заключается в том, что без предварительной настройки доверия клиент не может надёжно подтвердить подлинность сервера.
Типы форматов сертификатов
Структура сертификата
Обычно сертификат X.509 содержит:
- Subject — кому принадлежит сертификат (домен, организация, пользователь).
- Issuer — кто выпустил сертификат (Certificate Authority).
- Public Key — открытый криптографический ключ.
- Serial Number — уникальный серийный номер.
- Validity — период действия.
- Signature Algorithm — алгоритм электронной подписи сертификата.
- CA Signature — подпись удостоверяющего центра.
- Extensions — дополнительные параметры, например назначение ключа и альтернативные имена доменов.
Проверка алгоритма подписи примененного к сертификату
- 1.2.643.7.1.1.3.2, то сертификат сгенерирован по ГОСТ Р 34.10-2012
- Если установлен КриптоПро, то в Алгоритме подписи будет отображаться ГОСТ Р 34.11-2012/34.10-2012 256 бит.
Основные виды сертификатов
| Тип |
Назначение |
Пример использования |
| SSL/TLS |
Защита соединений |
HTTPS на сайте |
| Client Certificate |
Аутентификация клиента |
Взаимодействие между API |
| Code Signing |
Подтверждение подлинности ПО |
Подписание установщика приложения |
| Document Signing |
Электронная подпись документов |
Подписание договора |
| Root CA |
Корневой сертификат доверия |
Основа цепочки доверия |
| Intermediate CA |
Промежуточный сертификат |
Выпуск пользовательских и серверных сертификатов |
Как работает сертификат при HTTPS
Последовательность:
- Браузер подключается к серверу по HTTPS.
- Сервер отправляет браузеру свой TLS-сертификат.
- Браузер проверяет:
- срок действия сертификата;
- соответствие доменного имени;
- подпись удостоверяющего центра;
- цепочку доверия;
- статус отзыва сертификата (если проверка выполняется).
- При успешной проверке устанавливается защищённое TLS-соединение.
- Данные передаются в зашифрованном виде.
Если сертификат недействителен, браузер может показать предупреждение о небезопасном соединении.
Цепочка доверия (Certificate Chain)
Цепочка доверия обычно состоит из трёх уровней:
- Root CA — корневой сертификат, которому доверяет операционная система или браузер.
- Intermediate CA — промежуточный удостоверяющий центр.
- End-Entity Certificate — сертификат конкретного сервера, клиента или пользователя.
Доверие к конечному сертификату устанавливается через проверку всей цепочки до доверенного корневого сертификата.