Использование функции X509ValidateCertificate для проверки регистрационного свидетельства C#

Здравствуйте!

В Правилах проверки подлинности электронной цифровой подписи говорится о проверке регистрационного свидетельства ЭЦП (https://adilet.zan.kz/rus/docs/V1500012864). Там 7 пунктов. Пять из них обязательны по умолчанию.

Допустим были скачаны корневой и промежуточный сертификаты с сайта https://pki.gov.kz/ и установлены в системное хранилище Windows. Был подписан файл, в результате чего получили ЭЦП. После проверки подписи методом VerifyData переходим к проверке регистрационного свидетельства.

В документах про метод X509ValidateCertificate() написано следующее:
“Осуществляет проверку сертификата: проверка срока действия, построение цепочки сертификатов, проверка отозванности по OCSP или CRL.”

Правильно ли я понимаю, что с помощью данного метода осуществляются только проверки пунктов 1, 2 и 5 из Правил проверки подлинности электронной цифровой подписи, а именно:

  • Проверка срока действия регистрационного свидетельства. (В том числе сроков действия корневого и промежуточного сертификатов)
  • Проверка регистрационного свидетельства на отозванность
  • Проверка построения корректной цепочки от проверяемого регистрационного свидетельства до доверенного корневого регистрационного свидетельства удостоверяющего центра, с учетом промежуточных регистрационных свидетельств удостоверяющих центров;

Другими словами, с помощью данного метода X509ValidateCertificate() можно выполнить три проверки из Закона, а пункты 3 и 4 - проверка KeyUsage на значения “Цифровая подпись” и “Неотрекаемость” и проверка номера политики регистрационного свидетельства Ceritifcate Policy необходимо выполнить самостоятельно, например, вытащив соотвествующие поля из регистрационного свидетельства KeyUsage и Ceritifcate Policy с помощью метода X509CertificateGetInfo и сравнив их с заданными по умолчанию значениями переменных.

Добрый день!
Абсолютно верно.

А с помощью метода X509CertificateGetInfo() Вы можете извлечь нужную информацию из сертификата и произвести необходимые проверки.

1 Симпатия

Спасибо за ваш ответ!