09.08.2007 11:29:02Улучшенный ключ Ответов: 3
jar
Как программно определить, имеются ли у сертификата все необходимые расширения (чтобы можно было сделать выбор - использовать функции КриптоПро Cades*() или обычные функции CryptoAPI)?
Каков список необходимых расширений для Cades*()?
 
Ответы:
09.08.2007 15:24:51Василий
Здесь должна быть обратная постановка задачи.
Т.е. сначала решается: "в такой-то системе надо использовать улучшенную подпись". Это значит, что простую подпись использовать нельзя. Соответственно, программная реализация для этой системы должна всегда использовать кадес.
09.08.2007 17:33:26jar
Дело в том, что пишется приложение для более общих задач... И выбор пользователем проставления простой/расширенной подписи уже реализован.

В данном случае задача состоит в том, чтобы невнимательный пользователь не пытался (не давать ему возможность) ставить расширенную подпись, используя сертификат, который для этого не предназначен. Это лучше, чем выдавать малопонятное для него сообщение об ошибке...


Я так понял, расширения таковы:
szOID_KEY_USAGE
szOID_ENHANCED_KEY_USAGE
szOID_SUBJECT_KEY_IDENTIFIER
szOID_AUTHORITY_KEY_IDENTIFIER2
szOID_CRL_DIST_POINTS
szOID_AUTHORITY_INFO_ACCESS

Поправьте меня пожалуйста, если где ошибся...
То есть, если пользователь хочет поставить расширенную подпись, все эти расширения необходимы, так?
Нужно ли сравнивать также их содержимое, или будет достаточно этого списка?

То есть, мне бы хотелось знать необходимые и достаточные признаки, чтобы можно было проидентифицировать, что сертификат может использоваться для постановки расширенной подписи.
10.08.2007 14:57:01Смирнов Павел
По содержимому сертификата дать однозначный ответ на такой вопрос нельзя.

Усовершенстованную подпись можно создать, если пользователю доступна служба штампов времени, а его сертификат можно проверить с помощью службы OCSP, которая выдаёт достаточно свежие ответы. По сертификату можно судить о возможности проверки сертификата по OCSP, но только косвенно: можно поискать в расширении szOID_AUTHORITY_INFO_ACCESS точку доступа, тип которой - szOID_PKIX_OCSP. Но отсутствие адреса службы OCSP в сертификате вовсе не означает, что он не пригоден для создания усовершенствованной ЭЦП. Адрес может быть задан в групповой политике.
"Свежесть" ответов, выдаваемых службой OCSP по сертификату узнать нельзя.