B2BB2CH2H

Подписание XML ГОСТ-сертификатом

Способ защиты данных определяется настройками интеграции. Для уточнения информации по настройке Вашей интеграции или запроса для установления нужных настроек необходимо написать на почту alfa_api@alfabank.ru. При запросе установления настроек необходимо сообщить способ защиты (подпись или подпись с шифрованием), а также алгоритм (RSA или ГОСТ).

Подписание XML
1

Подготовить сообщение в формате XML

Пример сообщения
1<?xml version="1.0" encoding="UTF-8"?>
2<Request>
3    <XmlElementName1>XmlElementValue1</XmlElementName1>
4    <XmlElementName2>XmlElementValue2</XmlElementName2>
5</Request>
2

Подписать запрос

Сформируйте электронную подпись в cоответствии с XMLDsig. Необходимо использовать:

Пример XMLDsig
1<?xml version="1.0" encoding="UTF-8"?>
2<Request>
3    <XmlElementName1>XmlElementValue1</XmlElementName1>
4    <XmlElementName2>XmlElementValue2</XmlElementName2>
5    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
6        <ds:SignedInfo>
7            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
8            </ds:CanonicalizationMethod>
9            <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256">
10            </ds:SignatureMethod>
11            <ds:Reference URI="">
12                <ds:Transforms>
13                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
14                    </ds:Transform>
15                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
16                    </ds:Transform>
17                </ds:Transforms>
18                <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>
19                </ds:DigestMethod>
20                <ds:DigestValue>q78yoPNf7grtP/yf9XNZwtxCnn9h80FvORe/Zu70Yvk=</ds:DigestValue>
21            </ds:Reference>
22        </ds:SignedInfo>
23        <ds:SignatureValue>ESXSfYUqFwMkngNQ54S4+qRNpomGuo62L8ufbZDcbgLzDgprGKi3N2PDzM8kS004MDpm+3Zjvnl/gk7uiqQCzw==</ds:SignatureValue>
24               <ds:KeyInfo>
25                   <ds:X509Data>
26                       <ds:X509Certificate>MIIPFzCCDsSgAwIBAgIRBpr44wAlsg6pTg7qS9+X8scwCgYIKoUDBwEBAwIwggELMRgwFgYFKoUDZAESDTEwMjc3MDAwNjczMjgxGjAYBggqhQMDgQMBARIMMDA3NzI4MTY4OTcxMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxKjAoBgNVBAkMIdCj0LsuINCa0LDQu9Cw0L3Rh9C10LLRgdC60LDRjyAyNzEPMA0GA1UECwwG0KPQmNCRMSEwHwYDVQQKDBjQkNCeINCQ0JvQrNCk0JAt0JHQkNCd0JoxNTAzBgNVBAMMLNCi0JXQodCiINCj0KYgMi4wINCQ0J4gItCQ0JvQrNCk0JAt0JHQkNCd0JoiMB4XDTI0MTExMTEzNDAwMVoXDфTMyMDMxNTA4MjMwOFowggJjMRcwFQYFKoUDZAQMDDAwNzcyODE2ODk3MTE/MD0GA1UEKgw20KHQtdGA0YLQuNGE0LjQutCw0YIt0JLRgtC+0YDQvtC5INCh0L7RgtGA0YPQtNC90LjQutCwMSYwJAYDVQQEDB3QotC10YHRgtC+0LLRi9C5LdCS0YLQvtGA0L7QuTEWMBQGBSqFA2QDEgs0NzY3NzQ4NDE1ODFJMEcGA1UECQxAMTA3MDc4LCDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQmtCw0LvQsNC90YfQtdCy0YHQutCw0Y8sINC0LiAyNzEaMBgGCCqFAwOBAwEBEgw1MjQ0ODE3OTMzMTQxGDAWBgUqhQNkARINMTAyNzcwMDA2NzMyODFHMEUGA1UEDAw+0KHQuNGB0YLQtdC80L3Ri9C5INCw0YDRhdC40YLQtdC60YLQvtGAINC90LDQv9GA0LDQstC70LXQvdC40Y8xLDAqBgkqhkiG9w0BCQEWHXRydXN0Y29yZV9zdXBwb3J0QGFsZmFiYW5rLnJ1MQswCQYDVQQGEwJSVTEVMBMGA1UECAwM0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxIzAhBgNVBAoMGtCQ0J4gItCQ0LvRjNGE0LAt0JHQsNC90LoiMVYwVAYDVQQLDE3QlNC10L/QsNGA0YLQsNC80LXQvdGCINGA0LDQt9GA0LDQsdC+0YLQutC4INGG0LjRhNGA0L7QstGL0YUg0YHQtdGA0LLQuNGB0L7QsjEXMBUGA1UEAwwOMnRydXN0Y29yZS0yNTYwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARAlBCZ9BS4/QF3WuEYP7kmjSQLJAbpYezzDOQZNLzZq/G/4FbAGC5dD00xJzzih6o/duyAFQkPFmKPPrhEfKacJKOCCp4wggqaMA4GA1UdDwEB/wQEAwID+DAfBgkrBgEEAYI3FQcEEjAQBggqhQMCAi4ACAIBAQIBADAdBgNVHQ4EFgQU1LPWWhT+ybiXm3qye09pvekYJ9YwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwIwCgYIKwYBBQUHAwQwggPbBggrBgEFBQcBAQSCA80wggPJMD4GCCsGAQUFBzABhjJodHRwOi8vdGVzdC11YzIubW9zY293LmFsZmFpbnRyYS5uZXQvb2NzcC9vY3NwLnNyZjBhBggrBgEFBQcwAoZVaHR0cDovL3Rlc3QtdWMyLm1vc2Nvdy5hbGZhaW50cmEubmV0L2FpYS8yZGIyODJiMjUwODQzNjFlNDlhOGFmN2RlMTliZTcxZmFhMjQzNzFlLmNydDBiBggrBgEFBQcwAoZWaHR0cDovL250ZXN0LXVjMi5tb3Njb3cuYWxmYWludHJhLm5ldC9haWEvMmRiMjgyYjI1MDg0MzYxZTQ5YThhZjdkZTE5YmU3MWZhYTI0MzcxZS5jcnQwYgYIKwYBBQUHMAKGVmh0dHA6Ly9udGVzdC11YzIubW9zY293LmFsZmFpbnRyYS5uZXQvYWlhLzJkYjI4MmIyNTA4NDM2MWU0OWE4YWY3ZGUxOWJlNzFmYWEyNDM3MWUuY3J0MGUGCCsGAQUFBzAChllodHRwOi8vbnRlc3QtdWMyLm1vc2Nvdy5hbGZhaW50cmEubmV0L3JhL2FpYS8yZGIyODJiMjUwODQzNjFlNDlhOGFmN2RlMTliZTcxZmFhMjQzNzFlLmNydDBlBggrBgEFBQcwAoZZaHR0cDovL250ZXN0LXVjMi5tb3Njb3cuYWxmYWludHJhLm5ldC9jYS9haWEvMmRiMjgyYjI1MDg0MzYxZTQ5YThhZjdkZTE5YmU3MWZhYTI0MzcxZS5jcnQwYgYIKwYBBQUHMAKGVmh0dHA6Ly9udGVzdC11YzIubW9zY293LmFsZmFpbnRyYS5uZXQvYWlhLzJkYjI4MmIyNTA4NDM2MWU0OWE4YWY3ZGUxOWJlNzFmYWEyNDM3MWUuY3J0MGIGCCsGAQUFBzAChlZodHRwOi8vbnRlc3QtdWMyLm1vc2Nvdy5hbGZhaW50cmEubmV0L2FpYS8yZGIyODJiMjUwODQzNjFlNDlhOGFmN2RlMTliZTcxZmFhMjQzNzFlLmNydDBiBggrBgEFBQcwAoZWaHR0cDovL250ZXN0LXVjMi5tb3Njb3cuYWxmYWludHJhLm5ldC9haWEvMmRiMjgyYjI1MDg0MzYxZTQ5YThhZjdkZTE5YmU3MWZhYTI0MzcxZS5jcnQwYgYIKwYBBQUHMAKGVmh0d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</ds:X509Certificate>
27                   </ds:X509Data>
28              </ds:KeyInfo>
29    </ds:Signature>
30</Request>
3

