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

Уведомление

Icon
Error

4 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline Климанов Евгений  
#1 Оставлено : 3 ноября 2010 г. 18:05:57(UTC)
Климанов Евгений

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

Группы: Участники
Зарегистрирован: 24.08.2009(UTC)
Сообщений: 60

Добрый день, помогите побороть ошибку в методе (IXMLDSigKey)pKey->getVerifyingCertificate(IUknown **))

Дело в том, что один и тот же код на одной из машин не хочет никак работать.
И там где код работает и там где не работает использую CSP 3.6 R2, MSXML 5.0, CAPICOM 2.1.0.2.

Работает на машинах с OS Vista. Не работает на Windos Server 2003. На вход подается один и тот же xml файл.

Понятное дело что все упирается в версии dll, но в какие? Какая из dll может влиять на данный процесс?

Привожу списки dll взятые из консоли управления CSP:
---------- Server 2003
Цитата:

accord.dll 3.6.4336.0 x86 C:\Program Files\Crypto Pro\CSP\accord.dll
advapi32.dll 5.2.3790.3959 x86 C:\WINDOWS\system32\advapi32.dll
bio.dll 3.6.4367.0 x86 C:\Program Files\Crypto Pro\CSP\bio.dll
charismathics.dll 4.8.0.1 x86 C:\Program Files\Crypto Pro\CSP\charismathics.dll
cpadvai.dll 3.6.4581.0 x86 C:\Program Files\Crypto Pro\CSP\cpadvai.dll
cpcertocm.dll 3.6.4305.0 x86 C:\Program Files\Crypto Pro\CSP\cpcertocm.dll

cpconfig.cpl 3.6.4724.0 x86 C:\Program Files\Crypto Pro\CSP\cpconfig.cpl
cpcrypt.dll 3.6.4439.0 x86 C:\Program Files\Crypto Pro\CSP\cpcrypt.dll
cpcsp.dll 3.6.4073.0 x86 C:\Program Files\Crypto Pro\CSP\cpcsp.dll
cpcspi.dll 3.6.5467.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspi.dll
cpcspr.dll 3.6.4471.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspr.dll
cpExSec.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpExSec.dll
cpext.dll 3.6.4554.0 x86 C:\Program Files\Crypto Pro\CSP\cpext.dll
cpintco.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpintco.dll
cpkrb.dll 3.6.4474.0 x86 C:\Program Files\Crypto Pro\CSP\cpkrb.dll
cpmail.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpmail.dll
cpMSO.dll 3.6.4293.0 x86 C:\Program Files\Crypto Pro\CSP\cpMSO.dll
cpoutlm.dll 3.6.4360.0 x86 C:\Program Files\Crypto Pro\CSP\cpoutlm.dll
cprastls.dll 3.6.4363.0 x86 C:\Program Files\Crypto Pro\CSP\cprastls.dll
cprdr.dll 3.6.4369.0 x86 C:\Program Files\Crypto Pro\CSP\cprdr.dll
cprndm.dll 3.6.4325.0 x86 C:\Program Files\Crypto Pro\CSP\cprndm.dll
CProCtrl.sys 3.6.4374.0 x86 C:\Program Files\Crypto Pro\CSP\CProCtrl.sys
cpschan.dll 3.6.4403.0 x86 C:\Program Files\Crypto Pro\CSP\cpschan.dll
cpssl.dll 3.0.3051.1 x86 C:\WINDOWS\system32\cpssl.dll
cpsslsdk.dll 3.6.4364.0 x86 C:\Program Files\Crypto Pro\CSP\cpsslsdk.dll
cpsspap.dll 3.6.4878.0 x86 C:\WINDOWS\system32\cpsspap.dll
cpsuprt.dll 3.6.4402.0 x86 C:\Program Files\Crypto Pro\CSP\cpsuprt.dll
cpui.dll 3.6.4448.0 x86 C:\Program Files\Crypto Pro\CSP\cpui.dll
cpverify.exe 3.6.3674.0 x86 C:\Program Files\Crypto Pro\CSP\cpverify.exe
cpwinet.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpwinet.dll
cpXML5.dll 3.6.4299.0 x86 C:\Program Files\Crypto Pro\CSP\cpXML5.dll
crypt32.dll 5.131.3790.3959 x86 C:\WINDOWS\system32\crypt32.dll
csptest.exe 3.6.4845.0 x86 C:\Program Files\Crypto Pro\CSP\csptest.exe
dallas.dll 3.6.4316.0 x86 C:\Program Files\Crypto Pro\CSP\dallas.dll
ds199x.dll 3.6.4312.0 x86 C:\Program Files\Crypto Pro\CSP\ds199x.dll
dsrf.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\dsrf.dll
emv.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\emv.dll
etok.dll 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\etok.dll
fat12.dll 3.6.4343.0 x86 C:\Program Files\Crypto Pro\CSP\fat12.dll
genkpim.exe 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\genkpim.exe
inetcomm.dll 6.0.3790.3959 x86 C:\WINDOWS\system32\inetcomm.dll
inpaspot.dll 1.0.0.1 x86 C:\Program Files\Crypto Pro\CSP\inpaspot.dll
jcard.dll 3.0.3294.1 x86 C:\Program Files\Crypto Pro\CSP\jcard.dll
pcsc.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\pcsc.dll
reg.dll 3.6.4321.0 x86 C:\Program Files\Crypto Pro\CSP\reg.dll
ric.dll 3.6.4417.0 x86 C:\Program Files\Crypto Pro\CSP\ric.dll
rtSupCP.dll 1.62.3.0 x86 C:\Program Files\Crypto Pro\CSP\rtSupCP.dll
sable.dll 3.6.4320.0 x86 C:\Program Files\Crypto Pro\CSP\sable.dll
schannel.dll 5.2.3790.3959 x86 C:\WINDOWS\system32\schannel.dll
security.dll 5.2.3790.0 x86 C:\WINDOWS\system32\security.dll
shdocvw.dll 6.0.3790.3959 x86 C:\WINDOWS\system32\shdocvw.dll
snet.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\snet.dll
wininet.dll 6.0.3790.3959 x86 C:\WINDOWS\system32\wininet.dll
wipefile.exe 3.6.4152.0 x86 C:\Program Files\Crypto Pro\CSP\wipefile.exe

msxml5.dll 5.20.1087.0 C:\Program Files\Common Files\Microsoft Shared\OFFICE11



------Vista
Цитата:

accord.dll 3.6.4336.0 x86 C:\Program Files\Crypto Pro\CSP\accord.dll
advapi32.dll 6.0.6002.18005 x86 C:\Windows\system32\advapi32.dll
bio.dll 3.6.4367.0 x86 C:\Program Files\Crypto Pro\CSP\bio.dll
charismathics.dll 4.8.0.1 x86 C:\Program Files\Crypto Pro\CSP\charismathics.dll
cpadvai.dll 3.6.4581.0 x86 C:\Program Files\Crypto Pro\CSP\cpadvai.dll
cpcertocm.dll 3.6.4305.0 x86 C:\Program Files\Crypto Pro\CSP\cpcertocm.dll
cpcng.dll 3.6.4405.0 x86 C:\Windows\system32\cpcng.dll
cpconfig.cpl 3.6.4724.0 x86 C:\Program Files\Crypto Pro\CSP\cpconfig.cpl
cpcrypt.dll 3.6.4439.0 x86 C:\Program Files\Crypto Pro\CSP\cpcrypt.dll
cpcsp.dll 3.6.4073.0 x86 C:\Program Files\Crypto Pro\CSP\cpcsp.dll
cpcspi.dll 3.6.5467.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspi.dll
cpcspr.dll 3.6.4471.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspr.dll
cpExSec.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpExSec.dll
cpext.dll 3.6.4554.0 x86 C:\Program Files\Crypto Pro\CSP\cpext.dll
cpintco.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpintco.dll
cpkrb.dll 3.6.4474.0 x86 C:\Program Files\Crypto Pro\CSP\cpkrb.dll
cpmail.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpmail.dll
cpMSO.dll 3.6.4293.0 x86 C:\Program Files\Crypto Pro\CSP\cpMSO.dll
cpoutlm.dll 3.6.4360.0 x86 C:\Program Files\Crypto Pro\CSP\cpoutlm.dll
cprastls.dll 3.6.4363.0 x86 C:\Program Files\Crypto Pro\CSP\cprastls.dll
cprdr.dll 3.6.4369.0 x86 C:\Program Files\Crypto Pro\CSP\cprdr.dll
cprndm.dll 3.6.4325.0 x86 C:\Program Files\Crypto Pro\CSP\cprndm.dll
CProCtrl.sys 3.6.4374.0 x86 C:\Program Files\Crypto Pro\CSP\CProCtrl.sys
cpschan.dll 3.6.4403.0 x86 C:\Program Files\Crypto Pro\CSP\cpschan.dll
cpssl.dll 3.0.3051.1 x86 C:\Windows\system32\cpssl.dll
cpsslsdk.dll 3.6.4364.0 x86 C:\Program Files\Crypto Pro\CSP\cpsslsdk.dll
cpsspap.dll 3.6.4878.0 x86 C:\Windows\system32\cpsspap.dll
cpsuprt.dll 3.6.4402.0 x86 C:\Program Files\Crypto Pro\CSP\cpsuprt.dll
cpui.dll 3.6.4448.0 x86 C:\Program Files\Crypto Pro\CSP\cpui.dll
cpverify.exe 3.6.3674.0 x86 C:\Program Files\Crypto Pro\CSP\cpverify.exe
cpwinet.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpwinet.dll
cpXML5.dll 3.6.4299.0 x86 C:\Program Files\Crypto Pro\CSP\cpXML5.dll
crypt32.dll 6.0.6002.18005 x86 C:\Windows\system32\crypt32.dll
csptest.exe 3.6.4845.0 x86 C:\Program Files\Crypto Pro\CSP\csptest.exe
dallas.dll 3.6.4316.0 x86 C:\Program Files\Crypto Pro\CSP\dallas.dll
ds199x.dll 3.6.4312.0 x86 C:\Program Files\Crypto Pro\CSP\ds199x.dll
dsrf.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\dsrf.dll
emv.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\emv.dll
etok.dll 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\etok.dll
fat12.dll 3.6.4343.0 x86 C:\Program Files\Crypto Pro\CSP\fat12.dll
genkpim.exe 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\genkpim.exe
inetcomm.dll 6.0.6002.18263 x86 C:\Windows\system32\inetcomm.dll
inpaspot.dll 1.0.0.1 x86 C:\Program Files\Crypto Pro\CSP\inpaspot.dll
jcard.dll 3.0.3294.1 x86 C:\Program Files\Crypto Pro\CSP\jcard.dll
pcsc.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\pcsc.dll
reg.dll 3.6.4321.0 x86 C:\Program Files\Crypto Pro\CSP\reg.dll
ric.dll 3.6.4417.0 x86 C:\Program Files\Crypto Pro\CSP\ric.dll
rtSupCP.dll 1.62.3.0 x86 C:\Program Files\Crypto Pro\CSP\rtSupCP.dll
sable.dll 3.6.4320.0 x86 C:\Program Files\Crypto Pro\CSP\sable.dll
schannel.dll 6.0.6002.18290 x86 C:\Windows\system32\schannel.dll
security.dll 6.0.6000.16386 x86 C:\Windows\system32\security.dll
shdocvw.dll 6.0.6002.18005 x86 C:\Windows\system32\shdocvw.dll
snet.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\snet.dll
wininet.dll 9.0.7930.16406 x86 C:\Windows\system32\wininet.dll
wipefile.exe 3.6.4152.0 x86 C:\Program Files\Crypto Pro\CSP\wipefile.exe

