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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline mil  
#1 Оставлено : 4 июня 2008 г. 14:53:24(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Добрый день.

Не работает CAdESCOM компонент.
Использую пример на VB из ЭЦП SDK, естественно поменял фрагмент кода ищущий сертификат.

Ошибка:
- : Number : -2147467259 : Long : Cades.SignString
- Description "Automation Error"
- Help Context 1000440
- Help File C:\Windows\help\VBENLR98.CHM
Такого файла у меня нет :(

Имею:
- Windows XP SP3
- Crypto Pro CSP 3.0 KC1 rus без лицензии (показывает Тип лицензии CSP+PKS+Driver истекает через 1 месяц)
- Установил OCSP Client лицензию срок 06.09.2008
- Установил TCP Client лицензию срок 18.10.2008
- Крипто Про ЭЦП SDK 1.00.0234
- Проверил запрос на ТSP сервер, через tsputil.exe, цепочка сертификатов есть (просмотр ответа показывает подпись верна)
- Проверил запрос на OCSP сервер, также все работает.
- Обычная подпись, сделанная через CAPICOM, работает.
- Пытался брать разные сертфикаты, как с указанием адреса OCSP так и без, это значения не имеет.
- Компонент создается, его параметры устанавливаются, в соответствии с примером, ошибка возникает в методе Sign.
- Пробовал Crypto Pro CSP 2.0, ошибка таже.

Вопросы:
- Непонятно откуда CAdESCOM возьмет адрес TSP сервера (OCSP из сертификата).

С уважением,
Алексей Милюшков.

PS Важное дополнение,
Microsoft Visual Studio 6.0
И поменять версию VB очень сложно.
PPS
- Добавил "Групповая политика", "адрес службы штампов времени по умолчанию", как для всего компьютера так и для пользователя
- В браузере обратился на адрес CRL, получил какой то ответ, 5 кб
Все равно не работает, код ошибки тот же.

Отредактировано пользователем 5 июня 2008 г. 20:14:12(UTC)  | Причина: Не указана

Offline Павел Смирнов  
#2 Оставлено : 5 июня 2008 г. 20:28:14(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Выполнены ли все требования из списка?
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#3 Оставлено : 5 июня 2008 г. 21:07:18(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Список требований из help файла ЭЦП SDK

"Требования к конфигурации
Для создания сообщения с усовершенствованной подписью, должны быть выполнены следующие условия:"

Выполнен полностью.
Алексей Милюшков
Offline Павел Смирнов  
#4 Оставлено : 5 июня 2008 г. 22:32:53(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Тогда пробуем так. Добавьте в реестр:

Цитата:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Trace]
"reprov.dll"=""
"ocspcli.dll"=""
"tspcli.dll"=""
"cades.dll"=""
"cadescom.dll"=""
"ProcessFlags"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\Tracing]
"Enabled"=dword:00000001
"LogFilePrefix"=""
"ToFileOrDebugger"=dword:00000001
"ShowBytes"=dword:00000001
"ShowApiTrace"=dword:00000001


Затем после перезапуска процесса, выполняющего Ваш код, соберите трассу при создании подписи с помощью утилиты DebugView и пришлите вывод утилиты.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#5 Оставлено : 6 июня 2008 г. 15:50:42(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Добавил данные в реестр.

Логов нет,
мои компоненты общаются по сети через компонет "MSXML2.XMLHTTP"
например при обращении за CRL, обмен трафиком идет, но логи в DebugView не появляются.
Подозреваю, что под XP флаги для активизации сообщений debug другие.

Вообще складывется впечатление, что CAdESCOM компонент есть, его можно создать, но при любом обращении он отказывается
работать, ему не хватает или dll или лицензии или ...
Есть ли в CAdESCOM простая функция печтающая что нибуть в debug и все?

Например пытаюсь подписать через CAdES, старая ошибка.
Пытаюсь подписать через CAPICOM вылетает сообщение, что у меня временная лицензия Crypto Pro CSP и она скоро закончится.
Почему этого сообщения не было при обращении через CAdES ?

Алексей Милюшков.
Offline Павел Смирнов  
#6 Оставлено : 6 июня 2008 г. 20:12:45(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Логи должны быть. Флаги неоднократно проверялись. Перезагрузите компьютер, поиграйтесь настройками DebugView (меню Capture).

Окошко с сообщением об истечении лицензии выдаётся не каждый раз. Если вы не видели из CAdES этого сообщения ни разу, то, скорее всего, до использования ключа дело не доходит. Ломается раньше.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Павел Смирнов  
#7 Оставлено : 6 июня 2008 г. 20:42:14(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
В принципе ещё есть подозрение на SP3. С ним не всё гладко в CryptoAPI, но CAdES мы ещё не проверяли. Попробуем и я напишу.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Павел Смирнов  
#8 Оставлено : 7 июня 2008 г. 22:48:54(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
У нас на XP SP3 всё заработало.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#9 Оставлено : 16 июня 2008 г. 14:18:04(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Добрый День.

