Неправильное значение хеша ошибка при проверке цифровой подписи

Здравствуйте. Сделал отсоединенную подпись с помощью Browser plug-in, вот часть моего кода: var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner"); yield...

Offline

commander

 


#1
Оставлено
:

16 декабря 2019 г. 16:29:55(UTC)

commander

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

Группы: Участники

Зарегистрирован: 16.12.2008(UTC)
Сообщений: 21
Откуда: Смоленск

Сказал(а) «Спасибо»: 3 раз

Здравствуйте.
Сделал отсоединенную подпись с помощью Browser plug-in, вот часть моего кода:

Код:

var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY);
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding = cadesplugin.CADESCOM_BASE64_TO_BINARY;
yield oSignedData.propset_Content(dataToSign);
var sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_PKCS7_TYPE, true); //(отсоединенная)

Передаю в качестве dataToSign «SGVsbG8gV29ybGQ=» (это текст «Hello World» в BASE64). Все подписывается без ошибок, возвращается кодированная в BASE64 подпись, я ее раскодирую из BASE64 и сохраняю в файл.
Когда я сам проверяю эту подпись через oSignedData.VerifyCades — ошибок нет, а когда пробую проверить, например, здесь https://www.justsign.me/verifyqca/Verify/ получаю (выбираю «Подпись в формате CMS», это правильно?):
Результат проверки Подпись не действительна
Не удалось проверить подпись CAdES-BES. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.

Проверка здесь https://www.gosuslugi.ru/pgu/eds/order тоже показывает «Электронная подпись недействительна».
Где еще можно проверить мою подпись, чтобы узнать, все ли я делаю правильно?
Дело ведь не в том, что подпись получается в формате CAdES BES? Она же все равно должна здесь проверяться?
Может у меня в коде где-то ошибка?
Подскажите, в какую сторону копать. Спасибо.


Вверх


Offline

Андрей Писарев

 


#2
Оставлено
:

