Меню

Экспресс ошибка электронной подписи 80091007

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро ЭЦП (усовершенствованная ЭЦП)
 » 
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Соо


Offline

pavenko_sv

 


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

7 сентября 2017 г. 14:46:00(UTC)

pavenko_sv

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

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

Зарегистрирован: 23.08.2017(UTC)
Сообщений: 70
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Сказал «Спасибо»: 39 раз

Проверяю получившуюся электронную подпись в КриптоПро DSS:

Цитата:

Документ для проверки
C:fakepathspravka_soc_viplaty_09.08.2017.pdf(IE).p7s

Не удалось определить формат подписи, выберите требуемый формат в разделе Формат подписи
Формат подписи
Подпись в формате CMS

Параметры
Подпись данных

Отсоединённая подпись

Исходный документ
C:fakepathspravka_soc_viplaty_09.08.2017.pdf

Результат проверки

Цитата:

Название документа spravka_soc_viplaty_09.08.2017.pdf(IE).p7s
Подпись 1
Результат проверки
Подпись не действительна
Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/7/2017 1:37:18 PM
Время подписи
9/7/2017 1:37:02 PM
Информация о сертификате
Субъект
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 (36kb) загружен 5 раз(а).

Код формирования:

Код:

let oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
                
let CertificatesObj = yield oStore.Certificates;
let oCertificates = yield CertificatesObj.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
                
let Count = yield oCertificates.Count;
let oCertificate = yield oCertificates.Item(1);
let oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
/*
                
-если тестовый личный сертификат выпускали здесь https://www.cryptopro.ru/ui/
то используйте стенд http://www.cryptopro.ru/tsp/tsp.srf

-если тестовый личный сертификат выпускали здесь https://www.cryptopro.ru/certsrv/
используйте стенд http://testca.cryptopro.ru/tsp/tsp.srf
                
*/
let tspService = "http://testca.cryptopro.ru/tsp/tsp.srf";
yield oSigner.propset_TSAAddress(tspService);

let oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(CADESCOM_ENCODE_BASE64);
yield oSignedData.propset_Content(dataToSign);

let sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);
                
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1, true);

yield oStore.Close();
args[2](sSignedMessage);
return true;

Вверх

WWW


Offline

Андрей Емельянов

 


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

8 сентября 2017 г. 14:47:58(UTC)

Андрей Емельянов

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

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

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 148 раз в 144 постах

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

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


Вверх

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

pavenko_sv

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


Offline

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

 


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

8 сентября 2017 г. 14:58:12(UTC)

Андрей *

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

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

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

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

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

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Проблема в двойном кодировании.

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


Вверх

WWW

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

Андрей Емельянов

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


Offline

pavenko_sv

 


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

8 сентября 2017 г. 15:16:58(UTC)

pavenko_sv

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

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

Зарегистрирован: 23.08.2017(UTC)
Сообщений: 70
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Сказал «Спасибо»: 39 раз

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

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Спасибо. Починил!

было:
//Задание кодировки подписываемых данных
var CADESCOM_STRING_TO_UCS2LE = 0x00 //Данные будут перекодированы в UCS-2 little endian.
var CADESCOM_BASE64_TO_BINARY = 0x01 //Данные будут перекодированы из Base64 в бинарный массив.

стало:
//Задание кодировки подписываемых данных
var CADESCOM_STRING_TO_UCS2LE = 0; //Данные будут перекодированы в UCS-2 little endian.
var CADESCOM_BASE64_TO_BINARY = 1; //Данные будут перекодированы из Base64 в бинарный массив.


Вверх

WWW


Offline

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

 


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

8 сентября 2017 г. 15:33:41(UTC)

Андрей *

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

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

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

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

Понятно.
Об этом есть здесь.

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


Вверх

WWW

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

pavenko_sv

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


Offline

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

 


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

8 сентября 2017 г. 15:36:02(UTC)

Андрей *

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

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

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

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

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

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

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Проблема в двойном кодировании.

Цитата:

0x01 <> 1

Плагину не сообщалось, что нужно декодировать предварительно данные в памяти и он подписывал как есть — т.е. base64 вариант.

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


Вверх

WWW

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

pavenko_sv

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

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

Guest

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро ЭЦП (усовершенствованная ЭЦП)
 » 
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Соо

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

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

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

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

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

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

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

Доброе время суток, уже близок к усуществению отсоединённой подписи, присоединённая уже получается и проходит проверку на сайте Сервер электронной подписи КриптоПро 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

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

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

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

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

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


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,741
Мужчина
Российская Федерация

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

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

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

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


Вверх

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,741
Мужчина
Российская Федерация

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

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

