Описание ошибки ошибка подписи хэша с помощью алгоритма 32801

Обновлено: 06.07.2024

Обновили ЭЦП, т.к. истек срок. Новый ключ с шифрованием GOST R 34.10-2012. Установил в Розницу (2.2.11.16) платформа 8.3.13.1644. Проверил этот ключ в 1С всё норм. Но при передачи документов в ГИСМ выдаёт ошибку. Скрины прилагаю.

КриптоПро обновил до последней версии 4.0.9963.

Уже и не знаю где смотреть, куда копать. помогите плз.

Нет. Обновили ключ. Поставили. Возникла проблема. Начал искать решение. Одно из них обновление КриптоПро. Только после этого обновил. До этого КриптоПро 4.0.9944 была. Удалось ли вам побороть проблему? У меня УТ11, обновление на самую свежую версию не исправило проблему.
Различные "махинации" с программой (ниже) привели к ответу от сервера "подпись не верна".
ПараметрыXMLDSig.ИмяАлгоритмаПодписи = "GR 34.10-2012 256";
ПараметрыXMLDSig.OIDАлгоритмаПодписи = "1.2.643.7.1.1.3.2";
ПараметрыXMLDSig.ИмяАлгоритмаХеширования = "GR 34.11-2012 256";
ПараметрыXMLDSig.OIDАлгоритмаХеширования = "1.2.643.7.1.1.2.2";

(7) в актуальной УТ (от 20.02) есть изменения в алгоритмах (хотя и закомментировано и мне не помогло), при подписи автоматом определяется нужный алгоритм:

ПараметрыXMLDSig.ИмяАлгоритмаПодписи = "GOST R 34.10-2001" + Символы.ПС + "GOST R 34.11-2012";
ПараметрыXMLDSig.OIDАлгоритмаПодписи = "1.2.643.2.2.3" + Символы.ПС + "1.2.643.7.1.1.3.2"; // ГОСТ R 34.11/34.10-2001
ПараметрыXMLDSig.ИмяАлгоритмаХеширования = "GOST R 34.11-94" + Символы.ПС + "GOST R 34.11-12";
ПараметрыXMLDSig.OIDАлгоритмаХеширования = "1.2.643.2.2.9" + Символы.ПС + "1.2.643.7.1.1.2.2"; // ГОСТ R 34.11-94

(9) У вас в чем проявляется проблема?
Запрашивал свой УЦ - сказали что сертификаты с этого года могут выпускаться только с актуальным (2012) ГОСТом. Добрый день. Возникла такая же проблема после обновления розницы до релиза Розница, редакция 2.2 (2.2.11.29)
Кто-нибудь решил эту проблему?

Получен ответ отдела разработки.

В ближайшем релизе выйдет исправление.

Тоска тоскливая. Сейчас та же проблема с конфигурацией "Медицина. Больничные", точь в точь.

(12) dishik , а розница часто обновляется? Можно попросить вас маякнуть в этой ветке, когда выйдет обновление?

Типовые ошибки при попытке создания запроса на сертификат в веб-интерфейсе сервиса подписи.

1. На сервисе подписи нет доступных провайдеров


Возможные причины возникновения ошибки:
На сервисе подписи нет провайдеров в статусе "Enabled", которые могут использоваться для создания новых ключей.

2. Message: invalid_license MessageDetail: Превышено количество пользователей, разрешенных лицензией


Диагностика:
Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins».

Пример:
CertificateRequestValidator Message: CertificateRequestValidator. Ошибка: invalid_license;
Описание: Превышено количество пользователей, разрешённых лицензией.;

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

Рекомендуемое решение:
- Выполнить командлет: Get-DssLicense -AssignedUsersInfo
- Если число пользователей, указанных в параметре "AssignedUsersNumber", равно или превышает число пользователей в параметре "TotalUsersNumberLimit" - ввести дополнительную лицензию на сервис подписи, в соответствие с руководством.

3. Message: An error has occured


Диагностика:
Ошибки в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins».

Возможные причины возникновения ошибки:
- На сервере DSS не запущена служба "Крипто Про HSM 2.0";
- УЗ пула приложений сервиса подписи не добавлена в группу "Привилегированные пользователи КриптоПро HSM";
- Истек срок действия закрытого ключа сертификата доступа к сервисному провайдеру КриптоПро HSM.

Рекомендуемое решение:
- Запустить службу "Крипто Про HSM 2.0";
- Убедиться, что на сервере DSS создана группа пользователей "Привилегированные пользователи КриптоПро HSM" и что в данную группу добавлена УЗ пула приложений сервиса подписи;
- Протестировать срок действия закрытого ключа сертификата доступа к сервисному провайдеру КриптоПро HSM средствами КриптоПро CSP. Если срок действия закрытого ключа истек - перевыпустить сертификат доступа к сервисному провайдеру КриптоПро HSM, перенести его на сервер КриптоПро DSS и перезапустить службу "Крипто Про HSM 2.0".

