Р 1323565.1.033-2020. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских алгоритмов электронной подписи в протоколах и форматах сообщений на основе XML
Актуально на 01.11.2026.
Как цитировать: "Р 1323565.1.033-2020. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских алгоритмов электронной подписи в протоколах и форматах сообщений на основе XML". Р 1323565.1.033-2020. https://bukva.ai/docs/r-1323565-1-033-2020
(утв. и введены в действие Приказом Росстандарта от 17.11.2020 № 1112-ст)
Примечание
Документ введен в действие с 01.04.2021.
Утверждены и введены в действие
Приказом Федерального
агентства по техническому
регулированию и метрологии
от 17 ноября 2020 г. № 1112-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ РОССИЙСКИХ АЛГОРИТМОВ ЭЛЕКТРОННОЙ ПОДПИСИ
В ПРОТОКОЛАХ И ФОРМАТАХ СООБЩЕНИЙ НА ОСНОВЕ XML
Information technology. Cryptographic data security.
Using Russian algorithms of digital signature algorithms
with XML-based protocols and messages
1 апреля 2021 года
Предисловие
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью «КРИПТО-ПРО» (ООО «КРИПТО-ПРО»)
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 17 ноября 2020 г. № 1112-ст
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
В настоящих рекомендациях определяются способы использования российских государственных криптографических алгоритмов подписи и хэширования для создания электронной подписи XML-документов, определенной в [1], а также способы передачи в XML-документах значения кода аутентификации сообщения на основе хэш-функции HMAC, описанного в Р 50.1.113. Введены также новые универсальные идентификаторы ресурсов (URI) и XML-элементы.
Примечание — Основная часть настоящих рекомендаций дополнена приложениями А - Б.
1 Область применения
В настоящих рекомендациях описываются идентификаторы алгоритмов ГОСТ Р 34.10-2012, ГОСТ Р 34.10-2001, ГОСТ Р 34.11-2012 и ГОСТ Р 34.11-94, используемые при создании электронной подписи XML-документов, а также идентификаторы алгоритмов вычисления кода аутентификации сообщения на основе хэш-функции HMAC, определенного в Р 50.1.113. Помимо этого, в данных рекомендациях определены способы передачи информации о ключевом материале в XML-документе, а также идентификаторы пространств имен, префиксы и определения XML-схемы подписываемого XML-документа.
XML-документы, содержащие электронную подпись, созданную с использованием российских государственных криптографических алгоритмов подписи и хэширования, могут быть переданы в рамках взаимодействия по протоколам, где используются сообщения формата XML: SOAP, WS-Security и другие.
2 Нормативные ссылки
В настоящих рекомендациях использованы нормативные ссылки на следующие стандарты и рекомендации по стандартизации:
ГОСТ Р 34.10-2001 <*> Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
<*> Заменен на ГОСТ Р 34.10-2012 с 01.01.2013.
ГОСТ Р 34.10-2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
ГОСТ Р 34.11-94 <**> Информационная технология. Криптографическая защита информации. Функция хэширования
<**> Заменен на ГОСТ Р 34.11-2012 с 01.01.2013.
ГОСТ Р 34.11-2012 Информационная технология. Криптографическая защита информации. Функция хэширования
Р 50.1.113-2016 Информационная технология. Криптографическая защита информации. Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
Р 1323565.1.023-2018 «Информационная технология. Криптографическая защита информации. Использование алгоритмов ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012 в сертификате, списке аннулированных сертификатов (CRL) и запросе на сертификат PKCS#10 инфраструктуры открытых ключей X.509»
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных стандартов и рекомендаций по стандартизации в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный стандарт (рекомендации по стандартизации), на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт (рекомендации по стандартизации), на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта (рекомендаций по стандартизации) с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный стандарт (рекомендации по стандартизации), на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт (рекомендации по стандартизации) отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и сокращения
3.1 Термины и определения
В настоящих рекомендациях применены следующие термины с соответствующими определениями.
3.1.1 XML-документ: Электронный документ, сформированный при помощи расширяемого языка разметки XML.
3.1.2 XML-схема: Описание структуры XML-документа.
3.1.3 XML-элемент: Часть XML-документа или XML-схемы, ограниченная тегами.
3.1.4 определение XML-схемы: Часть XML-схемы, описывающая отдельный элемент (имя элемента и его тип).
3.1.5 пространство имен XML: Пространство имен, используемое для описания элементов в XML-схеме и служащее для обеспечения их уникальности в XML-документе.
3.1.6 XML-префикс: Префикс, указываемый перед именем XML-элемента и/или его типа с целью исключения пересечения одноименных элементов из различных пространств имен XML.
3.1.7 XML-атрибут: Часть XML-элемента, состоящая из имени атрибута и значения атрибута, сформированных в соответствии с определением XML-схемы данного XML-элемента.
Примечание - В настоящих рекомендациях для краткости установлено, что термины «XML-элемент» и «элемент», «XML-атрибут» и «атрибут», а также «XML-префикс» и «префикс» являются синонимами.
3.1.8 сообщение: Строка символов произвольной конечной длины.
3.1.9 формат сообщения: Совокупность правил формирования и интерпретации сообщения.
| код аутентификации сообщения на основе хэш-функции (hash-based message authentication code; HMAC): Механизм обеспечения аутентичности информации на основе симметричного ключа, построенный с использованием хэш-функции. [Р 50.1.113-2016, статья 3.1.1] |
|---|
| электронная цифровая подпись (signature): Строка бит, полученная в результате процесса формирования подписи. [ГОСТ Р 34.10-2012, статья 3.1.15] |
|---|
Примечание - В настоящих рекомендациях в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины «электронная подпись», «цифровая подпись» и «электронная цифровая подпись» являются синонимами.
| ключ проверки подписи: Элемент данных, математически связанный с ключом подписи и используемый проверяющей стороной в процессе проверки цифровой подписи. [ГОСТ Р 34.10-2012, статья 3.1.3] |
|---|
| ключ подписи: Элемент секретных данных, специфичный для субъекта и используемый только данным субъектом в процессе формирования цифровой подписи. [ГОСТ Р 34.10-2012, статья 3.1.2] |
|---|
| хэш-функция: Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам: 1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение; 2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции; 3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение. [ГОСТ Р 34.11-2012, статья 3.1.6] |
|---|
Примечание - В настоящих рекомендациях в целях сохранения терминологической преемственности с действующими отечественными нормативными документами и опубликованными научно-техническими изданиями установлено, что термины «хэш-функция», «криптографическая хэш-функция», «функция хэширования» и «криптографическая функция хэширования» являются синонимами.
хэш-код: Строка бит, являющаяся выходным результатом хэш-функции.
[ГОСТ Р 34.11-2012, статья 3.1.15]
| 3.2 Сокращения |
|---|
В настоящих рекомендациях используют следующие обозначения:
4 Используемые структуры
Пространства имен XML, их префиксы и идентификаторы, соответствующие используемым в рамках данных рекомендаций XML-схемам, введены в разделе 5.
В разделе 6 настоящих рекомендаций описывается элемент ds:Signature, содержащий значение подписи XML-документа и информацию об алгоритмах и их параметрах, необходимых для формирования данного значения. Также настоящие рекомендации устанавливают, что элемент ds:Signature может содержать информацию об используемом алгоритме вычисления кода аутентификации сообщения на основе хэш-функции (HMAC) и значение HMAC <*>. Элемент ds:Signature описывается определениями, соответствующими трем XML-схемам: DS-схеме, DSIG11-схеме и CPXMLSEC-схеме.
<*> В настоящих рекомендациях в целях оптимизации и исключения дублирования элементов описываемых структур при работе с HMAC название элемента ds:Signature не отражает тип хранящихся в нем данных: алгоритм вычисления HMAC и значение HMAC указываются в элементах ds:SignatureMethod и ds:SignatureValue соответственно.
Определения CPXMLSEC-схемы вводятся в настоящих рекомендациях впервые и являются расширением DS-схемы с целью обеспечения возможности использования национальных стандартов ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012. Для описания CPXMLSEC-схемы используются элементы из XS-схемы, описанной в [2] и [3]. Определения из DS-схемы и DSIG11-схемы описаны в соответствии с [1].
Примечание — В настоящих рекомендациях некоторые комментарии в определениях DS-схемы и DSIG11-схемы были опущены в связи с упоминанием в них элементов, не используемых при формировании электронной подписи XML-документов с использованием российских криптографических алгоритмов подписи, хэширования и вычисления значения HMAC. Поскольку комментарии в определении XML-схемы не являются семантически значимыми, определения DS-схемы и DSIG11-схемы, описанные в настоящих рекомендациях, считаются идентичными определениям, описанным в [1].
В разделе 7 настоящих рекомендаций устанавливаются требования к содержимому элементов, описываемых в разделе 6, и их представлению:
-
В 7.1 устанавливаются требования к содержимому элементов и его представлению для создания и проверки электронной подписи XML-документа с использованием российских государственных криптографических алгоритмов подписи и хэширования.
-
В 7.2 устанавливаются требования к содержимому элементов и его представлению для вычисления значения HMAC XML-документа с использованием алгоритмов, определенных в Р 50.1.113.
-
В 7.3 устанавливаются требования к содержимому элементов и его представлению для передачи ключевой информации в подписываемом XML-документе.
5 Пространства имен XML и XML-префиксы
В настоящих рекомендациях используются XML-элементы из четырех различных XML-схем, каждой из которых соответствует одно пространство имен XML. При создании подписи XML-документа или вычислении значения HMAC в соответствии с настоящими рекомендациями должен использоваться следующий идентификатор основного пространства имен XML (точка в конце предложения не является частью идентификатора): urn:ietf:params:xml:ns:cpxmlsec. Остальные пространства имен являются внешними, и их идентификаторы указываются дополнительно в заголовке XML-схемы.
Примечание - Пространство имен XML однозначно соответствует одной XML-схеме, таким образом, употребление в тексте названия XML-схемы идентифицирует также соответствующее пространство имен. Названия XML-схем представлены в таблице 1.
Примечание - В настоящих рекомендациях XS-схема является вспомогательной и применяется для описания определений из других XML-схем. Поэтому определения элементов XS-схемы в данных рекомендациях не приводятся.
Чтобы исключить пересечения одноименных элементов из различных пространств имен XML, в настоящих рекомендациях XML-элементы из различных XML-схем помечены с помощью префиксов, определенных в таблице 1. Каждый из предложенных в таблице 1 префиксов для своего пространства имен выбран произвольно и может быть заменен иным во всех элементах без изменения семантической значимости XML-документа.
Указание пространств имен XML и префиксов в XML-документе не должно иметь разрывов строк и пробелов.
Пример заголовка CPXMLSEC-схемы для использования с определениями остальных XML-схем, приведенными в разделе 6 настоящих рекомендаций:
6 Определение XML-схемы для элемента Signature XML-документа
Элемент ds:Signature является одним из корневых элементов XML-документа и содержит следующую информацию:
- при формировании подписи XML-документа: значение подписи и информацию об алгоритмах и их параметрах, необходимых для формирования электронной подписи XML-документа;
- при вычислении значения HMAC XML-документа: информацию об используемом алгоритме вычисления HMAC и значение HMAC.
Элемент ds:Signature содержит следующие дочерние элементы.
- Элемент ds:SignedInfo (см. 6.1). Данный элемент содержит информацию об используемых алгоритмах и других параметрах, необходимых для формирования подписи XML-документа или значения HMAC.
- Элемент ds:SignatureValue (см. 6.2). Данный элемент содержит значение электронной подписи XML-документа или значение HMAC.
- Элемент ds:KeyInfo (см. 6.3). Данный элемент содержит информацию о ключе проверки подписи и его значение или информацию о симметричном ключе, используемом при вычислении значения HMAC.
- Элемент ds:Object. Данный элемент может содержать информацию, для которой формируется значение подписи или вычисляется значение HMAC.
Элемент ds:Signature описывается следующим определением XML-схемы.
| <xs:element name=«Signature» type=«ds:SignatureType»/> <xs:complexType name=«SignatureType»> xs:sequence <xs:element ref=«ds:SignedInfo»/> <xs:element ref=«ds:SignatureValue»/> <xs:element ref=«ds:KeyInfo» minOccurs=«0»/> <xs:element ref=«ds:Object» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«Id» type=«ID» use=«optional»/> </xs:complexType> |
|---|
Полное описание всех дочерних элементов элемента ds:Signature представлено в [1].
6.1 Элемент SignedInfo
Элемент ds:SignedInfo является дочерним элементом элемента ds:Signature и содержит в себе информацию об используемых алгоритмах и других параметрах, необходимых для формирования подписи XML-документа или значения HMAC. Элемент ds:SignedInfo содержит следующие дочерние элементы.
- Элемент ds:SignatureMethod (см. 6.1.1). Данный элемент содержит информацию об используемом алгоритме подписи или алгоритме HMAC.
- Элемент ds:Reference (см. 6.1.2). Данный элемент используется для указания на данные, с которыми выполняются преобразования.
- Элемент ds:CanonicalizationMethod. Данный элемент содержит информацию об используемом алгоритме приведения к каноническому виду данных, находящихся в элементе ds:SignedInfo.
Элемент ds:SignedInfo описывается следующим определением XML-схемы.
| <xs:element name=«SignedInfo» type=«ds:SignedInfoType»/> <xs:complexType name=«SignedInfoType»> xs:sequence <xs:element ref=«ds:CanonicalizationMethod»/> <xs:element ref=«ds:SignatureMethod»/> <xs:element ref=«ds:Reference» maxOccurs=«unbounded»/> </xs:sequence» <xs:attribute name=«Id» type=«ID» use=«optional»/> </xs:complexType> |
|---|
Полное описание элемента ds:SignedInfo представлено в [1].
6.1.1 Элемент SignatureMethod
Элемент ds:SignatureMethod является дочерним элементом элемента ds:SignedInfo и определяет алгоритм, используемый для создания и проверки подписи XML-документа или алгоритм, используемый для вычисления значения HMAC. Для этого в атрибут Algorithm элемента ds:SignatureMethod помещается идентификатор, соответствующий используемому алгоритму.
Идентификаторы российских криптографических алгоритмов хэширования и подписи и правила их включения в элемент ds:SignatureMethod описаны в 7.1.2.
Идентификаторы российских криптографических алгоритмов вычисления HMAC описаны в 7.2.
Элемент ds:SignatureMethod описывается следующим определением XML-схемы.
<xs:element name="SignatureMethod" type="ds:SignatureMethodType"/>
<xs:complexType name="SignatureMethodType" mixed="true">
<xs:sequence>
<xs:element name="HMACOutputLength" minOccurs="0"
type="ds:HMACOutputLengthType"/>
<xs:any namespace="##other" minOccurs="0"maxOccurs="unbounded"/>
<!-- (0,unbounded) elements from (1,1) external namespace -->
</xs:sequence>
<xs:attribute name="Algorithm" type="anyURI" use="required"/>
</xs:complexType>
Полное описание элемента ds:SignatureMethod представлено в [1].
6.1.2 Элемент Reference
Элемент ds:Reference является дочерним элементом элемента ds:SignedInfo и может содержать атрибуты Id, URI и Type, описывающие данные, с которыми выполняются операции хэширования и другие преобразования. Элемент ds:Reference содержит следующие дочерние элементы.
- Элемент ds:Transforms. Данный элемент содержит список преобразований данных, указанных в атрибутах элемента ds:Reference.
- Элемент ds:DigestMethod (см. 6.1.2.1). Данный элемент используется для указания используемого алгоритма хэширования данных, указанных в атрибутах элемента ds:Reference.
- Элемент ds:DigestValue (см. 6.1.2.2). Данный элемент содержит значение хэш-кода от данных, указанных в атрибутах элемента ds:Reference.
Элемент ds:Reference описывается следующим определением XML-схемы.
| <xs:element name=«Reference» type=«ds:ReferenceType»/> <xs:complexType name=«ReferenceType»> xs:sequence <xs:element ref=«ds:Transforms» minOccurs=«0»/> <xs:element ref=«ds:DigestMethod»/> <xs:element ref=«ds:DigestValue»/> </xs:sequence> <xs:attribute name=«Id» type=«ID» use=«optional»/> <xs:attribute name=«URI» type=«anyURI» use=«optional»/> <xs:attribute name=«Type» type=«anyURI» use=«optional»/> </xs:complexType> |
|---|
Полное описание элемента ds:Reference представлено в [1].
6.1.2.1 Элемент DigestMethod
Элемент ds:DigestMethod является дочерним элементом элемента ds:Reference и имеет атрибут Algorithm, содержащий идентификатор алгоритма хэширования данных, указанных в атрибутах элемента ds:Reference.
Идентификаторы российских криптографических алгоритмов хэширования и правила их включения в элемент ds:DigestMethod описаны в 7.1.1.
Элемент ds:DigestMethod описывается следующим определением XML-схемы.
| <xs:element name=«DigestMethod» type=«ds:DigestMethodType»/> <xs:complexType name=«DigestMethodType» mixed=«true»> xs:sequence <xs:any namespace=«##other» processContents=«lax» minOccurs=«0» maxOccurs=«unbounded»/> </xs:sequence> <xs:attribute name=«Algorithm» type=«anyURI» use=«required»/> </xs:complexType> |
|---|
Полное описание элемента ds:DigestMethod представлено в [1].
6.1.2.2 Элемент DigestValue
Элемент ds:DigestValue является дочерним элементом элемента ds:Reference и должен содержать значение хэш-кода, представленное в соответствии с 7.1.1. Значение хэш-кода должно быть вычислено от данных, указанных в атрибутах элемента ds:Reference, описанного в 6.1.2.
Элемент ds:DigestValue описывается следующим определением XML-схемы.
| <xs:element name=«DigestValue» type=«ds:DigestValueType»/> <xs:simpleType name=«DigestValueType»> <xs:restriction base=«base64Binary»/> </xs:simpleType> |
|---|
6.2 Элемент SignatureValue
Элемент ds:SignatureValue является дочерним элементом элемента ds:Signature и должен содержать значение электронной подписи XML-документа или значение HMAC.
Содержимое элемента ds:SignatureValue при использовании российских криптографических алгоритмов подписи и хэширования описано в 7.1.2.
Содержимое элемента ds:SignatureValue при использовании российских криптографических алгоритмов вычисления HMAC описано в 7.2.
Элемент ds:SignatureValue описывается следующим определением XML-схемы.
| <xs: element name=«SignatureValue» type=«ds:SignatureValueType»/> <xs:complexType name=«SignatureValueType»> xs:simpleContent <xs:extension base=«base64Binary»> <xs:attribute name=«Id» type=«ID» use=«optional»/> </xs:extension> </xs:simpleContent> </xs:complexType> |
|---|
Полное описание элемента ds:SignatureValue представлено в [1].
6.3 Элемент KeyInfo
Элемент ds:KeyInfo является дочерним элементом элемента ds:Signature и позволяет передать в XML-документе информацию о ключе проверки подписи и его значение или информацию о симметричном ключе, используемом при вычислении значения HMAC.
В случае если в XML-документе требуется передать ключ проверки подписи, необходимо использовать один из следующих дочерних элементов элемента ds:KeyInfo.
-
Элемент ds:KeyValue (см. 7.3.1). Данный элемент позволяет передать значение ключа проверки подписи и его параметры.
-
Элемент ds:RetrievalMethod (см. 6.3.2). Данный элемент позволяет передать ссылку на расположение ключа проверки подписи, если ключ находится вне подписываемого XML-документа.
-
Элемент ds:X509Data (см. 6.3.3). Данный элемент позволяет передать X.509-сертификат (см. Р 1323565.1.023-2018, подраздел 4.2), содержащий ключ проверки подписи.
-
Элемент dsig11:DEREncodedKeyValue (см. 6.3.4). Данный элемент позволяет передать значение ключа проверки подписи и его параметры.
Примечание — Элементы ds:KeyValue и dsig11:DEREncodedKeyValue позволяют передать одну и ту же информацию, но с использованием различных подходов к ее представлению: использование элемента ds:KeyValue позволяет передавать значение ключа проверки подписи и его параметры в отдельных дочерних элементах. Использование элемента dsig11:DEREncodedKeyValue позволяет передавать значение ключа проверки подписи и его параметры в составе структуры SubjectPublicKeyInfo, описанной в Р 1323565.1.023.
В случае если в XML-документе требуется передать информацию о симметричном ключе, используемом при вычислении значения HMAC, необходимо использовать элемент ds:RetrievalMethod, являющийся дочерним элементом элемента ds:KeyInfo. Описание элемента ds:RetrievalMethod представлено в 6.3.2.
Примечание - Настоящие рекомендации устанавливают возможность передачи сведений о расположении симметричного ключа, используемого при вычислении значения HMAC, в элементе ds:RetrievalMethod. При этом процедуры выработки указанного ключа и его распределения выходят за область действия данных рекомендаций.
Элемент ds:KeyInfo описывается следующим определением XML-схемы.
Полное описание элемента ds:KeyInfo представлено в [1].
6.3.1 Элемент KeyValue
Элемент ds:KeyValue является дочерним элементом элемента ds:KeyInfo и позволяет передать ключ проверки подписи в подписываемом XML-документе.
Настоящие рекомендации устанавливают следующие дополнительные дочерние элементы элемента ds:KeyValue, описанные в 6.3.1.1:
- элемент cpxmlsec:GOSTR34102012-256-KeyValue;
- элемент cpxmlsec:GOSTR34102012-512-KeyValue;
- элемент cpxmlsec:GOSTR34102001KeyValue.
Элемент ds:KeyValue описывается следующим определением XML-схемы.
| <xs:element name=«KeyValue» type = «ds:KeyValueType»/> <xs:complexType name=«KeyValueType» mixed=«true»> xs:choice <xs:element ref=«ds:DSAKeyValue»/> <xs:element ref=«ds:RSAKeyValue»/> <xs:any namespace=«##other» processContents=«lax»/> </xs:choice> </xs:complexType> |
|---|
Полное описание элемента ds:KeyValue представлено в [1].
6.3.1.1 Элементы GOSTR34102012-256-KeyValue, GOSTR34102012-512-KeyValue и GOSTR34102001 KeyValue
Элементы cpxmlsec:GOSTR34102012-256-KeyValue, cpxmlsec:GOSTR34102012-512-KeyValue и cpxmlsec:GOSTR34102001KeyValue являются дочерними элементами элемента ds:KeyValue, имеют тип cpxmlsec:GOSTKeyValueType и каждый из них состоит из двух дочерних элементов:
- элемент cpxmlsec:NamedCurve, содержащий идентификатор эллиптической кривой;
- элемент cpxmlsec:PublicKey, содержащий значение ключа проверки подписи.
Данные элементы принадлежат пространству имен с префиксом cpxmlsec, идентификатор которого и правила включения в CPXMLSEC-схему описаны в разделе 5. Элементы cpxmlsec:NamedCurve и cpxmlsec:PublicKey имеют типы dsig11:NamedCurveType и dsig11:ECPointType соответственно, определения которых принадлежат к DSIG11-схеме и описаны в [1].
Требования к содержимому элементов cpxmlsec:GOSTR34102012-256-KeyValue, cpxmlsec:GOSTR34102012-512-KeyValue, cpxmlsec:GOSTR34102001KeyValue и их дочерних элементов описаны в 7.3.2 - 7.3.4.
Элементы cpxmlsec:GOSTR34102012-256-KeyValue, cpxmlsec:GOSTR34102012-512-KeyValue и cpxmlsec:GOSTR34102001KeyValue описываются следующим определением CPXMLSEC-схемы.
<xs:element name="GOSTR34102012-256-KeyValue"
type="cpxmlsec:GOSTKeyValueType"/>
<xs:element name="GOSTR34102012-512-KeyValue"
type="cpxmlsec:GOSTKeyValueType"/>
<xs:element name="GOSTR34102001KeyValue"
type="cpxmlsec:GOSTKeyValueType"/>
<xs:complexType name="GOSTKeyValueType">
<xs:sequence>
<xs:element name="NamedCurve"
type="dsig11:NamedCurveType"/>
<xs:element name="PublicKey"
type="dsig11:ECPointType"/>
</xs:sequence>
</xs:complexType>
6.3.2 Элемент RetrievalMethod
Элемент ds:RetrievalMethod является дочерним элементом элемента ds:KeyInfo и позволяет дать ссылку на ключевую информацию, которая располагается в месте, отличном от подписываемого XML-документа. Для этого используются его атрибуты URI и Туре.
Элемент ds:RetrievalMethod имеет дочерний элемент ds:Transforms, используемый для преобразования данных, на которые указывают атрибуты элемента ds:RetrievalMethod.
Элемент ds:RetrievalMethod описывается следующим определением XML-схемы.
| <xs:element name=«RetrievalMethod» type=«ds:RetrievalMethodType»/> <xs:complexType name=«RetrievalMethodType»> xs:sequence <xs:element ref=«ds:Transforms» minOccurs=«0»/> </xs:sequence> <xs:attribute name=«URI» type=«anyURI»/> <xs:attribute name=«Type» type=«anyURI» use=«optional»/> </xs:complexType> |
|---|
Полное описание элементов ds:RetrievalMethod и ds:Transforms представлено в [1].
6.3.3 Элемент X509Data
Элемент ds:X509Data является дочерним элементом элемента ds:KeyInfo и позволяет передать сведения о X.509-сертификате, при помощи которого было сформировано значение электронной подписи XML-документа, либо сам сертификат с ключом проверки подписи.
Элемент ds:X509Data описывается следующим определением XML-схемы.
<xs:element name="X509Data" type="ds:X509DataType"/>
<xs:complexType name="X509DataType">
<xs:sequence maxOccurs="unbounded">
<xs:choice>
<xs:element name="X509IssuerSerial"
type="ds:X509IssuerSerialType"/>
<xs:element name="X509SKI" type="base64Binary"/>
<xs:element name="X509SubjectName" type="string"/>
<xs:element name="X509Certificate" type="base64Binary"/>
<xs:element name="X509CRL" type="base64Binary"/>
<!-- < xs:element ref="dsig11:X509Digest"/> -->
<!-- The X509Digest element (XMLDSig 1.1) will use the
any element -->
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
Полное описание элемента ds:X509Data представлено в [1].
6.3.4 Элемент DEREncodedKeyValue
Элемент dsig11:DEREncodedKeyValue является расширением определения XML-схемы элемента ds:KeyInfo, описанного в 6.3, и позволяет передать ключ проверки подписи. Требования к содержимому элемента dsig11:DEREncodedKeyValue описаны в 7.3.1.
Элемент dsig11:DEREncodedKeyValue описывается следующим определением XML-схемы.
<!-- targetNamespace="http://www.w3.org/2009/xmldsig11#" -->
<xs:element name="DEREncodedKeyValue"
type="dsig11:DEREncodedKeyValueType"/>
<xs:complexType name="DEREncodedKeyValueType">
<xs:simpleContent>
<xs:extension base="base64Binary">
<xs:attribute name="Id" type="ID" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
Полное описание элемента dsig11:DEREncodedKeyValue представлено в [1].
7 Использование российских криптографических алгоритмов
В данном разделе настоящих рекомендаций устанавливаются требования к содержимому элементов, описываемых в разделе 6, и его представлению при использовании российских государственных криптографических алгоритмов подписи, хэширования и вычисления HMAC.
7.1 Использование российских криптографических алгоритмов при создании подписи XML-документов
7.1.1 Использование алгоритма хэширования в элементе DigestMethod
7.1.1.1 Использование алгоритма хэширования ГОСТ Р 34.11-2012 с длиной хэш-кода 256 бит в элементе DigestMethod
Для алгоритма хэширования, определенного в ГОСТ Р 34.11-2012, с длиной хэш-кода 256 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256.
Примечание - В настоящих рекомендациях для всех идентификаторов российских криптографических алгоритмов перенос строки внутри значения идентификатора и точка в его конце не учитываются.
Пример элемента ds:DigestMethod для алгоритма хэширования, определенного в ГОСТ Р 34.11-2012, с длиной хэш-кода 256 бит:
| <ds:DigestMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256» /> |
|---|
Значение 256-битного хэш-кода, представленного в виде последовательности из 32 байт в порядке little-endian и в кодировке base64, описанной в [4], должно быть помещено в содержимое элемента ds:DigestValue, описанного в 6.1.2.2.
7.1.1.2 Использование алгоритма хэширования ГОСТ Р 34.11-2012 с длиной хэш-кода 512 бит в элементе DigestMethod
Для алгоритма хэширования, определенного в ГОСТ Р 34.11-2012, с длиной хэш-кода 512 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512.
Пример элемента ds:DigestMethod для алгоритма хэширования, определенного в ГОСТ Р 34.11-2012, с длиной хэш-кода 512 бит:
| <ds:DigestMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512» /> |
|---|
Значение 512-битного хэш-кода, представленного в виде последовательности из 64 байт в порядке little-endian и в кодировке base64, должно быть помещено в содержимое элемента ds:DigestValue.
7.1.1.3 Использование алгоритма хэширования ГОСТ Р 34.11-94, раздел 6, в элементе DigestMethod
Для обеспечения возможности использования и долговременного (архивного) хранения XML-документов, подписанных при помощи алгоритма, определенного в ГОСТ Р 34.11-94, раздел 6, а также проверки электронной подписи в элемент ds:DigestMethod необходимо помещать следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411.
Элемент ds:DigestMethod может содержать дочерний элемент cpxmlsec:NamedParameters, определяющий параметры для алгоритма хэширования.
Элемент cpxmlsec:NamedParameters имеет атрибут URI, содержащий параметры алгоритма хэширования. Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [5]. Допускается использование идентификаторов OID-параметров, определенных в [6, подраздел 8.2].
Если элемент cpxmlsec: NamedParameters отсутствует, приложение должно использовать параметры, соответствующие идентификатору набора параметров id-GostR3411-94-CryptoProParamSet, определенному в [6].
Элемент cpxmlsec:NamedParameters описывается следующим определением XML-схемы.
<xs:element name="NamedParameters"
type="cpxmlsec:NamedParametersType"/>
Пример элемента ds:DigestMethod для алгоритма хэширования, определенного в ГОСТ Р 34.11-94, раздел 6:
| <ds:DigestMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411»> <cpxmlsec:NamedParameters URI=«urn:oid:1.2.643.2.2.30.1» /> </ds:DigestMethod> |
|---|
Значение 256-битного хэш-кода, представленного в виде последовательности из 32 байт в порядке little-endian и в кодировке base64, должно быть помещено в содержимое элемента ds:DigestValue.
7.1.2 Использование алгоритма подписи в элементе SignatureMethod
7.1.2.1 Использование алгоритма подписи ГОСТ Р 34.10-2012 с длиной ключа 256 бит в элементе SignatureMethod
Для алгоритма подписи, определенного в ГОСТ Р 34.10-2012, с ключом подписи 256 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256.
Пример элемента ds:SignatureMethod с указанием алгоритма подписи, определенного в ГОСТ Р 34.10-2012, с ключом подписи 256 бит:
| <ds:SignatureMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256» /> |
|---|
Значение подписи, сформированное в соответствии с алгоритмом, определенным в ГОСТ Р 34.10-2012, с ключом подписи 256 бит должно быть представлено в соответствии с Р 1323565.1.023 в кодировке base64 и помещено в элемент ds:SignatureValue.
7.1.2.2 Использование алгоритма подписи ГОСТ Р 34.10-2012 с длиной ключа 512 бит в элементе SignatureMethod
Для алгоритма подписи, определенного в ГОСТ Р 34.10-2012, с ключом подписи 512 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512.
Пример элемента ds:SignatureMethod с указанием алгоритма, определенного в ГОСТ Р 34.10-2012, с ключом подписи 512 бит:
| <ds:SignatureMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512» /> |
|---|
Значение подписи, сформированное в соответствии с алгоритмом, определенным в ГОСТ Р 34.10-2012, с ключом подписи 512 бит должно быть представлено в соответствии с Р 1323565.1.023 в кодировке base64 и помещено в элемент ds:SignatureValue.
7.1.2.3 Использование алгоритма подписи ГОСТ Р 34.10-2001, подраздел 6.1, в элементе SignatureMethod
Для обеспечения возможности использования и долговременного (архивного) хранения XML-документов, подписанных при помощи алгоритма, определенного в ГОСТ Р 34.10-2001, подраздел 6.1, а также проверки электронной подписи в элемент ds:SignatureMethod необходимо помещать следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411.
Пример элемента ds:SignatureMethod с указанием алгоритма, определенного в ГОСТ Р 34.10-2001, подраздел 6.1:
| <ds:SignatureMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411» /> |
|---|
Значение подписи, сформированное в соответствии с алгоритмом, определенным в ГОСТ Р 34.10-2001, подраздел 6.1, с ключом подписи 256 бит должно быть представлено в соответствии с Р 1323565.1.023 в кодировке base64 и помещено в элемент ds:SignatureValue.
7.2 Использование российских криптографических алгоритмов при вычислении значения HMAC в XML-документе
Алгоритм хэширования, определенный в ГОСТ Р 34.11-2012, может быть использован в качестве алгоритма вычисления HMAC в соответствии с [1, пункт 6.3.1] и Р 50.1.113-2016, пункт 4.1.1.
7.2.1 Использование алгоритма хэширования ГОСТ Р 34.11-2012 с длиной хэш-кода 256 бит в элементе SignatureMethod
Для алгоритма хэширования, определенного в ГОСТ Р 34.11-2012, с длиной хэш-кода 256 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-256.
Пример элемента ds:SignatureMethod с заданным алгоритмом хэширования, определенным в ГОСТ Р 34.11-2012 с длиной хэш-кода 256 бит:
| <ds:SignatureMethod Algorithm> «urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-256»/> |
|---|
Результат работы алгоритма HMAC_GOSTR3411_2012_256, определенного в Р 50.1.113-2016, пункт 4.1.1, должен быть представлен в виде последовательности из 32 байт в порядке little-endian в кодировке base64 и помещен в элемент ds:SignatureValue, описанный в 6.2.
7.2.2 Использование алгоритма хэширования ГОСТ Р 34.11-2012 с длиной хэш-кода 512 бит в элементе SignatureMethod
Для алгоритма хэширования, определенного в ГОСТ Р 34.11-2012, с длиной хэш-кода 512 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-512.
Пример элемента ds:SignatureMethod с заданным алгоритмом хэширования ГОСТ Р 34.11-2012 с длиной хэш-кода 512 бит:
| <ds:SignatureMethod Algorithm= «urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-512»/> |
|---|
Результат работы алгоритма HMAC_GOSTR3411_2012_512, определенного в Р 50.1.113-2016, пункт 4.1.2, должен быть представлен в виде последовательности из 64 байт в порядке little-endian в кодировке base64 и помещен в элемент ds:SignatureValue.
7.3 Передача информации о ключевом материале
Для передачи информации о ключевом материале алгоритмов, определенных в ГОСТ Р 34.10-2012 и в ГОСТ Р 34.10-2001, подраздел 6.1, могут быть использованы любые подходящие способы, определенные в [1]. Настоящие рекомендации дополнительно определяют способ передачи ключей проверки подписи алгоритма ГОСТ Р 34.10-2012 в элементе dsig11:DEREncodedKeyValue, описанном в 6.3.4, и в дочерних элементах элемента ds:KeyValue, описанного в 6.3.1.
7.3.1 Передача ключа проверки подписи в элементе DEREncodedKeyValue
Настоящие рекомендации устанавливают возможность передачи ключа проверки подписи, соответствующего алгоритму ГОСТ Р 34.10-2012, с длиной 256 бит или 512 бит в элементе dsig11:DEREncodedKeyValue, описанном в 6.3.4. Настоящие рекомендации также устанавливают возможность передачи ключа проверки подписи, соответствующего алгоритму, определенному в ГОСТ Р 34.10-2001, подраздел 6.1, в элементе dsig11:DEREncodedKeyValue, описанном в 6.3.4.
Для создания электронной подписи, соответствующей алгоритму ГОСТ Р 34.10-2012, и проверки электронной подписи, соответствующей алгоритму, определенному в ГОСТ Р 34.10-2001, подраздел 6.1, ключ проверки подписи и его параметры, передаваемые в элементе dsig11:DEREncodedKeyValue, должны быть помещены в структуру SubjectPublicKeyInfo (см. Р 1323565.1.023) и закодированы в соответствии с Р 1323565.1.023.
Пример элемента dsig11:DEREncodedKeyValue:
| dsig11:DEREncodedKeyValue </dsig11:DEREncodedKeyValue> |
|---|
7.3.2 Передача ключа проверки подписи алгоритма ГОСТ Р 34.10-2012 с длиной ключа 256 бит в элементе GOSTR34102012-256-KeyValue
Настоящие рекомендации устанавливают возможность передачи информации о местонахождении ключа проверки подписи, соответствующего алгоритму ГОСТ Р 34.10-2012, с длиной 256 бит. Для передачи информации о местонахождении ключа в атрибут Type элементов ds:Reference или ds:RetrievalMethod, описанных в 6.1.2 и 6.3.2 соответственно, помещается следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:types:gostr34102012-256-keyvalue.
Для передачи ключа проверки подписи в подписываемом XML-документе необходимо представить ключ в формате, описанном для поля subjectPublicKey структуры SubjectPublicKeyInfo (см. Р 1323565.1.023), но без представления в OCTET STRING и кодирования в DER. Данное представление должно быть закодировано в base64 и помещено в дочерний элемент cpxmlsec:PublicKey элемента cpxmlsec:GOSTR34102012-256-KeyValue аналогично элементу ds:RSAKeyValue, описанному в [1]. Определение XML-схемы для элементов cpxmlsec:GOSTR34102012-256-KeyValue и cpxmlsec:PublicKey описано в 6.3.1.1.
Для передачи идентификатора эллиптической кривой (параметров ключа проверки подписи) в подписываемом XML-документе используется атрибут URI элемента cpxmlsec:NamedCurve, описанного в 6.3.1.1. Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [5]. Настоящие рекомендации допускают использование идентификаторов OID параметров, определенных в Р 1323565.1.023.
Пример элемента cpxmlsec:GOSTR34102012-256-KeyValue:
| cpxmlsec:GOSTR34102012-256-KeyValue <cpxmlsec:NamedCurve URI=«urn:oid:1.2.643.2.2.35.1» /> cpxmlsec:PublicKey </cpxmlsec:PublicKey> </cpxmlsec:GOSTR34102012-256-KeyValue> |
|---|
7.3.3 Передача ключа проверки подписи алгоритма ГОСТ Р 34.10-2012 с длиной ключа 512 бит в элементе GOSTR34102012-512-KeyValue
Настоящие рекомендации устанавливают возможность передачи информации о местонахождении ключа проверки подписи, соответствующего алгоритму ГОСТ Р 34.10-2012, с длиной 512 бит. Для передачи информации о местонахождении ключа в атрибут Type элементов ds:Reference или ds:RetrievalMethod, описанных в 6.1.2 и 6.3.2 соответственно, помещается следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:types:gostr34102012-512-keyvalue.
Для передачи ключа проверки подписи в подписываемом XML-документе необходимо представить ключ в формате, описанном для поля subjectPublicKey структуры SubjectPublicKeyInfo (см. Р 1323565.1.023), но без представления в OCTET STRING и кодирования в DER. Данное представление должно быть закодировано в base64 и помещено в дочерний элемент cpxmlsec:PublicKey элемента cpxmlsec:GOSTR34102012-512-KeyValue аналогично элементу ds:RSAKeyValue, описанному в [1]. Определение XML-схемы для элементов cpxmlsec:GOSTR34102012-512-KeyValue и cpxmlsec:PublicKey описано в 6.3.1.1.
Для передачи идентификатора эллиптической кривой (параметров ключа проверки подписи) в подписываемом XML-документе используется атрибут URI элемента cpxmlsec:NamedCurve, описанного в 6.3.1.1. Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [5]. Настоящие рекомендации допускают использование идентификаторов OID параметров, определенных в Р 1323565.1.023.
Пример элемента cpxmlsec:GOSTR34102012-512-KeyValue:
| cpxmlsec:GOSTR34102012-512-KeyValue <cpxmlsec:NamedCurve URI=«urn:oid:1.2.643.7.1.2.1.2.1» /> cpxmlsec:PublicKey </cpxmlsec:PublicKey> </cpxmlsec:GOSTR34102012-512-KeyValue> |
|---|
7.3.4 Передача ключа проверки подписи алгоритма ГОСТ Р 34.10-2001, подраздел 6.2, в элементе GOSTR34102001KeyValue
Для обеспечения возможности использования и долговременного (архивного) хранения XML-документов, подписанных при помощи алгоритма, определенного в ГОСТ Р 34.10-2001, подраздел 6.1, а также проверки электронной подписи в атрибут URI элементов ds:RetrievalMethod или ds:Reference для передачи информации о местонахождении ключа проверки подписи необходимо помещать следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:types:gostr34102001-keyvalue.
Для передачи ключа проверки подписи, соответствующего алгоритму ГОСТ Р 34.10-2001, подраздел 6.1, необходимо представить ключ в формате, описанном для поля subjectPublicKey структуры SubjectPublicKeyInfo для GostR3410-2012-256-PublicKey (см. Р 1323565.1.023), но без представления в OCTET STRING и кодирования в DER. Данное представление должно быть закодировано в base64 и помещено в дочерний элемент cpxmlsec:PublicKey элемента cpxmlsec:GOSTR34102001KeyValue аналогично элементу ds:RSAKeyValue, описанному в [1]. Определение XML-схемы для элементов cpxmlsec:GOSTR34102001KeyValue и cpxmlsec:PublicKey описано в 6.3.1.1.
Для передачи идентификатора эллиптической кривой (параметров ключа проверки подписи) в подписываемом XML-документе используется атрибут URI элемента cpxmlsec:NamedCurve, описанного в 6.3.1.1. Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [5]. Настоящие рекомендации допускают использование идентификаторов OID параметров, определенных в [6, подраздел 8.4].
Пример элемента cpxmlsec:GOSTR34102001KeyValue:
| cpxmlsec:GOSTR34102001KeyValue <cpxmlsec:NamedCurve URI=«urn:old:1.2.643.2.2.35.1»/> cpxmlsec:PublicKey </cpxmlsec:PublicKey> </cpxmlsec:GOSTR34102001KeyValue> |
|---|
(справочное)
В данном приложении приводится полная CPXMLSEC-схема, содержащая названия элементов и атрибутов, используемые пространства имен XML и типы данных, устанавливаемые настоящими рекомендациями.
]>
<xs:schema xmlns:cpxmlsec=«urn:ietf:params:xml:ns:cpxmlsec» xmlns:xs=«http://www.w3.org/2001/XMLSchema» xmlns:dsig11=«http://www.w3.org/2009/xmldsig11#» targetNamespace=«urn:ietf:params:xml:ns:cpxmlsec» element FormDefault=«qualified» version=«0.4»>
<xs:import namespace=«http://www.w3.org/2000/09/xmldsig#»/>
<xs:import namespace=«http://www.w3.org/2009/xmldsig11#»/>
<xs:element name=«NamedParameters» type=«cpxmlsec:NamedParametersType»/>
<xs:complexType name=«NamedParametersType»> <xs:attribute name=«URI» type=«xs:anyURI» use=«required»/> </xs:complexType>
<xs:complexType name=«GOSTKeyValueType»> xs:sequence <xs:element name=«NamedCurve» type=«dsig11:NamedCurveType»/> <xs:element name=«PublicKey» type=«dsig11:ECPointType»/> </xs:sequence> </xs:complexType>
<xs:element name=«GOSTR34102012-256-KeyValue» type=«cpxmlsec:GOSTKeyValueType» /> <xs:element name=«GOSTR34102012-512-KeyValue» type=«cpxmlsec:GOSTKeyValueType» /> <xs:element name=«GOSTR34102001KeyValue» type=«cpxmlsec:GOSTKeyValueType» />
</xs:schema>
(справочное)
В данном приложении содержатся основные примеры использования российских алгоритмов электронной подписи при создании электронной подписи XML-документов.
Примечание - В настоящих рекомендациях все приведенные подписанные XML-документы имеют структуру, представленную родительскими и дочерними элементами. Для удобства чтения XML-документа каждый из элементов, кроме первого, имеет отступ. Число отступов увеличивается на один для каждого вложенного (дочернего) элемента. В данных рекомендациях один отступ принято считать равным трем пробелам. Значения подписи, содержащиеся в примерах, получены с учетом этой особенности и могут измениться, если число пробелов в одном отступе уменьшить или увеличить.
Б.1 Подпись XML-документа с использованием алгоритма, определенного в ГОСТ Р 34.10-2012, с длиной хэш-кода 256 бит в элементе DigestMethod
Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, приложение А.
Координата x ключа проверки подписи сертификата равна:
0x971566CEDA436EE7678F7E07E84EBB7217406C0B4747AA8FD2AB1453C3D0DFBA
0xAD58736965949F8E59830F8DE20FC6C0D177F6AB599874F1E2E24FF71F9CE643
Соответствующий ключ подписи d равен:
0xBFCF1D623E5CDD3032A7C6EABB4A923C46E43D640FFEAAF2C3ED39A8FA399924
0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C
0x054D1DABB161D63424F8DABB2800708B00F78DA7582699E8F2F0A521C7CE8144
Подписанный XML-документ выглядит следующим образом:
Подписанный XML-документ в кодировке base64 выглядит следующим образом:
Б.2 Подпись XML-документа с использованием алгоритма, определенного в ГОСТ Р 34.10-2012, с длиной хэш-кода 512 бит в элементе DigestMethod
Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, приложение А.
Координата x ключа проверки подписи сертификата равна:
| 0x07134627CE7FC6770953ABAA4714B38AF8DE764B8870A502C2F4CC2D05541459A18DA3B9D4EBC09BC 06CB2EA1856A03747561CF04C34382111539230A550F1913 |
|---|
| 0x7E08A434CB2FA300F8974E3FF69A4BCDF36B6308ElD7A56144693A35E11CBDl4D502916E680E35FE1E 6ABBA85BD4DAE7065308B16B1CCABFE3D91CE0655B0FFD |
|---|
Соответствующий ключ подписи d равен:
| 0x3FC01CDCD4EC5F972EB482774C41E66DB7F380528DFE9E67992BA05AEE462435757530E641077CE587 B976C8EEB48C48FD33FD175F0C7DE6A44E014E6BCB074B |
|---|
| 0x72ABB44536656BF1618CE10BF7EADD40582304A51EE4E2A25A0A32CB0E773ABB23B7D8FDD8FA5EEE91 B4AE452F2272C86E1E2221215D405F51B5D5015616E1F6 |
|---|
| 0x33DEF8422879AA68482339BC65E5DCA9A5D77E80C5C0371DB13D3B88F4CCA8A89ED3CE85849231DD61 B35E4B47A3722317663859A2BE088C1BB6EEC87410DAF2 |
|---|
Подписанный XML-документ выглядит следующим образом:
Подписанный XML-документ в кодировке base64 выглядит следующим образом:
Б.3 Подпись XML-документа с использованием алгоритма, определенного в ГОСТ Р 34.10-2001, подраздел 6.1, в элементе SignatureMethod
Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в [7, подраздел 4.2].
Координата x ключа проверки подписи сертификата равна:
0x577E324FE70F2B6DF45C437A0305E5FD2C89318C13CD0875401A026075689584
0x601AEACABC660FDFB0CBC7567EBBA6EA8DE40FAE857C9AD0038895B916CCEB8F
Соответствующий ключ подписи d равен:
0x0B293BE050D0082BDAE785631A6BAB68F35B42786D6DDA56AFAF169891040F77
0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C
0xEF3E03620C2B0E87E43F503A839AB7868071EA28CA38AABD915D56A5F74400F4
Подписанный XML-документ выглядит следующим образом:
Подписанный XML-документ в кодировке base64 выглядит следующим образом:
Б.4 Подпись XML-документа с передачей X.509-сертификата в элементе KeyInfo
Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, приложение А.
Координата x ключа проверки подписи сертификата равна:
0x971566CEDA436EE7678F7E07E84EBB7217406C0B4747AA8FD2AB1453C3D0DFBA
0xAD58736965949F8E59830F8DE20FC6C0D177F6AB599874F1E2E24FF71F9CE643
Соответствующий ключ подписи d равен:
0xBFCF1D623E5CDD3032A7C6EABB4A923C46E43D640FFEAAF2C3ED39A8FA399924
0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C
0x054D1DABB161D63424F8DABB2800708B00F78DA7582699E8F2F0A521C7CE8144
Подписанный XML-документ выглядит следующим образом:
Подписанный XML-документ в кодировке base64 выглядит следующим образом:
Б.5 Подпись XML-документа с ключом проверки подписи ГОСТ Р 34.10-2012 256 бит в элементе DEREncodedKeyValue
Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, приложение А.
Координата x ключа проверки подписи сертификата равна:
0x971566CEDA436EE7678F7E07E84EBB7217406C0B4747AA8FD2AB1453C3D0DFBA
0xAD58736965949F8E59830F8DE20FC6C0D177F6AB599874F1E2E24FF71F9CE643
Соответствующий ключ подписи d равен:
0xBFCF1D623E5CDD3032A7C6EABB4A923C46E43D640FFEAAF2C3ED39A8FA399924
0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C
0x054D1DABB161D63424F8DABB2800708B00F78DA7582699E8F2F0A521C7CE8144
Подписанный XML-документ выглядит следующим образом:
Подписанный XML-документ в кодировке base64 выглядит следующим образом:
БИБЛИОГРАФИЯ
| УДК 681.3.06:006.354 | ОКС 35.040 |
| Ключевые слова: криптография, синтаксис, сообщения, электронная подпись | |