Сертификат открытого ключа ЭЦП
Общее описание
Сертификат открытого ключа, или просто сертификат, — это цифровой документ, удостоверяющий принадлежность открытого ключа конкретному субъекту (пользователю, организации, серверу и т.д.). Он используется в системах асимметричной криптографии для обеспечения:
- аутентификации;
- целостности данных;
- доверия между участниками обмена информацией.
Сертификат подписан удостоверяющим центром (УЦ), что позволяет проверить его подлинность. В России сертификаты могут быть выданы как государственными УЦ (например, Минцифры), так и коммерческими (Контур, СКБ Контур, Код безопасности и др.).
Основные понятия
1. Открытый ключ
- Используется для:
- шифрования данных (только соответствующий закрытый ключ может их расшифровать);
- проверки электронной подписи (подписанной соответствующим закрытым ключом).
- Может свободно распространяться.
2. Сертификат X.509
- Стандарт описания формата цифровых сертификатов.
- Версии: v1, v2, v3 (наиболее распространённая).
3. Удостоверяющий центр (УЦ)
- Организация, выпускающая и подписывающая сертификаты.
- Примеры:
- Государственные: УЦ Минцифры РФ, УЦ ФСБ
- Коммерческие: Контур, СКБ Контур, Код безопасности, Актив
Структура сертификата X.509
| Поле |
Описание |
| Version |
Версия сертификата (v1, v2, v3) |
| Serial Number |
Уникальный номер сертификата |
| Signature Algorithm |
Алгоритм подписи (RSA, ECDSA, ГОСТ Р 34.10) |
| Issuer |
Имя удостоверяющего центра |
| Validity |
Период действия: Not Before / Not After |
| Subject |
Имя владельца сертификата |
| Public Key Info |
Информация об открытом ключе |
| Extensions |
Дополнительные поля (например, Subject Alternative Name, Key Usage, Extended Key Usage) |
| Signature |
Подпись сертификата УЦ |
Типы сертификатов
| Тип |
Назначение |
| SSL/TLS-сертификаты |
Защищённое соединение HTTPS |
| Клиентские сертификаты |
Аутентификация пользователя на сервере |
| Электронная подпись (signing) |
Для создания ЭЦП по ГОСТ |
| Шифрование (encryption) |
Для зашифрования данных |
| Квалифицированный сертификат |
Соответствует требованиям законодательства РФ, используется в ЕГАИС, ЕИС, налоговых системах и др. |
Хранилища сертификатов
1. Windows Certificate Store
- LocalMachine – для всех пользователей системы
- CurrentUser – только для текущего пользователя
- Trusted Root Certification Authorities – доверенные корневые УЦ
- Intermediate Certification Authorities – промежуточные УЦ
- Personal (Личное) – сертификаты с закрытыми ключами
- Trusted People – доверенные лица и субъекты
2. Файловые форматы
| Формат |
Описание |
.cer, .der |
Только открытый ключ (без закрытого) |
.p7b |
Сертификаты без закрытых ключей |
.pfx, .p12 |
Сертификаты + закрытый ключ, защищён паролем |
.crt, .pem |
Открытый ключ в Base64-формате |
Получение сертификата
1. Через запрос CSR (Certificate Signing Request)
- Генерируется пара ключей (закрытый + публичный)
- Создаётся CSR-файл, отправляемый УЦ
- УЦ возвращает готовый сертификат
openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out request.csr
2. Через УЦ напрямую
- В интерфейсе УЦ создаётся ключевая пара
- Сертификат скачивается вместе с закрытым ключом (обычно в формате
.pfx)
Проверка сертификата
1. Через certmgr.msc
- Открыть оснастку "Сертификаты"
- Перейти в "Личное" → "Сертификаты"
- Выбрать нужный сертификат и открыть его
2. Через командную строку
certutil -user -store -my
или
openssl x509 -in certificate.pem -text -noout
3. Проверка целостности цепочки
- Корневой УЦ должен быть в хранилище "Доверенные корневые центры"
- Промежуточные УЦ должны быть установлены
Интеграция с приложениями
| Приложение |
Поддержка сертификатов |
| КриптоАРМ |
Да, через КриптоПро CSP |
| 1С (ЕГАИС, ФНС, ПФР) |
Да |
| СБИС++ |
Да, через PKCS#11 |
| Диадок |
Да |
| ЕГАИС |
Да |
| Web-браузеры |
Да, через Windows Store или файл |
| API-клиенты |
Да, через .pem/.pfx файлы |
Особенности использования в терминальных средах
- При использовании в RDS:
- Убедитесь, что сертификат доступен в контексте каждого пользователя.
- Закрытые ключи не должны быть общими между пользователями.
- Используйте токены с перенаправлением через USB-устройства.
Диагностика проблем с сертификатами
| Проблема |
Возможная причина |
Решение |
| "Не найден закрытый ключ" |
Ключ повреждён или не связан с сертификатом |
Импортировать заново (в случае неверного импорта) или перегенерировать (в случае повреждения) пару ключей |
| "Сертификат истёк" |
Срок действия закончился |
Получить новый сертификат |
| "Сертификат не доверен" |
Отсутствует корневой/промежуточный УЦ |
Установить недостающие сертификаты |
| "Ошибка проверки цепочки" |
Некорректная структура цепочки |
Установить все необходимые промежуточные сертификаты |
Политики безопасности
| Аспект |
Рекомендации |
| Срок действия |
Не более 3 лет для квалифицированных сертификатов |
| Длина ключа |
RSA ≥ 2048 бит, ECDSA ≥ 256 бит, ГОСТ ≥ 256 бит |
| Хранение |
Использовать аппаратные токены или HSM для закрытых ключей |
| Ротация |
Производить замену ключей и сертификатов перед истечением срока |
| Аннулирование |
Использовать CRL или OCSP для проверки статуса сертификата |
Примечание: Все операции с сертификатами должны проводиться в защищённой среде. Некорректное управление сертификатами может привести к потере доверия, компрометации информации и нарушению работы критически важных систем.