logo Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline SedovJT  
#1 Оставлено : 29 января 2016 г. 12:26:47(UTC)
SedovJT

Статус: Новичок

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

Отправляю ГИС следующий запрос (форматирование добавлено для удобства):

В ответ приходит ошибка:
Код:
<ns4:ErrorCode>AUT011005</ns4:ErrorCode>
<ns4:Description>Ошибка формата подписи запроса</ns4:Description>
<ns4:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Cannot find any certificates referenced by xades:SigningCertificate


Полный ответ ГИС:


Если я правильно понимаю, ГИС не может соотнести сертификат из <ds:X509Certificate> с данными о нем в <xades:SigningCertificate>.
При этом из всех значений в <xades:SigningCertificate> вопрос вызывает только <ds:X509IssuerName>
(есть другой сертификат, на котором данная ошибка не воспроизводится, алгоритм формирования xades-объекта одинаков).

Для генерации использован форк библиотеки Xades.

Вопрос: как корректно сформировать IssuerName? Возможно, предположение относительно него ошибочно, тогда в чем может быть дело?
Offline SedovJT  
#2 Оставлено : 1 февраля 2016 г. 19:29:03(UTC)
SedovJT

Статус: Новичок

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

Никаких идей?
Offline Максим Коллегин  
#3 Оставлено : 1 февраля 2016 г. 19:54:14(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 5,751
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 14 раз
Поблагодарили: 558 раз в 507 постах
А Вы уверены, что ГИС доверяет сертификату нашего тестового УЦ? Попроситесь в тестовый контур и получите тестовый сертификат.
Знания в базе знаний, поддержка в техподдержке
Offline SedovJT  
#4 Оставлено : 2 февраля 2016 г. 8:55:57(UTC)
SedovJT

Статус: Новичок

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

Автор: maxdm Перейти к цитате
А Вы уверены, что ГИС доверяет сертификату нашего тестового УЦ? Попроситесь в тестовый контур и получите тестовый сертификат.

Есть и доступ, и сертификат. На тестовом контуре подходят любые сертификаты с шифрованием по ГОСТ. Да и в методических рекомендациях отсылки к самостоятельной регистрации. На транспортном уровне соединение устанавливается, HTTPS по ГОСТ работает.
Offline SedovJT  
#5 Оставлено : 2 февраля 2016 г. 19:34:36(UTC)
SedovJT

Статус: Новичок

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

Действительно, IssuerName. Экранирование в C# происходит не так, как ожидает веб-сервис ГИСа на Java.
Offline versh23  
#6 Оставлено : 3 февраля 2016 г. 15:27:18(UTC)
versh23

Статус: Новичок

Группы: Участники
Зарегистрирован: 02.02.2016(UTC)
Сообщений: 3
Откуда: Belgorod

Автор: SedovJT Перейти к цитате
Действительно, IssuerName. Экранирование в C# происходит не так, как ожидает веб-сервис ГИСа на Java.


Можете ответить по подробнее?
Offline SedovJT  
#7 Оставлено : 3 февраля 2016 г. 16:20:16(UTC)
SedovJT

Статус: Новичок

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

IssuerName.Name в С# выдает следующую строку:
Код:
CN="Тестовый УЦ ООО ""КРИПТО-ПРО""", O="ООО ""КРИПТО-ПРО""", C=RU

Java ждала строку следующего вида:
Код:
CN=Тестовый УЦ ООО \"КРИПТО-ПРО\",O=ООО \"КРИПТО-ПРО\",C=RU

Кто из них прав - судить не берусь, но Java не поняла экранирование из варианта №1.
Offline springjazzy  
#8 Оставлено : 3 февраля 2016 г. 22:59:57(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
Используйте BouncyCastle и будет вам экранирование. В ГИС они эту библиотеку используют. Благо она есть и на .NET и на JAVA.

> Для генерации использован форк библиотеки Xades.

Я ее обновил на днях. Там BouncyCastle используется.

