Статус: Новичок
Группы: Участники
Зарегистрирован: 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)
| Причина: Отредактировал команду подписания.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,457  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 39 раз Поблагодарили: 750 раз в 645 постах
|
А вас не смущает длина подписи? В xml нужна RAW подпись - можно получить из csptest -keyset -sign И не забыть перевернуть. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close