---
title: "\"Стандарт Банка России \"Финансовые сообщения в НПС. Правила обмена данными в национальной платежной системе\" СТО БР НПС-6.1-2020\""
number: "СТО БР НПС-1.4-2019"
issuer: "Центральный банк Российской Федерации"
status: действует
canonical: "https://bukva.ai/docs/prikaz-sto-br-nps-1-4-2019"
---

## "Стандарт Банка России "Финансовые сообщения в НПС. Правила обмена данными в национальной платежной системе" СТО БР НПС-6.1-2020"

# "Стандарт Банка России "Финансовые сообщения в НПС. Правила обмена данными в национальной платежной системе" СТО БР НПС-6.1-2020"

(принят и введен в действие приказом Банка России от 20.09.2019 N ОД-2191)

> [!IMPORTANT]
> Начало действия документа - [30.09.2019](#p100005).


<a id="p100001"></a>СТАНДАРТ БАНКА РОССИИ

<div align="center">

<a id="p100002"></a>**СТО БР НПС-6.1-2020**

<a id="p100003"></a>**ФИНАНСОВЫЕ СООБЩЕНИЯ В НПС**

<a id="p100004"></a>**ПРАВИЛА ОБМЕНА ДАННЫМИ В НАЦИОНАЛЬНОЙ ПЛАТЕЖНОЙ СИСТЕМЕ**

<a id="p100005"></a>**Дата введения: 2019-09-30**

</div>



### <a id="p100006"></a>Предисловие


<div align="center">

<a id="p100007"></a>**ПРИНЯТ И ВВЕДЕН в действие приказом Банка России от 20 сентября 2019 года N ОД-2191 "О введении в действие стандарта СТО БР НПС-1.4-2019 Банка России "Финансовые сообщения в НПС. Правила обмена данными в национальной платежной системе".**<br>
<a id="p100008"></a>**Настоящий Стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Банка России.**

</div>



### <a id="p100009"></a>Введение


<div align="center">

<a id="p100010"></a>**Настоящий Стандарт содержит рекомендации по реализации обмена данными в соответствии со стандартом ISO 20022 <1> при переводе денежных средств в национальной платежной системе (далее - НПС).**

</div>


<a id="p100011"></a>

---

<div align="center">

<a id="p100012"></a>**<1> Международный стандарт ISO 20022 "Финансовые услуги - Универсальная схема сообщений для финансовой отрасли" (Financial services - Universal financial industry message scheme).**

</div>



### 1. <a id="p100013"></a>Область применения


<a id="p100014"></a>Настоящий Стандарт рекомендован к использованию разработчиками информационного и программного обеспечения, информационных систем при организации информационного взаимодействия между банками и их клиентами - юридическими лицами. В рамках межбанковского взаимодействия при оказании услуг по передаче финансовых сообщений возможно использование как собственных правил обмена данными, так и положений настоящего Стандарта.
<a id="p100015"></a>Положения настоящего Стандарта применяются на добровольной основе, если только в отношении конкретных положений обязательность их применения не установлена нормативными актами Банка России или условиями договоров.


### 2. <a id="p100016"></a>Термины и определения


<a id="p100017"></a>В настоящем Стандарте применяются термины в соответствии со [Стандартом](https://bukva.ai/docs/prikaz-sto-br-nps-1-0-2017#p100017) Банка России СТО БР НПС-1.0-2017 "Финансовые сообщения в НПС. Общие положения" и Федеральным [законом](https://bukva.ai/docs/federalnyy-zakon-63-fz-2011/statya-2#p100011) от 06.04.2011 N 63-ФЗ "Об электронной подписи", а также следующие термины с соответствующими определениями.


| <a id="p100018"></a>Сетевая модель ВОС | <a id="p100019"></a>- | <a id="p100020"></a>базовая эталонная модель взаимодействия открытых систем в соответствии с ГОСТ Р ИСО/МЭК 7498-1-99 "Государственный стандарт Российской Федерации. Информационная технология. Взаимосвязь открытых систем. Базовая эталонная модель. Часть 1. Базовая модель"; |
| --- | --- | --- |
| <a id="p100021"></a>Сообщение | <a id="p100022"></a>- | <a id="p100023"></a>набор структурированной информации (в электронном виде), которой осуществляется обмен между двумя участниками информационного взаимодействия с использованием средств телекоммуникации; |
| <a id="p100024"></a>Бизнес-сообщение | <a id="p100025"></a>- | <a id="p100026"></a>электронное сообщение стандарта ISO 20022, предназначенное для передачи прикладных данных между участниками информационного взаимодействия; |
| <a id="p100027"></a>Транспортное сообщение | <a id="p100028"></a>- | <a id="p100029"></a>конверт, соответствующий спецификации SOAP 1.2, в заголовках которого находятся структуры, связанные с подписанием и шифрованием сообщения, а в теле передается бизнес-сообщение; |
| <a id="p100030"></a>Способ доставки сообщения | <a id="p100031"></a>- | <a id="p100032"></a>группа параметров настройки для величин, определяющих характеристики доставки сообщений; |
| <a id="p100033"></a>Система доставки сообщений | <a id="p100034"></a>- | <a id="p100035"></a>механизм, обеспечивающий принятие, транспортировку и доставку транспортных сообщений между участниками информационного взаимодействия; |
| <a id="p100036"></a>Участник информационного взаимодействия | <a id="p100037"></a>- | <a id="p100038"></a>субъект, который создает, обрабатывает, принимает или отправляет электронные сообщения; |
| <a id="p100039"></a>Хеш | <a id="p100040"></a>- | <a id="p100041"></a>строка ограниченной длины, полученная путем выполнения специальных преобразований над исходными данными в соответствии с ГОСТ Р 34.11-2012; |
| <a id="p100042"></a>Deflate | <a id="p100043"></a>- | <a id="p100044"></a>алгоритм сжатия данных без потерь; |
| <a id="p100045"></a>Base64 | <a id="p100046"></a>- | <a id="p100047"></a>стандарт кодирования последовательности байт в строку и из строки в последовательность байт; |
| <a id="p100048"></a>Валидация | <a id="p100049"></a>- | <a id="p100050"></a>проверка входных данных по заданным правилам. |



### 3. <a id="p100051"></a>Общие положения


<a id="p100052"></a>В соответствии с положениями части 6 "Характеристики транспортировки сообщений" (ISO 20022-6 "Message transport characteristics") стандарта ISO 20022 обмен данными в рамках НПС выполняется в следующих слоях:
- <a id="p100053"></a>бизнес-слой - самый верхний слой, в котором определены правила и сценарии обмена бизнес-сообщениями, а также структуры бизнес-сообщений, используемых в процессах обмена в рамках конкретных моделей связей НПС. Бизнес-слой эквивалентен добавлению уровня 9 к Сетевой модели ВОС;
- <a id="p100054"></a>слой транспортировки сообщений - слой, в котором определены правила обмена электронными сообщениями, независимо от бизнес-слоя. Слой транспортировки сообщений эквивалентен добавлению уровня 8 к Сетевой модели ВОС;
- <a id="p100055"></a>прикладной слой - самый нижний слой обмена, соответствующий уровню 7 Сетевой модели ВОС.
<a id="p100056"></a>Настоящий Стандарт определяет рекомендации по обмену данными в рамках НПС в каждом из указанных выше слоев. Соблюдение настоящих рекомендаций позволит обеспечить функциональную совместимость (интероперабельность) взаимодействующих в рамках НПС информационных систем, поддерживающих ISO 20022.


### 4. <a id="p100057"></a>Бизнес-слой


<a id="p100058"></a>В бизнес-слое обмен данными реализуется путем передачи бизнес-сообщений. Бизнес-сообщение представляет собой совокупность бизнес-заголовка и содержимого сообщения, описанного в Стандартах ISO 20022 НПС.
<a id="p100059"></a>Бизнес-сообщения содержат только бизнес-данные и не должны содержать информацию о Системе доставки сообщений, о механизмах адресации, отправки, передачи или получения сообщений, а также прочую информацию, специфичную для использования в слое транспортировки сообщения или прикладном слое.
<a id="p100060"></a>Бизнес-сообщения должны содержать всю информацию, необходимую для их корректной интерпретации Участниками информационного взаимодействия, должны быть понятны вне контекста транспортного конверта ([раздел 5](#p100121) настоящего Стандарта).
<a id="p100061"></a>Бизнес-сообщения должны быть представлены в виде XML документов и должны соответствовать XML схемам и правилам заполнения документов, описанным в Стандартах ISO 20022 НПС.


#### <a id="p100062"></a>4.1. Правила обмена данными в бизнес-слое


<a id="p100063"></a>Правила обмена данными в бизнес-слое определяются Стандартами ISO 20022 НПС, содержащими модели связей между участниками перевода денежных средств, а также используемые в рамках этих моделей сообщения.
<a id="p100064"></a>При описании обмена в бизнес-слое задаются Способы доставки сообщений (MessageTransportMode), которые определяют группы характеристик доставки сообщений, описанные в части 1 "Метамодель" (ISO 20022-1 "Metamodel") стандарта ISO 20022 <2>. Характеристики доставки сообщений справочно приведены в Таблице 4.1 настоящего Стандарта.

<a id="p100065"></a>

---

<a id="p100066"></a><2> www.iso20022.org.

<a id="p100067"></a>Определенные в бизнес-слое Способы доставки сообщений должны быть реализованы в слое транспортировки сообщений и (или) прикладном слое.


##### <a id="p100068"></a>Таблица 4.1. Характеристики доставки сообщений



<table>
<colgroup><col width="34%"><col width="66%"></colgroup>
<tr><td><a id="p100069"></a>Характеристика</td><td><a id="p100070"></a>Описание</td></tr>
<tr><td><a id="p100071"></a>Обеспечение доставки (DeliveryAssurance)</td><td><a id="p100072"></a>Принимает одно из следующих значений:<br>- не менее одного раза (AT_LEAST_ONCE),<br>- в точности один раз (EXACTLY_ONСЕ),<br>- не более одного раза (AT_MOST_ONCE)</td></tr>
<tr><td><a id="p100073"></a>Асинхронность отправителя (SenderAsynchronicity)</td><td><a id="p100074"></a>Принимает одно из следующих значений:<br>- конечная точка синхронна (ENDPOINT_SYNCHRONOUS),<br>- обмен синхронен (CONVERSATION_SYNCHRONOUS),<br>- асинхронен (ASYNCHRONOUS)</td></tr>
<tr><td><a id="p100075"></a>Асинхронность получателя (ReceiverAsynchronicity)</td><td><a id="p100076"></a>Принимает одно из следующих значений:<br>- конечная точка синхронна (ENDPOINT_SYNCHRONOUS),<br>- обмен синхронен (CONVERSATION_SYNCHRONOUS),<br>- асинхронен (ASYNCHRONOUS)</td></tr>
<tr><td><a id="p100077"></a>Порядок доставки сообщения (MessageDeliveryOrder)</td><td><a id="p100078"></a>Принимает одно из следующих значений:<br>- порядок сохраняется для всех получателей и отправителей сообщений (EXPECTED_CAUSAL_ORDER),<br>- порядок сохраняется только для каждой пары получателя и отправителя сообщений (FIFO_ORDERED),<br>- порядок не сохраняется (UNORDERED)</td></tr>
<tr><td><a id="p100079"></a>Окно доставки сообщения (MessageDeliveryWindow)</td><td><a id="p100080"></a>Максимальная продолжительность времени, в пределах которого транспортное сообщение может быть доставлено без учета очередности. Значения должны быть большими или равными нулю.</td></tr>
<tr><td><a id="p100081"></a>Окно отправки сообщения (MessageSendingWindow)</td><td><a id="p100082"></a>Максимальная продолжительность времени, в течение которого транспортное сообщение может быть отправлено без учета очередности. Значения должны быть большими или равными нулю.</td></tr>
<tr><td><a id="p100083"></a>Метод рассылки сообщения (MessageCasting)</td><td><a id="p100084"></a>Принимает одно из следующих значений:<br>- односторонняя рассылка (UNICAST),<br>- групповая рассылка (MULTICAST),<br>- рассылка по списку (BROADCAST),<br>- любая рассылка (ANYCAST)</td></tr>
<tr><td><a id="p100085"></a>Ограниченная задержка связи (BoundedCommunicationDelay)</td><td><a id="p100086"></a>Максимальная продолжительность времени, в пределах которого сообщение должно быть доставлено. В качестве значения должна быть задана продолжительность времени в соответствии с ISO 8601</td></tr>
<tr><td><a id="p100087"></a>Валидация сообщений<br>включена/отключена<br>(MessageValidationOnOff)</td><td><a id="p100088"></a>Принимает одно из следующих значений:<br>- валидация включена (VALIDATION_ON) - сообщения валидируются Системой доставки сообщений,<br>- валидация отключена (VALIDATION_OFF) - сообщения не валидируются Системой доставки сообщений</td></tr>
<tr><td><a id="p100089"></a>Результаты валидации сообщения<br>(MessageValidationResults)</td><td><a id="p100090"></a>Принимает одно из следующих значений:<br>- отклонение (REJECT),<br>- отклонение и доставка (REJECT_AND_DELIVER),<br>- доставка (DELIVER)</td></tr>
<tr><td rowspan="2"><a id="p100091"></a>Уровень валидации сообщения (MessageValidationLevel)</td><td><a id="p100092"></a>Уровень валидации сообщения, требуемый Системой доставки сообщений.</td></tr>
<tr><td><a id="p100093"></a>Принимает одно из следующих значений:<br>- сообщение не валидировалось (NO_VALIDATION),<br>- провалидирован синтаксис сообщения (SYNTAX_VALID),<br>- сообщение соответствует XML схеме (SCHEMA_VALID),<br>- сообщение соответствует ... правилам (MESSAGE_VALID),<br>- сообщение соответствует бизнес-правилам (RULE_VALID),<br>- сообщение соответствует рыночной практике (MARKET_PRACTICE_VALID),<br>- сообщение соответствует бизнес-процессу (BUSINESS_PROCESS_VALID),<br>- полностью валидное сообщение (COMPLETELY_VALID)</td></tr>
<tr><td><a id="p100094"></a>Длительность хранения (Durability)</td><td><a id="p100095"></a>Принимает одно из следующих значений:<br>- долговременно (DURABLE),<br>- постоянно (PERSISTENT),<br>- временно (TRANSIENT)</td></tr>
<tr><td><a id="p100096"></a>Максимальное отклонение времени (MaximumClockVariation)</td><td><a id="p100097"></a>Максимальное отклонение от Всемирного координированного времени (UTC) для обеспечиваемого Способа доставки сообщения</td></tr>
<tr><td><a id="p100098"></a>Максимальный размер сообщения (MaximumMessageSize)</td><td><a id="p100099"></a>Максимальный размер транспортного сообщения в килобайтах (любое положительное целое число, большее нуля).</td></tr>
</table>



#### <a id="p100100"></a>4.2. Структура бизнес-сообщений


<div align="center">

<a id="p100101"></a>**Бизнес-сообщение имеет следующую структуру:**<br>
<a id="p100102"></a>    <BusinessMessage xmlns="urn:cbrf:iso:20022:business-message">

        <!-- Содержимое заголовка --><br>
      </AppHdr>

</div>

      <Document xmlns="urn:iso:std:iso:20022:tech:xsd:xxxx.nnn.nnn.nn">
        <!-- Содержимое документа -->
      </Document>

<div align="center">

    **</BusinessMessage>**<br>
<a id="p100103"></a>**В качестве заголовка бизнес-сообщения используется структура Business Application Header (BAH). Структура задана в документе "ISO 20022 Business Application Header. Message Definition Report" (версия от 30 августа 2019 года) <3>. Рамочные правила ее использования заданы в документе "ISO 20022 Business Application Header Message Usage Guide Version 1.9" (версия от октября 2019 года). Описание структуры заголовка бизнес-сообщения и правила ее заполнения для целей использования в НПС приведены в Таблице 4.2.**

</div>


<a id="p100104"></a>

---

<div align="center">

<a id="p100105"></a>**<3> www.iso20022.org.**

</div>



##### <a id="p100106"></a>Таблица 4.2. Структура заголовка бизнес-сообщения



<table>
<colgroup><col width="34%"><col width="66%"></colgroup>
<tr><td><a id="p100107"></a>Прикладной атрибут</td><td><a id="p100108"></a>Правила формирования</td></tr>
<tr><td rowspan="4"><a id="p100109"></a>Отправитель</td><td><a id="p100110"></a>Идентификатор отправителя записывается в реквизит AppHdr/Fr/*.</td></tr>
<tr><td>При этом обязательно указывается идентификационная схема в реквизите */SchmeNm/Cd (при использовании идентификационных кодов, зарегистрированных в ISO 20022) или */SchmeNm/Prtry (при использовании собственных идентификационных кодов).</td></tr>
<tr><td>В качестве основных типов идентификаторов могут выступать:<br>LEI (Legal Entity Identifier), уникальный 20-значный буквенноцифровой идентификатор (код) юридического лица, который присваивается в соответствии с международным стандартом ISO 17442<br>ОГРН, идентификационная схема - OGRN<br>ИНН, идентификационная схема - TXID<br>Российский БИК, идентификационная схема - RUCBC<br>УИС, идентификационная схема - RUCB</td></tr>
<tr><td>Может быть указан иной идентификатор, принятый Участниками информационного взаимодействия, позволяющий однозначно идентифицировать участника в цепочке обмена.<br>При формировании идентификатора отправителя и типа идентификатора недопустимо использование символов пробела, перевода строки, возврата каретки и табуляции.</td></tr>
<tr><td rowspan="2"><a id="p100111"></a>Получатель</td><td><a id="p100112"></a>Идентификатор получателя записывается в реквизит AppHdr/To/*.</td></tr>
<tr><td>Требования к идентификаторам атрибута Получатель аналогичны требованиям к идентификаторам атрибута Отправитель</td></tr>
<tr><td><a id="p100113"></a>Идентификатор сообщения</td><td><a id="p100114"></a>Идентификатор сообщения записывается в реквизит AppHdr/BizMsgIdr.<br>Идентификатор сообщения должен быть уникальным по определенному Участнику информационного взаимодействия.<br>При формировании идентификаторов сообщения рекомендуется использовать алгоритмы создания универсальных уникальных идентификаторов (UUID) согласно спецификации RFC 4122 (см. <a href="#p100142">таблица 5.1</a>). В целях соответствия требованиям BAH к длине идентификатора, при записи UUID в реквизит AppHdr/BizMsgIdr, в строковое представление UUID не должен включаться идентификатор пространства имен "urn:uuid:", а также должны быть исключены символы "-".<br>Пример идентификатора: "f81d4fae7dec11d0a76500a0c91e6bf6"</td></tr>
<tr><td><a id="p100115"></a>Тип сообщения</td><td><a id="p100116"></a>Тип бизнес-сообщения записывается в реквизит AppHdr/MsgDefIdr.<br>Могут использоваться только типы сообщений, применяемые в НПС.<br>Пример: "pain.001.001.07"</td></tr>
<tr><td><a id="p100117"></a>Бизнес-сервис</td><td><a id="p100118"></a>Бизнес-сервис записывается в реквизит AppHdr/BizSvc.<br>Реквизит опциональный, правила заполнения определяются Участниками<br>информационного взаимодействия</td></tr>
<tr><td><a id="p100119"></a>Дата и время формирования сообщения</td><td><a id="p100120"></a>Дата и время формирования сообщения записываются в реквизит AppHdr/CreDt<br>Время указывается по Гринвичу</td></tr>
</table>



### 5. <a id="p100121"></a>Слой транспортировки сообщений



#### <a id="p100122"></a>5.1. Правила обмена данными в слое транспортировки сообщений


<div align="center">

<a id="p100123"></a>Обмен данными в слое транспортировки сообщений выполняется с использованием транспортных сообщений, в которые упакованы бизнес-сообщения. Структура и правила формирования транспортных сообщений определены в [разделе 5.2](#p100139) Стандарта.<br>
<a id="p100124"></a>Обмен выполняется по следующему сценарию:<br>
1. <a id="p100125"></a>Отправитель формирует бизнес-сообщение;<br>
2. <a id="p100126"></a>Отправитель упаковывает сформированное бизнес-сообщение в транспортное сообщение;

</div>

3. <a id="p100127"></a>Отправитель отправляет транспортное сообщение получателю;
4. <a id="p100128"></a>Получатель принимает транспортное сообщение;
5. <a id="p100129"></a>Получатель распаковывает транспортное сообщение и извлекает из него бизнес-сообщение;
6. <a id="p100130"></a>Если процедура распаковки закончилась неудачей, Получатель формирует сообщение об ошибке в соответствии с правилами [раздела 5.2.5](#p100473) Стандарта и отправляет его Отправителю;
7. <a id="p100131"></a>Получатель выполняет валидацию бизнес-сообщения, если необходимость валидации определена на бизнес-уровне;
8. <a id="p100132"></a>Получатель выполняет обработку бизнес-сообщения в случае успешной валидации (либо если валидация не проводилась);
9. <a id="p100133"></a>Если валидация закончилась неудачей, Получатель формирует сообщение об ошибке в соответствии с правилами [раздела 5.2.5](#p100473) Стандарта и отправляет его отправителю.
<a id="p100134"></a>Процедуры упаковки (распаковки) транспортного сообщения включают в себя операции шифрования (расшифрования), а также подписания (проверки) электронной подписи. Правила выполнения указанных процедур описаны в [разделах 5.2.3](#p100194) и [5.2.4](#p100334) настоящего Стандарта.
<a id="p100135"></a>Отправитель может отправлять транспортные сообщения более чем одному получателю в зависимости от характеристики "Метод рассылки сообщений", установленной в бизнес-слое.
<a id="p100136"></a>Процедуры доставки сообщений от отправителя к получателю могут выполняться с использованием одной или более Систем доставки сообщений, которые обеспечивают доставку сообщений в пределах своей зоны доставки, и могут, в том числе, выполнять процедуры рассылки транспортных сообщений.
<a id="p100137"></a>Системы доставки сообщений могут использовать для идентификации получателя (получателей) как реквизиты транспортного сообщения, так и реквизиты бизнес-сообщения (например, значения элементов заголовка бизнес-сообщения). Недопустимо изменение содержимого бизнес-сообщения при его обработке Системой доставки сообщений.
<a id="p100138"></a>На уровне транспортировки сообщений информационное взаимодействие осуществляется в соответствии со спецификацией WS-I Basic Profile Version 2.0.


#### <a id="p100139"></a>5.2. Структура и правила формирования транспортного конверта сообщения



##### <a id="p100140"></a>5.2.1. Общие правила формирования транспортного конверта сообщения


<a id="p100141"></a>При описании структуры и правил формирования транспортного сообщения используются спецификации, указанные в Таблице 5.1.


###### <a id="p100142"></a>Таблица 5.1. Используемые спецификации



| <a id="p100143"></a>Краткое наименование | <a id="p100144"></a>Полное наименование |
| --- | --- |
| <a id="p100145"></a>SOAP 1.2 | <a id="p100146"></a>SOAP Version 1.2 Part 1: Messaging Framework (Second Edition). W3C Recommendation 27 April 2007. http://www.w3.org/TR/soap12-part1 |
| <a id="p100147"></a>WS Security 1.1.1 | <a id="p100148"></a>Web Services Security: SOAP Message Security Version 1.1.1. OASIS Standard. 18 May 2012. http://docs.oasis-open.org/wss-m/wss/v1.1.1/os/wss-SOAPMessageSecurity-v1.1.1-os.html |
| <a id="p100149"></a>XML-binary Optimized Packaging | <a id="p100150"></a>XML-binary Optimized Packaging. W3C Recommendation 25 January 2005. http://www.w3.org/TR/2005/REC-xop10-20050125 |
| <a id="p100151"></a>XML Encryption 1.1 | <a id="p100152"></a>XML Encryption Syntax and Processing Version 1.1. W3C Recommendation 11 April 2013 https://www.w3.org/TR/xmlenc-core/ |
| <a id="p100153"></a>XML 1.0 | <a id="p100154"></a>Extensible Markup Language (XML) 1.0 (Fifth Edition). W3C Recommendation 26 November 2008. http://www.w3.org/TR/2008/REC-xml-20081126 |
| <a id="p100155"></a>RFC 2045 | <a id="p100156"></a>RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. http://tools.ietf.org/rfc/rfc2045.txt |
| <a id="p100157"></a>RFC 3986 | <a id="p100158"></a>RFC 3986. Uniform Resource Identifier (URI): Generic Syntax. http://tools.ietf.org/html/rfc3986 |
| <a id="p100159"></a>RFC 4122 | <a id="p100160"></a>RFC 4122. A Universally Unique IDentifier (UUID) URN Namespace. http://www.ietf.org/rfc/rfc4122.txt |
| <a id="p100161"></a>RFC 4648 | <a id="p100162"></a>RFC 4648: The Base16, Base32, and Base64 Data Encodings. http://tools.ietf.org/rfc/rfc4648.txt |


<a id="p100163"></a>При описании структуры электронных сообщений используются пространства имен, приведенные в Таблице 5.2.


###### <a id="p100164"></a>Таблица 5.2. Перечень пространств имен



| <a id="p100165"></a>Префикс | <a id="p100166"></a>Пространство имен |
| --- | --- |
| <a id="p100167"></a>ds | <a id="p100168"></a>http://www.w3.org/2000/09/xmldsig# |
| <a id="p100169"></a>soap | <a id="p100170"></a>http://www.w3.org/2003/05/soap-envelope |
| <a id="p100171"></a>xenc | <a id="p100172"></a>http://www.w3.org/2001/04/xmlenc# |
| <a id="p100173"></a>wsa | <a id="p100174"></a>http://schemas.xmlsoap.org/ws/2004/08/addressing |
| <a id="p100175"></a>wsse | <a id="p100176"></a>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd |
| <a id="p100177"></a>wsu | <a id="p100178"></a>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd |
| <a id="p100179"></a>head | <a id="p100180"></a>urn:iso:std:iso:20022:tech:xsd:head.001.001.02 |
| <a id="p100181"></a>msg | <a id="p100182"></a>urn:cbrf:iso:20022:business-message |
| <a id="p100183"></a>vr | <a id="p100184"></a>urn:cbrf:iso:20022:validation-results |


<div align="center">

<a id="p100185"></a>**Транспортный конверт сообщения имеет следующую структуру:**<br>
<a id="p100186"></a>    **<soap:Envelope**<br>
        **xmlns:soap="http://www.w3.org/2003/05/soap-envelope"**

</div>

        xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
wssecurity-utility-1.0.xsd">
      <soap:Header>

<div align="center">

        **<!-- Заголовок транспортного конверта сообщения -->**<br>
      **</soap:Header>**<br>
      **<soap:Body wsu:Id="BusinessMessage">**<br>
        **<!-- Бизнес-сообщение -->**<br>
      **</soap:Body>**<br>
    **</soap:Envelope>**

</div>

<a id="p100187"></a>При формировании электронных сообщений используется кодировка UTF-8.


##### <a id="p100188"></a>5.2.2. Двоичные вложения


<div align="center">

<a id="p100189"></a>Бизнес-сообщение может содержать в своей структуре двоичные вложения. При передаче бизнес-сообщений в составе транспортного сообщения двоичные вложения могут передаваться в теле сообщения в стандарте кодирования Base64 (согласно RFC 4648) или оформлены в виде отдельных MIME-частей.<br>
<a id="p100190"></a>Оформление двоичных вложений в виде отдельных MIME-частей выполняется для оптимизации процессов передачи и уменьшения объемов сообщений с двоичными вложениями.<br>
<a id="p100191"></a>При передаче двоичных вложений в виде отдельных MIME-частей в теле сообщения создается ссылка на MIME-часть согласно спецификации XML-binary Optimized Packaging.<br>
<a id="p100192"></a>MIME-части сообщения используются исключительно для оптимизации процессов передачи сообщения. Обработка сообщения должна осуществляться согласно модели обработки XOP спецификации XML-binary Optimized Packaging.<br>
<a id="p100193"></a>Рекомендуется оформлять двоичные вложения в виде MIME-частей в том случае, если размер двоичного вложения превышает 100 Кб.

</div>



##### <a id="p100194"></a>5.2.3. Подписание сообщений и проверка электронной подписи сообщений


<a id="p100195"></a>Подписание и проверка электронной подписи сообщений осуществляется в соответствии со спецификацией WS Security 1.1.1. Рекомендации по созданию и проверке электронной подписи приведены в [Приложении 1](#p100620).
<a id="p100196"></a>Структура элемента wsse:Security, содержащего электронную подпись, представлена в [Таблицах 5.3](#p100197) - [5.4](#p100233).


###### <a id="p100197"></a>Таблица 5.3. Структура элемента wsse:Security, содержащего электронную подпись



| <a id="p100198"></a>N | <a id="p100199"></a>Элемент | <a id="p100200"></a>Описание | <a id="p100201"></a>Область значений | <a id="p100202"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100203"></a>а) | <a id="p100204"></a>Признак обязательности интерпретации (@soap:mustUnderstand) | <a id="p100205"></a>признак того, что получатель сообщения должен обработать элемент согласно спецификации. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100206"></a>логическое значение | <a id="p100207"></a>1 |
| <a id="p100208"></a>1 | <a id="p100209"></a>Сертификат ключа проверки электронной подписи (wsse:BinarySecurityToken) | <a id="p100210"></a>сертификат ключа проверки электронной подписи, с помощью которой подписано сообщение | <a id="p100211"></a>строка символов, закодированная с помощью Base64 | <a id="p100212"></a>1 |
| <a id="p100213"></a>а) | <a id="p100214"></a>Идентификатор (@wsu:Id) | <a id="p100215"></a>уникальный идентификатор элемента в сообщении | <a id="p100216"></a>идентификатор элемента документа | <a id="p100217"></a>1 |
| <a id="p100218"></a>б) | <a id="p100219"></a>Вид (@ValueType) | <a id="p100220"></a>стандарт сертификата ключа проверки электронной подписи. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100221"></a>унифицированный идентификатор ресурса | <a id="p100222"></a>1 |
| <a id="p100223"></a>в) | <a id="p100224"></a>Кодировка (@EncodingType) | <a id="p100225"></a>схема кодирования сертификата ключа проверки электронной подписи. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100226"></a>унифицированный идентификатор ресурса | <a id="p100227"></a>1 |
| <a id="p100228"></a>2 | <a id="p100229"></a>Электронная подпись (ds:Signature) | <a id="p100230"></a>электронная подпись сообщения согласно [таблице 5.4](#p100233) | <a id="p100231"></a>структура сведений описана в [Таблице 5.4](#p100233) | <a id="p100232"></a>1 |



###### <a id="p100233"></a>Таблица 5.4. Структура электронной подписи (ds:Signature)



| <a id="p100234"></a>N | <a id="p100235"></a>Элемент | <a id="p100236"></a>Описание | <a id="p100237"></a>Область значений | <a id="p100238"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100239"></a>1 | <a id="p100240"></a>Подписываемые сведения (ds:SignedInfo) | <a id="p100241"></a>набор подписываемых элементов, содержащих хэш бизнес-сообщения и набор инструкций по обработке хэша и подписи | <a id="p100242"></a>определяется областями значений вложенных элементов | <a id="p100243"></a>1 |
| <a id="p100244"></a>1.1 | <a id="p100245"></a>Метод каноникализации (ds:CanonicalizationMethod) | <a id="p100246"></a>инструкции по каноникализации | <a id="p100247"></a>отсутствует | <a id="p100248"></a>1 |
| <a id="p100249"></a>а) | <a id="p100250"></a>Алгоритм (@Algorithm) | <a id="p100251"></a>алгоритм каноникализации. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100252"></a>унифицированный идентификатор ресурса | <a id="p100253"></a>1 |
| <a id="p100254"></a>1.2 | <a id="p100255"></a>Метод подписывания (ds:SignatureMethod) | <a id="p100256"></a>элемент, содержащий алгоритм формирования и проверки подписи | <a id="p100257"></a>отсутствует | <a id="p100258"></a>1 |
| <a id="p100259"></a>а) | <a id="p100260"></a>Алгоритм (@Algorithm) | <a id="p100261"></a>идентификатор алгоритма формирования и проверки подписи. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100262"></a>унифицированный идентификатор ресурса | <a id="p100263"></a>1 |
| <a id="p100264"></a>1.3 | <a id="p100265"></a>Ссылка (ds:Reference) | <a id="p100266"></a>ссылка на данные, для которых формируется хэш | <a id="p100267"></a>определяется областями значений вложенных элементов | <a id="p100268"></a>1 |
| <a id="p100269"></a>а) | <a id="p100270"></a>Идентификатор (@URI) | <a id="p100271"></a>идентификатор хэшируемой области. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100272"></a>идентификатор элемента документа | <a id="p100273"></a>1 |
| <a id="p100274"></a>1.3.1 | <a id="p100275"></a>Преобразования (ds:Transforms) | <a id="p100276"></a>инструкции по преобразованиям хэшируемой области | <a id="p100277"></a>определяется областями значений вложенных элементов | <a id="p100278"></a>1 |
| <a id="p100279"></a>1.3.1.1 | <a id="p100280"></a>Преобразование (ds:Transform) | <a id="p100281"></a>элемент, содержащий единичную инструкцию по преобразованию хэшируемой области | <a id="p100282"></a>определяется областями значений вложенных элементов | <a id="p100283"></a>1 |
| <a id="p100284"></a>а) | <a id="p100285"></a>Алгоритм (@Algorithm) | <a id="p100286"></a>идентификатор алгоритма преобразования. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100287"></a>унифицированный идентификатор ресурса | <a id="p100288"></a>1 |
| <a id="p100289"></a>1.3.1.2 | <a id="p100290"></a>Метод хэширования (ds:DigestMethod) | <a id="p100291"></a>сведения о методе хэширования | <a id="p100292"></a>отсутствует | <a id="p100293"></a>1 |
| <a id="p100294"></a>а) | <a id="p100295"></a>Алгоритм (@Algorithm) | <a id="p100296"></a>идентификатор алгоритма хэширования. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100297"></a>унифицированный идентификатор ресурса | <a id="p100298"></a>1 |
| <a id="p100299"></a>1.3.1.3 | <a id="p100300"></a>Хеш (ds:DigestValue) | <a id="p100301"></a>значение хэша | <a id="p100302"></a>строка символов, закодированная с помощью Base64 | <a id="p100303"></a>1 |
| <a id="p100304"></a>2 | <a id="p100305"></a>Значение подписи (ds:SignatureValue) | <a id="p100306"></a>значение подписи | <a id="p100307"></a>определяется областями значений вложенных элементов | <a id="p100308"></a>1 |
| <a id="p100309"></a>3 | <a id="p100310"></a>Сведения о ключе (ds:KeyInfo) | <a id="p100311"></a>сведения об открытом ключе, используемом для проверки подписи | <a id="p100312"></a>определяется областями значений вложенных элементов | <a id="p100313"></a>1 |
| <a id="p100314"></a>3.1 | <a id="p100315"></a>Ссылка на токен (wsse:SecurityTokenReference) | <a id="p100316"></a>сведения о местонахождении ключа | <a id="p100317"></a>определяется областями значений вложенных элементов | <a id="p100318"></a>1 |
| <a id="p100319"></a>3.1.1 | <a id="p100320"></a>Ссылка (wsse:Reference) | <a id="p100321"></a>элемент, содержащий идентификатор местонахождения ключа | <a id="p100322"></a>отсутствует | <a id="p100323"></a>1 |
| <a id="p100324"></a>а) | <a id="p100325"></a>Идентификатор (@URI) | <a id="p100326"></a>идентификатор местонахождения ключа. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100327"></a>идентификатор элемента документа | <a id="p100328"></a>1 |
| <a id="p100329"></a>б) | <a id="p100330"></a>Вид (@ValueType) | <a id="p100331"></a>стандарт сертификата ключа. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100332"></a>унифицированный идентификатор ресурса | <a id="p100333"></a>1 |



##### <a id="p100334"></a>5.2.4. Шифрование и расшифрование сообщений


<a id="p100335"></a>Шифрование и расшифрование сообщений осуществляется в соответствии со спецификацией WS Encryption 1.1. Шифрование сообщений выполняется после их подписания.
<a id="p100336"></a>Шифрование сообщения осуществляется следующим образом.
1. <a id="p100337"></a>В заголовок транспортного конверта сообщения добавляется элемент wsse:Security. Данный элемент должен предшествовать элементу wsse:Security, содержащему электронную подпись, если таковой имеется.
2. <a id="p100338"></a>Сертификат открытого ключа, с помощью которого шифруется сообщение, включается в элемент wsse:Security/wsse:BinarySecurityToken. Сертификат соответствует стандарту X.509 (указывается в атрибуте ValueType) и кодируется с использованием стандарта кодирования Base64 (указывается в атрибуте EncodingType).
3. <a id="p100339"></a>В элементе wsse:Security/xenc:EncryptedKey/ds:KeyInfo указывается ссылка на сертификат открытого ключа.
4. <a id="p100340"></a>Бизнес-сообщение, содержащееся в элементе soap:Body шифруется в соответствии со спецификацией XML Encryption 1.1. Зашифрованное сообщение помещается в элемент xenc:EncryptedData, который заменяет исходное бизнес-сообщение.
5. <a id="p100341"></a>В элементе wsse:Security/xenc:EncryptedKey/xenc:ReferenceList указывается ссылка на зашифрованное сообщение.
<a id="p100342"></a>Расшифрование сообщения осуществляется следующим образом.
1. <a id="p100343"></a>Если в заголовке транспортного конверта сообщения содержится элемент wsse:Security/xenc:EncryptedKey, то сообщение является зашифрованным и требуется его расшифрование.
2. <a id="p100344"></a>Для сертификата открытого ключа, ссылка на который указана в элементе wsse:Security/xenc:EncryptedKey/ds:KeyInfo, определяется закрытый ключ для расшифрования сообщения.
3. <a id="p100345"></a>Данные, ссылка на которые указана в элементе wsse:Security/xenc:EncryptedKey/xenc:ReferenceList, дешифруются с помощью закрытого ключа. Результат помещается в сообщение вместо зашифрованных данных.
4. <a id="p100346"></a>Из сообщения удаляется элемент wsse:Security, содержащий сведения о шифровании сообщения.
5. <a id="p100347"></a>В случае невозможности расшифровать сообщение формируется сообщение об ошибке в соответствии с требованиями [раздела 5.2.5](#p100473) Стандарта.
<a id="p100348"></a>Структура элемента wsse:Security, содержащего сведения о шифровании сообщения, описана в [Таблицах 5.5](#p100349) - [5.6](#p100385).


###### <a id="p100349"></a>Таблица 5.5. Структура элемента wsse:Security, содержащего сведения о шифровании сообщения



| <a id="p100350"></a>N | <a id="p100351"></a>Элемент | <a id="p100352"></a>Описание | <a id="p100353"></a>Область значений | <a id="p100354"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100355"></a>а) | <a id="p100356"></a>Признак обязательности интерпретации (@soap:mustUnderstand) | <a id="p100357"></a>признак того, что получатель сообщения должен обработать элемент согласно спецификации. Атрибут имеет фиксированное значение "true" | <a id="p100358"></a>логическое значение | <a id="p100359"></a>1 |
| <a id="p100360"></a>1 | <a id="p100361"></a>Сертификат открытого ключа (wsse:BinarySecurityToken) | <a id="p100362"></a>сертификат открытого ключа, используемого для шифрования сообщения | <a id="p100363"></a>строка символов, закодированная с помощью Base64 | <a id="p100364"></a>1 |
| <a id="p100365"></a>а) | <a id="p100366"></a>Идентификатор (@wsu:Id) | <a id="p100367"></a>уникальный идентификатор элемента в сообщении | <a id="p100368"></a>идентификатор элемента документа | <a id="p100369"></a>1 |
| <a id="p100370"></a>б) | <a id="p100371"></a>Вид (@ValueType) | <a id="p100372"></a>стандарт сертификата открытого ключа. Атрибут имеет фиксированное значение, аналогичное описанному в [Приложении 1](#p100620) | <a id="p100373"></a>унифицированный идентификатор ресурса | <a id="p100374"></a>1 |
| <a id="p100375"></a>в) | <a id="p100376"></a>Кодировка (@EncodingType) | <a id="p100377"></a>схема кодирования сертификата открытого ключа. Атрибут имеет фиксированное значение, аналогичное описанному в [Приложении 1](#p100620) | <a id="p100378"></a>унифицированный идентификатор ресурса | <a id="p100379"></a>1 |
| <a id="p100380"></a>2 | <a id="p100381"></a>Сведения о зашифрованных данных (xenc:EncryptedKey) | <a id="p100382"></a>сведения о зашифрованных данных | <a id="p100383"></a>структура сведений описана в [Таблице 5.6](#p100385) | <a id="p100384"></a>1 |



###### <a id="p100385"></a>Таблица 5.6. Структура сведений о зашифрованных данных (xenc:EncryptedKey)



| <a id="p100386"></a>N | <a id="p100387"></a>Элемент | <a id="p100388"></a>Описание | <a id="p100389"></a>Область значений | <a id="p100390"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100391"></a>1 | <a id="p100392"></a>Метод шифрования (xenc:EncryptionMethod) | <a id="p100393"></a>сведения о методе шифрования | <a id="p100394"></a>определяется областями значений вложенных элементов | <a id="p100395"></a>1 |
| <a id="p100396"></a>а) | <a id="p100397"></a>Алгоритм (@Algorithm) | <a id="p100398"></a>идентификатор алгоритма шифрования | <a id="p100399"></a>унифицированный идентификатор ресурса | <a id="p100400"></a>1 |
| <a id="p100401"></a>2 | <a id="p100402"></a>Сведения о ключе (ds:KeyInfo) | <a id="p100403"></a>сведения об открытом ключе, используемом для шифрования | <a id="p100404"></a>определяется областями значений вложенных элементов | <a id="p100405"></a>1 |
| <a id="p100406"></a>2.1 | <a id="p100407"></a>Ссылка на токен (wsse:SecurityTokenReference) | <a id="p100408"></a>сведения о местонахождении ключа | <a id="p100409"></a>определяется областями значений вложенных элементов | <a id="p100410"></a>1 |
| <a id="p100411"></a>2.1.1 | <a id="p100412"></a>Ссылка (wsse:Reference) | <a id="p100413"></a>элемент, содержащий идентификатор местонахождения ключа | <a id="p100414"></a>отсутствует | <a id="p100415"></a>1 |
| <a id="p100416"></a>а) | <a id="p100417"></a>Идентификатор (@URI) | <a id="p100418"></a>идентификатор местонахождения ключа. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100419"></a>идентификатор элемента документа | <a id="p100420"></a>1 |
| <a id="p100421"></a>б) | <a id="p100422"></a>Вид (@ValueType) | <a id="p100423"></a>стандарт сертификата ключа. Атрибут имеет фиксированное значение в соответствии с описанием [Приложения 1](#p100620) | <a id="p100424"></a>унифицированный идентификатор ресурса | <a id="p100425"></a>1 |
| <a id="p100426"></a>3 | <a id="p100427"></a>Список ссылок (xenc:ReferenceList) | <a id="p100428"></a>список ссылок на зашифрованные данные | <a id="p100429"></a>определяется областями значений вложенных элементов | <a id="p100430"></a>1 |
| <a id="p100431"></a>3.1 | <a id="p100432"></a>Ссылка на данные (xenc:DataReference) | <a id="p100433"></a>ссылка на зашифрованные данные | <a id="p100434"></a>отсутствует | <a id="p100435"></a>1 |
| <a id="p100436"></a>а) | <a id="p100437"></a>Идентификатор (@URI) | <a id="p100438"></a>идентификатор зашифрованных данных | <a id="p100439"></a>идентификатор элемента документа | <a id="p100440"></a>1 |


<div align="center">

<a id="p100441"></a>Структура зашифрованных данных представлена в Таблице 5.7.

</div>



###### <a id="p100442"></a>Таблица 5.7. Структура зашифрованных данных (xenc:EncryptedData)



| <a id="p100443"></a>N | <a id="p100444"></a>Элемент | <a id="p100445"></a>Описание | <a id="p100446"></a>Область значений | <a id="p100447"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100448"></a>а) | <a id="p100449"></a>Идентификатор (@Id) | <a id="p100450"></a>идентификатор зашифрованных данных | <a id="p100451"></a>идентификатор элемента документа | <a id="p100452"></a>1 |
| <a id="p100453"></a>1 | <a id="p100454"></a>Метод шифрования (xenc:EncryptionMethod) | <a id="p100455"></a>сведения о методе шифрования | <a id="p100456"></a>отсутствует | <a id="p100457"></a>1 |
| <a id="p100458"></a>а) | <a id="p100459"></a>Алгоритм (@Algorithm) | <a id="p100460"></a>идентификатор алгоритма шифрования | <a id="p100461"></a>унифицированный идентификатор ресурса | <a id="p100462"></a>1 |
| <a id="p100463"></a>2 | <a id="p100464"></a>Зашифрованные данные (xenc:CipherData) | <a id="p100465"></a>элемент, содержащий зашифрованные данные | <a id="p100466"></a>определяется областями значений вложенных элементов | <a id="p100467"></a>1 |
| <a id="p100468"></a>2.1 | <a id="p100469"></a>Зашифрованное значение (xenc:CipherValue) | <a id="p100470"></a>зашифрованные данные | <a id="p100471"></a>строка символов, закодированная с помощью Base64 | <a id="p100472"></a>1 |



##### <a id="p100473"></a>5.2.5. Формирование сообщений об ошибках


<a id="p100474"></a>Сообщения об ошибках формируются в соответствии со спецификацией SOAP 1.2.
<a id="p100475"></a>Сведения об ошибке передаются в теле транспортного конверта и должны быть единственным элементом.


###### <a id="p100476"></a>Таблица 5.8. Структура сведений об ошибке (soap:Fault)



| <a id="p100477"></a>N | <a id="p100478"></a>Элемент | <a id="p100479"></a>Описание | <a id="p100480"></a>Тип данных | <a id="p100481"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100482"></a>1 | <a id="p100483"></a>Код ошибки (soap:Code) | <a id="p100484"></a>формализованные сведения о коде ошибки | <a id="p100485"></a>определяется областями значений вложенных элементов | <a id="p100486"></a>1 |
| <a id="p100487"></a>1.1 | <a id="p100488"></a>Значение (soap:Value) | <a id="p100489"></a>значение класса ошибки | <a id="p100490"></a>перечисление soap: faultCodeEnum в соответствии со спецификацией SOAP 1.2 | <a id="p100491"></a>1 |
| <a id="p100492"></a>1.2 | <a id="p100493"></a>Код ошибки (soap:Subcode) | <a id="p100494"></a>сведения о коде ошибки в соответствии с ее классом | <a id="p100495"></a>определяется областями значений вложенных элементов | <a id="p100496"></a>1 |
| <a id="p100497"></a>1.2.1 | <a id="p100498"></a>Значение (soap:Value) | <a id="p100499"></a>значение кода ошибки. Перечень типовых кодов ошибок представлен в [таблице 5.9](#p100523) | <a id="p100500"></a>строка символов | <a id="p100501"></a>1 |
| <a id="p100502"></a>2 | <a id="p100503"></a>Причина (soap:Reason) | <a id="p100504"></a>сведения об ошибке | <a id="p100505"></a>определяется областями значений вложенных элементов | <a id="p100506"></a>1..* |
| <a id="p100507"></a>2.1 | <a id="p100508"></a>Текст (soap:Text) | <a id="p100509"></a>текст, описывающий ошибку | <a id="p100510"></a>строка символов | <a id="p100511"></a>1 |
| <a id="p100512"></a>а) | <a id="p100513"></a>Язык (@xml:lang) | <a id="p100514"></a>идентификатор языка, на котором приведен текст, описывающий ошибку |  | <a id="p100515"></a>1 |
| <a id="p100516"></a>3 | <a id="p100517"></a>Сведения об ошибке (soap:Detail) | <a id="p100518"></a>дополнительные детализированные сведения об ошибке | <a id="p100519"></a>определяется областями значений вложенных элементов | <a id="p100520"></a>0..1 |


<div align="center">

<a id="p100521"></a>Элемент soap:Code/soap:Value заполняется согласно требованиям спецификации SOAP 1.2.<br>
<a id="p100522"></a>Перечень типовых кодов ошибок представлен в Таблице 5.9.

</div>



###### <a id="p100523"></a>Таблица 5.9. Перечень типовых ошибок



<table>
<colgroup><col width="17%"><col width="38%"><col width="45%"></colgroup>
<tr><td><a id="p100524"></a>Класс ошибки</td><td><a id="p100525"></a>Код ошибки</td><td><a id="p100526"></a>Текст ошибки</td></tr>
<tr><td><a id="p100527"></a>soap:Sender</td><td><a id="p100528"></a>wsse:UnsupportedSecurityToken</td><td rowspan="8"><a id="p100529"></a>рекомендуется использовать типовые коды ошибок, определенные стандартом WS-Security</td></tr>
<tr><td><a id="p100530"></a>soap:Sender</td><td><a id="p100531"></a>wsse:UnsupportedAlgorithm</td></tr>
<tr><td><a id="p100532"></a>soap:Sender</td><td><a id="p100533"></a>wsse:InvalidSecurity</td></tr>
<tr><td><a id="p100534"></a>soap:Sender</td><td><a id="p100535"></a>wsse:InvalidSecurityToken</td></tr>
<tr><td><a id="p100536"></a>soap:Sender</td><td><a id="p100537"></a>wsse:FailedAuthentication</td></tr>
<tr><td><a id="p100538"></a>soap:Sender</td><td><a id="p100539"></a>wsse:FailedCheck</td></tr>
<tr><td><a id="p100540"></a>soap:Sender</td><td><a id="p100541"></a>wsse:SecurityTokenUnavailable</td></tr>
<tr><td><a id="p100542"></a>soap:Sender</td><td><a id="p100543"></a>wsse:MessageExpired</td></tr>
<tr><td><a id="p100544"></a>soap:Sender</td><td><a id="p100545"></a>vr:InvalidSyntax</td><td><a id="p100546"></a>Синтаксис сообщения некорректен</td></tr>
<tr><td><a id="p100547"></a>soap:Sender</td><td><a id="p100548"></a>vr:InvalidStructure</td><td><a id="p100549"></a>Структура сообщения не соответствует XML схеме</td></tr>
<tr><td><a id="p100550"></a>soap:Sender</td><td><a id="p100551"></a>vr:MessageRulesViolated</td><td><a id="p100552"></a>Сообщение не соответствует структурным правилам</td></tr>
<tr><td><a id="p100553"></a>soap:Sender</td><td><a id="p100554"></a>vr:BusinessRulesViolated</td><td><a id="p100555"></a>Сообщение не соответствует бизнес-правилам</td></tr>
<tr><td><a id="p100556"></a>soap:Sender</td><td><a id="p100557"></a>vr:MarketPracticeViolated</td><td><a id="p100558"></a>Сообщение не соответствует рыночной практике</td></tr>
<tr><td><a id="p100559"></a>soap:Sender</td><td><a id="p100560"></a>vr:BusinessProcessViolated</td><td><a id="p100561"></a>Сообщение не соответствует бизнес-процессу</td></tr>
</table>


<div align="center">

<a id="p100562"></a>В случае несоответствия сообщения правилам формирования (vr:MessageRulesViolated, vr:BusinessRulesViolated) в элемент soap:Fault/soap:Detail включаются элементы vr:Result, содержащие сведения о результатах валидации.

</div>

<a id="p100563"></a>Для каждого провалидированного элемента и каждого правила формируется отдельный элемент vr:Result. Сведения об ошибках валидации (error) включаются в сообщение в обязательном порядке. В отладочных целях в сообщение об ошибке могут быть включены сведения об иных результатах валидации (valid, irrelevant, absent, unsupported).


###### <a id="p100564"></a>Таблица 5.10. Структура сведений о результатах валидации



| <a id="p100565"></a>N | <a id="p100566"></a>Элемент | <a id="p100567"></a>Описание | <a id="p100568"></a>Тип данных | <a id="p100569"></a>Мн. |
| --- | --- | --- | --- | --- |
| <a id="p100570"></a>1 | <a id="p100571"></a>Результат валидации (vr:Result) | <a id="p100572"></a>результат валидации | <a id="p100573"></a>определяется областями значений вложенных элементов | <a id="p100574"></a>1..* |
| <a id="p100575"></a>1.1 | <a id="p100576"></a>Вид результата валидации (vr:Kind) | <a id="p100577"></a>кодовое обозначение вида результата валидации | <a id="p100578"></a>одно из следующих значений:<br>- valid - проверка пройдена успешно,<br>- error - ошибка,<br>- irrelevant - элементы<br>не проверялись, т.к. для них не выполнено предусловие,<br>- absent - элементы<br>для валидации отсутствуют в сообщении,<br>- unsupported - правило не поддерживается | <a id="p100579"></a>1 |
| <a id="p100580"></a>1.2 | <a id="p100581"></a>Описание результата валидации (vr:Description) | <a id="p100582"></a>описание результата валидации | <a id="p100583"></a>строка символов | <a id="p100584"></a>1 |
| <a id="p100585"></a>1.3 | <a id="p100586"></a>Код правила (vr:RuleCode) | <a id="p100587"></a>код правила | <a id="p100588"></a>строка символов | <a id="p100589"></a>1 |
| <a id="p100590"></a>1.4 | <a id="p100591"></a>Описание правила (vr:RuleDescription) | <a id="p100592"></a>описание правила | <a id="p100593"></a>строка символов | <a id="p100594"></a>1 |
| <a id="p100595"></a>1.5 | <a id="p100596"></a>Спецификация правила (vr:RuleOcl) | <a id="p100597"></a>спецификация правила на формальном объектном языке ограничений (OCL) | <a id="p100598"></a>строка символов | <a id="p100599"></a>0..1 |
| <a id="p100600"></a>1.6 | <a id="p100601"></a>Элемент (vr:Element) | <a id="p100602"></a>провалидированный элемент сообщения | <a id="p100603"></a>определяется областями значений вложенных элементов | <a id="p100604"></a>1..* |
| <a id="p100605"></a>1.6.1 | <a id="p100606"></a>Путь (vr:Path) | <a id="p100607"></a>путь к элементу сообщения, представленный в виде XPath выражения | <a id="p100608"></a>строка символов | <a id="p100609"></a>1 |
| <a id="p100610"></a>1.6.2 | <a id="p100611"></a>Описание (vr:Description) | <a id="p100612"></a>описание пути к элементу на русском языке | <a id="p100613"></a>строка символов | <a id="p100614"></a>0..1 |



### 6. <a id="p100615"></a>Прикладной слой


<a id="p100616"></a>В качестве протокола передачи данных прикладного слоя Участниками информационного взаимодействия выбирается один из протоколов, обеспечивающий требуемые характеристики доставки сообщений, определяемые в бизнес-слое.
<a id="p100617"></a>Рекомендуется использовать следующие протоколы:
- <a id="p100618"></a>HTTPS: Hypertext Transfer Protocol - HTTP/1.1 (RFC 2616) совместно со спецификацией HTTP Over TLS (RFC 2818);
- <a id="p100619"></a>AMQP: ISO/IEC 19464:2014 Information technology - Advanced Message Queuing Protocol (AMQP) v1.0 specification.






## <a id="p100620"></a>Приложение 1


<div align="center">

<a id="p100621"></a>Подписание сведений, передающихся в транспортном конверте сообщения с помощью электронной подписи, осуществляется следующим образом (см. [рисунок А.1](#p100623)). Для краткости на схеме опущены объявления пространств имен, а значения некоторых атрибутов приведены с сокращениями.

</div>


<a id="p100622"></a> ![Приложение 1](https://i.bukva.ai/qWLg5EDjF/img_0.png) 

<a id="p100623"></a>Рисунок А.1. Схема подписания сообщения

<a id="p100624"></a>На 1-ом шаге формируется транспортный конверт сообщения (1-й шаг не имеет непосредственного отношения к формированию подписи, однако приводится в настоящем алгоритме как подготовительное мероприятие для создания XML-структур, в которые будут погружены подпись и подписываемые сведения).
<a id="p100625"></a>На 2-ом шаге в элемент soap:Body транспортного конверта помещается бизнес-сообщение. В атрибуте @wsu:ID элемента soap:Body задается идентификатор, который должен быть уникальным в рамках конверта и его содержимого; для идентификации тела сообщения рекомендуется использовать значение "BusinessMessage". Формируемая электронная подпись будет ссылаться по данному идентификатору на подписываемые данные.
<a id="p100626"></a>На 3-ем шаге в заголовке транспортного конверта сообщения формируется блок сведений wsse:Security. У элемента задается атрибут @soap:mustUnderstand со значением "true". Это обязывает получателя сообщения обрабатывать данный блок сведений. В случае если он не сможет обеспечить обработку электронной подписи, то он должен уведомить отправителя соответствующим сообщением об ошибке.
<a id="p100627"></a>На 4-ом шаге в блок сведений wsse:Security включается элемент wsse:BinarySecurityToken, содержащий сертификат ключа проверки электронной подписи. В атрибуте @wsu:Id указывается идентификатор сертификата, который должен быть уникальным в рамках конверта и его содержимого; для идентификации сертификата рекомендуется использовать значение "SigningCertificate". Формируемая электронная подпись будет ссылаться на сертификат по этому идентификатору. Сертификат должен соответствовать стандарту X.509 и кодироваться с использованием стандарта кодирования Base64.
<a id="p100628"></a>Стандарт сертификата указывается в атрибуте @ValueType со значением "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3". Схема кодирования сертификата указывается в атрибуте @EncodingType со значением "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary".
<a id="p100629"></a>На 5-ом шаге формируется хеш бизнес-сообщения. Для этого в блоке сведений wsse:Security формируется элемент ds:Signature/ds:SignedInfo/ds:Reference. В атрибуте @URI этого элемента указывается ссылка на подписываемое бизнес-сообщение (если на 2-м шаге задан рекомендуемый идентификатор, то в атрибуте @URI должна быть указана ссылка "#BusinessMessage"). Если двоичные вложения передаются в виде MIME, то далее они должны быть перенесены в бизнес-сообщение согласно алгоритму, описанному в спецификации XML-binary Optimized Packaging. После этого бизнес-сообщение приводится к каноническому виду с помощью алгоритма Exclusive XML Canonicalization Version 1.0. Для полученного фрагмента XML документа в соответствии с ГОСТ Р 34.11-2012 вычисляется 256-битный хеш, который записывается в элемент ds:DigestValue.
<a id="p100630"></a>Алгоритм каноникализации указывается в атрибуте ds:Transforms/ds:Transform/@Algorithm со значением "http://www.w3.org/2001/10/xml-exc-c14n#". Алгоритм вычисления хеша указывается в атрибуте ds:DigestMethod/@Algorithm со значением "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256".
<a id="p100631"></a>На 6-ом шаге для хеша бизнес-сообщения формируется электронная подпись. Для этого в элемент ds:Signature/ds:SignedInfo добавляются сведения об алгоритме его каноникализации (Exclusive XML Canonicalization Version 1.0) и алгоритме вычисления электронной подписи (ГОСТ 34.10-2012, 256 бит). Затем с помощью указанных алгоритмов элемент ds:Signature/ds:SignedInfo приводится к каноническому виду и для полученного фрагмента XML документа вычисляется электронная подпись. Полученное значение записывается в элемент ds:SignatureValue.
<a id="p100632"></a>Алгоритм каноникализации указывается в атрибуте 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".
<a id="p100633"></a>На 7-ом шаге в сведениях об электронной подписи в элементе ds:KeyInfo формируется ссылка на сертификат ключа проверки электронной подписи. Для этого используется элемент wsse:SecurityTokenReference. Ссылка на сертификат указывается в атрибуте wsse:Reference/@URI (если на 4-м шаге задан рекомендуемый идентификатор, то в атрибуте @URI должна быть указана ссылка "#SigningCertificate"). Стандарт сертификата указывается в атрибуте wsse:Reference/@ValueType со значением "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3".
<a id="p100634"></a>Проверка электронной подписи сообщения осуществляется следующим образом (см. [рисунок А.2](#p100643)). Для краткости на схеме опущены объявления пространств имен, а значения некоторых атрибутов приведены с сокращениями.
<a id="p100635"></a>На 1-ом шаге в заголовке транспортного конверта сообщения проверяется наличие элемента wsse:Security/ds:Signature. Если элемент присутствует, то сообщение является подписанным и требуется проверка наложенной электронной подписи.
<a id="p100636"></a>На 2-ом шаге проверяется сертификат открытого ключа электронной подписи в элементе wsse:BinarySecurityToken. Сертификат должен быть корректным, а в элементе ds:KeyInfo/wsse:SecurityTokenReference должна присутствовать ссылка на него.
<a id="p100637"></a>На 3-ем шаге проверяется действительность электронной подписи. Для этого элемент ds:SignedInfo приводится к каноническому виду с помощью алгоритма Exclusive XML Canonicalization Version 1.0. Для полученного фрагмента XML документа вычисляется 256-битное значение электронной подписи в соответствии с ГОСТ 34.10-2012. Если результат совпадает со значением элемента ds:SignatureValue, то подпись является действительной.
<a id="p100638"></a>Проверяется значение атрибута ds:SignedInfo/ds:CanonicalizationMethod/@Algorithm, оно должно соответствовать используемому методу каноникализации и иметь значение "http://www.w3.org/2001/10/xml-exc-c14n#". Проверяется значение атрибута ds:SignedInfo/ds:SignatureMethod/@Algorithm, оно должно соответствовать используемому алгоритму вычисления электронной подписи и иметь значение "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256".
<a id="p100639"></a>На 4-ом шаге проверяется целостность бизнес-сообщения. Если двоичные вложения передаются в виде MIME, то перед проверкой целостности они должны быть перенесены в бизнес-сообщение согласно алгоритму, описанному в спецификации XML-binary Optimized Packaging. Затем бизнес-сообщение приводится к каноническому виду с помощью алгоритма Exclusive XML Canonicalization Version 1.0. Для полученного фрагмента XML документа в соответствии с ГОСТ Р 34.11-2012 вычисляется 256-битный хеш. Если полученное значение совпадает со значением элемента ds:SignedInfo/ds:Reference/ds:DigestValue, то бизнес-сообщение целостно.
<a id="p100640"></a>Проверяется значение атрибута ds:SignedInfo/ds:Reference/ds:Transforms/ds:Transform/@Algorithm, оно должно соответствовать используемому методу каноникализации и иметь значение "http://www.w3.org/2001/10/xml-exc-c14n#". Проверяется значение атрибута ds:SignedInfo/ds:Reference/ds:DigestMethod/@Algorithm, оно должно соответствовать используемому алгоритму вычисления хеша и иметь значение "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256".
<a id="p100641"></a>В случае неудачной проверки электронной подписи формируется сообщение об ошибке в соответствии с требованиями [раздела 5.2.5](#p100473) Стандарта.

<a id="p100642"></a> ![Приложение 1](https://i.bukva.ai/qWLg5EDjF/img_1.png) 

<div align="center">

<a id="p100643"></a>Рисунок А.2. Схема проверки электронной подписи

</div>






<div align="right">

<a id="p100644"></a>Приложение 2

</div>


<div align="center">

<a id="p100645"></a>**XML СХЕМА БИЗНЕС-СООБЩЕНИЯ**

</div>


<a id="p100646"></a><?xml version="1.0" encoding="UTF-8"?>
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:cbrf:iso:20022:msg"
    targetNamespace="urn:cbrf:iso:20022:msg"
    xmlns:bah="urn:iso:std:iso:20022:tech:xsd:head.001.001.02"
    elementFormDefault="qualified">
  <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:head.001.001.02"/>
  <xs:element name="BusinessMessage" type="BusinessMessageType" />
  <xs:complexType name="BusinessMessageType">
    <xs:sequence>
      <xs:element ref="bah:AppHdr"/>
      <xs:any processContents="strict" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>





<div align="right">

<a id="p100647"></a>Приложение 3

</div>


<div align="center">

<a id="p100648"></a>**ПРИМЕР СООБЩЕНИЯ С ЭЛЕКТРОННОЙ ПОДПИСЬЮ**

</div>


<a id="p100649"></a>    <soap:Envelope
        xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
      <soap:Header>
        <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"
            xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
            soap:mustUnderstand="true">
          <wsse:BinarySecurityToken
              wsu:Id="SigningCertificate"
              ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-
token-profile-1.0#X509v3"
              EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-
message-security-1.0#Base64Binary">
            <!-- Сертификат ключа проверки электронной подписи -->
          </wsse:BinarySecurityToken>
          <ds:Signature>
            <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="#BusinessMessage">
                <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>
                  <!-- Хеш -->
                </ds:DigestValue>
              </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>
              <!-- Значение электронной подписи -->
            </ds:SignatureValue>
            <ds:KeyInfo>
              <wsse:SecurityTokenReference>
                <wsse:Reference
                    URI="#SigningCertificate"
                    ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
x509-token-profile-1.0#X509v3" />
              </wsse:SecurityTokenReference>
            </ds:KeyInfo>
          </ds:Signature>
        </wsse:Security>
      </soap:Header>
      <soap:Body wsu:Id="BusinessMessage">
        <!-- Бизнес-сообщение -->
      </soap:Body>
    </soap:Envelope>





<div align="right">

<a id="p100650"></a>Приложение 4

</div>


<div align="center">

<a id="p100651"></a>**ПРИМЕР ЗАШИФРОВАННОГО СООБЩЕНИЯ**

</div>


<a id="p100652"></a>    <soap:Envelope
        xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
      <soap:Header>
        <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"
            xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
            xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
            soap:mustUnderstand="true">
          <wsse:BinarySecurityToken
              wsu:Id="EncryptionCertificate"
              ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-
token-profile-1.0#X509v3"
              EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-
message-security-1.0#Base64Binary">
             <!-- Сертификат открытого ключа -->
          </wsse:BinarySecurityToken>
          <xenc:EncryptedKey>
            <xenc:EncryptionMethod
                Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
            <ds:KeyInfo>
              <wsse:SecurityTokenReference>
                <wsse:Reference
                    URI="#EncryptionCertificate"
                    ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
x509-token-profile-1.0#X509v3" />
              </wsse:SecurityTokenReference>
            </ds:KeyInfo>
            <xenc:ReferenceList>
              <xenc:DataReference URI="#EncryptedMessage"/>
            </xenc:ReferenceList>
          </xenc:EncryptedKey>
        </wsse:Security>
      </soap:Header>
      <soap:Body>
        <xenc:EncryptedData Id="EncryptedMessage">
          <xenc:EncryptionMethod
              Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
          <xenc:CipherData>
            <xenc:CipherValue>
              <!-- Зашифрованное сообщение -->
            </xenc:CipherValue>
          </xenc:CipherData>
        </xenc:EncryptedData>
      </soap:Body>
    </soap:Envelope>



<a id="p100653"></a>

---
