/Как проверить статус сертификата?
Как проверить статус сертификата?

Использование сертификата можно условно разделить на два этапа

  • проверка статуса сертификата
  • если статус «действителен», использование сертификата для выполнения криптографических операций.

Каждый раз при обращении к сертификату программа «КриптоАРМ» проверяет его статус. Существует несколько типов проверки статуса сертификатов:

  1. По локальному списку отзыва сертификатов (СОС)
  2. По списку отозванных сертификатов из удостоверяющего центра
  3. С использованием Revocation Provider
  4. В OCSP службе
  5. С помощью списка доверенных сертификатов
  6. В режиме «Квалифицированная подпись»

Статус сертификата проверяется по следующим параметрам:

Параметры проверки

Пояснение 
Проверка срока действия сертификата Проверяется, истек или нет срок действия цифрового сертификата 
Проверка корректности электронной подписи выдавшего сертификат Удостоверяющего центра Для заверения вашего личного цифрового сертификата используется электронная подпись Удостоверяющего центра, в котором вы получили свой сертификат. Чтобы статус вашего сертификата был "Действителен", необходимо иметь установленный корневой сертификат и актуальный список отзыва сертификатов.
Построение цепочки (до корневого сертификата УЦ) Доверие к личному сертификату пользователя определяется на основе цепочки сертификатов. Начальным элементом цепочки является корневой сертификат УЦ, хранящийся в хранилище Доверенные корневые центры сертификации
Проверка действительности сертификата по спискам отзыва сертификатов По умолчанию при работе с сертификатами в «КриптоАРМ» их статус проверяется по СОС, установленному в хранилище Промежуточные центры сертификации. Но также возможно выполнить проверку сертификата по СОС, полученному из УЦ, или с помощью Revocation Provider.

Начиная с версии 5.3, статус отзыва не проверяется для личных сертификатов пользователя
С помощью списка доверенных сертификатов Чтобы проверить статус сертификата с помощью списка доверенных сертификатов необходимо отметить "Использовать CTL для проверки пути сертификации" в настройках по умолчанию в разделе Параметры верификации сертификатов". 

Возможны 3 статуса действительности сертификатов, выданных УЦ:

  "действителен"
  "недействителен"
  "неизвестен"

Сертификат является действительным, если:

  1. Подпись Удостоверяющего центра под сертификатом корректна.
  2. Срок действия сертификата не истек.
  3. Сертификат используется для тех целей, для которых был создан.
  4. Сертификат не отозван и его действие не приостановлено.

Чтобы проверить статус сертификата:

  1. В дереве элементов главного окна выберите раздел Сертификаты. Откройте нужное вам хранилище, в котором выберите сертификат для проверки.
  2. В контекстном меню объекта или на панели инструментов выберите пункт Проверить статус
    • По локальному списку отзыва сертификатов (списку, установленному в хранилище Списки отзыва сертификатов);
    • По списку отзыва из Удостоверяющего центра (в онлайн-режиме по локальной сети);
    • С использованием Revocation Provider;
    • Проверить в OCSP службе.

При проверке статуса сертификата могут возникнуть следующие сообщения:

Сообщение

Пояснение
Истёк срок действия сертификата Сертификат, которым подписаны данные, просрочен
Невозможно построить цепочку для сертификата
Невозможно построить цепочку сертификатов от клиентского сертификата до сертификата доверенного УЦ
Произошла ошибка при обновлении СОС Настройки системы безопасности не предполагают обновлений СОС; библиотека CPCRLUpdate.dll отсутствует или не зарегистрирована 
Произошла ошибка при открытии хранилища  Нет прав доступа к хранилищу сертификатов
СОС найден, однако возник сбой при его обработке  СОС хранится в неизвестном формате
СОС найден, однако он нуждается в обновлении Дата обновления СОС истекла, необходимо обновить СОС в УЦ, для того чтобы сертификат бы действительным
Ошибка при сопоставлении СОС и сертификата Ошибка в процессе поиска клиентского сертификата в последнем выпущенным УЦ СОС 
Сертификат содержится в СОС Сертификат недействителен (отозван в УЦ по какой-либо причине и занесен в СОС);

