Статус: Новичок
Группы: Участники
Зарегистрирован: 18.02.2025(UTC) Сообщений: 4  Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте, мне нужно сделать валидацию подписи. Приходит от сервиса xml с: Цитата: <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-ee60901f-1e78-48b1-a4dc-da34298b97c5">MIICPTCCAeigAwIBAgIUNbjnKeioQZUkyajF42Uw5VP/If4wDAYIKoUDBwEBAwIFADBvMQswCQYDVQQGEwJSVTEPMA0GA1UECAwGTW9zY293MQ8wDQYDVQQHDAZNb3Njb3cxDjAMBgNVBAoMBUVHSVNaMQwwCgYDVQQLDANJUFMxIDAeBgNVBAMMF2lwcy50ZXN0LnJvc21pbnpkcmF2LnJ1MB4XDTIzMTExNTEyMDAwMloXDTMzMTExMjEyMDAwMlowbzELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9zY293MQ4wDAYDVQQKDAVFR0lTWjEMMAoGA1UECwwDSVBTMSAwHgYDVQQDDBdpcHMudGVzdC5yb3NtaW56ZHJhdi5ydTBmMB8GCCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEBDRikZe/7cQGOrsQybQ3SvYapcW8uPPgNcR9XXx0K6LXxz0YRiAz/ZI+WMfR+xLIUYlYIcK5jx2ajLuT5Ila4so1MwUTAdBgNVHQ4EFgQUAHUajP3s/zXNk64KSHqR6mijXI0wHwYDVR0jBBgwFoAUAHUajP3s/zXNk64KSHqR6mijXI0wDwYDVR0TAQH/BAUwAwEB/zAMBggqhQMHAQEDAgUAA0EAS2pA2er56Fs5FUD3M+kRK9GBe8me4267LE82K7hDOWldUiTg8lrrZ5mqJjw9rN7He4WIrC1OQlaJ0RAXHzq8Jg==</wsse:BinarySecurityToken> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SIG-5079f8b2-b109-4051-af9b-c594d79c87a3"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/> <ds:Reference URI="#id-9dcc5ec4-a50e-4f24-83ba-48acf87d7442"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/> <ds:DigestValue>Y1DRWFqn9SSCg5NnGUsjpME10TJTZ6zUG2cQrq9mJmM=</ds:DigestValue> </ds:Reference> <ds:Reference URI="#TS-521fab16-f9cc-4f38-917c-6488c63e3c7b"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/> <ds:DigestValue>I6V0os/Zkawk5vCTYSypo24Ob7apyikgIgTKtAueHGI=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>EQUyZ9eRe0gNCX+ZLThsnLECrQu9UzLcQHrUCIOW4jC3zi6jPO8hPweYVmpcfX73yfenqbLdrg6TjdrpJCkqDg==</ds:SignatureValue> <ds:KeyInfo Id="KI-102dfdaa-5f55-460f-a912-40dd70a2ea5a"> <wsse:SecurityTokenReference wsu:Id="STR-9eacf53d-5853-4c3a-b88a-605945a34564"> <wsse:Reference URI="#X509-ee60901f-1e78-48b1-a4dc-da34298b97c5" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> <wsu:Timestamp wsu:Id="TS-521fab16-f9cc-4f38-917c-6488c63e3c7b"> <wsu:Created>2025-02-18T22:40:09.511Z</wsu:Created> <wsu:Expires>2025-02-18T22:50:09.511Z</wsu:Expires> </wsu:Timestamp> </wsse:Security>
Я беру данные из BinarySecurityToken и перевожу его из base64(это открытый ключ) и сохраняю как remd.cer: Цитата: import base64
def convert_base64_to_der(output_file: str): cert_base64 = "MIICPTCCAeigAwIBAgIUNbjnKeioQZUkyajF42Uw5VP/If4wDAYIKoUDBwEBAwIFADBvMQswCQYDVQQGEwJSVTEPMA0GA1UECAwGTW9zY293MQ8wDQYDVQQHDAZNb3Njb3cxDjAMBgNVBAoMBUVHSVNaMQwwCgYDVQQLDANJUFMxIDAeBgNVBAMMF2lwcy50ZXN0LnJvc21pbnpkcmF2LnJ1MB4XDTIzMTExNTEyMDAwMloXDTMzMTExMjEyMDAwMlowbzELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9zY293MQ4wDAYDVQQKDAVFR0lTWjEMMAoGA1UECwwDSVBTMSAwHgYDVQQDDBdpcHMudGVzdC5yb3NtaW56ZHJhdi5ydTBmMB8GCCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEBDRikZe/7cQGOrsQybQ3SvYapcW8uPPgNcR9XXx0K6LXxz0YRiAz/ZI+WMfR+xLIUYlYIcK5jx2ajLuT5Ila4so1MwUTAdBgNVHQ4EFgQUAHUajP3s/zXNk64KSHqR6mijXI0wHwYDVR0jBBgwFoAUAHUajP3s/zXNk64KSHqR6mijXI0wDwYDVR0TAQH/BAUwAwEB/zAMBggqhQMHAQEDAgUAA0EAS2pA2er56Fs5FUD3M+kRK9GBe8me4267LE82K7hDOWldUiTg8lrrZ5mqJjw9rN7He4WIrC1OQlaJ0RAXHzq8Jg==" cert_der = base64.b64decode(cert_base64) with open(output_file, "wb") as f: f.write(cert_der)
# Использование convert_base64_to_der("remd.cer")
Из SignatureValue значение перевожу из base64 и сохраняю как бинарный файл в remd_raw.sig: Цитата: import base64
def convert_base64_to_hex(base64_string: str, output_file: str):
binary_data = base64.b64decode(base64_string) with open(output_file, "wb") as f: f.write(binary_data)
base64_string = "EQUyZ9eRe0gNCX+ZLThsnLECrQu9UzLcQHrUCIOW4jC3zi6jPO8hPweYVmpcfX73yfenqbLdrg6TjdrpJCkqDg==" convert_base64_to_hex(base64_string, "remd_raw.sgn")
Беру все что в теге SignedInfo(вместе с ним и привожу данные в стандарт c14n): Цитата: <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"></ds:SignatureMethod><ds:Reference URI="#id-9dcc5ec4-a50e-4f24-83ba-48acf87d7442"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"></ds:DigestMethod><ds:DigestValue>Y1DRWFqn9SSCg5NnGUsjpME10TJTZ6zUG2cQrq9mJmM=</ds:DigestValue></ds:Reference><ds:Reference URI="#TS-521fab16-f9cc-4f38-917c-6488c63e3c7b"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"></ds:DigestMethod><ds:DigestValue>I6V0os/Zkawk5vCTYSypo24Ob7apyikgIgTKtAueHGI=</ds:DigestValue></ds:Reference></ds:SignedInfo>
При вводе команды: csptest.exe -keyset -verify GOST12_256 -in remd_file.txt -signature remd_raw.sgn -cert remd.cer выдает ошибку подписи. Прошу подсказать, где я ошибся при проверки подписи.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close