msxml5.dll 5.20.1087.0 C:\Program Files\Common Files\microsoft shared\OFFICE11

Отредактировано пользователем 3 ноября 2010 г. 18:07:23(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#2 Оставлено : 3 ноября 2010 г. 20:06:23(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
Этот вопрос связан с предыдущей темой?
Знания в базе знаний, поддержка в центре поддержки
Offline Климанов Евгений  
#3 Оставлено : 3 ноября 2010 г. 21:15:13(UTC)
Климанов Евгений

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

Группы: Участники
Зарегистрирован: 24.08.2009(UTC)
Сообщений: 60

Нет, поэтому я о нем в прошлой теме и не спрашивал.

Итак! Мы решили встроить проверку наличия подписи для файлов помещенных в базу данных. Но результат работы программы проверки подписей на сервере поверг в уныние. Я проверил наличие одинаковых версий CSP, CAPICOM и MSXML. Сравнив версии dll для CSP я увидел у них небольшое отличие в версиях, которое я списал на:
1) то что на сервере не устанавливался драйвер для ключевого носителя, который во время установки изменяет некоторые файлы CSP. Т.к. ключевой носитель на сервере не нужен и там будет только проверка файлов в базе данных, то я посчитал что это может быть несущественным.
2) разница в операционных системах. это также могло повлиять на версии dll.

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