Чтобы упростить процедуру проверки статуса сертификата, вы можете в настройках выполнения операций указать параметры проверки сертификатов. Для выбранных сертификатов в процессе работы всегда автоматически будет использоваться указанный вами способ проверки.

Проверка статуса сертификата по локальному СОС

«КриптоАРМ» поддерживает способ проверки статуса цифрового сертификата по локальному списку отзыва сертификатов (СОС), периодически обновляемого Удостоверяющим центром согласно Регламенту данного УЦ.

Чтобы проверить статус сертификата, выполните следующие шаги:

  1. В дереве элементов главного окна выберите раздел Сертификаты - нужное вам хранилище, в котором выберите сертификат (или группу сертификатов) для проверки.
  2. В контекстном меню объекта или на панели инструментов выберите пункт Проверить статус - по локальному СОС.

Статусы сертификатов

Статус Пояснение
"действителен" Выполняются все условия действительности сертификата
"недействителен" Срок действия сертификата истек:
  • Есть непросроченный СОС и в нем находится указанный сертификат
  • Не строится цепочка сертификации
  • Сертификат имеет некорректную ЭП
  • Не удалось получить СОС из УЦ (если выполняется обязательная проверка по СОС, полученному из УЦ)
"неизвестен" Статус, возможный только для сертификатов, которым не требуется проверка по СОС, полученному из УЦ:
  • отсутствует СОС
  • СОС просрочен

Возможные ошибки обновления списка отозванных сертификатов (СОС)

Ошибка Объяснение
0x80092004 (Cannot find object or property.)
  • Не найден издатель проверяемого сертификата.
  • Файл СОС не соответствует проверяемому сертификату.
0x80092007 (The specified certificate is self signed.) Проверяемый сертификат - самоподписанный. Нет смысла проверять самоподписанный сертификат по СОС, т.к. СОС подписывается тем же самым самоподписанным сертификатом. 

Проверка статуса сертификата по СОС из УЦ

«КриптоАРМ» позволяет проверять статус цифрового сертификата в режиме получения (и их участия в процедурах проверок) СОС в онлайн режиме из CDP и/или сетевого справочника системы.
Для использования возможности получения СОС из УЦ необходимо соблюдение следующих условий:
  1. В проверяемом сертификате должно присутствовать расширение «Точка распространения СОС / CRL Distribution Point (CDP)». При этом если значений (URL’ов) в расширении несколько, то программа «КриптоАРМ» будет пытаться скачать СОС по всем адресам до первого успешного скачивания. Поддерживаются часто используемые протоколы - "ftp", "http" и "file".
  2. По одной из точек распространения СОС (оптимально, если по первой) можно скачать СОС с помощью веб-браузера, например Microsoft Internet Explorer. При этом, не вводя никакой дополнительной информации (имени пользователя, пароля, перехода по ссылкам).
    Протестировать можно следующим образом:
    • закрыть все окна Internet Explorer (т.к. они могут хранить параметры доступа к серверу);
    • запустить Internet Explorer и вставить в поле адреса URL из точки распространения СОС;
    • нажать Enter, после чего Internet Explorer должен сразу предложить сохранить скачанный файл СОС;
    • сохранить СОС в файл и открыть его проводником Windows (должна без ошибок открыться форма просмотра СОС).

Чтобы проверить статус сертификата:

  • В дереве элементов главного окна выберите раздел Сертификаты - нужное вам хранилище, в котором выберите сертификат (или группу сертификатов) для проверки.
  • В контекстном меню объекта или на панели инструментов выберите пункт Проверить статус - по СОС из УЦ.

Статус Пояснение
"действителен" Выполняются все условия действительности сертификата
"недействителен"
  • Срок действия сертификата истек
  • Есть непросроченный СОС и в нем находится указанный сертификат
  • Не строится цепочка сертификации
  • Сертификат имеет некорректную ЭП
"неизвестен" Статус, возможный только для сертификатов, которым не требуется проверка по СОС, полученному из УЦ:
  • отсутствует СОС
  • СОС просрочен
  • не удалось получить СОС из УЦ

Возможные ошибки обновления СОС

