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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline springjazzy  
#1 Оставлено : 15 октября 2015 г. 11:39:41(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
Для интеграции с ГИС ЖКХ необходимо реализовать безопасное подключение через HTTPS посредством цифрового сертификата с алгоритмом ГОСТ. Этот же сертификат будет использоваться для аутентификации клиента. Также аутентификация осуществляется через логин/пароль. Формат сообщений - Soap11. Всё это является требованием заказчика.

Для работы с сервером заказчика была создана следующая привязка:

Цитата:

<bindings>
<customBinding>
<binding name="SITBindingCustom">
<textMessageEncoding messageVersion="Soap11"/>
<httpsTransport useDefaultWebProxy="false"
requireClientCertificate="true"
authenticationScheme="Basic"/>
</binding>
</customBinding>
</bindings>

<behaviors>
<endpointBehaviors>
<behavior name="clientCertificateConf">
<clientCredentials>
<clientCertificate findValue="3CE464FC21E436919F9FF64CB117BC5E086DE09D" storeLocation="CurrentUser" x509FindType="FindByThumbprint"/>
<serviceCertificate>
<authentication certificateValidationMode="None" revocationMode="NoCheck" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>

<client>
<endpoint address="@Адрес@"
binding="customBinding" bindingConfiguration="SITBindingCustom"
contract="BillsServiceAsyncReference.BillsPortsTypeAsync" name="SITBillsAsync"
behaviorConfiguration="clientCertificateConf" />
</client>


Данная привязка успешно работала до определенного момента, после чего перестала. Ошибка в том что сервер не может аутентифицировать клиента(AUT001100: Неверный идентификатор ИС). Причина отказа в обработке сообщений клиента заказчик озвучал так: "могло работать из-за того что https был открыт по RSA, сейчас же https открыт по ГОСТ, возможно из-за этого и проблемы."

Сертификат у меня ГОСТовский - тестовый КриптоПРО.
Исходя из тех примеров которые я нашел, например WCF ГОСТ, - не вижу разницы между моей конфигурацией и той что в примере. Не увидел в примере, что вы подключаете библиотеки из CryptoPro. Есть ли еще какие-нить примеры/хитрости работы WCF с HTTPS. В чем может быть проблема?
Offline springjazzy  
#2 Оставлено : 15 октября 2015 г. 11:44:49(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
На клиенте установлено:
КриптоПро CSP 3.9.8227
КриптоПро ЭЦП Browser Plug-in 2.0.12247
КриптоПро .NET Клиент 1.0.5708.1
Crypto-Pro .NET SDK 1.0.5708.1

Версия .NET 4.5

Если создавать защищенный канал через Stunnel то всё работает

Отредактировано пользователем 15 октября 2015 г. 12:16:00(UTC)  | Причина: Не указана

Offline khomenko  
#3 Оставлено : 15 октября 2015 г. 14:52:03(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 141
Мужчина
Откуда: Крипто-Про

Поблагодарили: 16 раз в 15 постах
Здравствуйте,

Попробуйте явно указать набор алгоритмов для привязки algorithmSuite="BasicGost":

Код:
<wsHttpBinding>
<binding name="NewBinding1">
    <security mode="Message">
       <!-- Аутентификация клиента по сертификату. -->
       <message clientCredentialType="Certificate" algorithmSuite="BasicGost"/>
    </security>
</binding>
</wsHttpBinding>


Не вижу большого смысла использовать CustomBinding.
Для двустороннего TLS подойдет wsHttpBinding, или BasicHttpsBinding.

И хотелось бы увидеть оригинальную ошибку с клиента.
Offline springjazzy  
#4 Оставлено : 15 октября 2015 г. 15:09:41(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
Здравствуйте,

CustomBinding используется из-за того что наш прокси режет https трафик, который идет по необычным портам.(обычно заказчик давал порты типа 64044 для тестовых целей). useDefaultWebProxy="false" позволяет решить эту проблему.

Здесь используется безопасность на уровне транспорта, а не сообщений, т.е. сообщение не шифруется сертификатом. Или можно на уровне сообщений достичь подобной безопасности?

Ошибка от сервера приходит такая:

