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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Sergey_I  
#1 Оставлено : 6 октября 2015 г. 10:06:29(UTC)
Sergey_I

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

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

Добрый день.
Возникла необходимость реализации на PHP обмена данными со СМЭВ 3.x. Для реализации подписания на данный момент выбрали вариант использования КриптоПро CSP (3.9) и утилиты cryptcp и приобрели соответствующие лицензии (ну и для пары других целей, про browser-плагин я ещё, может, задам пару вопросов в соответствующей ветке).

Для отработки алгоритмов взяли примеры с сайта СМЭВ 3.0 (последний вопрос в FAQ).

Тестовый пример (для упрощения оставил незаполненными только поля: DigestValue, SignatureValue и X509Certificate):
Код:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1">
   <S:Body>
      <ns2:SendRequestRequest xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1">
         <ns:SenderProvidedRequestData Id="SIGNED_BY_CONSUMER" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1">	<ns:MessageID>76796044-5e83-11e4-a9ff-d4c9eff07b77</ns:MessageID><ns2:MessagePrimaryContent><ns1:BreachRequest xmlns:ns1="urn://x-artefacts-gibdd-gov-ru/breach/root/1.0"  xmlns:ns2="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0"  xmlns:ns3="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1" Id="PERSONAL_SIGNATURE"> <ns1:RequestedInformation> <ns2:RegPointNum>Т785ЕС57</ns2:RegPointNum> </ns1:RequestedInformation> <ns1:Governance> <ns2:Name>ГИБДД РФ</ns2:Name> <ns2:Code>GIBDD</ns2:Code> <ns2:OfficialPerson> <ns3:FamilyName>Загурский</ns3:FamilyName> <ns3:FirstName>Андрей</ns3:FirstName> <ns3:Patronymic>Петрович</ns3:Patronymic> </ns2:OfficialPerson></ns1:Governance> </ns1:BreachRequest> </ns2:MessagePrimaryContent>	<ns:PersonalSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#PERSONAL_SIGNATURE"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>AUGmtYkL7MD5MqwxwcQULupXi6FtvCrsHED26tKroC0=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>PFtijkGkwB1rSG3q9YSiZwrtpMk2PV53kZfAqDJr/Z29plOShhDwuGTavcrnORMkAspDsYwqQM69hHnOJeqYiQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIBhjCCATWgAwIBAgIELVa5zjAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YzMQswCQYDVQQGEwJSVTAeFw0xNDAyMjYwODQ1MTdaFw0xNTAyMjYwODQ1MTdaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMzELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAvEqmzwoBlO2KHcBQND5WplUT9eBWXoQCrxuzlPQXCE+WKdNRVMkm4TivyPLgLTwgjxMcUnHSIZSeWL8LB97QPqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EA1u5TsTfom9Y0levJ0AeFtZT0lqEQUHL2PCKXmygvV1ZKJ1mBBLxVgCtIlii/Hql0SGAVwySDtZX7M20P3gjRgA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns:PersonalSignature></ns:SenderProvidedRequestData>
         <ns2:CallerInformationSystemSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#SIGNED_BY_CONSUMER"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue></ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue></ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate></ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns2:CallerInformationSystemSignature>
      </ns2:SendRequestRequest>
   </S:Body>
</S:Envelope>

В примере есть ЭП-СП (которую нельзя сломать при подписании) и ЭП-ОВ (которую собственно и реализуем).

Подпись проверяем в разделе инструменты разработчика СМЭВ.
Сертификат с закрытым ключом для разработки и тестирования получили в вашем тестовом УЦ.
Исходный контрольный пример, естественно, проверку проходит. Подписанный нами - вызывает ошибку "ЭП-ОВ не подтверждена: Ошибка проверки ЭП: Нарушена целостность ЭП". ЭП-СП остаётся неповреждённой.

