| ||||
| ||||
В книге Чепмена "Разработка защищенных приложений.." описан COM-объект CCertAdmin. Его функция IsValidCertificate проверяет сертификаты, явно обращаясь в Certificate Server. В связи с этим возникли два вопроса: 1. Как работают и куда обращаются функции проверки валидности сертификатов в CAPICOM (Certificate.IsValid и SignedData.Verify с параметром VerifyFlag=CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE) если у них нет никаких параметров на тему того куда обращаться. 2. В какой dll находится этот CCertAdmin :) Спасибо | ||||
Ответы: | ||||
| ||||
Интерфейс ICertAdmin и остальные описаны в MSDN в разделе Platform SDK\Security\Certificate Services and Components\Certificate Services Что касается проверки цепочек сертификатов, то информации должно дыть достаточно, а именно: - пользуется локальный реестр сертификатов для определения сертификатов и CRL - пользуются дополнения из сертификатов (а они по умолчанию устанавливаются) Authority Access Info (где сертификат центра), CRL Distribution Point (откуда брать CRL). | ||||
| ||||
Дополнительно можно посмотреть материал: http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/WinXPPro/support/tshtcrl.asp Там описан механизм построения и проверки цепочек для 2000 и XP. | ||||
| ||||
Да... нашел в сертификатах какие-то http, похожие на адреса CA :) Т.е. правильно ли я понял, что CAPICOM при валидации сертификата сам лезет в CA по этим адресам? | ||||
| ||||
Совсем не обязательно. К сожаления нигде не встречал описание логики для CAPICOM, но для CryptoAPI функции проверки цепочек проверяют ищут сначала сертификат центра локально. Если нет и разрешено проверять по сети - грузят по сети, но при этом будет ошибка, что root не трастед. | ||||
| ||||
Понятно, что ничего не понятно :( Придется действовать методом научного тыка.. Спасибо | ||||