4. Сервис подписи не настроен на взаимодействие ни с одним УЦ или нет ни одного обработчика УЦ, доступного через веб-интерфейс


Диагностика:
Ошибки в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins».

А) Идентификатор УЦ: 1 Произошла ошибка при создании экземпляра обработчика УЦ: Exception occured while creating enroll with ID 1, Name Тестовый УЦ
System.ServiceModel.Security.SecurityNegotiationException: Не удалось установить безопасный канал для SSL/TLS с полномочиями "testuc".

В) Идентификатор УЦ: 1 Произошла ошибка при создании экземпляра обработчика УЦ: Exception occured while creating enroll with ID 1, Name Тестовый УЦ
System.InvalidOperationException: Сертификат оператора не найден в хранилище Локального компьютера либо недействителен. Отпечаток 56F8AA130B25C82173951E6F7C8C4E9B535904DB

Возможные причины возникновения ошибки:
- Не выполнена настройка для обеспечения взаимодействия DSS с УЦ;
- УЗ пула приложений сервиса подписи не выданы права на доступ к закрытому ключу сертификата привилегированного пользователя ЦР, указанного в настройках обработчика УЦ (OperatorCertThumbprint);
- Возникли проблемы на стороне самого УЦ (например, остановилась служба ЦР);
- В настройках обработчика УЦ указано некорректное имя ЦС (AuthorityName);
- В настройках обработчика УЦ указан отпечаток сертификата привилегированного пользователя ЦР, который не был установлен в хранилище "Личные" локального компьютера сервера DSS, с привязкой к закрытому ключу (OperatorCertThumbprint);
- В настройках обработчика УЦ указан некорректный адрес ЦР (CAServiceUrl);
- В настройках обработчика УЦ указан некорректный идентификатор папки ЦР (FolderId).

Рекомендуемое решение:
- Выполнить настройку обеспечения взаимодействия DSS c УЦ, в соответствие с руководством;
- Установить сертификат привилегированного пользователя ЦР, указанный в настройках обработчика УЦ (OperatorCertThumbprint), в хранилище "Личные" локального компьютера сервера DSS, с привязкой к закрытому ключу;
- Выдать УЗ пула приложений сервиса подписи права на доступ к закрытому ключу сертификата привилегированного пользователя ЦР, указанного в настройках обработчика УЦ (OperatorCertThumbprint);
- Указать в настройках обработчика УЦ корректные credentials-ы для подключения - сертификат привилегированного пользователя ЦР (OperatorCertThumbprint), адрес ЦР (CAServiceUrl), имя ЦС (AuthorityName), идентификатор папки ЦР (FolderId). Полный список параметров и их описание представлены в руководстве;
- Убедиться в том, что компоненты ЦР и ЦС функционируют в штатном режиме.

Я столкнулся с тем, что загруженный мною ЭСФ не принимается системой из-за ошибки подписи. В веб-версии самой ИС мой счет видно и все проверки он прошел кроме подписи.

Основной нюанс в том, что я не использую официальный SDK для подписи, а обхожусь средствами NCALayer. Я понимаю, что сделал велосипед, но счета отправляются и проходят проверки. Проблема только в подписи. На вопрос, отличается ли алгоритм подписи в SDK от NCALayer служба поддержки ИС ЭСФ ответила, что не отличается и проблем быть не должно. Больше от них добиться нечего. Вопрос о том, как "правильно" подписывать с помощью NCALayer они также не прояснили.

Вопрос мой заключался лишь в том, чтобы узнать, как подписывать ЭСФ только с помощью NCALayer. Это средство необходимо для взаимодействия граждан и бизнеса с государственными сервисами, в том числе и с веб-версией ИС ЭСФ. Так что мне с самого начала казалось логичным, что алгоритм подписи в нем и в SDK должны быть одинаковыми. Увы, в SDK я не нашел связи с NCALayer и подпись там выполняется локальным сервером на Java. Видимо по-уму в проекте надо создавать локальный сервер подписи (на основе примера из SDK). Но если так, то может тогда и отдельный сервер для взаимодействия с ИС ЭСФ?! А не слишком ли много для того, чтобы выполнить несколько операций?

Чуть позже открыв NCALayer обратил внимание на список модулей, среди которых есть "ИС ЭСФ 1.1". Вообще NCALayer предназначен для выполнения криптографических функций, т.е. это его базовый функционал, который может быть расширен сторонними модулями. А если есть модуль, значит он должен где-то использоваться! Поковырявшись в исходниках тестового стенда я нашел скрипт, где есть обращение к NCALayer! Итак

чтобы подписать одну строку отправьте веб-сокету объект следующего вида в формате JSON

где dataToSign ваша строка, storageName - имя хранилища ключей (PKCS12 если ключи хранятся локально на компьютере).

чтобы подписать массив строк

arrayToSign - объект со свойствами из подписываемых строк и ключами из их идентификаторов

