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

Уведомление

Icon
Error

24 Страницы«<678910>»
Опции
К последнему сообщению К первому непрочитанному
Offline mstdoc  
#71 Оставлено : 11 января 2021 г. 19:11:22(UTC)
mstdoc

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Добрый день.

Подскажите пожалуйста такой момент.

При использовании упрощенной функции CadesVerifyDetachedMessage в выходной структуре ppVerificationInfo присутствует поле dwStatus.
В случае возникновения ошибки при проверке подписи, в данное поле попадает более подробный статус ошибки (https://docs.cryptopro.ru/cades/reference/cadesc/cadesc-struct/cades_verification_info)
Код:
CADES_VERIFY_SUCCESS	Успешная проверка подписи.
CADES_VERIFY_INVALID_REFS_AND_VALUES	Отсутствуют или имеют неправильный формат атрибуты со ссылками и значениями доказательств подлинности.
CADES_VERIFY_SIGNER_NOT_FOUND	Сертификат, на ключе которого было подписано сообщение, не найден.
CADES_VERIFY_NO_VALID_SIGNATURE_TIMESTAMP	В сообщении не найден действительный штамп времени на подпись.
CADES_VERIFY_REFS_AND_VALUES_NO_MATCH	Значения ссылок на доказательства подлинности и сами доказательства, вложенные в сообщение, не соответствуют друг другу.
CADES_VERIFY_NO_CHAIN	Не удалось построить цепочку для сертификата, на ключе которого подписано сообщение.
CADES_VERIFY_END_CERT_REVOCATION	Ошибка проверки конечного сертификата на отзыв.
CADES_VERIFY_CHAIN_CERT_REVOCATION	Ошибка проверки сертификата цепочки на отзыв.
CADES_VERIFY_BAD_SIGNATURE	Сообщение содержит неверную подпись.
CADES_VERIFY_NO_VALID_CADES_C_TIMESTAMP	В сообщении не найден действительный штамп времени на доказательства подлинности подписи.
CADES_VERIFY_ECONTENTTYPE_NO_MATCH	Значение подписанного атрибута content-type не совпадает со значением, указанным в поле encapContentInfo.eContentType.



Можно ли подобный статус ошибки получить при использовании signedData.VerifyCades?
Или эти статусы можно получить на основе полученного исключения? Если да, то где посмотреть список всех возможных исключений?

Т.е. вопрос - как получить более человекопонятное описание ошибки, возникшей при проверке подписи?
Offline bsoft  
#72 Оставлено : 12 января 2021 г. 5:10:36(UTC)
bsoft

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

Группы: Участники
Зарегистрирован: 08.12.2020(UTC)
Сообщений: 17
Российская Федерация

Сказал(а) «Спасибо»: 11 раз
Подскажите что делать, чтобы при подписании XML кодировка не менялась.

Вставил XML в signedXML:
Код:
    # Подписываем запрос
    signedXML = pycades.SignedXML()
    signedXML.Content = etree.tostring(request_doc, pretty_print=False, encoding='unicode')
    print(signedXML.Content)

Вывод:
Код:
 ...
        <soapenv:Body wsu:Id="BodyId-F6AC1DDCAC4D4FBF9078EEB332F502C4">
                <v2:newActionRequest>
                        <v2:actionCode>action396</v2:actionCode>
                        <v2:addAppId>4334</v2:addAppId>
                        <v2:addAppIdCode>ogrn</v2:addAppIdCode>
                        <v2:addSocId>10000000456396</v2:addSocId>
                        <v2:addSocIdCode>atk</v2:addSocIdCode>
                        <v2:applicantId>1396</v2:applicantId>
                        <v2:date>2015-03-26T20:30:00</v2:date>
                        <v2:empFio>Смирнов Иван Сергеевич</v2:empFio>
                        <v2:empId>100000396</v2:empId>
                        <v2:empJob>Специалист</v2:empJob>
                        <v2:finished>false</v2:finished>
                        <v2:fromIS>ИС1</v2:fromIS>
                        <v2:innerId>5c0b8438-f979-11e4-9233-080027c60396</v2:innerId>
                        <v2:linkedAction>a506abf4-2432-4182-89c9-661fede25604</v2:linkedAction>
                        <v2:name>Новое событие!</v2:name>
                        <v2:orgName>Ведомство</v2:orgName>
                        <v2:ownerOrg>Ведомство2</v2:ownerOrg>
                        <v2:rguId>500000000456396</v2:rguId>
                        <v2:actionSoap>
                                <v2:path>/actionsoap/2015/05/26/a506abf4-2432-4182-89c9-661fede256604/_actionSoap400.xml</v2:path>
                                <v2:length>24</v2:length>
                                <v2:body>Tuj8Rj4fnj4j4nV44jv4894fNfj39HFh33</v2:body>
                                <v2:name>_actionSoap400.xml</v2:name>
                        </v2:actionSoap>
                        <v2:socId>2000000456396</v2:socId>
                        <v2:status>2</v2:status>
                        <v2:statusDate>2015-03-27T20:30:00</v2:statusDate>
                        <v2:toIS>ИС2</v2:toIS>
                        <v2:type>petition</v2:type>
                        <v2:uniqId>a506abf4-2432-4182-89c9-661fede25400</v2:uniqId>
                </v2:newActionRequest>
        </soapenv:Body>
...

После подписания результат перекодирован:
Код:
signedXML.SignatureType = pycades.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE
    signedXML.SignatureMethod = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"
    signedXML.DigestMethod = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"
    request = signedXML.Sign(signer)
    print(request)

Вывод:
Код:

...
        <soapenv:Body wsu:Id="BodyId-F6AC1DDCAC4D4FBF9078EEB332F502C4">
                <v2:newActionRequest>
                        <v2:actionCode>action396</v2:actionCode>
                        <v2:addAppId>4334</v2:addAppId>
                        <v2:addAppIdCode>ogrn</v2:addAppIdCode>
                        <v2:addSocId>10000000456396</v2:addSocId>
                        <v2:addSocIdCode>atk</v2:addSocIdCode>
                        <v2:applicantId>1396</v2:applicantId>
                        <v2:date>2015-03-26T20:30:00</v2:date>
                        <v2:empFio>&#x421;&#x43C;&#x438;&#x440;&#x43D;&#x43E;&#x432; &#x418;&#x432;&#x430;&#x43D; &#x421;&#x435;&#x440;&#x433;&#x435;&#x435;&#x432;&#x438;&#x447;</v2:empFio>
                        <v2:empId>100000396</v2:empId>
                        <v2:empJob>&#x421;&#x43F;&#x435;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x441;&#x442;</v2:empJob>
                        <v2:finished>false</v2:finished>
                        <v2:fromIS>&#x418;&#x421;1</v2:fromIS>
                        <v2:innerId>5c0b8438-f979-11e4-9233-080027c60396</v2:innerId>
                        <v2:linkedAction>a506abf4-2432-4182-89c9-661fede25604</v2:linkedAction>
                        <v2:name>&#x41D;&#x43E;&#x432;&#x43E;&#x435; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435;!</v2:name>
                        <v2:orgName>&#x412;&#x435;&#x434;&#x43E;&#x43C;&#x441;&#x442;&#x432;&#x43E;</v2:orgName>
                        <v2:ownerOrg>&#x412;&#x435;&#x434;&#x43E;&#x43C;&#x441;&#x442;&#x432;&#x43E;2</v2:ownerOrg>
                        <v2:rguId>500000000456396</v2:rguId>
                        <v2:actionSoap>
                                <v2:path>/actionsoap/2015/05/26/a506abf4-2432-4182-89c9-661fede256604/_actionSoap400.xml</v2:path>
                                <v2:length>24</v2:length>
                                <v2:body>Tuj8Rj4fnj4j4nV44jv4894fNfj39HFh33</v2:body>
                                <v2:name>_actionSoap400.xml</v2:name>
                        </v2:actionSoap>
                        <v2:socId>2000000456396</v2:socId>
                        <v2:status>2</v2:status>
                        <v2:statusDate>2015-03-27T20:30:00</v2:statusDate>
                        <v2:toIS>&#x418;&#x421;2</v2:toIS>
                        <v2:type>petition</v2:type>
                        <v2:uniqId>a506abf4-2432-4182-89c9-661fede25400</v2:uniqId>
                </v2:newActionRequest>
        </soapenv:Body>
...
Offline Ситдиков Денис  
#73 Оставлено : 12 января 2021 г. 13:15:30(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 95
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 29 раз в 20 постах
Цитата:
Т.е. вопрос - как получить более человекопонятное описание ошибки, возникшей при проверке подписи?


Добрый день!
Если возникает ошибка, то выбрасывается исключение с кодом возврата вида 0x8009100E. Этот код возврата аналогичен кодам ошибок на windows. Их описание можно найти, например, с помощью Microsoft Error Lookup Tool или просто вбить в поиск.

Если этой информации недостаточно и надо узнать, на каком сертификате прерывается построение цепочки, можно задать системную переменную
Код:
export CP_PRINT_CHAIN_DETAIL=1

для вывода дебаговой информации при построении.

Если этого тоже недостаточно, можно включить дебаговые записи для библиотек cades.
Offline Ситдиков Денис  
#74 Оставлено : 12 января 2021 г. 13:36:39(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 95
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 29 раз в 20 постах
Цитата:
Подскажите что делать, чтобы при подписании XML кодировка не менялась.


В самом xml документе кодировка не указана?
Offline mstdoc  
#75 Оставлено : 12 января 2021 г. 16:50:20(UTC)
mstdoc

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Т.е. вопрос - как получить более человекопонятное описание ошибки, возникшей при проверке подписи?


Добрый день!
Если возникает ошибка, то выбрасывается исключение с кодом возврата вида 0x8009100E. Этот код возврата аналогичен кодам ошибок на windows. Их описание можно найти, например, с помощью Microsoft Error Lookup Tool или просто вбить в поиск.

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

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

Если этой информации недостаточно и надо узнать, на каком сертификате прерывается построение цепочки, можно задать системную переменную
Код:
export CP_PRINT_CHAIN_DETAIL=1

для вывода дебаговой информации при построении.

Если этого тоже недостаточно, можно включить дебаговые записи для библиотек cades.


К сожалению, в докере включить дебажные логи так и не удалось...
Кроме того, задача стоит не в том, чтобы админ мог в логах посмотреть что произошло (хотя это тоже весьма полезная возможность), а чтобы человек прямо в процессе мог понять что пошло не так.
Offline Ситдиков Денис  
#76 Оставлено : 12 января 2021 г. 17:31:26(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 95
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 29 раз в 20 постах
Цитата:
Спасибо.
Но хотелось бы видеть весь перечень ошибок ДО момента их возникновения, чтобы встроить обработчик в свое приложение и показывать человеку понятное сообщение.

Посмотрите файл errormsg.cpp из архива с исходниками, там для части ошибок есть сопоставление кода возврата и описания ошибки.
Более полного и подробного перечня нет.
Offline bsoft  
#77 Оставлено : 13 января 2021 г. 2:01:18(UTC)
bsoft

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

Группы: Участники
Зарегистрирован: 08.12.2020(UTC)
Сообщений: 17
Российская Федерация

Сказал(а) «Спасибо»: 11 раз
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Подскажите что делать, чтобы при подписании XML кодировка не менялась.


В самом xml документе кодировка не указана?


В XML кодировка не указана.

Отредактировано пользователем 13 января 2021 г. 2:03:59(UTC)  | Причина: Не указана

Offline nomhoi  
#78 Оставлено : 13 января 2021 г. 11:57:36(UTC)
nomhoi

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

Группы: Участники
Зарегистрирован: 29.10.2020(UTC)
Сообщений: 58
Российская Федерация

Сказал(а) «Спасибо»: 10 раз
Добрый день!

С помощью pycades можно получить отпечаток сертификата из файла сертификата *.cer? Как это можно вообще сделать?

Отредактировано пользователем 13 января 2021 г. 12:05:31(UTC)  | Причина: Не указана

Offline Ситдиков Денис  
#79 Оставлено : 13 января 2021 г. 13:37:45(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 95
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 29 раз в 20 постах
Автор: nomhoi Перейти к цитате
Добрый день!

С помощью pycades можно получить отпечаток сертификата из файла сертификата *.cer? Как это можно вообще сделать?


Добрый день!
Certificate.Import + Certificate.Thumbprint (объект Certificate)
На вход Import подается сертификат в виде строки в base64.
thanks 1 пользователь поблагодарил Ситдиков Денис за этот пост.
nomhoi оставлено 14.01.2021(UTC)
Offline Ситдиков Денис  
#80 Оставлено : 13 января 2021 г. 13:50:49(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 95
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 29 раз в 20 постах
Автор: bsoft Перейти к цитате
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Подскажите что делать, чтобы при подписании XML кодировка не менялась.


В самом xml документе кодировка не указана?


В XML кодировка не указана.


Попробуйте явно задать кодировку в файле, как это сделано в примере.
В интерфейсе объекта SignedXML это сделать нельзя.
thanks 1 пользователь поблагодарил Ситдиков Денис за этот пост.
bsoft оставлено 14.01.2021(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
24 Страницы«<678910>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.