Через плагин нельзя создать 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,741
Мужчина
Российская Федерация

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

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

У файла —
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,741
Мужчина
Российская Федерация

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

Для самопроверки — можно через пример подписания файла — указать 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,741
Мужчина
Российская Федерация

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

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,741
Мужчина
Российская Федерация

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

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

Код:


 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

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

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

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

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

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

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

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

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

Какие ошибки возникают при работе с ЭП

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

Порядок генерации, регистрации и применения электронной подписи закреплен в 63-ФЗ от 06.04.2011. Иногда при подписании документации ЭП не срабатывает. Есть несколько причин, почему электронная подпись недействительна или не работает:

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

Компьютер не видит ЭЦП

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

  1. Пользователь не установил на рабочий компьютер корневой сертификат (КС) удостоверяющего центра, в котором получил ЭП. Исправить просто: установите или обновите КС.
  2. Пользователь не установил личный сертификат (ЛС). Он тоже необходим для корректной работы ЭП. Решение аналогично — установить ЛС.
  3. КС или ЛС невалидны, то есть недействительны. Это означает, что у них закончился срок действия либо их отозвали. Решение — уточнить статус ЛС в удостоверяющем центре или обновить перечень сертификатов в пользовательском компьютере.

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

Список сертификатов на ПК обновляется и вручную — путем загрузки перечня отозванных ЛС. Вот инструкция, как это сделать:

Шаг 1. Открыть ЛС в свойствах браузера, найти его в специальном разделе.

электронная подпись не прошла проверку

Шаг 2. Зайти во вкладку «Состав» и выбрать «Точки распространения списков отзыва».

Шаг 3. Найти блок «Имя точки распространения». Скопировать ссылку для загрузки перечня отозванных ЛС.

Шаг 4. Скачать файл по ссылке. Нажать на документ правой кнопкой мыши и выбрать «Установить список отзыва».

Шаг 5. Импортировать в соответствии с инструкцией, предложенной мастером импорта.

ЭП не видна на носителе

Еще одна причина, почему при подписании электронной подписью выдает ошибку, — ЛС не отображается на носителе. Есть два решения:

  1. Перегрузить ПК, чтобы исключить сбой работы программы.
  2. Установить (если ранее не устанавливали) или переустановить драйвер носителя. Для установки или переустановки потребуется скачать драйвер с официального сайта носителя или токена.

Помимо проблем с драйверами и программным обеспечением, на работу носителя влияет состояние USB-порта пользовательского компьютера. В таком случае необходимо обновить порт или перенести КС и ЛС на другой компьютер. Кроме того, неисправности обнаруживаются и в самом носителе. Это легко проверить: просто подключите флеш-накопитель или токен к другому ПК. Если он не отзывается, это означает, что носитель сломался. В такой ситуации потребуется перевыпустить носитель.

Возникла ошибка генерации ключа ЭП

Некоторые ведомственные ресурсы предлагают сгенерировать локальные ключи ЭП, базирующиеся на их платформах. Как пример — личный кабинет налогоплательщика ФНС: в электронный сервис встроена программа, которая генерирует ключи.

При подписании деклараций и других документов периодически возникает ошибка генерации электронной подписи, то есть сертификата ЭП. Причины — технические работы на официальных ресурсах ФНС и сбои из-за длительного ожидания генерации (процедура занимает от 30 минут до 2 дней).

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

  1. Проверить установку дополнительного ПО для генерации кодировки. Система предлагает установить ее автоматически по специальной ссылке.
  2. Повторно загрузить сертификат.
  3. Лично обратиться в территориальную ИФНС с паспортом и ИНН заявителя (если нет возможности сгенерировать ключ самостоятельно).

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

В 63-ФЗ разъясняется, почему электронная подпись не подписывает документы, — из-за отсутствия пользовательской авторизации или регистрации ЭП. Такая проблема возникает на торговых площадках: при неполадках система отправляет уведомление «Выбранная ЭЦП не авторизована».

почему электронная подпись не проходит проверку сертификата

Решение очевидно: зарегистрировать ЭП и пройти авторизацию на торговой площадке или ином ресурсе. У каждого сервиса — индивидуальная инструкция по авторизации пользователей.

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

Не поддерживается алгоритм сертификата ЭП

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

Пользователь ищет закрытый ключ ЭП в хранилище сертификатов. Затем следует установить утилиту КриптоПро.net и архив Windows SDK (подходит любая версия, начиная от 1.0.48668.1). Если и это не помогло, надлежит переустановить операционную систему пользовательского компьютера.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ятрогенная патология врачебные ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Экспресс дисковая или сетевая ошибка