Исходный пример:
Код:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1">
   <S:Body>
      <ns2:SendRequestRequest xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1">
         <ns:SenderProvidedRequestData Id="SIGNED_BY_CONSUMER" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1">	<ns:MessageID>76796044-5e83-11e4-a9ff-d4c9eff07b77</ns:MessageID><ns2:MessagePrimaryContent><ns1:BreachRequest xmlns:ns1="urn://x-artefacts-gibdd-gov-ru/breach/root/1.0"  xmlns:ns2="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0"  xmlns:ns3="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1" Id="PERSONAL_SIGNATURE"> <ns1:RequestedInformation> <ns2:RegPointNum>Т785ЕС57</ns2:RegPointNum> </ns1:RequestedInformation> <ns1:Governance> <ns2:Name>ГИБДД РФ</ns2:Name> <ns2:Code>GIBDD</ns2:Code> <ns2:OfficialPerson> <ns3:FamilyName>Загурский</ns3:FamilyName> <ns3:FirstName>Андрей</ns3:FirstName> <ns3:Patronymic>Петрович</ns3:Patronymic> </ns2:OfficialPerson></ns1:Governance> </ns1:BreachRequest> </ns2:MessagePrimaryContent>	<ns:PersonalSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#PERSONAL_SIGNATURE"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>AUGmtYkL7MD5MqwxwcQULupXi6FtvCrsHED26tKroC0=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>PFtijkGkwB1rSG3q9YSiZwrtpMk2PV53kZfAqDJr/Z29plOShhDwuGTavcrnORMkAspDsYwqQM69hHnOJeqYiQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIBhjCCATWgAwIBAgIELVa5zjAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YzMQswCQYDVQQGEwJSVTAeFw0xNDAyMjYwODQ1MTdaFw0xNTAyMjYwODQ1MTdaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMzELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAvEqmzwoBlO2KHcBQND5WplUT9eBWXoQCrxuzlPQXCE+WKdNRVMkm4TivyPLgLTwgjxMcUnHSIZSeWL8LB97QPqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EA1u5TsTfom9Y0levJ0AeFtZT0lqEQUHL2PCKXmygvV1ZKJ1mBBLxVgCtIlii/Hql0SGAVwySDtZX7M20P3gjRgA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns:PersonalSignature></ns:SenderProvidedRequestData>
         <ns2:CallerInformationSystemSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#SIGNED_BY_CONSUMER"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>oQj0a7j/Bw3XHLBhZ6CN0Dd6cNjP4DzyYnF8FwPsOo4=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>jBxo+CrTW1ESNuQdT7+mqAnFZBIrp1yCnE6KY+jy1OxlartHN3b6XpzD5OtnbCoYHpHy6Ne2hIy9g4mqYbQMOQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIBhjCCATWgAwIBAgIEamam8TAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YxMQswCQYDVQQGEwJSVTAeFw0xNDAyMjExMzM0NDNaFw0xNTAyMjExMzM0NDNaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMTELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAfGGhVXYQU0IYAlpug06oPYTIvFrNh6xZTHivwR6sBKTdDKdLp5SFxJh+bFVmXDoAjmeGfPM8AVi1HTikg9bnOqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EAqVxfNnmEwwRqy/1EoQGKGTvQO2vVnJr18jbC6byIxqYpfg+Zw7aRw2lEqflzxIz2LZ3OKzPsjYntUy25z89+3A==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns2:CallerInformationSystemSignature>
      </ns2:SendRequestRequest>
   </S:Body>
</S:Envelope>


Подписанный нами:
Код:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1"><S:Body><ns2:SendRequestRequest xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1"><ns:SenderProvidedRequestData xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1" Id="SIGNED_BY_CONSUMER"><ns:MessageID>23957b4a-6c0b-11e5-9d70-feff819cdc9f</ns:MessageID><ns2:MessagePrimaryContent><ns1:BreachRequest xmlns:ns1="urn://x-artefacts-gibdd-gov-ru/breach/root/1.0" xmlns:ns2="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0" xmlns:ns3="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1" Id="PERSONAL_SIGNATURE"><ns1:RequestedInformation><ns2:RegPointNum>Т785ЕС57</ns2:RegPointNum></ns1:RequestedInformation><ns1:Governance><ns2:Name>ГИБДД РФ</ns2:Name><ns2:Code>GIBDD</ns2:Code><ns2:OfficialPerson><ns3:FamilyName>Загурский</ns3:FamilyName><ns3:FirstName>Андрей</ns3:FirstName><ns3:Patronymic>Петрович</ns3:Patronymic></ns2:OfficialPerson></ns1:Governance></ns1:BreachRequest></ns2:MessagePrimaryContent><ns:PersonalSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#PERSONAL_SIGNATURE"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>AUGmtYkL7MD5MqwxwcQULupXi6FtvCrsHED26tKroC0=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>PFtijkGkwB1rSG3q9YSiZwrtpMk2PV53kZfAqDJr/Z29plOShhDwuGTavcrnORMkAspDsYwqQM69hHnOJeqYiQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIBhjCCATWgAwIBAgIELVa5zjAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YzMQswCQYDVQQGEwJSVTAeFw0xNDAyMjYwODQ1MTdaFw0xNTAyMjYwODQ1MTdaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMzELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAvEqmzwoBlO2KHcBQND5WplUT9eBWXoQCrxuzlPQXCE+WKdNRVMkm4TivyPLgLTwgjxMcUnHSIZSeWL8LB97QPqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EA1u5TsTfom9Y0levJ0AeFtZT0lqEQUHL2PCKXmygvV1ZKJ1mBBLxVgCtIlii/Hql0SGAVwySDtZX7M20P3gjRgA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns:PersonalSignature></ns:SenderProvidedRequestData><ns2:CallerInformationSystemSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#SIGNED_BY_CONSUMER"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>e2pY/kZFtTWdmOazxE70/WBQjBTiXUh3FfCtC26lW/E=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>S802rbQjnLkDhTV51r1kEUQcIWQwpvRBFgFfqJlpqMO9FdgyUPjUfR+ZjpQbYJkitEyJiqx5ZvzA8NsdT5azrQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>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</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns2:CallerInformationSystemSignature></ns2:SendRequestRequest></S:Body></S:Envelope>