16 декабря 2019 г. 18:36:12(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

Здравствуйте.

Приложите подпись или в ЛС пришлите.

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

two_oceans

 


#3
Оставлено
:

17 декабря 2019 г. 5:03:15(UTC)

two_oceans

Статус: Эксперт

Группы: Участники

Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,598
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 388 раз в 363 постах

Автор: commander Перейти к цитате

Дело ведь не в том, что подпись получается в формате CAdES BES? Она же все равно должна здесь проверяться?
Может у меня в коде где-то ошибка?

В большинстве случаев да, сейчас пишут PKCS7, а по факту CMS. Однако хотелось бы обратить внимание что для плагина константы PKCS7 и CADES-BES разные, поэтому разница все же есть и получается как раз не CADES-BES, это может влиять на проверку. Попробуйте в плагине при создании указать тип CADES-BES, велика вероятность что он подойдет в большинстве случаев где указано PKCS7/CMS и будет корректно определяться, где нужен именно CADES-BES.

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


Вверх

thanks 1 пользователь поблагодарил two_oceans за этот пост.

commander

оставлено 17.12.2019(UTC)


Offline

Андрей Писарев

 


#4
Оставлено
:

17 декабря 2019 г. 9:46:22(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

Здравствуйте.

Через плагин нельзя создать PKCS#7.

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

commander

 


#5
Оставлено
:

17 декабря 2019 г. 10:36:44(UTC)

commander

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

Группы: Участники

Зарегистрирован: 16.12.2008(UTC)
Сообщений: 21
Откуда: Смоленск

Сказал(а) «Спасибо»: 3 раз

Андрей Писарев написал:

Через плагин нельзя создать PKCS#7.

Cпасибо за CryptExpert.
Т.е. подпись, полученную из плагина, нельзя будет использовать в СМЭВ, МЭДО и остальных случаях, где требуется PKCS#7? Может после подписания в плагине подпись PKCS#7 можно как-нибудь собрать руками?

two_oceans написал:

Попробуйте в плагине при создании указать тип CADES-BES, велика вероятность что он подойдет в большинстве случаев где указано PKCS7/CMS и будет корректно определяться, где нужен именно CADES-BES.

Это я пробовал, подпись все равно не проверяется. Или я не нашел, где можно проверить подпись такого формата.
Проверка через CryptExpert тоже показывает «Подпись не верна (2148077575) — Неправильное значение хеша».
Прилагаю подписываемый файл «1.txt» и примеры подписей.
1.TXT (1kb) загружен 4 раз(а). CADESCOM_PKCS7_TYPE.p7b (7kb) загружен 2 раз(а). CADESCOM_CADES_BES.p7b (7kb) загружен 2 раз(а).


Вверх


Offline

Андрей Писарев

 


#6
Оставлено
:

17 декабря 2019 г. 10:45:37(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

Хеш неправильный.

У файла —
75ED15D84DF84291C67FE07BF234AC69E92A9C2A378EE62F342AF739E829EBA9

А внутри подписей:
34 F0 EE E9 8B B7 7B E9 3F 00 8E FD F3 7B CD 5F
93 4B A0 E1 5C 93 9F 2A 17 2F A7 23 34 1E 99 1E

Snimok ehkrana ot 2019-12-17 11-45-10.png (42kb) загружен 31 раз(а).

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

thanks 1 пользователь поблагодарил Андрей * за этот пост.

commander

оставлено 17.12.2019(UTC)


Offline

Андрей Писарев

 


#7
Оставлено
:

17 декабря 2019 г. 10:50:10(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

Для самопроверки — можно через пример подписания файла — указать 1.txt
и подписать (т.к. сертфикат ГОСТ 2001 — его выбирать), получаем при проверке тот же хеш (внутри ASN.1):

Snimok ehkrana ot 2019-12-17 11-49-19.png (7kb) загружен 18 раз(а).

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей Писарев

 


#8
Оставлено
:

17 декабря 2019 г. 10:51:12(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

cadesplugin.CADESCOM_PKCS7_TYPE заменить на CADES BES

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

commander

 


#9
Оставлено
:

17 декабря 2019 г. 13:20:27(UTC)

commander

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

Группы: Участники

Зарегистрирован: 16.12.2008(UTC)
Сообщений: 21
Откуда: Смоленск

Сказал(а) «Спасибо»: 3 раз

Автор: Андрей Писарев Перейти к цитате

Хеш неправильный.

Да, почему-то неправильный.
Но почему так получается?
Ведь dataToSign перед подписанием точно SGVsbG8gV29ybGQ=
Несколько раз проверил:

Код:

yield oSignedData.propset_ContentEncoding = cadesplugin.CADESCOM_BASE64_TO_BINARY;
yield oSignedData.propset_Content(dataToSign);
alert("dataToSign="+dataToSign);
var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);

Я же все правильно написал, чтобы dataToSign ожидалась в Base64?
Раскодирую подпись из Base64 тоже правильно, иначе она бы вообще не проверялась.


Вверх


Offline

Андрей Писарев

 


#10
Оставлено
:

17 декабря 2019 г. 13:32:06(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

на тестовой страничке попробовал, у меня работает корректно, хеш правильный и в стороннем ПО проверяется,
вот участок:

Код:


 var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
      
                yield oSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
                yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY); //
               
			 
                yield oSignedData.propset_Content(dataToSign);// dataToSign = в base64

                try {
                    Signature = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_BES, detached);
                }
                catch (err) {
                    errormes = "Не удалось создать подпись из-за ошибки: " + cadesplugin.getLastError(err);
                    throw errormes;
                }
            }

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

thanks 1 пользователь поблагодарил Андрей * за этот пост.

commander

оставлено 17.12.2019(UTC)

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

[ Иван Климентьев (разработчик) ]

>а ПКЗО не формирует и вадает ошибку

Это ошибка криптографической системы, а не ПКЗО.

Нужно иметь правильно подписанный файл.

1. Обратите внимание, что приказом Росреестра от 14.01.2011 N П/1 устанавливается требуемый формат подписи. В приложении 1 есть пункт 1.7, в котором сказано: «Используется формат отсоединенного файла ЭЦП, описываемый в пункте 5.2 документа RFC 2630». Отсоединенный файл означает то, что в sig-файле должна содержаться исключительно подпись, без подписываемого содержимого. Файл отдельно, подпись отдельно. При этом файл подписи должен иметь размер несколько килобайт и в большинстве случаев не быть больше размером, чем оригинальный подписываемый файл — это явно свидетельствует о неверности требуемого формата подписи. В Вашем случае — в sig-файле содержится не только подпись, но и подписываемый файл. Это видно по размерам файлов.

2. Также файл подписи должен быть в DER-кодировке, а не в BASE64.

Источник

Проблемы с подписанием PDF документа установленной подписью #6

pavenkostanislav commented Sep 6, 2017 •

Сможете помочь с самим подписанием?

Не выполняется строчка:
let sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1);
Ошибка неустановленного корневого сертификата, но он установлен аж в 3 директориив личные с «Доверенные корневые центры сертификации» и «Доверенные лица»
A certificate chain could not be built to a trusted root authority. (0x800B010A)

The text was updated successfully, but these errors were encountered:

splincode commented Sep 6, 2017

Посмотрю, что можно сделать

pavenkostanislav commented Sep 6, 2017

splincode commented Sep 7, 2017

Должны выполняться требования для сертификатов, которые участвуют в подписании (вашTSP и т.п.) — должны быть корневые сертификаты в доверенных корневых.
Посмотрите ответы здесь:
http://www.cryptopro.ru/forum2/default.aspx?g=posts&m=83361#post83361

Если используете тестовую службу: скачайте и установите тестовый корневой сертификат «Тестовый УЦ ООО «КРИПТО-ПРО»».
http://www.cryptopro.ru/forum2/default.aspx?g=posts&m=83398#post83398

pavenkostanislav commented Sep 7, 2017

Да спасибо. С тестовой службой подпись создалась, но теперь проблема в проверке её:

Сервер электронной подписи КриптоПро DSS
Результат проверки

Название документа spravka_soc_viplaty_09.08.2017.pdf.p7s
Подпись 1
Результат проверки
Подпись не действительна

Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.

Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1

Время подписи, полученное из штампа
9/7/2017 10:21:14 AM
Время подписи
9/7/2017 10:21:02 AM

Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

splincode commented Sep 7, 2017

В принципе, ответы оставляют на форуме сотрудники КриптоПро, если что пишите сюда решение

pavenkostanislav commented Sep 7, 2017 •

Пока нет ответа

но с начала переписки в приципе какая-то подпись создалась и ошибки нет больше.

Вот только эта подпись не проходит проверку в Контуре.Крипто и даже в КриптоПро DSS

splincode commented Sep 7, 2017

Приложите документ и подпись

splincode commented Sep 7, 2017

pavenkostanislav commented Sep 7, 2017 •

sign.zip
Вот так лучше всего. не все форматы можно добавлять

pavenkostanislav commented Sep 7, 2017 •

Если код подписания выглядит так:

Ключевое отличие тут:

//let byteCharacters: string;
//if (this.crypto.isChromium) <
// byteCharacters = window.atob(b64Data);
//> else <
// byteCharacters = Base64.decode(b64Data);
//>

splincode commented Sep 7, 2017

Это рабочая версия? Надо будет добавить код в основной репозиторий, когда появится новая версия, я обязательно вам пришли, чтобы вы сделали pull request

pavenkostanislav commented Sep 7, 2017 •

Ну как рабочая. Сертификат проверку не проходит
вырезка из рабочего проекта тут pavenkostanislav/GetingCertificatesList можно посмотреть, но если честно я его не компилил.

splincode commented Sep 7, 2017

подпись не проходит проверку.

Хеш указанного файла:
CB AE CB 61 1C 3B F9 6A 8E B1 63 B3 CE E7 EA D5 05 1F A4 C1 9B EF 15 FB 98 64 1F 3D 0C BB 84 C3

а в p7s прохешировано было что-то «другое»:
64 D5 52 BF 80 B9 0E B1 C9 3D 29 83 5D 54 D5 57 0C F4 B0 45 9B 92 D9 79 D9 43 13 05 81 BB 2B FF

  • ASN.1 анализатор выдал 1 предупреждение и 1 ошибку.

позиция:
3300 0: [0] Error: Object has zero length.
3302 15: GeneralizedTime 07/09/2017 07:21:15 GMT

Warning: Further data follows ASN.1 data at position 10798.

pavenkostanislav commented Sep 7, 2017 •

Ну для начала спасибо.
Но мне бы больше информации.
Я тем же путём создавал прикреплённую подпись — всё проходит проверку
Ещё ошибку пофиксил:
oSignedData.Content = dataToSign.replace(‘data:application/pdf;base64,’, »);

pavenkostanislav commented Sep 8, 2017 •

Доброе время суток, уже близок к усуществению отсоединённой подписи, присоединённая уже получается и проходит проверку на сайте Сервер электронной подписи КриптоПро DSS.
Возможно Вы сможете помочь с решением вопроса: «Отсоединённой подпись не проходит проверку, а присоединённая подпись проходит»

Вот этим кодом я делаю подпись:

Источник

Cades bes ошибка неправильное значение хеша код 0x80091007 сообщение содержит неверную подпись

Ошибки в работе КриптоПро браузер плагин

Что делать, если не работает КриптоПро ЭЦП Browser plug-in

При использовании КриптоПро ЭЦП Browser plug-in могут возникать ошибки, приводящие к тому, что плагин не работает или работает некорректно, из-за чего электронная подпись не создаётся. Рассмотрим наиболее распространённые варианты ошибок и разберёмся, как их устранить.

При проверке отображается статус «Плагин загружен», но нет информации о криптопровайдере

Это значит, что криптопровайдер КриптоПро CSP не установлен. Необходимо загрузить дистрибутив программы с сайта разработчика и установить её на компьютер. В настройках плагина в графу Список доверенных узлов также следует добавить адрес ресурса, с которым работаете (например, nalog. ru).

Не удаётся построить цепочку сертификатов для доверенного корневого центра. (0x800B010A)

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

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

Сначала проверьте, строится ли цепочка доверия. Для этого нужно открыть файл сертификата, а затем вкладку Путь сертификации.

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

Для установки корневого сертификата необходимо:

Установка промежуточных сертификатов выполняется точно так же, как и установка корневых, за исключением того, что в процессе установки вместо пункта Доверенные корневые центры сертификации нужно выбрать пункт Промежуточные центры сертификации.

Если вы создаёте ЭЦП таких форматов, как CAdES-T или CAdES-X Long Type 1, ошибка может возникать из-за отсутствия доверия к сертификату оператора службы предоставления штампов времени. В этой ситуации нужно установить корневой сертификат УЦ в доверенные корневые центры.

ЭЦП создаётся с ошибкой при проверке цепочки сертификатов

Данная проблема возникает из-за отсутствия доступа к спискам отозванных сертификатов. Списки должны быть доступны для загрузки на сайте удостоверяющего центра, который выпустил сертификат ЭЦП. Установка списков выполняется по той же схеме, что и установка промежуточного сертификата.

Ошибка несоответствия версии плагина

Появляется сообщение «Плагин недоступен»

Данная проблема может возникнуть, если ваш браузер не поддерживает установленную версию плагина. Попробуйте воспользоваться другим обозревателем.

Ошибки 0x8007064A и 0x8007065B

Ошибка возникает в связи с окончанием срока действия лицензий на КриптоПро CSP (КриптоПро TSP Client 2.0, Криптопро OCSP Client 2.0).

Чтобы создать электронную подпись с форматом CAdES-BES, необходима действующая лицензия на КриптоПро CSP. Создание ЭЦП с форматом CAdES-X Long Type 1 потребует наличия действующих лицензий:

После приобретения лицензии потребуется её активация.

Набор ключей не существует (0x80090016)

Возникает из-за того, что у браузера нет прав для выполнения операции. Для решения проблемы в настройках плагина добавьте сайт в Список доверенных узлов.

Отказано в доступе (0x80090010)

Возникает в связи с истечением срока действия закрытого ключа. Чтобы проверить срок действия, запустите Крипто-Про CSP, затем откройте вкладку Сервис. Далее необходимо выбрать пункт Протестировать и указать контейнер с закрытым ключом. Если в результатах тестирования вы увидите, что срок действия закрытого ключа истёк, необходимо получить новый ключ.

Ошибка: Invalid algorithm specified. (0x80090008)

Появление такой ошибки означает, что криптопровайдер не поддерживает алгоритм используемого сертификата. Рекомендуется проверить актуальность версии КриптоПро CSP.

Если предлагаемые выше способы устранения ошибок не помогут, рекомендуем обратиться в службу поддержки КриптоПро.

У вас ещё нет электронной подписи? Её можно заказать у нас на сайте. Выберите подходящий вариант ЭЦП: для участия в электронных торгах, работы с порталами или отчётности. Процедура оформления не займёт больше одного дня.

Подпись ошибка 0x80090010 отказано в доступе КриптоПро – решение

Сегодня разберем проблему с подписью в КриптоПро, а конкретнее строчку в отчете “ошибка 0x80090010 отказано в доступе”. Поговорим чем вызван этот сбой в СУФД, дадим общие рекомендации по обновлению программы. В конце статьи оставим инструкцию как же все такие подписать документы, если ключ просрочен, а отправить отчет нужно.

Ошибка подписи. CryptSignMessage: Отказано в доступе

Отправляясь тестировать контейнер первым делом получаем отчет с ошибкой вот такого содержания:

Ошибка 0x80090010 отказано в доступе

Для начала проверьте версию КриптоПРО CSP. Если версия стабильная и рабочая – оставляем, если помимо этого сбоя присутствую другие ошибки – версию программы лучше обновить на будущее.
Ошибка 0x80090010 отказано в доступе – означает что просрочена версия открытого или закрытого ключа. Создавая запрос на выдачу сертификата для генерации ключей, мы несём необходимые бумаги для выдачи подписи через несколько недель. Контроль будет осуществляться с даты создания запроса. Тут мы используем лайфхак, об этом ниже, а для начала мы протестируем контейнер.

Проверяем контейнер

Для проверки контейнера проделаем стандартные операции перечисленные ниже:

Проверка завершилась с ошибкой

Срок действия закрытого ключа истек

Срок действия закрытого ключа истек

Еще раз – ошибка подписи 0x80090010 всегда означает что истек срок действия закрытого ключа.

Как подписать документы?

Тут придется прибегнуть к маленькой хитрости, которая работала раньше во многих программах схожего типа – поменять системную дату на срок действия системного ключа:

Настройка даты и времени

После этого можно выдохнуть, заварить чашечку крепкого кофе… И начать готовить документы и оформлять заявку для оформления нового сертификата.

Заключение

Напишите нам в комментариях помогла ли вам данная инструкция побороть проблему отказа доступа в КриптоПро. Если статья была полезна – делитесь ссылками в соцсетях, так вы поможете другим пользователям с аналогичной проблемой. Задавайте другие вопросы о других программах, которые работают с ошибками или вызывают вопросы.

Евгений Загорский

IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.

Источник

Adblock
detector

Доброе время суток, уже близок к усуществению отсоединённой подписи, присоединённая уже получается и проходит проверку на сайте Сервер электронной подписи КриптоПро DSS.
Возможно Вы сможете помочь с решением вопроса: «Отсоединённой подпись не проходит проверку, а присоединённая подпись проходит»

Вот этим кодом я делаю подпись:


function SignCreate(thumbprint, dataToSign) {

    let oCertificate;
    let oSigner;
    let oSignedData;
    let sSignedMessage;

    let oStore = cadesplugin.CreateObject("CAPICOM.Store");
    oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

    let oCertificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);

    if (oCertificates.Count == 0) {
        return "Certificate not found: " + thumbprint;
    }

    oCertificate = oCertificates.Item(1);
    oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner");
    oSigner.Certificate = oCertificate;
    oSigner.TSAAddress = "http://testca.cryptopro.ru/tsp/tsp.srf";

    oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
    oSignedData.Content = dataToSign.replace('data:application/pdf;base64,', '');

    try {
        sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);
    } catch (err) {
        return "Failed to create signature. Error: " + GetErrorMessage(err);
    }

    try {
        oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1, true);
    } catch (err) {
        alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
        return false;
    }

    oStore.Close();
    return sSignedMessage;
}