Ошибка Объяснение
0x800C0005 Ошибка скачивания СОС по сети, например, файл не найден или нет доступа.
0x80092004 (Cannot find object or property.)
  • Не найден издатель проверяемого сертификата.
  • Файл СОС не соответствует проверяемому сертификату.
0x80092007 (The specified certificate is selfsigned.) Проверяемый сертификат - самоподписанный. Нет смысла проверять самоподписанный сертификат по СОС, т.к. СОС подписывается тем же самым самоподписанным сертификатом

Проверка статуса сертификата с помощью Revocation Provider

При работе с сертификатами в «КриптоАРМ» их статус можно проверить с помощью Revocation Provider (если на компьютере пользователя установлен «КриптоПро Revocation Provider»).

Чтобы проверить статус сертификата:
  1. В дереве элементов главного окна выберите раздел Сертификаты - нужное вам хранилище, в котором выберите сертификат (или группу сертификатов) для проверки.
  2. В контекстном меню объекта или на панели инструментов выберите пункт Проверить статус - с использованием Revocation Provider.

Статус Пояснение
"действителен" Выполняются все условия действительности сертификата
"недействителен"
  • Срок действия сертификата истек
  • Из OCSP Службы получен ответ "Сертификат отозван" или сертификат включен в список отзыва, опубликованный УЦ (в зависимости от типа Revocation Provider: Microsoft или «КриптоПро»)
  • Не строится цепочка сертификации
  • Сертификат имеет некорректную ЭП
"неизвестен" Статус, возможный только для сертификатов, которым не требуется проверка по СОС, полученному из УЦ:
  • отсутствует СОС
  • СОС просрочен
  • не удалось получить СОС из УЦ

Проверка статуса сертификата в OCSP службе

«КриптоАРМ» поддерживает способ проверки статуса цифрового сертификата в OCSP службе (при установленной лицензии на модуль OCSP). При проверке статуса сертификата по OCSP формируется запрос в службу OCSP и его отправка по адресу, прописанному в сертификате или указанному в настройках групповых политик.
Если сертификат не имеет атрибута, содержащего адрес службы OCSP, то параметры доступа к службе берутся из текущей установленной по умолчанию настройке.
Если сертификат содержит адрес службы или несколько адресов, то параметры доступа в служб (такие как настройки прокси-сервера или сертификат аутентификации) берутся из OCSP профиля. При этом программа будет повторно пытаться получить OCSP ответ для каждого адреса OCSP до тех пор, пока не будет получен ответ со статусом (сертификат действителен или сертификат недействителен).
Если ни по одному из адресов, указанных в сертификате, не был получен ответ со статусом сертификата, то проверяется статус сертификата в службе, адрес которой указан в настройке.

Чтобы проверить статус сертификата:

  • В дереве элементов главного окна выберите раздел Сертификаты - нужное вам хранилище, в котором выберите сертификат (или группу сертификатов) для проверки.
  • В контекстном меню объекта или на панели инструментов выберите пункт Проверить статус - В службе OCSP.

Статус Пояснение
"действителен" Выполняются все условия действительности сертификата
"недействителен"
  • Срок действия сертификата истек
  • Из OCSP Службы получен ответ "Сертификат отозван" 
  • Не строится цепочка сертификации
  • Сертификат имеет некорректную ЭП
"неизвестен" Ошибка доступа к службе OCSP

Проверка сертификата с помощью списка доверенных сертификатов

Чтобы проверить статус сертификата:

  1. Необходимо отметить "Использовать CTL для проверки пути сертификации" в настройке верификации сертификатов.
  2. После произведенных действий все сертификаты, корневой сертификат которых не включен в список доверенных сертификатов, станут недействительными.

Статус Пояснение
"действителен" Выполняются все условия действительности сертификата
"недействителен"
  • Срок действия сертификата истек
  • Есть непросроченный СОС, и в нем находится указанный сертификат 
  • Не строится цепочка сертификации
  • Сертификат имеет некорректную ЭП
  • Не удалось получить СОС из УЦ (если выполняется обязательная проверка по СОС, полученному из УЦ)
"неизвестен" Ошибка доступа к службе OCSP

  1. Была ли статья полезна?

    Нет
    Спасибо!

    Ваш ответ поможет сделать
    документацию лучше

    Расскажите, что не так со статьей