Есть подозрение, что дело в трансформации "urn://smev-gov-ru/xmldsig/transform". Т.к. её тоже реализуем самостоятельно на PHP, пересобирая xml в соответствии с требованиями. Но в чём конкретно проблема - непонятно.
Трансформированный XML, от которого рассчитывается хэш:
Код:

<ns1:SenderProvidedRequestData xmlns:ns1="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" Id="SIGNED_BY_CONSUMER"><ns1:MessageID>76796044-5e83-11e4-a9ff-d4c9eff07b77</ns1:MessageID><ns2:MessagePrimaryContent xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1"><ns3:BreachRequest xmlns:ns3="urn://x-artefacts-gibdd-gov-ru/breach/root/1.0" Id="PERSONAL_SIGNATURE"><ns3:RequestedInformation><ns4:RegPointNum xmlns:ns4="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0">Т785ЕС57</ns4:RegPointNum></ns3:RequestedInformation><ns3:Governance><ns4:Name xmlns:ns4="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0">ГИБДД РФ</ns4:Name><ns4:Code xmlns:ns4="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0">GIBDD</ns4:Code><ns4:OfficialPerson xmlns:ns4="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0"><ns5:FamilyName xmlns:ns5="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1">Загурский</ns5:FamilyName><ns5:FirstName xmlns:ns5="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1">Андрей</ns5:FirstName><ns5:Patronymic xmlns:ns5="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1">Петрович</ns5:Patronymic></ns4:OfficialPerson></ns3:Governance></ns3:BreachRequest></ns2:MessagePrimaryContent><ns1:PersonalSignature><ns2:Signature xmlns:ns2="http://www.w3.org/2000/09/xmldsig#"><ns2:SignedInfo><ns2:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ns2:CanonicalizationMethod><ns2:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"></ns2:SignatureMethod><ns2:Reference URI="#PERSONAL_SIGNATURE"><ns2:Transforms><ns2:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ns2:Transform><ns2:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"></ns2:Transform></ns2:Transforms><ns2:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"></ns2:DigestMethod><ns2:DigestValue>AUGmtYkL7MD5MqwxwcQULupXi6FtvCrsHED26tKroC0=</ns2:DigestValue></ns2:Reference></ns2:SignedInfo><ns2:SignatureValue>PFtijkGkwB1rSG3q9YSiZwrtpMk2PV53kZfAqDJr/Z29plOShhDwuGTavcrnORMkAspDsYwqQM69hHnOJeqYiQ==</ns2:SignatureValue><ns2:KeyInfo><ns2:X509Data><ns2:X509Certificate>MIIBhjCCATWgAwIBAgIELVa5zjAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YzMQswCQYDVQQGEwJSVTAeFw0xNDAyMjYwODQ1MTdaFw0xNTAyMjYwODQ1MTdaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMzELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAvEqmzwoBlO2KHcBQND5WplUT9eBWXoQCrxuzlPQXCE+WKdNRVMkm4TivyPLgLTwgjxMcUnHSIZSeWL8LB97QPqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EA1u5TsTfom9Y0levJ0AeFtZT0lqEQUHL2PCKXmygvV1ZKJ1mBBLxVgCtIlii/Hql0SGAVwySDtZX7M20P3gjRgA==</ns2:X509Certificate></ns2:X509Data></ns2:KeyInfo></ns2:Signature></ns1:PersonalSignature></ns1:SenderProvidedRequestData>

Может сможет кто-то что-то подсказать? Алгоритм разрабатывается в соответствии с методическими рекомендациями.

Хэш берётся командой:
Код:
cryptcp -hash -provtype 75 -dir php/tmp php/tmp/tmp.txt


Подпись осуществляется:
Код:
csptest -keyset -sign GOST -in php/tmp/tmp.txt -out php/tmp/tmp.txt.sgn -container <имя контейнера> -machinekeys -password <пароль к контейнеру> -keytype exchange


Сертификат для встраивания в подпись экспортируется командой:
Код:
cryptcp -copycert -m -thumbprint 6c5bd6717e4c5777f684a828db0f3d6fbd60e077 -nochain -df php/tmp/tmp.txt.cer