Пробую два варианта:
Вариант отсоединённой подписи не проходит проверку ЭП в КриптоПро DSS:
Код:
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);

Цитата:
Результат проверки
Название документа spravka_soc_viplaty_09.08.2017.pdfОП.p7s
Подпись 1
Результат проверки
Подпись не действительна
Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/8/2017 8:20:37 AM
Время подписи
9/8/2017 8:20:21 AM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Вариант присоединённой подписи проверку проходит:
Код:
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, false);

Цитата:

Сервер электронной подписи КриптоПро DSS
Результат проверки
Название документа spravka_soc_viplaty_09.08.2017.pdfПП.p7s
Подпись 1
Результат проверки
Подпись действительна
Дополнительная информация
Отсутствует
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/8/2017 8:39:21 AM
Время подписи
9/8/2017 8:39:00 AM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Оба варианта отрабатывают без ошибок и возвращают на выходе файл
Во вложении оба варианта рассмотрены
sign.zip


15 фев 2019 03:42 #10601
от bugzi

танцы продолжаются, с того ни с чего начала вылетать ошибка ошибки при доведение до уэп неправильное значение хэша. пока ничего путнего не нарыл.
браузер ie11 и ff нижние версии. почитав в сети и тут на форуме ничего пока не помогло.дохожу до утверждения и вылетает ошибка.

Утвердить главным бухгалтером
Ошибки при доведение до УЭП. Неправильное значение хэша (неудавшееся преобразование [xmldsig-05e4a6e4-3c15-499d-be3c-2881720f2da9-ref] [] : );


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 04:50 #10608
от bigvolga

такая же проблема с вечера 14 февраля.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 04:57 #10609
от igor1806

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 05:11 #10613
от bigvolga

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 05:34 #10615
от bugzi

bigvolga пишет: Да, в IE11 утвердили.

ошибка во всех браузерах. я в основном и ia11 и настраиваю, просто если чего не растет пробую и вдругих.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 20:39 #10691
от bugzi

кто нибудь победил? написал в тех.поддержку, пока жду.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 21:1317 фев 2019 21:13 #10692
от Wmffre

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 21:35 #10693
от bugzi

ответ тех. поддержки

Добрый день! Для устранения ошибки доведения до УЭП необходимо отключить плагин ЭЦП Browser plug-in версии 2.0 и использовать Jinn плагин. Ошибка доведения до УЭП появляется только при использовании ЭЦП Browser plug-in. Необходимо настроить АРМ согласно требованиям на портале: elearning.otr.ru/mod/page/view.php?id=1719 Дополнительная информация по работе в подсистеме «Учет и отчетность» Электронного бюджета находится на обучающем портале: elearning.otr.ru/course/view.php?id=27


Не я такой, а жизнь этому учит..

Спасибо сказали: sedkazna

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 22:44 #10694
от bugzi


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Область применения электронной подписи (ЭП или ЭЦП) довольно широка. Например, многие специальные сервисы требуют верификации пользователя с её помощью: Госуслуги, онлайн-сервисы для управления средствами в банке, электронные площадки и другие. Поэтому любые технические неполадки, возникающие при использовании ЭЦП, могут вызвать различные серьёзные: от упущенной выгоды до материальных убытков.

Какие бывают ошибки

Проблемы при использовании ЭП, с которыми пользователи встречаются чаще всего, можно условно разделить на три группы:

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

Рассмотрим неполадки подробнее и разберёмся, как их решать.

Сертификат не найден

Иногда при попытке подписать электронный документ с помощью ЭП пользователь может столкнуться с ошибкой «Не удалось найти ни одного сертификата, пригодного для создания подписи».

У подобных ошибок могут быть следующие причины:

  1. На компьютере не установлены корневые сертификаты Удостоверяющего Центра (УЦ), в котором была получена ЭП. Необходимо установить либо обновить корневой сертификат. Установка корневых сертификатов удостоверяющего центра подробно описана в нашей инструкции.
  2. На ПК не установлено ни одного личного сертификата ЭП. Для применения ЭП необходимы и личные сертификаты. Об их установке мы писали в другой статье.
  3. Установленные на компьютере необходимые сертификаты не валидны. Сертификаты отозваны или просрочены. Уточните статус сертификата в УЦ. Ошибка с текстом «Ваш сертификат ключа подписи включён в список отозванных» возникает, если у сертификата закончился срок действия или на ПК нужно обновить список сертификатов. В последней ситуации следует вручную загрузить перечень отозванных сертификатов.

Для установки списка отозванных сертификатов:

  • Откройте личный сертификат пользователя в окне Свойства браузера. Чтобы открыть его, наберите «Свойства браузера» в поисковой строке меню Пуск. Перейдите во вкладку Содержание и нажмите кнопку «Сертификаты».
  • 
личный сертификат1

  • Во вкладке Состав выберите из списка пункт «Точки распространения списков отзыва».
  • В блоке Имя точки распространения скопируйте ссылку на загрузку файла со списком отзыва.
  • 
Имя точки2

  • Скачайте по указанной ссылке файл. Нажмите по нему правой кнопкой мыши и выберите в контекстном меню «Установить список отзыва (CRL)».
  • Следуйте указаниям «Мастера импорта сертификатов».

Не виден сертификат на носителе

Как правило, причина такой проблемы — сбой в работе программных компонентов. Для её решения достаточно перезагрузить компьютер. Однако иногда этого бывает недостаточно, поэтому требуется переустановка драйверов или обращение в службу техподдержки.

К наиболее распространённым причинам такой проблемы относятся следующие случаи:

  1. Драйвер носителя не установлен или установлен некорректно. Для решения проблемы необходимо извлечь носитель электронной подписи из ПК и скачать последнюю версию драйвера носителя с официальных ресурсов. Если переустановка драйвера не помогла, подключите носитель к другому ПК, чтобы убедиться в исправности токена. Если токен определится другой системой, попробуйте удалить на неисправном компьютере драйвер носителя и установить его заново.
  2. Долгое опознание носителя. Для решения проблемы необходимо дождаться завершения процесса или обновить версию операционной системы.
  3. Некорректная работа USB-порта. Подключите токен к другому USB-порту, чтобы убедиться, что проблема не в носителе ЭП. Если система определила токен, перезагрузите компьютер. Если это не поможет, следует обратиться службу технической поддержки.
  4. Неисправность носителя. Если при подключении токена к другому компьютеру или USB-порту система не определяет его, значит, проблема в самом носителе. Устранение неисправности возможно в данном случае лишь одним путём — нужно обратиться в сервисный центр для выпуска нового носителя.