Я должен поддерживать старую VB 6 ActiveX DLL, вызываемую другой сторонней программой, для которой у меня нет источников и т. Д. Эта DLL работает и прекрасно компилируется с API указанной программы в течение примерно 6 лет и 3 основных версий.

Но теперь, когда я пытаюсь скомпилировать DLL для новой основной версии, возникает упомянутая ошибка. Кажется, ошибка возникает до вызова "моего" кода, поэтому нет никакой необходимости в отладке или ведении журнала. Единственным выходом было компилировать без двоичной совместимости, что нереально. Мой поиск в Google обнаружил довольно много людей с той же проблемой, но без решения.

Кто-нибудь здесь знает, как решить эту проблему?

Похоже, что один из типов в интерфейсах, определенных в вашей новой DLL, отличается от типа в предыдущей DLL. Я делаю вывод, что вы используете типы, определенные в сторонней программе, в ваших открытых интерфейсах вашей DLL. Мне кажется, что третье лицо изменило определение одного из типов, но сохранило имя и GUID одинаковыми. Вы можете использовать что-то вроде OLE/COM Object viewer, чтобы проверить, правда ли это. Если это правда, то вы можете пожаловаться издателю сторонней программы. Достаточно ли у вас политической власти, чтобы добиться успеха?

Брюс МакКинни, гуру, который написал Hardcore Visual Basic 6, столкнулся с той же проблемой со структурой в библиотеке типов, где он изменил некоторые типы элементов. Единственное исправление, которое он мог найти, - это (по сути) нарушение бинарной совместимости - и это после некоторой переписки с командой компиляторов VB6, которую он знал довольно хорошо. Я не думаю, что кто-то еще мог бы сделать лучше.

Я наконец выясняю, как диагностировать ошибку VB6 32801 системным способом.

Моя теория такова: когда компилятор VB6 создает проект или двоичную совместимую библиотеку, компилятор декомпилирует информацию о типах из указанной библиотеки. Произошла ошибка 32801. Информация о типе исходного кода не совпадает с указанной библиотекой.

Существует инструмент под названием OLEView. Этот инструмент может декомпилировать информацию о типе COM в текст IDL. Что я делаю, так это декомпилирую указанную библиотеку в IDL и получаю последнюю хорошую сборку неисправной библиотеки. В большинстве случаев это версия сервера сборки, но сборка не работает на рабочей станции разработчика. Декомпилируйте последнюю хорошую сборку. Используйте инструмент сравнения текста, такой как WINMerge, и найдите различия между библиотеками типов. Различия позволяют легко отследить проблему.

После нескольких долгих исследований ошибочные строки кода, вызвавшие эту ошибку, оказались

Просто изменил это на

. и ошибка исчезла.

BookmarkEnum перечисление от ADO. Наш сервер сборки - Server 2003, а моя машина разработки - Win10. Проект ссылается на ADO 2.8, но, очевидно, эта библиотека типов имеет некоторые отличия на Server 2003 и Win10

Файл _577ae4f32801af871ec801.exe из unknown company является частью unknown product. _577ae4f32801af871ec801.exe, расположенный в C:WindowsInstaller \_577AE4F32801AF871EC801 .exe с размером файла 53910 байт, версия файла Unknown version, подпись 21b05fe95bb6e480486b47c489e4dc0c.

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт "Clean Junk Files".
  3. Когда появится новое окно, нажмите на кнопку "start" и дождитесь окончания поиска.
  4. потом нажмите на кнопку "Select All".
  5. нажмите на кнопку "start cleaning".

Clean Registry to fix _577ae4f32801af871ec801.exe has stopped working error

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт "Fix Registry problems".
  3. Нажмите на кнопку "select all" для проверки всех разделов реестра на наличие ошибок.
  4. 4. Нажмите на кнопку "Start" и подождите несколько минут в зависимости от размера файла реестра.
  5. После завершения поиска нажмите на кнопку "select all".
  6. Нажмите на кнопку "Fix selected".
    P.S. Вам может потребоваться повторно выполнить эти шаги.

3- Настройка Windows для исправления критических ошибок _577ae4f32801af871ec801.exe:

Clean Registry to fix _577ae4f32801af871ec801.exe has stopped working error

  1. Нажмите правой кнопкой мыши на «Мой компьютер» на рабочем столе и выберите пункт «Свойства».
  2. В меню слева выберите " Advanced system settings".
  3. В разделе «Быстродействие» нажмите на кнопку «Параметры».
  4. Нажмите на вкладку "data Execution prevention".
  5. Выберите опцию " Turn on DEP for all programs and services . " .
  6. Нажмите на кнопку "add" и выберите файл _577ae4f32801af871ec801.exe, а затем нажмите на кнопку "open".
  7. Нажмите на кнопку "ok" и перезагрузите свой компьютер.
Как другие пользователи поступают с этим файлом?

Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.

Читайте также: