Корпоративное API: Формирование блока подписи для взаимодействия с СФР в Астрал.Доверенность | Помощь Астрал
Техподдержка:
Отдел продаж
График работы

Астрал.Доверенность: Формирование блока подписи для взаимодействия с СФР

Автор Прошин Алексей

Автор: Прошин Алексей

13.08.2025
27
Из статьи вы узнаете:

Источники

Общее по СЭДО https://lk.fss.ru/sedo.html

Довереннность СФР https://lk.fss.ru//mchd.html

Описание

Для подписания документов:

  • xml доверенности SFR
  • xml заявления на отмену доверенностм SFR
  • xml запроса доверенности SFR из реестра

необходимо использовать профиль подписи: XAdES–B-T и формат подписи: Enveloped Signature.

Структура подписанной электронной доверенности

http://www.w3.org/2000/09/xmldsig#" >

http://uri.etsi.org/01903/v1.3.2#" Target="#Signature1-5638004da-93e3-3241-17c5-5725377618f">

TSA)) -->

Корневым элементом является тег {urn:ru:fss:integration:types:mchd:v01}powerOfAttorney, содержащий данные электронной доверенности, данные доверителя, данные уполномоченного и полномочия.

Электронная доверенность и отзыв электронной доверенности должны содержать enveloped signature в формате XAdES-T соответствии со спецификацией (Атрибутивный состав запроса на создание «Электронная доверенность» (powerOfAttorney) или состав запроса «Отзыв электронной доверенности» (revocationPowerOfAttorney)).

Рекомендуемый формат идентификаторов блоков:

  • Корневой блок (urn:powerOfAttorney) «poa-». Пример poa-d543dd42-e1e3-4d6b-93d2-7be28ddb16c9;
  • Блок подписи (ds:Signature) «principal-». Пример principal- d543dd42-e1e3-4d6b-93d2-7be28ddb16c9
  • Блоки ссылок в подписи (ds:Reference) «principal--ref<индекс ссылки>». Пример principal- d543dd42-e1e3-4d6b-93d2-7be28ddb16c9-ref0
  • Блок значения подписи (ds:SignatureValue) «principal--sigvalue». Пример principal-d543dd42-e1e3-4d6b-93d2-7be28ddb16c9-sigvalue
  • Блок подписываемых свойств (xades:SignedProperties) «principal--signedprops». Пример: principal-d543dd42-e1e3-4d6b-93d2-7be28ddb16c9-signedprops

Источник https://lk.fss.ru/sedo.html

3.3     Структура подписанного сообщения

Каркас сообщения определен стандартом SOAP и представляет собой следующий XML-документ:

http://schemas.xmlsoap.org/soap/envelope/">

При этом, блок Header – содержит служебную информацию, в то время как  блок Body – смысловые данные сообщения.

При наложении подписи в соответствии со стандартом OASIS Web Service Security: SOAP Message Security 1.1 внутри блока Header формируется структура данных, предназначенная для передачи информации об ЭП и uuid МЧД:

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

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="">

http://www.w3.org/2000/09/xmldsig#">

http://www.w3.org/2001/10/xml-exc-c14n#"/>

(или

в зависимости от длины ключа сертификата, используемого пользователем)

http://www.w3.org/2001/10/xml-exc-c14n#"/>

(или

в зависимости от длины ключа сертификата, используемого пользователем)

xmlns:ns6="urn:ru:fss:integration:types:signature:v01"

xmlns:ns7="http://www.fss.ru/integration/types/common/v01"

xmlns:ns8="urn:ru:fss:integration:types:mchd:v01">

...

Блок Security, принадлежащий пространству имен http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd, содержит в себе информацию, необходимую для проверки целостности сообщения и его отправителя. Одним из параметров блока является «actor», который должен быть заполнен http://fss.ru/recipient/[ИД абонента]. В ответном сообщении блок «actor» будет заполнен http://sedo.fss.ru/actor/fss/ca/[ОГРН ЦА СФР].

Блок Security состоит из следующих элементов:

  • BinarySecurityToken – содержит публичный сертификат пользователя в формате X509v3. Блок BinarySecurityToken имеет атрибут Id, принадлежащий пространству имен http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd, который должен быть проинициализирован уникальным значением в рамках SOAP-сообщения, по формату, аналогичному атрибуту actor;
  • Signature – содержит информацию об электронной подписи сообщения и состоит из следующих подблоков:
  • SignedInfo – содержит информацию о методе каноникализации, алгоритме хэширования, алгоритме генерации ЭЦП и ссылку на подписываемый блок данных;
  • Ссылка на подписываемые данные представлена блоком Reference, Содержит атрибут URI, значение которого должно соответствовать значению атрибута Id подписываемого блока данных. Значение URI должно быть по формату OGRN_[ОГРН абонента]. В ответном сообщении URI будет заполнено по формату OGRN_[ОГРН ЦА СФР].

Внутри блока Reference должны быть определены 2 элемента:

DigestMethod – определяющий алгоритм вычисления хэш суммы;

DigestValue – вычисленное значение хэш суммы от подписываемых данных.

  • SignatureValue – содержит рассчитанное значение ЭП;
  • KeyInfo – содержит ссылку на сертификат пользователя, который содержится в BinarySecurityToken и с помощью которого была рассчитана ЭП;
  • Object – стандартный элемент Object (см. https://www.w3.org/TR/xmldsig-core1/#sec-Object ), блок для встраивания машиночитаемой доверенности (МЧД). Используется элемент {urn:ru:fss:integration:types:signature:v01}authorities. Структура элемента {urn:ru:fss:integration:types:signature:v01}authorities позволяет указывать связи между подписанными блоками и МЧД в которых присутствуют полномочия для подписания связанного блока данных. Встраиваться может как весь документ машиночитаемой доверенности, так и ссылка на него.

Внутри блока Object определены:

Authority - блок МЧД;

powerOfAttorneyLink – ссылка на МЧД;

Uuid – идентификатор МЧД.

3.4     Порядок формирования электронной подписи

  1. В сообщение добавляются объявления префиксов пространств имен. Префиксы можно определять по мере необходимости.

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

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#">

.....

  1. Проставляется атрибут wsu:Id=" " подписываемому элементу сообщения в блоке Body. В примере ниже подписывается весь блок Body.

  1. Происходит подготовка структуры для сохранения результатов.

http://fss.ru/recipient/0000000010">

http://www.w3.org/2001/10/xml-exc-c14n#" />

(или

в зависимости от длины ключа сертификата, используемого пользователем)

...

http://www.w3.org/2000/09/xmldsig#">

xmlns:ns6="urn:ru:fss:integration:types:signature:v01"

xmlns:ns7="http://www.fss.ru/integration/types/common/v01"

xmlns:ns8="urn:ru:fss:integration:types:mchd:v01">

ddb98810-44c9-4441-918d-62e093cafa59

.......

  1. В добавляются атрибуты форматов, сам сертификат и атрибут wsu:Id.

Формат сертификата должен соответствовать спецификации X.509 и быть представленным в формате Base64.

http://fss.ru/recipient/0000000010">

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="http://fss.ru/recipient/0000000010">MIIDjjCCAz2...

.........

.........

.......

  1. Добавляется ссылка на токен в раздел .

Значение атрибута URI элемента wsse:Reference должно соответствовать значению атрибута wsu:Id элемента wsse:BinarySecurityToken с лидирующим знаком '#'.

http://fss.ru/recipient/0000000010">...

.........

.....

http://fss.ru/recipient/0000000010" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />

.......

  1. Добавляется ссылка на данные для подписи и параметры каноникализации.

Значение атрибута URI элемента ds:Reference должно соответствовать значению атрибута wsu:Id у подписываемого блока данных в элементе soapenv:Body с лидирующим знаком '#'.

....

http://www.w3.org/2001/10/xml-exc-c14n#" />

Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />

(или в зависимости от длины  ключа сертификата, используемого пользователем)

.........

.....

.........

.......

  1. К подписываемому элементу и его потомкам, включая атрибуты, применяется каноникализация http://www.w3.org/2001/10/xml-exc-c14n#, на основе результата рассчитывается хэш по алгоритму ГОСТ Р 34.11-2012 и заносится в в формате Base64.

....

d7Q3878nvrGVpOI.....

........

.......

  1. К элементу и его потомкам, включая атрибуты, применяется каноникализация http://www.w3.org/2001/10/xml-exc-c14n#, на основе результата рассчитывается электронная подпись по алгоритму ГОСТ Р 34.10-2012 и заносится в в формате Base64.

....

.........

ooXepzAw89CBIsbZ+g2oNFh.....

.........

.......

Комментарии для сайта Cackle
Получите электронную подпись для работы на госпорталах, для участия в торгах и ЭДО

Хотите разобраться
в сервисах Астрал?

Подробные инструкции,
решения проблем
и ответы на вопросы
в Базе знаний

autohello-finger