Мне нужно написать инструмент, который проверяет, действительно ли сертификат X509 действителен или нет (input = cert path/subject и password). Как я могу это сделать? Я не знаю много о сертификатах ...Как проверить сертификат X509?
ответ
Посмотрите на X509Certificate2.Verify()
Чтобы добавить, если вам нужна информация о том, почему сбой сертификата, вы можете вывести цепочку: http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509chain.aspx – Oliver
В целом, RFC 3280 содержит почти полные инструкции относительно выполнения валидации, однако эти инструкции очень нетривиальны. Кроме того, вам нужно будет прочитать RFC 2560 (OCSP) и реализовать клиент OCSP.
Для большинства задач вы найдете наш TElX509CertificateValidator component отлично подходит. Он проверяет пути сертификатов, отзыва CRL и OCSP (а также проверяет достоверность CRL и ответы OCSP). Он достаточно гибкий и достаточно мощный и позволяет выполнять дополнительные, более глубокие проверки на каждом шаге. Также этот компонент может работать как с хранилищами сертификатов Windows, так и с любыми другими сертификатами, цепочками сертификатов и хранилищами, которые могут храниться в файлах или в памяти.
RFC 3280 был устарел RFC 5280: http://tools.ietf.org/html/rfc5280 – Bruno
Хорошо, спасибо. –
Я просто глядя на этот точный вопрос, и вы можете захотеть взглянуть на RSA/BSAFE библиотеки/API
который я считаю свободным. https://community.emc.com/message/12558#12558
Сертификат X.509 не защищен паролем (обычно его закрытым ключом является). Если у вас уже есть путь сертификации, большая часть работы выполняется (если вы доверяете доверенности доверия, к которой ведет этот путь сертификата). – Bruno
@Bruno: правильная проверка сертификата «немного» больше, чем просто проверка подписей. Также необходимо проверить использование ключа, срок действия, ограничения пути. Затем необходимо проверить отзыв (используя OCSP и CRL). И так далее ... –