UPD Как правильно было указано ниже - привёл неверную команду подписания. Заменил в сообщении команду и результат нашего подписания. В инструментах разработчика подпись проверку не проходит.

Отредактировано пользователем 7 октября 2015 г. 10:01:33(UTC)  | Причина: Отредактировал команду подписания.

Offline Максим Коллегин  
#2 Оставлено : 6 октября 2015 г. 13:51:55(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 39 раз
Поблагодарили: 750 раз в 645 постах
А вас не смущает длина подписи?
В xml нужна RAW подпись - можно получить из csptest -keyset -sign
И не забыть перевернуть.
Знания в базе знаний, поддержка в центре поддержки
Offline Sergey_I  
#3 Оставлено : 6 октября 2015 г. 14:04:53(UTC)
Sergey_I

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

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

Смущала. На самом деле перепробовано множество вариантов.
Пробовал подписывать командой (просто забыл упомянуть об этом - оставил последний из использованных вариант):
Код:
csptest -keyset -sign GOST -in php/tmp/tmp.txt -out php/tmp/tmp.txt.sgn -container <наименование контейнера в реестре> -machinekeys -password <пароль к контейнеру> -keytype exchange


Подписанное сообщение получилось:
Код:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1"><S:Body><ns2:SendRequestRequest xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1"><ns:SenderProvidedRequestData xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1" Id="SIGNED_BY_CONSUMER"><ns:MessageID>23957b4a-6c0b-11e5-9d70-feff819cdc9f</ns:MessageID><ns2:MessagePrimaryContent><ns1:BreachRequest xmlns:ns1="urn://x-artefacts-gibdd-gov-ru/breach/root/1.0" xmlns:ns2="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0" xmlns:ns3="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1" Id="PERSONAL_SIGNATURE"><ns1:RequestedInformation><ns2:RegPointNum>Т785ЕС57</ns2:RegPointNum></ns1:RequestedInformation><ns1:Governance><ns2:Name>ГИБДД РФ</ns2:Name><ns2:Code>GIBDD</ns2:Code><ns2:OfficialPerson><ns3:FamilyName>Загурский</ns3:FamilyName><ns3:FirstName>Андрей</ns3:FirstName><ns3:Patronymic>Петрович</ns3:Patronymic></ns2:OfficialPerson></ns1:Governance></ns1:BreachRequest></ns2:MessagePrimaryContent><ns:PersonalSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#PERSONAL_SIGNATURE"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>AUGmtYkL7MD5MqwxwcQULupXi6FtvCrsHED26tKroC0=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>PFtijkGkwB1rSG3q9YSiZwrtpMk2PV53kZfAqDJr/Z29plOShhDwuGTavcrnORMkAspDsYwqQM69hHnOJeqYiQ==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIBhjCCATWgAwIBAgIELVa5zjAIBgYqhQMCAgMwLTEQMA4GA1UECxMHU1lTVEVNMTEMMAoGA1UEChMDT1YzMQswCQYDVQQGEwJSVTAeFw0xNDAyMjYwODQ1MTdaFw0xNTAyMjYwODQ1MTdaMC0xEDAOBgNVBAsTB1NZU1RFTTExDDAKBgNVBAoTA09WMzELMAkGA1UEBhMCUlUwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAvEqmzwoBlO2KHcBQND5WplUT9eBWXoQCrxuzlPQXCE+WKdNRVMkm4TivyPLgLTwgjxMcUnHSIZSeWL8LB97QPqM7MDkwDgYDVR0PAQH/BAQDAgPoMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQUwCAYGKoUDAgIDA0EA1u5TsTfom9Y0levJ0AeFtZT0lqEQUHL2PCKXmygvV1ZKJ1mBBLxVgCtIlii/Hql0SGAVwySDtZX7M20P3gjRgA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns:PersonalSignature></ns:SenderProvidedRequestData><ns2:CallerInformationSystemSignature><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/><ds:Reference URI="#SIGNED_BY_CONSUMER"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>e2pY/kZFtTWdmOazxE70/WBQjBTiXUh3FfCtC26lW/E=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>zQ0LuzB6Wlpdj2KBp3396ETcwf7GEiwqz+a0g3QvFt+sy74pBPeMhWqI7G7iHp+k1k7sDu9IsNnJIvOT/TzhEA==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>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</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ns2:CallerInformationSystemSignature></ns2:SendRequestRequest></S:Body></S:Envelope>

Но результат тот же.

PS Кстати, по поводу csptest. На форуме, вроде бы, несколько раз упоминалось, что это служебная утилита для Вашего внутреннего использования. Есть ли возможность создания отделённой подписи с помощью cryptcp, или всё же стоит использовать именно csptest?

Отредактировано пользователем 6 октября 2015 г. 14:52:02(UTC)  | Причина: Добавлен PS

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