Выполнить запрос

Если добавить заголовки Content-Type: application/xml + X-Request-ChannelSecurity: NO и отправить запрос, то подпись запроса не будет проверяться.

Если добавить заголовки Content-Type: application/xml + X-Request-ChannelSecurity: SIGNATURE и отправить запрос, то подпись запроса будет проверяться.

Если подпись валидна - запрос обрабатывается, если невалидна - Банк определяет запрос как неподлинный и возвращает ошибку.

Проверка подписи XML
1

Получить ответ

Если добавить заголовки Accept: application/xml + X-Response-ChannelSecurity: NO , то ответ не будет подписан.

Если добавить заголовки Accept: application/xml + X-Response-ChannelSecurity: SIGNATURE , то полученный ответ (в том числе ошибки) будет подписан и представлен в виде XMLDsig.

  1. 1.
    Примените алгоритм канонизации, указанный в ds:CanonicalizationMethod , к элементу SignedInfo . Используйте алгоритм Exclusive XML Canonicalization для преобразования SignedInfo в каноническую форму.
  2. 2.
    Используя алгоритм хеширования, указанный в ds:SignatureMethod - urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256 , вычислите хеш-значение из канонизированного SignedInfo .
  3. 3.
    Декодируйте значение подписи из элемента ds:SignatureValue с использованием Base64.
  4. 4.
    Проверьте целостность содержимого:
    • •
      вычислите хеш-значение оригинальных данных (то есть тела сообщения без учёта подписи), используя алгоритм, указанный в ds:DigestMethod - urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256` ;
    • •
      сравните вычисленное хеш-значение с декодированным из Base64 значением, указанным в ds:DigestValue . Если значения совпадают, содержимое не изменилось после подписания.
Пример XMLDsig
1<?xml version="1.0" encoding="UTF-8"?>
2<Response>
3    <XmlElementName1>XmlElementValue1</XmlElementName1>
4    <XmlElementName2>XmlElementValue2</XmlElementName2>
5    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
6        <ds:SignedInfo>
7            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
8            </ds:CanonicalizationMethod>
9            <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256">
10            </ds:SignatureMethod>
11            <ds:Reference URI="">
12                <ds:Transforms>
13                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
14                    </ds:Transform>
15                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
16                    </ds:Transform>
17                </ds:Transforms>
18                <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>
19                </ds:DigestMethod>
20                <ds:DigestValue>q78yoPNf7grtP/yf9XNZwtxCnn9h80FvORe/Zu70Yvk=</ds:DigestValue>
21            </ds:Reference>
22        </ds:SignedInfo>
23        <ds:SignatureValue>ESXSfYUqFwMkngNQ54S4+qRNpomGuo62L8ufbZDcbgLzDgprGKi3N2PDzM8kS004MDpm+3Zjvnl/gk7uiqQCzw==</ds:SignatureValue>
24               <ds:KeyInfo>
25                   <ds:X509Data>
26                       <ds:X509Certificate>MIIPFzCCDsSgAwIBAgIRBpr44wAlsg6pTg7qS9+X8scwCgYIKoUDBwEBAwIwggELMRgwFgYFKoUDZAESDTEwMjc3MDAwNjczMjgxGjAYBggqhQMDgQMBARIMMDA3NzI4MTY4OTcxMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxKjAoBgNVBAkMIdCj0LsuINCa0LDQu9Cw0L3Rh9C10LLRgdC60LDRjyAyNzEPMA0GA1UECwwG0KPQmNCRMSEwHwYDVQQKDBjQkNCeINCQ0JvQrNCk0JAt0JHQkNCd0JoxNTAzBgNVBAMMLNCi0JXQodCiINCj0KYgMi4wINCQ0J4gItCQ0JvQrNCk0JAt0JHQkNCd0JoiMB4XDTI0MTExMTEzNDAwMVoXDфTMyMDMxNTA4MjMwOFowggJjMRcwFQYFKoUDZAQMDDAwNzcyODE2ODk3MTE/MD0GA1UEKgw20KHQtdGA0YLQuNGE0LjQutCw0YIt0JLRgtC+0YDQvtC5INCh0L7RgtGA0YPQtNC90LjQutCwMSYwJAYDVQQEDB3QotC10YHRgtC+0LLRi9C5LdCS0YLQvtGA0L7QuTEWMBQGBSqFA2QDEgs0NzY3NzQ4NDE1ODFJMEcGA1UECQxAMTA3MDc4LCDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQmtCw0LvQsNC90YfQtdCy0YHQutCw0Y8sINC0LiAyNzEaMBgGCCqFAwOBAwEBEgw1MjQ0ODE3OTMzMTQxGDAWBgUqhQNkARINMTAyNzcwMDA2NzMyODFHMEUGA1UEDAw+0KHQuNGB0YLQtdC80L3Ri9C5INCw0YDRhdC40YLQtdC60YLQvtGAINC90LDQv9GA0LDQstC70LXQvdC40Y8xLDAqBgkqhkiG9w0BCQEWHXRydXN0Y29yZV9zdXBwb3J0QGFsZmFiYW5rLnJ1MQswCQYDVQQGEwJSVTEVMBMGA1UECAwM0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxIzAhBgNVBAoMGtCQ0J4gItCQ0LvRjNGE0LAt0JHQsNC90LoiMVYwVAYDVQQLDE3QlNC10L/QsNGA0YLQsNC80LXQvdGCINGA0LDQt9GA0LDQsdC+0YLQutC4INGG0LjRhNGA0L7QstGL0YUg0YHQtdGA0LLQuNGB0L7QsjEXMBUGA1UEAwwOMnRydXN0Y29yZS0yNTYwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARAlBCZ9BS4/QF3WuEYP7kmjSQLJAbpYezzDOQZNLzZq/G/4FbAGC5dD00xJzzih6o/duyAFQkPFmKPPrhEfKacJKOCCp4wggqaMA4GA1UdDwEB/wQEAwID+DAfBgkrBgEEAYI3FQcEEjAQBggqhQMCAi4ACAIBAQIBADAdBgNVHQ4EFgQU1LPWWhT+ybiXm3qye09pvekYJ9YwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwIwCgYIKwYBBQUHAwQwggPbBggrBgEFBQcBAQSCA80wggPJMD4GCCsGAQUFBzABhjJodHRwOi8vdGVzdC11YzIubW9zY293LmFsZmFpbnRyYS5uZXQvb2NzcC9vY3NwLnNyZjBhBggrBgEFBQcwAoZVaHR0cDovL3Rlc3QtdWMyLm1vc2Nvdy5hbGZhaW50cmEubmV0L2FpYS8yZGIyODJiMjUwODQzNjFlNDlhOGFmN2RlMTliZTcxZmFhMjQzNzFlLmNydDBiBggrBgEFBQcwAoZWaHR0cDovL250ZXN0LXVjMi5tb3Njb3cuYWxmYWludHJhLm5ldC9haWEvMmRiMjgyYjI1MDg0MzYxZTQ5YThhZjdkZTE5YmU3MWZhYTI0MzcxZS5jcnQwYgYIKwYBBQUHMAKGVmh0dHA6Ly9udGVzdC11YzIubW9zY293LmFsZmFpbnRyYS5uZXQvYWlhLzJkYjI4MmIyNTA4NDM2MWU0OWE4YWY3ZGUxOWJlNzFmYWEyNDM3MWUuY3J0MGUGCCsGAQUFBzAChllodHRwOi8vbnRlc3QtdWMyLm1vc2Nvdy5hbGZhaW50cmEubmV0L3JhL2FpYS8yZGIyODJiMjUwODQzNjFlNDlhOGFmN2RlMTliZTcxZmFhMjQzNzFlLmNydDBlBggrBgEFBQcwAoZZaHR0cDovL250ZXN0LXVjMi5tb3Njb3cuYWxmYWludHJhLm5ldC9jYS9haWEvMmRiMjgyYjI1MDg0MzYxZTQ5YThhZjdkZTE5YmU3MWZhYTI0MzcxZS5jcnQwYgYIKwYBBQUHMAKGVmh0dHA6Ly9udGVzdC11YzIubW9zY293LmFsZmFpbnRyYS5uZXQvYWlhLzJkYjI4MmIyNTA4NDM2MWU0OWE4YWY3ZGUxOWJlNzFmYWEyNDM3MWUuY3J0MGIGCCsGAQUFBzAChlZodHRwOi8vbnRlc3QtdWMyLm1vc2Nvdy5hbGZhaW50cmEubmV0L2FpYS8yZGIyODJiMjUwODQzNjFlNDlhOGFmN2RlMTliZTcxZmFhMjQzNzFlLmNydDBiBggrBgEFBQcwAoZWaHR0cDovL250ZXN0LXVjMi5tb3Njb3cuYWxmYWludHJhLm5ldC9haWEvMmRiMjgyYjI1MDg0MzYxZTQ5YThhZjdkZTE5YmU3MWZhYTI0MzcxZS5jcnQwYgYIKwYBBQUHMAKGVmh0d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</ds:X509Certificate>
27                   </ds:X509Data>
28              </ds:KeyInfo>
29    </ds:Signature>
30</Response>
2

Проверить подпись ответа от Банка

Используйте открытый ключ сертификата Банка для проверки подписи, сравнивая вычисленное хеш-значение SignedInfo с декодированным значением подписи SignatureValue , используя алгоритм, указанный в SignatureMethod . Для получения сертификата напишите на почту alfa_api@alfabank.ru

3

Обработать ответ в формате XML

Пример ответа
1<?xml version="1.0" encoding="UTF-8"?>
2<Response>
3    <XmlElementName1>XmlElementValue1</XmlElementName1>
4    <XmlElementName2>XmlElementValue2</XmlElementName2>
5</Response>