Извиняюсь за долгое молчание, был в отгулах.
На свежую голову переделал все заново, заработало.
Спасибо за помощь, уверенность в том, что ПО обязано работать здорово помогает.

С уважением,
Алексей Милюшков.
Offline Павел Смирнов  
#10 Оставлено : 16 июня 2008 г. 14:25:25(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
А в чём беда была не расскажете? Нам для статистики и не только пригодится.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#11 Оставлено : 17 июня 2008 г. 14:45:38(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Добрый день.

Функция, GetSignerCertificate(...) приведенная в примере,
не типизирована. На свою беду, я предположил, что она возвращает CAPICOM.Certificate
был не прав.

Алексей Милюшков

Function GetSignerCertificate(SerialNumber)
Set GetSignerCertificate = Nothing
Dim oCert
Dim oStore
Set oStore = CreateObject("CAPICOM.Store")
oStore.Open CAPICOM_CURRENT_USER_STORE
For Each oCert In oStore.Certificates
If oCert.SerialNumber = SerialNumber Then
Set GetSignerCertificate = oCert
Exit For
End If
Next
End Function

Offline mil  
#12 Оставлено : 17 июня 2008 г. 20:41:56(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Привет еще раз.

История похоже будет иметь продолжение.
Добрался до проверки подписи.

Подписи в имеющейся программе хранятся в ASN1 формате.
Соответсвенно подпись, выданную CAdESCOM пришлось разкодировать из BASE64.
Теперь есть ошибка при проверке подписи.
Код ошибки -2147024894 !!! ДРУГОЙ
Текст ошибки тот же Automation Error
Попробовал обратно закодировать в BASE64, не помогло.
Взял файл подписанный КриптоАРМ, тоже не помогло.

Наученный прошлым опытом, функцию LoadFile(...) из примера взял as is
код примера вроде тоже не модифицировал.
Вот мой код.

Dim oSignedData
Set oSignedData = CreateObject("CAdESCOM.CadesSignedData")
Dim Message: Message = LoadFile("c:\temp\Стартовая_35.xls.sig")
oSignedData.Verify Message, False

Файл, который проверяю, могу прислать.
Вроде в примере также, завтра с утра посмотрю на свежую голову, еще раз, конечно.

Вопрос.
Какие форматы принимает метод oSignedData.Verify(...) ?

Алексей Милюшков.
Offline Павел Смирнов  
#13 Оставлено : 18 июня 2008 г. 11:50:12(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
На этот раз код ошибки осмысленный - "The system cannot find the file specified."
Попробуйте запустить параллельно DebugView. Нам известна ошибка, возникающая при включённом трейсе и отсутствии сбора этого трейса.

Метод Verify принимает и бинарные данные, и base64, и PEM (base64 с заголовками).
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#14 Оставлено : 18 июня 2008 г. 14:19:25(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Доброе утро

Сделал имя фаила предельно простым, заодно проверил
файл командой dir + то что у меня в исходнике.
Файл размером 13 748 байт определенно есть.

При включенном DebugView код ошибки -2146881278
Если DebugView не запущен код ошибки -2147024894