Схема работы программы проста. Она связывается с сервером находит в таблице записанный туда xml-файл, проверяет в нем подпись и возвращает результат. На операционных системах Vista проверки с подписанными, неподписанными, измененными и файлами не содержащими тегов Signature проходят нормально и выдают те результаты, которые ожидаются.
На server 2003 программа ведет себя практически также как и на Vista за исключением случая, когда проверяется реально подписанный и неизмененный xml. Она возвращает ошибку, что не может получить сертификат из открытого ключа.

Т.е. сначала вызывается

xmldsig->verify(pKey, &pKeyOut)
, который отрабатывает без ошибок, но уже далее

pKeyOut->getVerifyingCertificate(&certUnk)

возвращает FAIL, хотя pKeyOut != NULL

Т.е. из сертификата, который находится в xml получается создать ключ и проверить им xml, но не получается вытащить сам сертификат. Все.

П.С. в прошлой теме я сейчас продолжу дисскуссию, но уже по тому вопросу.
Offline Максим Коллегин  
#4 Оставлено : 5 ноября 2010 г. 20:25:15(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
Поставьте везде для начала одинаковую версию CSP 3.6.6497.
Знания в базе знаний, поддержка в центре поддержки
Offline Климанов Евгений  
#5 Оставлено : 6 ноября 2010 г. 14:54:09(UTC)
Климанов Евгений

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

Группы: Участники
Зарегистрирован: 24.08.2009(UTC)
Сообщений: 60

Цитата:
Поставьте везде для начала одинаковую версию CSP 3.6.6497.


Это уже было сделано. Везде стоит версия 3.6.6497
Цитата:
Я проверил наличие одинаковых версий CSP, CAPICOM и MSXML.
Offline Максим Коллегин  
#6 Оставлено : 6 ноября 2010 г. 15:50:39(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
А можете выложить проблемный подписанный xml? На чистой 2003 тоже не работает?

Отредактировано пользователем 6 ноября 2010 г. 15:51:23(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в центре поддержки
Offline Климанов Евгений  
#7 Оставлено : 8 ноября 2010 г. 13:43:36(UTC)
Климанов Евгений

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

Группы: Участники
Зарегистрирован: 24.08.2009(UTC)
Сообщений: 60

Вот например такие xml:

out_signature.xml
out_signature_test3.xml

Правда я не думаю, что эти xml проблемные, т.к. они проходят проверку на нескольких машинах, кроме сервера.

Цитата:
На чистой 2003 тоже не работает?

Не понял вопрос про чистую 2003. Имеется в виду сервер без установленного csp КриптоПро?
Offline Максим Коллегин  
#8 Оставлено : 8 ноября 2010 г. 13:48:08(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
Имеется в виду свежеустановленный Windows с CSP.
Знания в базе знаний, поддержка в центре поддержки
Offline Климанов Евгений  
#9 Оставлено : 8 ноября 2010 г. 13:53:07(UTC)
Климанов Евгений

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

Группы: Участники
Зарегистрирован: 24.08.2009(UTC)
Сообщений: 60

Нет, это проверить не смогу, т.к. нет свободных машин для этого. Могу проверить на другом сервере с такой же ОС, на котором до этого CSP не устанавливался.
Offline Максим Коллегин  
#10 Оставлено : 8 ноября 2010 г. 13:59:19(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
На тестовых машинах проверил out_signature.xml - сертификат возвращается на windows 2008 и windows 2003.
Пришлите список установленного ПО на сервере, экспортируйте промежуточные и доверенные CA, пользователя под которым проверяется файл и выложите ветку реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
Знания в базе знаний, поддержка в центре поддержки
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.