04.03.2005 5:38:17Вопрос Ответов: 1
Vadim
Сразу уточню - в данный момент я уже не программист, а вопросы у меня чтобы направить программистов (сторонних) в нужное русло.

1) Каким образом программа должна проверять наличие или отсутствие номера сертификата в CRL’е? Есть ли для этого в API функция сразу дающая ответ ОТОЗВАН или НЕ ОТОЗВАН?

2) Как программа должна находить CRL? Есть ли в API функция сама находящая необходимый локально установленный CRL или надо самостоятельно шарится по всем возможным хранилищам?

3) Как проверять просроченность этого CRL’я? Самостоятельно считывать из него даты или опять же есть функция в API?

4) Как удостоверяться, что найденный CRL - это CRL именно того УЦ, что и выпустил проверяемый сертификат? Самому сверять "Поставщика" и его "Код ключа", а может быть еще и "Алгоритм подписи", или опять же есть функция API, упрощающая жизнь?

5) Каким образом проверяется действительность сертификата, выданного промежуточным УЦ допутим 5-го уровня? Для этого надо самостоятельно проверять 5 CRL’ей? Всё это полностью кладется на плечи конечного программиста или все же тоже есть помощь от API?
 
Ответы:
04.03.2005 11:13:25Kirill Sobolev
Всю основную работу можно возложить на API. Покажите программистам функции CertCreateCertificateChainEngine и CertGetCertificateChain, они именно для этого и предназначены. Пункты 1) - 5) как раз определяются параметрами этих функций. А в зависимости от того, что они возвращают, можно проводить дополнительное исследование статуса.