Отредактировано пользователем 3 февраля 2016 г. 23:11:10(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил springjazzy за этот пост.
V_VP оставлено 04.03.2016(UTC)
Offline V_VP  
#9 Оставлено : 4 марта 2016 г. 14:29:33(UTC)
V_VP

Статус: Новичок

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

Сказал(а) «Спасибо»: 3 раз
Автор: springjazzy Перейти к цитате
Используйте BouncyCastle и будет вам экранирование. В ГИС они эту библиотеку используют. Благо она есть и на .NET и на JAVA.
> Для генерации использован форк библиотеки Xades.
Я ее обновил на днях. Там BouncyCastle используется.


Подскажите, я скачал исходники с GIT но они при компиляции просят еще cryptopro библиотеки, как я понимаю подразумевается что комплект разработчика .NET Крипто Про я должен купить отдельно и эти же библиотеки должны быт установлены на серверах тех кто будет использовать скомпилированную библиотеку?

Или достаточно купить для разработки а клиентам ставить не нужно?

К сожалению с C# знаком очень плохо и плохо понимаю взаимосвязь библиотек...

Вообще передо мной стоит задача подписывать XML файлы (ответы SOAP) из 1С пока вот единственный вариант это использовать вашу библиотеку как внешнюю компоненту.

Если я правильно понял то в целом библиотека использует:
  • BouncyCastle.Crypto.dll
    Newtonsoft.Json.dll
    interoperabilite_xades
    cryptopro.dll
    И ваши наработки в виде хелперов: GisSignatureHelper.cs XadesInfo.cs

Если Вам не сложно не могли бы Вы хотя бы в общих чертах рассказать о том какая библиотека и для чего используется?

Offline springjazzy  
#10 Оставлено : 5 марта 2016 г. 23:35:16(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
Автор: V_VP Перейти к цитате
Автор: springjazzy Перейти к цитате
Используйте BouncyCastle и будет вам экранирование. В ГИС они эту библиотеку используют. Благо она есть и на .NET и на JAVA.
> Для генерации использован форк библиотеки Xades.
Я ее обновил на днях. Там BouncyCastle используется.


Подскажите, я скачал исходники с GIT но они при компиляции просят еще cryptopro библиотеки, как я понимаю подразумевается что комплект разработчика .NET Крипто Про я должен купить отдельно и эти же библиотеки должны быт установлены на серверах тех кто будет использовать скомпилированную библиотеку?

Или достаточно купить для разработки а клиентам ставить не нужно?

К сожалению с C# знаком очень плохо и плохо понимаю взаимосвязь библиотек...

Вообще передо мной стоит задача подписывать XML файлы (ответы SOAP) из 1С пока вот единственный вариант это использовать вашу библиотеку как внешнюю компоненту.

Если я правильно понял то в целом библиотека использует:
  • BouncyCastle.Crypto.dll
    Newtonsoft.Json.dll
    interoperabilite_xades
    cryptopro.dll
    И ваши наработки в виде хелперов: GisSignatureHelper.cs XadesInfo.cs

Если Вам не сложно не могли бы Вы хотя бы в общих чертах рассказать о том какая библиотека и для чего используется?



BouncyCastle - open source библиотека для работы с криптографией. Нас в ней интересует функционал по экранированию наименования издателя и получению серийного номера в виде десятичного числа
Newtonsoft.Json - open source библиотека для работы с форматом json. Используется как пример реализации взаимодействия клиента и сервера.
interoperabilite_xades - не знаю, что это. У меня не используется.
CryptoPro.Sharpei - библиотека компании этого форума. Предоставляет API для работы с CryptoPro.CSP для .NET. Поднимает SSL/TLS канал, предоставляет доступ к криптографическим операциям. http://cryptopro.ru/products/net

Для работы Crypto.NET необходим CryptoPro.CSP.

>Вообще передо мной стоит задача подписывать XML файлы (ответы SOAP) из 1С пока вот единственный вариант это использовать вашу библиотеку как внешнюю компоненту.
Не совсем понятно какой сценарий вы рассматриваете?
1. Клиент-серверный. Сервер генерирует сообщение - клиент подписывает хеши удаленно, например, через браузер. Данный вариант рассмотрен в TestIntegrationClientServer.cs. В таком случае под клиента необходимо разработать js-скрипт, который бы подписывал хеш сообщения и отправлял его на сервер вместе с сертификатом. Можно использовать CryptoPro.CSP. У него есть интеграция с браузером через плагин http://cryptopro.ru/products/cades/plugin.
2. Вы отправляете данные клиенту, и он подписывает их у себя через ПО установленное локально? Данный вариант теоретически возможен при помощи https://github.com/springjazzy/Xades, но я его не рассматривал т.к. он очень неэффективный.
Во-первых, клиенту необходимо устанавливать Crypto.NET, что привязывает клиента к определенной ОС (100% он на Mono не запустится). Во-вторых, Crypto.Net платный, а т.к. он используется в решении то его необходимо устанавливать клиенту. В-третьих, теряется интерактивность.
Если уж хотите подписывать локально, то можно попробовать собрать решение вокруг OpenSSL.

А вообще я понял нужен readme к проекту..

Отредактировано пользователем 5 марта 2016 г. 23:37:47(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил springjazzy за этот пост.
V_VP оставлено 07.03.2016(UTC)
Offline V_VP  
#11 Оставлено : 7 марта 2016 г. 18:40:18(UTC)
V_VP

Статус: Новичок

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

Сказал(а) «Спасибо»: 3 раз
Автор: springjazzy Перейти к цитате

Не совсем понятно какой сценарий вы рассматриваете?


Для меня идеальный вариант это разработка внешней COM компоненты (dll) которая устанавливается на сервере 1С, на вход получает: Сообщение, Имя ключа установленного в системе, Пароль для ключа. На выходе выдает подписанный XML файл.

Подключение к серверам ГИС ЖКХ планируется через туннель sstunel (http://www.cryptocom.ru/demo/cryptotunnel.html).

Вариант клиент сервер не подходит т.к. конфигурацией (программой) пользуются разные организации и разворачивать у себя web сервер они не будут.
Так же т.к. часть обменов будет выполнятся в фоновом режиме без участия пользователя весь механизм будет работать на стороне сервера 1С (1С работает по трехзвенной архитектуре: СУБД, Сервер 1С, Клиентские приложения на клиентских ПК).

Но в целом это должна быть библиотека которая ставится у заказчика на сервере 1С. У всех установлена Windows.
У клиентов уже обычно есть лицензии на Крипто-Про CSP версии 3.9, а вот с лицензированием ".NET Крипто Про" как Вы верно заметили есть проблемы.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.