ЭП не подписывает документ

Причин у подобной проблемы множество. Каждый случай требует отдельной проверки. Среди самых распространённых можно выделить следующие неполадки:

  1. Закрытый ключ на используемом контейнере не соответствует открытому ключу сертификата. Возможно, был выбран не тот контейнер, поэтому следует проверить все закрытые контейнеры на компьютере. Если необходимый контейнер по тем или иным причинам отсутствует, владельцу придётся обращаться в удостоверяющий центр для перевыпуска ЭП.
  2. Ошибка «Сертификат недействителен» (certificate is not valid). Следует повторно установить сертификат ЭП по инструкциям УЦ в зависимости от используемого криптопровайдера — КриптоПро CSP, ViPNet CSP или другого.
  3. Сертификат ЭП определяется как непроверенный. В этом случае необходимо переустановить корневой сертификат удостоверяющего центра.
  4. Истёк срок действия криптопровайдера. Для решения этой проблемы необходим новый лицензионный ключ к программе-криптопровайдеру. Для его получения необходимо обращаться к специалистам УЦ или к ответственным сотрудникам своей организации.
  5. Подключён носитель с другим сертификатом. Убедитесь, что подключён правильный токен. Проверьте также, не подключены ли носители других сертификатов. Отключите другие носители в случае их обнаружения.

