08.09.2006 12:12:55 | Поле однозначно идентифицирующее сертификат | | Ответов: 11 |
|
Василий | | |
|
Какое поле однозначно идентифицирует сертификат и как его получить? |
|
Ответы:
|
08.09.2006 12:53:18 | Юрий Маслов |
|
Серийный номер сертификата вместе с полем издателя. Т.е. два поля в совокупности однозначно идентифицируют сертификат. Все эти поля можно получить, например, через соотвествующие свойства объекта через CAPICOM |
|
08.09.2006 13:35:27 | Василий |
|
А с помощью CryptoApi его можно получить? |
|
08.09.2006 16:28:53 | Юрий Маслов |
|
Можно. Используйте структуру CERT_INFO. Как ее использовать: загляните в MSDN, задайте поиск по CERT_INFO и все узнаете... |
|
08.09.2006 18:17:57 | Василий |
|
Спасибо.А вообще, как принято идентифицировать пользователя по сертификату? Например, я получаю подписанное сообщение со вложенным сертификатом отправителя. Проверяю подпись, получаю контекст сертификата.Могу попробовать идентифицировать пользователя по полю subject, но ведь оно не уникально.Или вообще не принято по сертификату идентифицировать пользователя? |
|
08.09.2006 18:24:19 | Юрий Маслов |
|
Проверив подпись с использованием сертификата, Вы аутентифицируете его владельца, т.е. некого субъекта, владеющего соответствущим закрытым ключом подписи. Если сертификат в Вашей системе ассоциирован с некой учетной записью, то Вы уже можете считать, что аутентифицировали субъекта в системе. Но обычной практикой считается, что Вы должны показать сертификат подписи лицу, проверяющему эту самую подпись. Не пытайтесь делать утверждение, что за подписью скрывается вот этот человек. Это находиться в комптенции удостоверяющего центра, издавшего сертификат. Именно у него есть необходимая докаательная база по факту обладания сертификатом. |
|
08.09.2006 18:32:59 | Василий |
|
Ясно.Большое спасибо за исчерпывающий ответ! |
|
11.09.2006 12:06:43 | Василий |
|
Всё-таки возник ещё один вопрос:) Каков порядок проверки подписи документа? Понятно, что сначала проверяется сама подпись.А как затем проверить,достоверность и неотозванность сертификата? |
|
11.09.2006 12:37:49 | Юрий Маслов |
|
Да, сначала проверяете собствено совпадение кэша документа из подписи с подсчитанным кэшем (целость ЭЦП и документа). Потом проверяете, что сертификат подписи издан доверенным, "своим", центром сертификации (УЦ), а потом, что сертиифкаты в цепочке действительны. Действительны - это значит, что они не отозванные (аннулированы либо приостановлены), срок их действия уже начался и еще не окончен. Отозванность проверяете по CRL либо с использованием сервиса OCSP.
|
|
11.09.2006 13:01:08 | Василий |
|
А есть ли где-то пример, где собрано использование всех эти функций.Просто везде показано как подписать и как проверить, а остальные функции- нет. Есть конечно их список на http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/certgetcrlfromstore.asp
Но довольно сложно понять в каком порядке и как их использовать.
|
|
11.09.2006 13:07:24 | Юрий Маслов |
|
Возьмите MSDN и к нему PlatformSDK. Там есть примеры и для CAPICOM и для CryptoAPI. Также можете у нас с сайта взять проект в исходниках http://www.cryptopro.ru/cryptopro/products/csp/usage.htm |
|
07.12.2006 18:17:30 | Александр Хилько |
|
Ув. Василий! Судя по Вашим вопросам, моя задача во многом совпадает с Вашей. Можно ли с Вами связаться как то?
С уважением, Александр Хилько.
alexander.khilko@mail.ru |
|