06.03.2002 15:33:14Верификация сертификатов Ответов: 5
Eddy
В книге Чепмена "Разработка защищенных приложений.." описан COM-объект CCertAdmin.
Его функция IsValidCertificate проверяет сертификаты, явно обращаясь в Certificate Server.

В связи с этим возникли два вопроса:
1. Как работают и куда обращаются функции проверки валидности сертификатов в CAPICOM (Certificate.IsValid и SignedData.Verify с параметром VerifyFlag=CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE) если у них нет никаких параметров на тему того куда обращаться.
2. В какой dll находится этот CCertAdmin :)

Спасибо
 
Ответы:
06.03.2002 16:16:10kure
Интерфейс ICertAdmin и остальные описаны в MSDN в разделе Platform SDK\Security\Certificate Services and Components\Certificate Services

Что касается проверки цепочек сертификатов, то информации должно дыть достаточно, а именно:
- пользуется локальный реестр сертификатов для определения сертификатов и CRL
- пользуются дополнения из сертификатов (а они по умолчанию устанавливаются) Authority Access Info (где сертификат центра), CRL Distribution Point (откуда брать CRL).
06.03.2002 16:26:16kure
Дополнительно можно посмотреть материал:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/WinXPPro/support/tshtcrl.asp

Там описан механизм построения и проверки цепочек для 2000 и XP.
06.03.2002 16:52:44Eddy
Да... нашел в сертификатах какие-то http, похожие на адреса CA :)
Т.е. правильно ли я понял, что CAPICOM при валидации сертификата сам лезет в CA по этим адресам?
06.03.2002 16:59:44kure
Совсем не обязательно.
К сожаления нигде не встречал описание логики для CAPICOM, но для CryptoAPI функции проверки цепочек проверяют ищут сначала сертификат центра локально. Если нет и разрешено проверять по сети - грузят по сети, но при этом будет ошибка, что root не трастед.


06.03.2002 17:05:40Eddy
Понятно, что ничего не понятно :(
Придется действовать методом научного тыка..

Спасибо