Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline EVoynov  
#1 Оставлено : 4 декабря 2012 г. 15:30:54(UTC)
EVoynov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.10.2011(UTC)
Сообщений: 45
Откуда: Moscow

Сказал(а) «Спасибо»: 7 раз
Добрый день!

Стоит задача: создавать отделенную подпись в FireFox как с помощью простых сертификатов, так и с помощью сертификата поддерживающего создание усовершенствованную подпись.

За основу взят пример из http://cpdn.cryptopro.ru...lugin-samples-attrs.html
Вот этот пример для отладки (нужно поменять на свой сертификат): http://jsfiddle.net/evoynov/cDtah/
Пример падает на обращении к свойству Name объекта oSigningTimeAttr: Error setting property on NPObject!
Согласно вашей документации, у CPAttribute есть только два свойства OID и Value.

Таким образом, два вопроса:
1) Можно ли вообще создать в Firefox простую отделенную подпись с добавлением authentificated-атрибута с временем подписания (в IE для этого используется связка объектов из CAPICOM: Signer, Attribute, SignedData)?
2) Если простую подпись в Firefox создать можно, то как корректно ее потом проверить (с помощью каких объектов)?

P.S. Мой сертификат в аттаче, которым хотелось бы создать подпись через Firefox.

Отредактировано пользователем 4 декабря 2012 г. 15:45:21(UTC)  | Причина: Не указана

Вложение(я):
evoynov_croc_ca_2013.cer (2kb) загружен 6 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Новожилова Елена  
#2 Оставлено : 10 декабря 2012 г. 16:51:04(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Здравствуйте!

А какой атрибут вы добавляете? Посмотрите интерфейс ICPAtribute2. Объект CPAttribute поддерживает этот интерфейс.
И какая версия плагина?

Отредактировано пользователем 10 декабря 2012 г. 16:51:56(UTC)  | Причина: Не указана

Offline EVoynov  
#3 Оставлено : 10 декабря 2012 г. 19:24:25(UTC)
EVoynov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.10.2011(UTC)
Сообщений: 45
Откуда: Moscow

Сказал(а) «Спасибо»: 7 раз
По поводу атрибута вопрос снят, т.к. Анатолий Беляев рекомендовал всегда использовать Cades.

Также Анатолий сказал, что в любом случае необходимо использовать плагин, чтобы наше приложение могло поддерживать любой браузер. Различие, использовать тип CADES_BES или XLONG_TYPE_1, необходимо строить по признаку - есть ли в сертификате расширение AIA с адресом OCSP-службы (т.к. в Firefox это проверить нельзя, то предложил хранить в системе имена УЦ, которые выпустили сертификаты с этим расширением и если УЦ выбранного сертификат есть в этом списке, то считать, что и расширение у него есть).

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

Ссылка на письмо, которое я уже направил Анатолию (https://dl.dropbox.com/u/22411220/message.msg)
Там есть архив, содержащий:
1) Значение отделенной подписи (CADES_BES).
2) Сертификат, на котором создана подпись.
3) Лог, собранный через dbgView, при проверке подписи.

Можете объяснить, в чем проблема в этом случае?
Как еще в момент создания подписи понять (т.к. при подписании ошибок никаких не выдается), что выбранный сертификат не подойдет даже для усовершенствованной подписи типа CADES_BES?

Вот значимая часть лога:

