Использует ли X590Certificate.Build OCSP, если используется ChainPolicy RevocationMode Online? - PullRequest
1 голос
/ 28 мая 2019

Если у вас есть код, подобный следующему: используется ли OCSP для проверки отзыва в режиме онлайн?

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);

В документации API нет явных указаний на это:

"Проверка отзыва выполняется с помощью отзыва сертификата онлайн список (CRL). "

, но без указания деталей о том, как производится проверка

Методы X509Chain.Buld проверяют, имеет ли свойство szOID_AUTHORITY_INFO_ACCESS значение - я знаю, что именно здесь хранятся URL-адреса OCSP, поэтому еще раз можно предположить, что OCSP используется

Затем Build вызывает BuildChain, и в CertGeCertificateChain делается вызов, передавая флаги отзыва unsigned int.

Документация для GetCertificateChain содержит возможные флаги, которые могут быть переданы, включая CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT:

"Этот флаг используется внутри сети при создании сети для онлайн сертификат статуса протокола (OCSP) подписавшего сертификат для предотвращения циклические проверки отзыва. Во время построения цепочки, если ответ OCSP подписывается независимым подписавшим OCSP, затем, в дополнение к оригинальная цепочка, есть вторая цепочка, построенная для OCSP Сам сертификат подписавшего. Этот флаг используется во время этой второй цепочки построить, чтобы запретить рекурсивный независимый сертификат подписавшего OCSP. Если сертификат подписавшего содержит расширение szOID_PKIX_OCSP_NOCHECK, проверка отзыва пропускается для листового сертификата подписавшего. И то и другое Проверка OCSP и CRL разрешена. "

Поскольку существует флаг, который «запрещает» проверку OCSP, я думаю, что это произойдет, но опять же было бы неплохо получить явное подтверждение этого

1 Ответ

0 голосов
/ 28 мая 2019

Если OCSP - единственный вариант, например Let's Encrypt, тогда да.Если доступны как OCSP, так и CRL, то система выбирает тот, который захочет, и использует другой, когда первый вариант дает неверные / просроченные ответы.

(В .NET Core для Linux OCSP не использовался до версии 3.0)

...