<soap:Envelope xmlns:ns2="http://dom.gosuslugi.ru/schema/integration/6.0.0.5/" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns5="http://dom.gosuslugi.ru/schema/integration/6.0.0.5/organizations-registry/">
<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>AUT001100: Неверный идентификатор ИС</faultstring>
<detail>
<ns2:Fault>
<ns2:ErrorCode>AUT001100</ns2:ErrorCode>
<ns2:ErrorMessage>Неверный идентификатор ИС</ns2:ErrorMessage>
<ns2:StackTrace>ru.lanit.hcs.integration.common.exception.SoapFaultException: Certificate in header is blank
at ru.lanit.hcs.integration.common.spring.processor.CertificateValidationProcessor.process(CertificateValidationProcessor.java:51)
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:111)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:82)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
at org.apache.camel.component.cxf.CxfConsumer$1.syncInvoke(CxfConsumer.java:137)
at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:78)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.event(JBossWebContext.java:91)
at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.invoke(JBossWebContext.java:72)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
at java.lang.Thread.run(Thread.java:745)
</ns2:StackTrace>
</ns2:Fault>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
System.ServiceModel.FaultException`1[DomIntegration.RegOrgServiceReference.Fault]: AUT001100: Неверный идентификатор ИС (Дополнительные сведения об ошибке — DomIntegration.RegOrgServiceReference.Fault).

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

Offline khomenko  
#5 Оставлено : 15 октября 2015 г. 15:42:06(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 141
Мужчина
Откуда: Крипто-Про

Поблагодарили: 16 раз в 15 постах
Привязка в примере была для демонстрации атрибута algorithmSuite, а не securityMode'a.

Судя по ошибке у вас нет проблем с HTTPS, ошибка вам возвращается с прикладного уровня.



Offline khomenko  
#6 Оставлено : 15 октября 2015 г. 16:02:25(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 141
Мужчина
Откуда: Крипто-Про

Поблагодарили: 16 раз в 15 постах
Немного смущает сообщение:
Цитата:
Certificate in header is blank


Может быть сервер не требует обязательно двусторонней аутентификации и клиент не передаёт свой сертификат.
Offline springjazzy  
#7 Оставлено : 15 октября 2015 г. 16:12:51(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
Вроде algorithmSuite только с безопасностью на уровне сообщений применим? Кастомная привязка еще в том числе используется, потому что невозможно сделать стандартную привязку которая бы ипользовала двухсторонюю безопасность на уровне HTTPS и аутентификацию через логин/пароль.
Offline khomenko  
#8 Оставлено : 15 октября 2015 г. 16:42:45(UTC)
Михаил Хоменко

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

Группы: Администраторы, Участники
Зарегистрирован: 28.04.2010(UTC)
Сообщений: 141
Мужчина
Откуда: Крипто-Про

Поблагодарили: 16 раз в 15 постах
Да, вы правы algorithmSuite используется при Message (TransportWithMessage) режимах безопасности.

Можно попробовать WsHttpBindig с SecurityMode = TransportWithMessage.
в messagesecurity задать clientCredential - username
в transportsecurity clientCredential - certificate

Из привязки можно извлечь нужны BindingElement и настроить в нём useDefaultWebProxy="false".
В вашем случае это будет httpstransportbindingelement.

Offline springjazzy  
#9 Оставлено : 20 ноября 2015 г. 22:03:22(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
С выходом новой версии сервисов ГИС проблема решилась. Однако, появилась новая проблема. ГИС решил включить проверку подписи и оказалось, что мои сообщения не проходят проверку с их стороны.

Вот пример моей подписи:

Код:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:ISRequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/"><Date xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">2015-11-20T17:34:21.7721354+03:00</Date><MessageGUID xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">d1bcdf33-6e72-40c7-8b2b-7ffa58c948be</MessageGUID></h:ISRequestHeader></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><exportOrgRegistryRequest Id="signed-data-container" xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/"><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" /><Reference URI="#signed-data-container"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" /><DigestValue>G08g1fSyPC68ggOv2VlDH1UB5SOm46U/+7DI875ttOg=</DigestValue></Reference></SignedInfo><SignatureValue>VMXzGqtho38tVKLe6UUAoOhePLkOeFnLrd8DrsU8N0WeHoiUMGKJh/qj+8YL4J6iBzmn3eUZyYma2kWZS3+2bQ==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIID6DCCA5egAwIBAgITEgAHcXYxmSjqfc9jBAAAAAdxdjAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTUwODI1MTMxMTU2WhcNMTUxMTI1MTMyMTU2WjCB9jElMCMGCSqGSIb3DQEJARYWbi1ncmlnb3J5ZXZAaXQtc2Vydi5ydTEoMCYGA1UEAwwf0J3QuNC60LjRgtCwINCT0YDQuNCz0L7RgNGM0LXQsjErMCkGA1UECwwi0J7QntCeICLQmNCiLdCa0L7QvdGB0LDQu9GC0LjQvdCzIjEaMBgGA1UECgwR0JPQmiAi0JjQodCV0KDQkiIxGzAZBgNVBAcMEtCn0LXQsdC+0LrRgdCw0YDRizEwMC4GA1UECAwn0KfRg9Cy0LDRiNGB0LrQsNGPINGA0LXRgdC/0YPQsdC70LjQutCwMQswCQYDVQQGEwJSVTBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcqhQMCAh4BA0MABEB9A8sWfCeEhZdsJVD0EmeBpe6nYq3+HZxwwKJQi8tv0BZ79mDalGScCIgIVGWMwI88fDgqcgcsxKmfaV0EhmRSo4IBcDCCAWwwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB0GA1UdDgQWBBR9EQN8gRIQAgUF7qI7Pb3o2iXnbjAfBgNVHSMEGDAWgBQVMXywjRreZtcVnElSlxckuQF6gzBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcmwwgakGCCsGAQUFBwEBBIGcMIGZMGEGCCsGAQUFBzAChlVodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIuY3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAgGBiqFAwICAwNBAFaXTjqplmDUT6gZauOo10yRnTDY0rOlmj3xbZaR4V26jkBUJq4Ujn+FytyxxuGaSXmBRp/3DePLGXUoiGLsmiA=</X509Certificate></X509Data></KeyInfo></Signature><SearchCriteria><OGRN xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">3333333333444</OGRN></SearchCriteria></exportOrgRegistryRequest></s:Body></s:Envelope>


Сервис выдает ошибку -

Код:
<ns2:ErrorCode>AUTH01105</ns2:ErrorCode>
            <ns2:Description>Ошибка формата подписи запроса</ns2:Description>
            <ns2:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Invalid XML Signature
	at ru.lanit.hcs.integration.common.spring.service.impl.ValidationServiceImpl.validateSignature(ValidationServiceImpl.java:91)


При этом, моё сообщение валидируется у меня:

Код:
  public static Boolean VerifyXmlFile(String xml, string signatureTagName = "Signature")
        {
            // Create a new XML document.
            XmlDocument xmlDocument = new XmlDocument();

            // Format using white spaces.
            xmlDocument.PreserveWhitespace = true;

            // Load the passed XML file into the document. 
            xmlDocument.LoadXml(xml);

            // Create a new SignedXml object and pass it
            // the XML document class.
            SignedXml signedXml = new SignedXml(xmlDocument);

            // Find the "Signature" node and create a new
            // XmlNodeList object.
            XmlNodeList nodeList = xmlDocument.GetElementsByTagName(signatureTagName);

            // Load the signature node.
            signedXml.LoadXml((XmlElement)nodeList[0]);

            foreach (KeyInfoClause kl in signedXml.KeyInfo)
            {
                KeyInfoX509Data data = kl as KeyInfoX509Data;
                if (data != null)
                {
                    foreach (X509Certificate2 cert in data.Certificates)
                        Console.WriteLine(cert.Subject);
                }
            }

            // Check the signature and return the result.
            AsymmetricAlgorithm signingKey;
            bool res = signedXml.CheckSignatureReturningKey(out signingKey);
            if (signingKey == null)
                throw new ApplicationException("Не удалось распознать алгоритм шифрования");
            return res;
        }


ГИС прислали мне образец сообщения который проходит валидацию у них:

Код:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
      <h:ISRequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/" xmlns:h="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Date xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">2015-11-19T16:45:17.9255863+03:00</Date>
      <MessageGUID xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">7b73262b-6a9e-45d9-84d6-f78fff522114</MessageGUID>
    </h:ISRequestHeader>
  </s:Header>
  <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <exportOrgRegistryRequest Id="signed-data-container" xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/"><ds:Signature Id="xmldsig-609d7571-6573-4be0-97ea-91bf6c27523c" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#signed-data-container"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>+M/mr5i/71hDY5RgZ3DBKVh0UI2pM4yS/0QgU+4VbR4=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>8v60GwL0lQuUGGzodNHObJFaDxxWvPgzhZRJ2yRsqPV0dc1ydxbI5G4yNaNL8i3K9du3SxKa1Fyv82XKidzrUg==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIDIjCCAtGgAwIBAgITEgAJATu0qJh5KPMONgAAAAkBOzAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTUxMDA4MTM1ODQ3WhcNMTYwMTA4MTQwODQ3WjAxMRIwEAYDVQQDDAlURVNUIFNJR04xDjAMBgNVBAoMBUxBTklUMQswCQYDVQQGEwJSVTBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcqhQMCAh4BA0MABEDOKWdjnpprKFocYrc8bO5+/VxeLawHmBI76MN2OAK+IoZfjW7N0KA60JRD629tVUBTmZe7QG/k9Olhtqe6qCgWo4IBcDCCAWwwDgYDVR0PAQH/BAQDAgQwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB0GA1UdDgQWBBRFZELSId57TgdNJGKIg0HyANrA3jAfBgNVHSMEGDAWgBQVMXywjRreZtcVnElSlxckuQF6gzBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcmwwgakGCCsGAQUFBwEBBIGcMIGZMGEGCCsGAQUFBzAChlVodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIuY3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAgGBiqFAwICAwNBAOFG5hReCjQMa06nlNMhaZy6gjtEtER0+VrfIFtdiMCR7xpkEeJmZCFU0UQSM3cEIvyw8i67ZHKhIMmh2ZOd5Xc=</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature>
      <SearchCriteria>
        <OGRN xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">3333333333444</OGRN>
      </SearchCriteria>
    </exportOrgRegistryRequest>
  </s:Body>
</s:Envelope>


Данное сообщение проходит валидацию на их сервисе, но(!) не проходит валидацию у меня локально (VerifyXmlFile).

Сравнивая моё сообщение и ГИС не вижу никакой принципиальной разницы кроме хэша и сертификата. То что у тега <Signature> есть nameSpace ds в ГИС, но нет у меня, в ГИС мне ответили что это не влияет.

На клиенте установлено:
КриптоПро CSP 3.9.8227
КриптоПро ЭЦП Browser Plug-in 2.0.12247
КриптоПро .NET Клиент 1.0.5708.1
Crypto-Pro .NET SDK 1.0.5708.1

Версия .NET 4.0

Что делать? Уже два дня на это угробил.

Отредактировано пользователем 20 ноября 2015 г. 22:22:20(UTC)  | Причина: Не указана

Offline springjazzy  
#10 Оставлено : 20 ноября 2015 г. 22:26:37(UTC)
springjazzy

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

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

Поблагодарили: 4 раз в 4 постах
Я сейчас специально отформатирую сообщения для лучшей читаемости. Внимание! Форматирование ломает подпись, так что актуальные подписи выше.

Итак, моя подпись:

Код:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ISRequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/">
      <Date xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">2015-11-20T17:34:21.7721354+03:00</Date>
      <MessageGUID xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">d1bcdf33-6e72-40c7-8b2b-7ffa58c948be</MessageGUID>
    </h:ISRequestHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <exportOrgRegistryRequest Id="signed-data-container" xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/">
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
          <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
          <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
          <Reference URI="#signed-data-container">
            <Transforms>
              <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
              <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            </Transforms>
            <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
            <DigestValue>G08g1fSyPC68ggOv2VlDH1UB5SOm46U/+7DI875ttOg=</DigestValue>
          </Reference>
        </SignedInfo>
        <SignatureValue>VMXzGqtho38tVKLe6UUAoOhePLkOeFnLrd8DrsU8N0WeHoiUMGKJh/qj+8YL4J6iBzmn3eUZyYma2kWZS3+2bQ==</SignatureValue>
        <KeyInfo>
          <X509Data>
            <X509Certificate>MIID6DCCA5egAwIBAgITEgAHcXYxmSjqfc9jBAAAAAdxdjAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTUwODI1MTMxMTU2WhcNMTUxMTI1MTMyMTU2WjCB9jElMCMGCSqGSIb3DQEJARYWbi1ncmlnb3J5ZXZAaXQtc2Vydi5ydTEoMCYGA1UEAwwf0J3QuNC60LjRgtCwINCT0YDQuNCz0L7RgNGM0LXQsjErMCkGA1UECwwi0J7QntCeICLQmNCiLdCa0L7QvdGB0LDQu9GC0LjQvdCzIjEaMBgGA1UECgwR0JPQmiAi0JjQodCV0KDQkiIxGzAZBgNVBAcMEtCn0LXQsdC+0LrRgdCw0YDRizEwMC4GA1UECAwn0KfRg9Cy0LDRiNGB0LrQsNGPINGA0LXRgdC/0YPQsdC70LjQutCwMQswCQYDVQQGEwJSVTBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcqhQMCAh4BA0MABEB9A8sWfCeEhZdsJVD0EmeBpe6nYq3+HZxwwKJQi8tv0BZ79mDalGScCIgIVGWMwI88fDgqcgcsxKmfaV0EhmRSo4IBcDCCAWwwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB0GA1UdDgQWBBR9EQN8gRIQAgUF7qI7Pb3o2iXnbjAfBgNVHSMEGDAWgBQVMXywjRreZtcVnElSlxckuQF6gzBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcmwwgakGCCsGAQUFBwEBBIGcMIGZMGEGCCsGAQUFBzAChlVodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIuY3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAgGBiqFAwICAwNBAFaXTjqplmDUT6gZauOo10yRnTDY0rOlmj3xbZaR4V26jkBUJq4Ujn+FytyxxuGaSXmBRp/3DePLGXUoiGLsmiA=</X509Certificate>
          </X509Data>
        </KeyInfo>
      </Signature>
      <SearchCriteria>
        <OGRN xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">3333333333444</OGRN>
      </SearchCriteria>
    </exportOrgRegistryRequest>
  </s:Body>
</s:Envelope>


Подпись ГИС:
Код:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ISRequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/" xmlns:h="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Date xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">2015-11-19T16:45:17.9255863+03:00</Date>
      <MessageGUID xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">7b73262b-6a9e-45d9-84d6-f78fff522114</MessageGUID>
    </h:ISRequestHeader>
  </s:Header>
  <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <exportOrgRegistryRequest Id="signed-data-container" xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/organizations-registry/">
      <ds:Signature Id="xmldsig-609d7571-6573-4be0-97ea-91bf6c27523c" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
          <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
          <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
          <ds:Reference URI="#signed-data-container">
            <ds:Transforms>
              <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
              <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            </ds:Transforms>
            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
            <ds:DigestValue>+M/mr5i/71hDY5RgZ3DBKVh0UI2pM4yS/0QgU+4VbR4=</ds:DigestValue>
          </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>8v60GwL0lQuUGGzodNHObJFaDxxWvPgzhZRJ2yRsqPV0dc1ydxbI5G4yNaNL8i3K9du3SxKa1Fyv82XKidzrUg==</ds:SignatureValue>
        <ds:KeyInfo>
          <ds:X509Data>
            <ds:X509Certificate>MIIDIjCCAtGgAwIBAgITEgAJATu0qJh5KPMONgAAAAkBOzAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTUxMDA4MTM1ODQ3WhcNMTYwMTA4MTQwODQ3WjAxMRIwEAYDVQQDDAlURVNUIFNJR04xDjAMBgNVBAoMBUxBTklUMQswCQYDVQQGEwJSVTBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcqhQMCAh4BA0MABEDOKWdjnpprKFocYrc8bO5+/VxeLawHmBI76MN2OAK+IoZfjW7N0KA60JRD629tVUBTmZe7QG/k9Olhtqe6qCgWo4IBcDCCAWwwDgYDVR0PAQH/BAQDAgQwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMB0GA1UdDgQWBBRFZELSId57TgdNJGKIg0HyANrA3jAfBgNVHSMEGDAWgBQVMXywjRreZtcVnElSlxckuQF6gzBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcmwwgakGCCsGAQUFBwEBBIGcMIGZMGEGCCsGAQUFBzAChlVodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIuY3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29jc3Auc3JmMAgGBiqFAwICAwNBAOFG5hReCjQMa06nlNMhaZy6gjtEtER0+VrfIFtdiMCR7xpkEeJmZCFU0UQSM3cEIvyw8i67ZHKhIMmh2ZOd5Xc=</ds:X509Certificate>
          </ds:X509Data>
        </ds:KeyInfo>
      </ds:Signature>
      <SearchCriteria>
        <OGRN xmlns="http://dom.gosuslugi.ru/schema/integration/7.0.0.10/">3333333333444</OGRN>
      </SearchCriteria>
    </exportOrgRegistryRequest>
  </s:Body>
</s:Envelope>


Что называется найдите 10 отличий.

Может ли это быть связано с XMLDsig в .NET и JCP. Разные значение хэша.?

Отредактировано пользователем 20 ноября 2015 г. 22:35:19(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.