лог от DebugView:
00000000 10:00:22 [2864] cades.dll: {4020} /DllMain/ cades.cpp(5385) : hInstance=6E000000, dwReason=2 lpReserved=0
00000001 10:00:22 [2864] cades.dll: {4024} /DllMain/ cades.cpp(5385) : hInstance=6E000000, dwReason=2 lpReserved=0
00000002 10:00:22 [2864] cades.dll: {3944} /DllMain/ cades.cpp(5385) : hInstance=6E000000, dwReason=2 lpReserved=0
00000003 10:00:28 [2864] cades.dll: {2868} /CadesVerifyMessage/ cades.cpp(3841) : (pVerifyPara=0x0013EE24, dwSignerIndex=0, pbSignedBlob=0x078A5008, cbSignedBlob=27496, ppDecodedBlob=0x0013EE64, ppVerificationInfo=0x0013EE48)
00000004 10:00:28 [2864] cades.dll: {2868} /CadesVerifyMessageImpl/ cades.cpp(3706) : Last win32 error thrown as exception
00000005 10:00:28 [2864] cades.dll: {2868} /CadesVerifyMessage/ cades.cpp(3854) : CAtlException, m_hr=0x80093102
00000006 10:00:28 [2864] cades.dll: {2868} /CadesVerifyMessage/ cades.cpp(3864) : (res=0, GetLastError=0x80093102
00000007 10:00:28 [2864] cades.dll: {2868} /CadesFreeVerificationInfo/ cades.cpp(3918) : (pVerificationInfo=0x00000000)
00000008 10:00:28 [2864] cades.dll: {2868} /CadesFreeVerificationInfo/ cades.cpp(3937) : (res=1, GetLastError=0x80093102
00000009 10:01:02 [2864] cades.dll: {4024} /DllMain/ cades.cpp(5385) : hInstance=6E000000, dwReason=3 lpReserved=0
00000010 10:01:02 [2864] cades.dll: {3944} /DllMain/ cades.cpp(5385) : hInstance=6E000000, dwReason=3 lpReserved=0
00000011 10:01:03 [2864] cades.dll: {4020} /DllMain/ cades.cpp(5385) : hInstance=6E000000, dwReason=3 lpReserved=0

Алексей Милюшков.
Offline Павел Смирнов  
#15 Оставлено : 18 июня 2008 г. 14:48:15(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Ошибка 0x80093102 (-2146881278 ): ASN1 unexpected end of data.
Очевидно, данные поданы в неправильной кодировке.

Обратите внимание, что при чтении бинарного файла функцией из примера Вы получите юникодную строку. При этом вы обязательно получите ту ошибку, которую сейчас мы наблюдаем. Для правильного чтения бинарного файла можно воспользоваться средствами языка Visual Basic. С помощью FileSystemObject этого проделать не удастся.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#16 Оставлено : 20 июня 2008 г. 14:46:34(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Доброе утро.

Спасибо за помощь, по предыдущим вопросам.
Подписание и проверка, в данный момент работают.

Хитрость в том, что для подписания я читаю файл в UNICODE, а для
проверки читаю в raw bytes. При попытке подписать файл второй раз,
SignedStrBase64 = SD.CoSign(TheSigner, False)
к сожалению получил "The message had not been signed"
что в принципе понятно, так как проверка в UNICODE не заработала.

Вопросы:
- Как подписать файл второй, присоединенной подписью?
- Насколько я понял, без DebugView на новом PC не заработает, какие сроки мне обещать начальству?

Алексей Милюшков.
Offline Павел Смирнов  
#17 Оставлено : 20 июня 2008 г. 15:03:13(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Первый вопрос не очень понятен. CoSign работает штатно после вызова метода Verify:

Код:
SignedData.Verify Message, bDetached, VerifyFlag
NewMessage = SignedData.CoSign(Signer, bDetached)


По второму вопросу - попробуйте удалить настройки трейсинга из реестра.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#18 Оставлено : 23 июня 2008 г. 15:00:06(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

Доброе утро.

Извините за назойливость, но иногда проще спросить.

Имею:
+ Работают режимы проверки, подписания на одном PC
- Попытался перенести проект на другой PC получил ошибку:
-2147417848 (80010108) The object invoked has disconnected from its clients.
При первом запуске КриптоПро прочитало приватный ключ, при втором нет.
Одновременно на другом PC работает. Различия:
o Windows XP / Windows 2000
o Есть коды DebugView в реестре / их нет
o Может быть проверка заработает?
o Может быть надо специально регистрировать cades.dll (хотя ключ был прочитан)?
o Доступ OCSP проверял собственным софтом, может не заработает через OCSP util ?
o Что то еще, что я пока не вижу.

Естественно, я буду потихоньку проверять все пункты, но тем не меннее
Вопрос:
Вышеуказанный код ошибки имеет стандартную причину ? Или надо смотреть конкретный случай?

В любом случае спасибо, буду потихоньку проверять весь список.

Алексей Милюшков.
Offline Павел Смирнов  
#19 Оставлено : 23 июня 2008 г. 15:26:12(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Раньше с такой ошибкой не сталкивались. Как на этом ПК устанавливался CAdESCOM? Существует всего два штатных поддерживаемых способа: пакет cadescom.msi и модуль слияния cadescom.msm, подключаемый к другому установочному пакету Windows Installer.

P.S. Если есть подозрение на работу с OCSP или TSP - обязательно проверяйте с помощью соответствующих утилит: ocsputil или tsputil.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline mil  
#20 Оставлено : 23 июня 2008 г. 21:26:14(UTC)
mil

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 04.06.2008(UTC)
Сообщений: 23
Откуда: Москва

При ближайшем рассмотрении выяснилось:

Проблему можно сформулировать проще. В следующей конфигурации не работает TSPutil или OCSPutil (что удобнее)
- Windows 2000 Server English
- Crypto Pro 3.0 rus kc1

Причина: нет возможности установить сертификат сервиса, те сертификат импортируется но TSPutil его не находит

Для воспроизведения ошибки можно обратиться на сервис меток времени по http://uc.mgr.ru/tsp/tsp.srf
Метка времени будет получена, но при ее просмотре будет видна проблема с сертификатом.

Пока у меня нет уверенности, как решать эту проблему, возможно это BUG report для TSPutil.

Алексей Милюшков.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.