00000017 0.01469048 [2860] cades.dll: {1908} /CChainPolicyVerification::chainContext/ ChainValidation.h(639) : #start#
00000018 0.01486236 [2860] pkivalidator.dll: {1908} /CertDllVerifySignatureCertificateChainPolicy/ CertDllVerifyCertificateChainPolicy.cpp(47) : Start
00000019 0.01493947 [2860] pkivalidator.dll: {1908} /CheckInitAndGetExtraStatus/ CertDllVerifyCertificateChainPolicyImpl.cpp(1228) : pExtraStatus = 0x00000000
00000020 0.01498954 [2860] pkivalidator.dll: {1908} /CheckAndGetExtraPara/ CertDllVerifyCertificateChainPolicyImpl.cpp(1192) : pExtraPara = 0x02619504
00000021 0.01503934 [2860] pkivalidator.dll: {1908} /CertDllVerifyPrivateKeyUsagePeriodCertificateChainPolicy/ CertDllVerifyCertificateChainPolicy.cpp(45) : Start
00000022 0.01508844 [2860] pkivalidator.dll: {1908} /CheckInitAndGetExtraStatus/ CertDllVerifyCertificateChainPolicyImpl.cpp(1228) : pExtraStatus = 0x00000000
00000023 0.01513712 [2860] pkivalidator.dll: {1908} /CheckAndGetExtraPara/ CertDllVerifyCertificateChainPolicyImpl.cpp(1192) : pExtraPara = 0x0041de54
00000024 0.01518664 [2860] pkivalidator.dll: {1908} /CertDllVerifyBasicConstraintsCertificateChainPolicy/ CertDllVerifyCertificateChainPolicy.cpp(54) : Start
00000025 0.01524132 [2860] pkivalidator.dll: {1908} /ReportError/ CertDllVerifyCertificateChainPolicyImpl.cpp(1325) : No error encountered. Other checks can be performed - returning false.
00000026 0.01529133 [2860] pkivalidator.dll: {1908} /CertDllVerifyCertificateChainPolicyProxy/ CertDllVerifyCertificateChainPolicy.cpp(28) : Finish. Returning TRUE.
00000027 0.01534336 [2860] pkivalidator.dll: {1908} /ReportError/ CertDllVerifyCertificateChainPolicyImpl.cpp(1325) : No error encountered. Other checks can be performed - returning false.
00000028 0.01544407 [2860] pkivalidator.dll: {1908} /CertDllVerifyCertificateChainPolicyProxy/ CertDllVerifyCertificateChainPolicy.cpp(28) : Finish. Returning TRUE.
00000029 0.01549603 [2860] pkivalidator.dll: {1908} /ReportError/ CertDllVerifyCertificateChainPolicyImpl.cpp(1325) : No error encountered. Other checks can be performed - returning false.
00000030 0.01556553 [2860] pkivalidator.dll: {1908} /SignatureImpl/ CertDllVerifyCertificateChainPolicyImpl.cpp(738) : Key Usage extension does not contain neither digitalSignature nor nonRepudiation bits.
00000031 0.01562014 [2860] pkivalidator.dll: {1908} /ReportError/ CertDllVerifyCertificateChainPolicyImpl.cpp(1357) : No extra status supplied. Setting pPolicyStatus->dwError = 0x800b0110, pPolicyStatus->lChainIndex = 0, pPolicyStatus->lElementIndex = 0.
00000032 0.01567301 [2860] pkivalidator.dll: {1908} /ReportError/ CertDllVerifyCertificateChainPolicyImpl.cpp(1365) : Error encountered and no extra status supplied. Other checks must not be performed - returning true.
00000033 0.01575487 [2860] pkivalidator.dll: {1908} /CertDllVerifyCertificateChainPolicyProxy/ CertDllVerifyCertificateChainPolicy.cpp(28) : Finish. Returning TRUE.
00000034 0.01602340 [2860] cades.dll: {1908} /CChainPolicyVerification::chainContext/ ChainValidation.h(657) : #failure# HRESULT:

Отредактировано пользователем 10 декабря 2012 г. 19:32:20(UTC)  | Причина: Не указана

Offline Новожилова Елена  
#4 Оставлено : 10 декабря 2012 г. 20:20:46(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Проблема в том, что:

"Key Usage extension does not contain neither digitalSignature nor nonRepudiation bits."
То есть расширение KeyUsage в сертификате не содержит ни одного из возможных значений (digitalSignature и/или nonRepudiation), хотя должно.

Из приведенного отрывка лога непонятно, о каком именно сертификате идет речь (о пользовательском или службы) - нужно проверять.
Если ваш УЦ выпускает такие сертификаты, нужно разбираться с УЦ.
Offline cross  
#5 Оставлено : 11 декабря 2012 г. 15:34:14(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
В вашем сертификате в KeyUsage стоит назначение "шифрование ключей".
+ в сертификате в EKU стоит назначение EncryptedFileSystem, что означает что он предназначен для использования в шифровании файловых систем. Такие сертификаты не должны использоваться для подписи (любых форматов).
Цитата:

440 21: SEQUENCE {
<06 03>
442 3: OBJECT IDENTIFIER extKeyUsage (2 5 29 37)
: (X.509 extension)
<04 0E>
447 14: OCTET STRING, encapsulates {
<30 0C>
449 12: SEQUENCE {
<06 0A>
451 10: OBJECT IDENTIFIER
: encryptedFileSystem (1 3 6 1 4 1 311 10 3 4)
: (Microsoft enhanced key usage)
: }
: }
: }

Отредактировано пользователем 11 декабря 2012 г. 16:44:17(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline EVoynov  
#6 Оставлено : 11 декабря 2012 г. 23:10:31(UTC)
EVoynov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.10.2011(UTC)
Сообщений: 45
Откуда: Moscow

Сказал(а) «Спасибо»: 7 раз
Коллеги, тогда последний, надеюсь, вопрос.

Имеем сертификат, у которого есть расширение OCSP. Это однозначно дает нам понять, что можем использовать объекты из CAdESCOM (к сожалению мы не можем заставить 15 тысяч пользователей в один момент переехать на новую версию CSP, поэтому вынуждены поддержать все варианты).

Возможна ли ситуация, что при этом УЦ, выпустивший этот сертификат, не предоставляет TSP-службы?

Если невозможна, то вопросов нет.

Если возможна, то вопрос: может ли быть создана усовершенствованная подпись типа CADES_XLONG_TYPE_1 не заполняя TSAAddress? Или отсутствие у УЦ службы TSP является достаточным условием, чтобы не использовать CADES_XLONG_TYPE_1?
Offline Новожилова Елена  
#7 Оставлено : 12 декабря 2012 г. 17:37:43(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Использование службы штампов времени является необходимым условием для формирования подписи CAdES-X Long Type 1.

Но службу штампов времени можно использовать любую, она не обязательно должна быть развернута на том же УЦ (в отличие от службы OCSP).
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.