|
1 / 1 / 0
Регистрация: 16.12.2015
Сообщений: 1
|
||||||||||||||||
.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ16.12.2015, 11:46. Показов 175275. Ответов 999
Здравствуйте!
Передо мной стоит задача интеграции с системой ГИС ЖКХ (https://dom.gosuslugi.ru/) программой, написанной на языке C#, .NET Framework 4 Данный сервис предоставляет SOAP веб-сервисы для приема и передачи информации, соединение защищается сертификатом по алгоритму ГОСТ. Каждый элемент внутри тела SOAP сообщения подписывается сигнатурой XAdES-BES. На данный момент для осуществления защищённого соединения я использую «МагПро КриптоТуннель» (stunnel) со следующими настройками: Конфигурация stunnel (stunnel.conf)
verify=2
client=yes CAFile=CA-test2-cryptopro.pem engine=gost usb_eject=yes sslVersion=TLSv1 taskbar=yes DEBUG=7 [pseudo-https] protocol = http accept = 127.0.0.1:8754 connect = 54.76.42.99:60045 ciphers = GOST2001-GOST89-GOST89 TIMEOUTclose = 0 cert=test.pem key=test.key Для обмена SOAP сообщениями я использую стандартный сервис WCF с прокси-классами, сгенерированные из WSDL файлов. Для подписи SOAP сообщений сигнатурой использую ниже представленный класс: C#. Класс для подписи исходного SOAP сообщения
В результате после подписи элемента "exportNsiItemRequest" SOAP-сообщение выглядит следующим образом: XML. Подписанное SOAP сообщение
Проблема заключается в том, что ответ от сервера приходит следующий: ru.lanit.security.crypto.CryptoException : ЭП не прошла проверку: Invalid XML Signature Текст ответного сообщения следующий: XML. SOAP-ответ от сервера
Подскажите пожалуйста: 1) Как сделать валидную подпись, которая будет проходить проверку сервером, используя WCF ? 2) Как с помощью средств CryptoPro.NET отказаться от использования «МагПро КриптоТуннель» ?
1
|
||||||||||||||||
| 16.12.2015, 11:46 | |
|
Ответы с готовыми решениями:
999
Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (3) Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5) Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4) |
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
|||
| 26.05.2016, 10:34 | |||
|
Читая интернет приходит ощущение, что Ланит - специализированная контора по отсосу денег из бюджета.
На том же сайте, ссылку на который я вчера давал, есть другая статья: Секретарь комиссии Госдумы по стратегическим IT убеждён, что IBM убежала от «Ланита» из-за уязвимостей в трёхмиллиардной zakupki.gov.ru Почта России не может быть постановщиком задачи - она в этом ничего не понимает. 1. вы на СИТ2 в веб-интерфейсе руками создаете платежный документ и добавляете в него одну услугу - отопление, которое измеряется в гигакалориях 2. Гигакалория - это очень большая величина и в некоторых субъектах РФ на местном уровне законодательно утверждены нормативы потребления с точностью до 8 знаков после запятой 3. При попытке ввести такое число (например, 0.7654321 Гкал) веб-интерфейс не даст вам завести число с более чем 4 знаков после запятой и мы сразу в ихнем (Ланита) калькуляторе получаем ошибку в начислениях примерно в 20 рублей (0.7654321 * ставку) 4. При попытке выгрузить этот же документ через web-сервис это чудо падает с внутренней ошибкой на тему валидатора ('в поле не может быть больше двух знаков после запятой')
0
|
|||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||
| 26.05.2016, 10:45 | ||
|
0
|
||
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
||
| 26.05.2016, 10:49 | ||
|
И они действительно исправили. Заявка была подана 29 апреля 2016 года, сегодня - 26 мая 2016 года. Так что за месяц одно исправление было сделано. Спасибо Ланиту.
0
|
||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|||
| 26.05.2016, 10:52 | |||
|
Добавлено через 1 минуту
0
|
|||
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
|||||||
| 26.05.2016, 10:53 | |||||||
0
|
|||||||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|
| 26.05.2016, 11:00 | |
|
0
|
|
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
|
| 26.05.2016, 11:03 | |
|
На форуме банкиров оказывается тоже есть обсуждение, кому интересно могут почитать:
Система ГИС ЖКХ - ФГУП Почта России
0
|
|
|
6 / 5 / 0
Регистрация: 28.03.2016
Сообщений: 34
|
|
| 26.05.2016, 12:26 | |
|
Как они работают? где и как ждать ответ? в чем принципиальное отличи асинхронных сервисов....
0
|
|
|
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
|
|
| 26.05.2016, 12:44 | |
|
Кто знает, могут французские кавычки («») в X509IssuerName быть причиной ошибки "ЭП не прошла проверку: Cannot find any certificates referenced by xades:SigningCertificate"? Когда подписываю другим сертификатом, такой ошибки нет. X509IssuerName получаю через BouncyCastle.
0
|
|
|
6 / 6 / 0
Регистрация: 24.12.2015
Сообщений: 41
|
|
| 26.05.2016, 12:59 | |
|
все кавычки, запятые и т.п. необходимо экранировать
0
|
|
|
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
|
|
| 26.05.2016, 13:16 | |
|
Dr_Elvis, спасибо.
0
|
|
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
|
| 26.05.2016, 13:34 | |
|
Dr_Elvis, у меня и Anvano к вам вопрос как к сотруднику компании Ланит:
как нам ежемесячно заливать к вам в базу по 10 миллионов записей? У меня сейчас в базе таблицы занимают: связок лицевой-услуга в нативном виде - 1 Гб показаний счетчиков - 0.5 Гб платежей - 2 Гб это все нужно запихивать каждый месяц. У расчетно-кассовых центров достаточно жесткий регламент работы, больше суток в месяц вряд ли кто-либо сможет выделить на общение с вашей конструкцией. Может быть компании где вы работаете стоит прекратить выделываться с многочисленными цифровыми подписями и шифрованиями и обеспечить загрузку zip архива с данными в формате CSV через ftp на ваш сервер? А дальше уже рисуйте на своем сайте на основании присланных данных любые цифры какие хотите.
1
|
|
|
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
|
||||||
| 26.05.2016, 15:54 | ||||||
|
Коллеги столкнулся с такой вот проблемой:
при вызове метода(XadesSignedXml.cs) Reference_UpdateHashValue.Invoke(referen ce2, new object[] { m_containingDocument, refList }); вылетает ошибка - Адресат вызова создал исключение. В приложение добавлена библиотека System.Security v 4.0 а в Assembly.Load v2 Может ли быть проблема в этом? Добавлено через 41 минуту Выяснил Что обычный WCF client при создании MyBehavior формирует следующий xml
Добавлено через 1 час 31 минуту Корректировка по ветру... Это версия soap сообщений... Теперь не могу разобраться как использовать Soap11
0
|
||||||
|
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
|
||||||
| 26.05.2016, 15:58 | ||||||
|
Dr_Elvis, экранирование не помогло, если в нем было дело. Все равно ошибка "ru.lanit.hcs.integration.common.excepti on.OperationProcessorException: ЭП не прошла проверку: Cannot find any certificates referenced by xades:SigningCertificate".
Запрос к СИТ-02 по http: Кликните здесь для просмотра всего текста
0
|
||||||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||
| 27.05.2016, 02:13 | ||
|
loot hoarder, в заголовке функции
<soap:Body><exportOrgRegistryRequest xmlns="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/organizations-registry-common/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="6990aca0-b2b3-412c-9fc7-6dfa51f817a4"> вы неправильно ставите ID - там не должно быть "6990aca0-b2b3-412c-9fc7-6dfa51f817a4" - должно быть "signed-data-container". Почему вы выбрали путь идентификаторов, когда они там не требуются? Добавлено через 2 минуты NaGuWaL, какую версию студии используете? Могу прислать Вам нормальный, настроенный проект, который не глючит по непонятным причинам. Добавлено через 8 минут
0
|
||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|
| 27.05.2016, 02:25 | |
|
loot hoarder, если проблема с экранированием, то попробуйте получить подпись с помощью библиотеки от trusted java - уж она то должна справиться с такими мелочами. Серийник они высылают по почте для ознакомления - хорошие парни, вежливые там работают. Если присланная библиотека не будет работать - то компилируйте её сами - там нет ничего сложного. Вообще - методом научного тыка можно попробовать в окне SOAPUШ менять кавычки у уже подписанного документа.
0
|
|
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||
| 27.05.2016, 02:42 | ||
|
0
|
||
|
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
|
|
| 27.05.2016, 08:56 | |
|
umatkot, использую VS2015 .NET Framework 4.5. Я бы был признателен!!!
Добавлено через 41 минуту umatkot, Я весьма признателен за выложенный пример, долго мучился, и всё таки я не понял как использовать Xades и как его настраивать, не могли бы подсказать где можно почитать про это всё... Заранее благодарю!
0
|
|
|
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
|
|
| 27.05.2016, 11:32 | |
|
umatkot, спасибо за ответы и библиотеки
![]() В exportOrgRegistryRequest.Id я поставил уникальный идентификатор, т.к. не уверен, что он не используется на прикладном уровне. А подпись, по-моему, работает с любым идентификатором контейнера. Во всяком случае, крипто-софт на него не жалуется. В Вашем примере используется КриптоПро.NET, а я пытаюсь обойтись "КриптоПро ЭЦП Browser plug-in", в нем есть COM-объекты, которые подписывают в формате XMLDSig, а дополнительные поля для XAdES я предварительно в документ добавляю вручную. И вроде, документ проходит валидацию в ГИС, вот только с сертификатами проблема. (Возможно, эти COM-объекты есть и в КриптоПро CSP, я до конца еще не разобрался.) Ну а приобретать доп. лицензии на другие продукты только за тем, чтобы получить, к примеру, экранирование, мне кажется неразумным. Хотя, возможно, без этого будет не обойтись. Добавлено через 27 минут Согласно RFC1779 https://www.ietf.org/rfc/rfc1779.txt, по которому, вроде, нужно формировать X509IssuerName, французские кавычки не нужно экранировать. Добавлено через 1 час 16 минут Нашел здесь https://lists.w3.org/Archives/... n4.4.4.htm, что кавычки эти нужно заменять на \AB и \BB, да только тоже не помогло.
0
|
|
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|
| 30.05.2016, 05:23 | |
|
loot hoarder, Я не знаю, братан, пока что есть только связка с КриптоПро и ещё один проект без него, но там столько работы, что лучше бы оставить эту неблагородную затею. Сколько раз пытались уйти от КриптоПро даже в силу элементарного SSL с ГОСТ, но тут нужны собственные наработки - а на них ни времени ни сил нет. Как только сделать интеграцию - можно уже потом будет думать, что использовать и как уйти от КриптоПро - пока это сделать сложно. Проблема в том, что КриптоПро предоставляет сам криптопровайдер ГОСТ - я очень давно делал рефакторинг и пытался сделать свой провайдер - но это очень для крутых людей задача, мне кажется. А библиотеку с Trusted Java - я использовал для теста - по сути это как раз оттуда идёт вся инфа об использовании правильного формата подписи...
Добавлено через 3 минуты NaGuWaL, Сам проект я использую от SpringJazzy - он хорошо разобрался с этим Xades - можешь у него уточнить, он есть на этом форуме. А настраивать его особо не нужно: 1) Ставишь CSP, и ставишь .NET от КриптоПро. 2) Перед тем, как пытаешься поключиться по HTTPS биндингу - тебе надо в браузере закешировать сертификат - это делается посредством пыток WEBReference или у браузера IE - тебе нужно сделать привязку в системном браузере, а программа со студии потом будет её подхватывать. Сначала будет валиться ошибка, а потом, когда ты зайдёшь на WEB сервис из браузера, укажаешь там сертификат, поставишь пароль на свой закрытый ключ - связка должна закешироваться. Добавлено через 16 минут NaGuWaL, https://www.w3.org/TR/XAdES/ Но я бы не стал заморачиваться, так как проект от SpringJazzy - должен учитывать все нюансы этого чуда. Есть ещё signature-demo-net-master - но там головняк такой, что лучше тоже не суваться а пользоваться вариантом SpringJazzy. loot hoarder, Ты тестировал свой сертификат через Trusted Java? Какую подпись он формирует? Я где-то читал, что ГИС использует на сервере как раз Trusted Java.
0
|
|
| 30.05.2016, 05:23 | |
|
.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (2) Интеграция с ГИС ЖКХ и подпись SOAP без Крипто .NET и stunnel Soap, Java, Гис ЖКХ
Интеграция с ГИС ЖКХ (ГЖ). 400 Bad request Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|