В момент подписания электронных документов или формирования запроса в различных может возникнуть ошибка «Невозможно создание объекта сервером программирования объектов».


подписания3

В этой ситуации помогает установка и регистрация библиотеки Capicom:

  1. Скачайте файл архива.
  2. Распакуйте и переместите файлы capicom.dll и capicom.inf в каталог syswow64, находящийся в корневой папке ОС.
  3. Откройте командную строку от имени администратора — для этого в меню Пуск наберите «Командная строка», нажмите по найденному приложению правой кнопкой мыши и выберите Запуск от имени администратора.
  4. 
«Командная строка»4

  5. Введите «c:windowssyswow64regsvr32.exe capicom.dll» (без кавычек) и нажмите ENTER. Должно появиться уведомление о том, что команда выполнена успешно.
  6. 
нажмите ENTER5

Выбранная подпись не авторизована

Подобная ошибка возникает при попытке авторизации в личном кабинете на электронных торговых площадках. Например, при входе на площадку ZakazRF отображается сообщение «Выбранная ЭЦП не авторизована».


площадку ZakazRF6

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

Процесс запроса на авторизацию ЭП на разных торговых площадках может отличаться: часто нужно отправлять запрос оператору системы на авторизацию, иногда рабочее место настраивается автоматически.
Если ошибка сохраняется, возможно, следует отключить защитное ПО или добавить сайт электронной площадки в исключения.

Часто задаваемые вопросы

Почему компьютер не видит ЭЦП?

Причина кроется в несовместимости программного обеспечения и физического носителя ЭЦП. Необходимо проверить версию операционной системы и переустановить её до нужной версии. Если токен повреждён, возможно, понадобится обратиться в удостоверяющий центр для перевыпуска электронной подписи.

О том, что делать, если компьютер не видит ЭЦП и о способах проверки настроек, мы подробно писали в нашей статье.

Почему КриптоПро не отображает ЭЦП?

Если КриптоПро не отображает ЭЦП, следует проверить настройки браузера. Также исправляет ошибку добавление программы в веб-обозреватель и загрузка недостающих сертификатов электронной подписи.

Подробнее ознакомиться, как устранить данную неисправность можно в нашей статье.

Где на компьютере искать сертификаты ЭЦП?

Сертификат ЭЦП позволяет проверить подлинность подписи, содержит в себе срок её действия и информацию о владельце. Он автоматически загружается в папку с системными файлами. В операционной системе Windows от 7 версии и выше ЭЦП хранится по адресу:

C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates. Вместо ПОЛЬЗОВАТЕЛЬ требуется указать наименование используемого компьютера.

Что такое сертификат ЭЦП и зачем он нужен мы рассказали в нашей статье.

Понравилась статья? Поделить с друзьями:
  • Неопознанная сеть win 7 как исправить
  • Неправильное глотание слюны как исправить
  • Неопознанная ошибка 7zip
  • Неправильное время на телефоне самсунг как исправить
  • Неопознанная ошибка 0x80240017 при установке visual c как исправить