Сетевая рабочая группа Проект рекомендации RFC Предполагаемый статус: информационный Срок действия истекает: 2 декабря 2010 г. С. Леонтьев П. Смирнов А. Челпанов ООО «КРИПТО-ПРО» 31 мая 2010 г. Использование алгоритмов ГОСТ 28147-89, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94 в протоколах и форматах сообщений на основе XML draft-chudov-cryptopro-cpxmldsig-07 Аннотация В этом документе определяются способы использования российских государственных криптографических стандартов ГОСТ 28147-89, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94 для подписей и шифрования XML, WS-SecureConversation, WS-SecurityPolicy и WSTrust. Определен ряд универсальных идентификаторов ресурсов (URI) и элементов XML. Статус этого документа Этот проект рекомендации RFC представляется в полном соответствии с положениями стандартов BCP 78 и BCP 79. Проект рекомендации RFC – это рабочий документ Группы инженерной поддержки Интернета (IETF). При этом распространять рабочие документы в виде проектов рекомендаций RFC могут и другие группы. Список текущих проектов рекомендаций RFC находится по адресу http://datatracker.ietf.org/drafts/current/. Проекты рекомендаций RFC являются проектными документами, действительными в течение не более шести месяцев, которые в любое время могут быть обновлены, заменены или перекрыты другими документами. Проекты рекомендаций RFC нецелесообразно использовать в качестве справочного материала или ссылаться на них иначе, чем как на «незавершенный проект». Срок действия этого проекта рекомендации RFC истекает 02 декабря 2010 г. Уведомление об авторских правах © Доверенные лица IETF и лица, определенные как авторы документа, 2010. права защищены. Все Этот документ является подчиненным по отношению к стандарту BCP 78 и правовым положениям IETF, относящимся к документам IETF (http://trustee.ietf.org/licenseinfo), вступившим в силу на дату опубликования данного документа. Мы настоятельно рекомендуем внимательно ознакомиться с вышеуказанными документами, поскольку в них описываются ваши права и накладываемые ограничения в отношении настоящего документа. Часть кода, извлеченная из этого документа, должна включать в себя упрощенный текст лицензии BSD, как это описано в разделе 4.е Правовых положений и предоставляется без гарантий, как это описано в упрощенном тексте лицензии BSD. Леонтьев и другие [Страница 1] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Оглавление 1. 2. 3. 4. Введение . . . . . . . . . . . . . . . . . . . . . . . . 3 Криптографические алгоритмы ГОСТ . . . . . . . . . . . . . 3 Версия и пространства имен . . . . . . . . . . . . . . . . 3 Начальная часть схемы XML и замена DTD . . . . . . . . . . 4 4.1. Начальная часть схемы XML . . . . . . . . . . . . . . . 5 4.2. Замена DTD . . . . . . . . . . . . . . . . . . . . 5 5. Представление идентификаторов объекта . . . . . . . . . . . 5 6. Указание ГОСТ в подписи XML и при шифровании XML . . 5 6.1. Алгоритм по ГОСТ Р 34.11-94 в DigestMethod . . . . . . 6 6.2. Алгоритм HMAC по ГОСТ Р 34.11-94 в SignatureMethod . 6 6.3. Алгоритм по ГОСТ Р 34.10-2001 в SignatureMethod . . . . 7 6.4. Открытый ключ по ГОСТ Р 34.10-2001 в KeyValue . . . . . 8 6.4.1. Корневой элемент значения ключа . . . . . . . . . . .8 6.4.2. Параметры открытого ключа . . . . . . . . . . . . . . 9 6.5. Алгоритм согласования ключа на основе ГОСТ Р 34.10-2001 в AgreementMethod . . . . . . . . . . . . . . . . . . . . 10 6.6. Алгоритм передачи ключа на основе ГОСТ Р 34.10-2001 в EncryptionMethod . . . . . . . . . . . . . . . . . . . . . 10 6.7. Алгоритм ГОСТ 28147-89 в EncryptionMethod . . . . . . 11 6.8. Шифрование симметричных ключей . . . . . . . . . . . . . . . . . 12 6.8.1. Шифрование ключей по ГОСТ 28147-89 в EncryptionMethod . . . 12 6.8.2. Шифрование ключей CryptoPro в EncryptionMethod . . . . . . . 14 7. Указание ГОСТа в протоколах семейства WS-* . . . . . . . . . . . . . 15 7.1. Набор алгоритмов по ГОСТ для WS-SecurityPolicy . . . . . . . 15 7.2. Алгоритм создания производного ключа по ГОСТ для WS-SecureConversation 16 7.3. Механизм создания вычисляемого ключа по ГОСТ для WS-Trust . . .. 17 7.4. Использование WS-Trust для согласования соединения TLS с помощью набора алгоритмов ГОСТ . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8. Вопросы безопасности . . . . . . . . . . . . . . . . . . 18 9. Согласование с IANA . . . . . . . . . . . . . . . . . . . 19 9.1. Регистрация подпространства имен URN для urn:ietf:params:xml:ns:cpxmlsec . . . . . . . . . . . 19 9.2. Регистрация схемы . . . . . . . . . . . . . . . . . . 19 10. Ссылки . . . . . . . . . . . . . . . . . . . . . . . . . 19 10.1. Ссылки на нормативные документы . . . . . . . . . . . 19 10.2. Информационные ссылки . . . . . . . . . . . . . . . . 23 Приложение А. Составная схема XML . . . . . . . . . . . . . . 23 Приложение Б. Составная схема DTD . . . . . . . . . . . . . . 24 Приложение В. Примеры . . . . . . . . . . . . . . . . . . . . 25 В.1. Подписанный документ . . . . . . . . . . . . . . . . .25 Приложение Г. Благодарности . . . . . . . . . . . . . . . . . 26 Авторы и их адреса . . . . . . . . . . . . . . . . . . . . . . 27 Леонтьев и другие [Страница 2] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 1. Введение В настоящем документе определяются способы использования цифровых подписей и открытых ключей по ГОСТ Р 34.10-2001, хэширования по ГОСТ Р 34.11-94, алгоритмов шифрования по ГОСТ 28147-89 для подписи XML (подпись XMLDSIG), шифрования XML (XMLENC-CORE), в протоколах WS-SecureConversation (WS-SECURECONVERSATION), WSSecurityPolicy (WS-SECURITYPOLICY) и WS-Trust (WS-TRUST). В этом документе для указания соответствующих структур XML используется как схема XML([XML-SCHEMA-1], [XML-SCHEMA-2])(нормативная), так и схема DTD [XML] (информационная). Ключевые слова «ДОЛЖЕН» (MUST), «НЕ ДОЛЖЕН» (MUST NOT), «ТРЕБУЕТСЯ» (REQUIRED), «НУЖНО» (SHALL), «НЕ НУЖНО» (SHALL NOT), «СЛЕДУЕТ» (SHOULD), «НЕ СЛЕДУЕТ» (SHOULD NOT), «РЕКОМЕНДУЕТСЯ» (RECOMMENDED), «МОЖЕТ» (MAY) и «НЕОБЯЗАТЕЛЬНО» (OPTIONAL), встречающиеся в данном документе, следует интерпретировать в соответствии с положениями [KEYWORDS]. 2. Криптографические алгоритмы по ГОСТ Алгоритмы по ГОСТ Р 34.10-2001, ГОСТ Р 34.11-94 и ГОСТ 28147-89 разработаны Российским федеральным агентством правительственной связи и информации (ФАПСИ) и Всероссийским научно-исследовательским институтом стандартизации. Они описаны в [ГОСТ Р 341001], [ГОСТ Р 341194] ([ГОСТ 3431004] и [ГОСТ 3431195]) и [ГОСТ 28147]. РЕКОМЕНДУЕМЫЕ параметры для этих алгоритмов описаны в [CPALGS]. 3. Версия и пространства имен Эта спецификация не предусматривает явного указания номера версии в синтаксисе. Если в будущем понадобится указание версии, то будет необходимо использовать другое пространство имен. Идентификатор URI [RFC3986] пространства имен XML [XML-NS], который ДОЛЖЕН использоваться реализациями настоящей (датированной) спецификации: urn:ietf:params:xml:ns:cpxmlsec В настоящей спецификации используются такие внешние пространства имен XML (без разрывов строк, выбор любого префикса пространства имен является произвольным и семантически незначимым): http://www.w3.org/2000/09/xmldsig# Префикс: dsig Леонтьев и другие [Страница 3] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Спецификация: [XMLDSIG] http://www.w3.org/2001/04/xmlenc# Префикс: xenc Спецификация: [XMLENC-CORE] http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702 Префикс: sp Спецификация: [WS-SECURITYPOLICY] http://www.w3.org/ns/ws-policy Префикс: wsp Спецификация: [WS-POLICY] http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512 Префикс: wsc Спецификация: [WS-SECURECONVERSATION] http://docs.oasis-open.org/wss/2004/01/ oasis-200401-wss-wssecurity-secext-1.0.xsd Префикс: wsse Спецификация: [WS-SECURITY] http://docs.oasis-open.org/ws-sx/ws-trust/200512/ Префикс: wst Спецификация: [WS-TRUST] В остальных разделах этого документа элементы внешнего пространства имен помечены с помощью префиксов пространств имен, определенных выше. 4. Начальная часть XML-схемы и замена DTD Леонтьев и другие [Страница 4] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 4.1. Начальная часть XML-схемы Следующая начальная часть предназначена для использования с определениями схемы XML, приведенными в остальных разделах настоящего документа. <xs:schema xmlns:cpxmlsec="urn:ietf:params:xml:ns:cpxmlsec" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sp= "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" targetNamespace="urn:ietf:params:xml:ns:cpxmlsec" elementFormDefault="qualified" version="0.4"> 4.2. Замена DTD Чтобы включить соответствующий ГОСТу синтаксис подписи XML, определение элемента Key.ANY СЛЕДУЕТ заменить здесь[XMLDSIG]: <!ENTITY % KeyValue.ANY '| cpxmlsec:GOSTKeyValue'> 5. Представление идентификаторов объекта Идентификаторы объектов (Object Identifiers, OIDs) включаются в XML с помощью соответствующего значения URN, как это определено в [URNOID]. Для определения параметров алгоритма с помощью идентификаторов объектов должен использоваться следующий тип: <xs:simpleType name="ObjectIdentifierType"> <xs:restriction base="xs:anyURI"> <xs:pattern value= "urn:oid:(([0-1]\.[1-3]?\d)|(2\.\d+))(\.\d+)*" /> </xs:restriction> </xs:simpleType> 6. Указание ГОСТ в подписи XML и при шифровании XML В этом разделе определяются подробности использования алгоритмов по ГОСТ для подписи и шифрования XML в соответствии с [XMLDSIG] и [XMLENC-CORE]. Они в значительной мере опираются на синтаксис и пространства имен, определенные в [XMLDSIG] и [XMLENC-CORE]. Леонтьев и другие [Страница 5] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 6.1. Алгоритм ГОСТ Р 34.11-94 в DigestMethod Идентификатор для алгоритма хэширования по ГОСТ Р 34.11-94: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411 Узел dsig:DigestMethod может содержать дочерний узел cpxmlsec:ParametersR3411, задающий параметры для алгоритма ГОСТ Р 34.11-94. Узел cpxmlsec:ParametersR3411 содержит один идентификатор объекта, определенный в разделе 8.2 [CPALGS]. Если узел cpxmlsec:ParametersR3411 отсутствует, приложение должно получить параметры алгоритма из других источников. Если приложение не использует узел cpxmlsec:ParametersR3411, ему СЛЕДУЕТ использовать параметры, соответствующие id-GostR3411-94-CryptoProParamSet (см. раздел 11.2 в [CPALGS]). Определение схемы: <xs:element name="ParametersR3411" type="cpxmlsec:ObjectIdentifierType"/> Определение DTD: <!ELEMENT ParametersR3411 (#PCDATA) > Пример узла dsig:DigestMethod для ГОСТ Р 34.11-94: <dsig:DigestMethod dsig:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"> <!-- id-GostR3411-94-CryptoProParamSet --> <cpxmlsec:ParametersR3411>urn:oid:1.2.643.2.2.30.1< /cpxmlsec:ParametersR3411> </dsig:DigestMethod> Размер хэш-значения ГОСТ Р 34.11-94 составляет 256 бит. Содержимое элемента dsig:DigestValue должно быть результатом кодирования в формате base64 [RFC4648] этой строки битов, представленной в виде последовательности из 32 октетов. 6.2. Алгоритм HMAC по ГОСТ Р 34.11-94 в SignatureMethod ГОСТ Р 34.11-94 может также использоваться как алгоритм аутентификации сообщения на основе вычисления хэш-значения (HMAC) [HMAC], как это описано в разделе 6.3.1 [XMLDSIG]. Идентификатор: Леонтьев и другие [Страница 6] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411 Узел dsig:SignatureMethod cpxmlsec:ParametersR3411, В этом случае синтаксис и эквивалентны синтаксису и может содержать дочерний узел задающий параметры для алгоритма ГОСТ Р 34.11-94. правила интерпретации узла cpxmlsec:ParametersR3411 правилам интерпретации узла dsig:DigestMethod. Пример узла disg:SignatureMethod с заданным алгоритмом аутентификации сообщения на основе вычисления хэш-значения (HMAC) ГОСТ Р 34.11-94: <dsig:SignatureMethod dsig:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411"> <!-- id-GostR3411-94-CryptoProParamSet --> <cpxmlsec:ParametersR3411>urn:oid:1.2.643.2.2.30.1< /cpxmlsec:ParametersR3411> </dsig:SignatureMethod> Выходные данные алгоритма HMAC по ГОСТ Р 34.11-94 – это в конечном счете выходные данные алгоритма хэширования по ГОСТ Р 34.11-94. Данное значение должно быть закодировано в формате base64 [RFC4648] для указания в элементе dsig:SignatureValue так же, как и выходные данные алгоритма хэширования в разделе 6.1. 6.3. Алгоритм ГОСТ Р 34.10-2001 в SignatureMethod Входные данные алгоритма ГОСТ Р 34.10-2001 – это каноническое представление элемента dsig:SignedInfo, которое определено в разделе 3 документа [XMLDSIG]. Идентификатор алгоритма подписи ГОСТ Р 34.10-2001 (без переноса строки): urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411 Пример узла dsig:SignatureMethod со значением по ГОСТ Р 34.10-2001 (без переноса строки в значении атрибута): <dsig:SignatureMethod dsig:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001gostr3411" /> Подпись по ГОСТ Р 34.10-2001 – это значение, состоящее из 64 октетов, которое описано в разделе 2.2.2 [CPPK]. Содержимое элемента dsig:SignatureValue должно быть закодировано в формате base64 [RFC4648]. Леонтьев и другие [Страница 7] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 6.4. 6.4.1. Открытый ключ ГОСТ Р 34.10-2001 в KeyValue Корневой элемент значения ключа Открытый ключ по ГОСТ Р 34.10-2001 может быть передан в узле cpxmlsec:GOSTKeyValue. Он включается в узел dsig:KeyValue таким же образом, как dsig:RSAKeyValue или xenc:DHKeyValue. Узел cpxmlsec:GOSTKeyValue состоит из необязательного дочернего узла cpxmlsec:PublicKeyParameters и обязательного дочернего узла cpxmlsec:PublicKey. Если узел cpxmlsec:PublicKeyParameters отсутствует, приложение должно получить параметры из других источников. Определение схемы: <xs:element name="GOSTKeyValue" type="cpxmlsec:KeyValueType"/> <xs:complexType name="KeyValueType"> <xs:sequence> <xs:element name="PublicKeyParameters" type="cpxmlsec:PublicKeyParametersType" minOccurs="0"/> <xs:element name="PublicKey" type="xs:base64Binary"/> </xs:sequence> </xs:complexType> Определение DTD: <!ELEMENT GOSTKeyValue ( PublicKeyParameters?, PublicKey) > <!ELEMENT PublicKey (#PCDATA) > Если приложение не использует узел cpxmlsec:PublicKeyParameters, ему СЛЕДУЕТ использовать параметры, определенные набором DefaultPublicKeyParameters. Леонтьев и другие [Страница 8] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. DefaultPublicKeyParameters: <cpxmlsec:PublicKeyParameters> <!-- id-GostR3410-2001-CryptoPro-A-ParamSet --> <cpxmlsec:publicKeyParamSet>urn:oid:1.2.643.2.2.35.1< /cpxmlsec:publicKeyParamSet> <!-- id-GostR3411-94-CryptoProParamSet --> <cpxmlsec:digestParamSet>urn:oid:1.2.643.2.2.30.1</ cpxmlsec:digestParamSet> <!-- id-Gost28147-89-CryptoPro-A-ParamSet --> <cpxmlsec:encryptionParamSet>urn:oid:1.2.643.2.2.31.1</ cpxmlsec:encryptionParamSet> </cpxmlsec:PublicKeyParameters> 6.4.2. Параметры открытого ключа Узел cpxmlsec:PublicKeyParameters содержит три идентификатора объекта: cpxmlsec:publicKeyParamSet, cpxmlsec:digestParamSet и необязательный идентификатор cpxmlsec:encryptionParamSet. Значения параметров, соответствующие этим идентификаторам объектов, можно найти в[CPALGS]. Определение схемы: <xs:complexType name="PublicKeyParametersType"> <xs:sequence> <xs:element name="publicKeyParamSet" type="cpxmlsec:ObjectIdentifierType"/> <xs:element name="digestParamSet" type="cpxmlsec:ObjectIdentifierType"/> <xs:element name="encryptionParamSet" type="cpxmlsec:ObjectIdentifierType" minOccurs="0"/> </xs:sequence> </xs:complexType> Определение DTD: <!ELEMENT PublicKeyParameters ( publicKeyParamSet, digestParamSet, encryptionParamSet?) > <!ELEMENT publicKeyParamSet (#PCDATA) > <!ELEMENT digestParamSet (#PCDATA) > <!ELEMENT encryptionParamSet (#PCDATA) > Леонтьев и другие [Страница 9] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 6.5. Алгоритм согласования ключа на основе ГОСТ Р 34.10-2001 в AgreementMethod Алгоритм согласования ключа, основанный на открытых ключах по ГОСТ Р 34.10-2001 (см. раздел 5 [CPALGS]), включает в себя создание производной информации от общей секретной информации с использованием ключей отправителя и получателя. Идентификатор алгоритма согласования ключа, основанного на ГОСТ Р 34.10-2001: urn:ietf:params:xml:ns:cpxmlsec:algorithms:agree-gost2001 Пример узла AgreementMethod, задающего алгоритм согласования ключа, основанный на ГОСТ Р 34.10-2001: <xenc:AgreementMethod xenc:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:agree-gost2001"> <xenc:KA-Nonce>...</xenc:KA-Nonce> <xenc:OriginatorKeyInfo> <dsig:X509Data><dsig:X509Certificate> ... </dsig:X509Certificate></dsig:X509Data> </xenc:OriginatorKeyInfo> <xenc:RecipientKeyInfo><dsig:KeyValue> ... </dsig:KeyValue></xenc:RecipientKeyInfo> </xenc:AgreementMethod> Общий ключевой материал для алгоритма, основанного на ГОСТ Р 34.10-2001, следует вычислять как результат функции ВКО ГОСТ Р 34.10-2001 (см. раздел 5.2 [CPALGS]), которая генерирует ключ шифрования ключей по ГОСТ (KEK) с помощью двух пар ключей по ГОСТ Р 34.10-2001 и ключевого материала пользователя. При использовании ключевого материала пользователя узел xenc:KA-Nonce метода xenc:AgreementMethod содержит его 64-битное значение, закодированное в формате base64. 6.6. Алгоритм передачи ключа на основе ГОСТ Р 34.10-2001 в EncryptionMethod Алгоритм передачи ключа, основанный на ВКО ГОСТ Р 34.10-2001 (см. [CPALGS]) является алгоритмом шифрования с открытым ключом, который ДОЛЖЕН использоваться только для шифрования или расшифрования ключа. Идентификатор алгоритма передачи ключа, основанный на ВКО ГОСТ Р 34.10-2001: urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001 Леонтьев и другие [Страница 10] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Пример узла EncryptedKey для передачи ключа, основанного на ВКО ГОСТ Р 34.102001: <xenc:EncryptedKey> <xenc:EncryptionMethod xenc:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001" /> <dsig:KeyInfo> <dsig:X509Data><dsig:X509Certificate> ... </dsig:X509Certificate></dsig:X509Data> </dsig:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> Значение CipherValue для такого зашифрованного ключа – это результат кодирования в DER (см. [X.208-88]) структуры GostR3410-KeyTransport, (см. раздел 4.2.1 [CPCMS]), закодированный в свою очередь в формате base64. 6.7. Алгоритм по ГОСТ 28147-89 в EncryptionMethod Идентификатор для алгоритма симметричного шифрования по ГОСТ Р 28147-89: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147 Узел xenc:EncryptionMethod может содержать дочерний узел cpxmlsec:Parameters28147, задающий параметры для алгоритма по ГОСТ Р 28147-89. cpxmlsec:Parameters28147 определяет набор параметров, соответствующих Gost2814789-ParamSetParameters (см. раздел 8.1 [CPALGS]). Режим шифрования определяется параметром mode (режим) структуры Gost28147-89ParamSetParameters. РЕКОМЕНДУЕТСЯ использовать режимы CFB и CNT. Если узел cpxmlsec:Parameters28147 отсутствует, приложение должно получить параметры алгоритма из других источников. Если приложение не использует узел cpxmlsec:Parameters28147, ему СЛЕДУЕТ использовать параметры, соответствующие id-Gost28147-89-CryptoPro-A-ParamSet (см. раздел 10.2 в [CPALGS]). Определение схемы: <xs:element name="Parameters28147" type="cpxmlsec:ObjectIdentifierType" /> Леонтьев и другие [Страница 11] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Определение DTD: <!ELEMENT Parameters28147 (#PCDATA) > Пример узла xenc:EncryptionMethod ГОСТ 28147-89: <xenc:EncryptionMethod dsig:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"> <!-- id-Gost28147-89-CryptoPro-A-ParamSet --> <cpxmlsec:Parameters28147>urn:oid:1.2.643.2.2.31.1< /cpxmlsec:Parameters28147> </xenc:EncryptionMethod> В алгоритме шифрования по ГОСТ 28147-89 используются 256-битный ключ, 64-битный вектор инициализации(IV), а также необязательные параметры. К тексту, полученному в результате шифрования, добавляется префикс «IV». При включении в выходные данные XML он кодируется в формате base64. 6.8. Шифрование симметричных ключей Рассматриваемые в этом разделе алгоритмы шифрования симметричных ключей - это алгоритмы шифрования общего секретного ключа, которые ДОЛЖНЫ использоваться только для шифрования и расшифровывания симметричных ключей. 6.8.1. Шифрование ключей по ГОСТ 28147-89 в EncryptionMethod Алгоритм шифрования ключей по ГОСТ 28147-89 (GOST 28147-89 Key Wrap) зашифровывает ключ (зашифрованный ключ, WK) в соответствии с ГОСТ 28147-89 (как указано в разделах 6.1, 6.2 [CPALGS]). Примечание. Этот алгоритм НЕ ДОЛЖЕН использоваться без алгоритма согласования ключей, потому что такой зашифрованный ключ является постоянным для каждой пары ключей для шифрования. Шифрование множества разных ключей с помощью одного и того же ключа может привести к раскрытию этого ключа. Совместно с алгоритмом шифрования ключей ГОСТ 28147-89 (GOST 28147-89 Key Wrap), определенным в настоящей спецификации, можно использовать только алгоритм согласования ключей, основанный на ГОСТ Р 34.10-2001 (см. раздел 6.5). Идентификатор для алгоритма шифрования ключей по ГОСТ 28147-89 (GOST 28147-89 Key Wrap): urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-gost Значение CipherValue для такого зашифрованного ключа – это результат кодирования в DER (см. [X.208-88]) структуры GostR3410-KeyWrap, закодированный в свою очередь в формате base64. Леонтьев и другие [Страница 12] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Структура языка ASN.1: GostR3410-KeyWrap ::= SEQUENCE { encryptedKey Gost28147-89-EncryptedKey, encryptedParameters Gost28147-89-KeyWrapParameters } Пример узла EncryptedData, задающего алгоритм шифрования ключей ГОСТ 28147-89: <xenc:EncryptedData> <xenc:EncryptionMethod dsig:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147" /> <dsig:KeyInfo> <xenc:EncryptedKey> <xenc:EncryptionMethod xenc:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-gost" /> <dsig:KeyInfo> <xenc:AgreementMethod xenc:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:agree-gost2001"> <xenc:KA-Nonce>...</xenc:KA-Nonce> <xenc:OriginatorKeyInfo> <dsig:X509Data><dsig:X509Certificate> ... </dsig:X509Certificate></dsig:X509Data> </xenc:OriginatorKeyInfo> <xenc:RecipientKeyInfo><dsig:KeyValue> ... </dsig:KeyValue></xenc:RecipientKeyInfo> </xenc:AgreementMethod> </dsig:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> </dsig:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xend:EncryptedData> Параметры Gost28147-89-KeyWrapParameters описаны в разделе 4.1.1 [CPCMS]. Значение узла xenc:KA-Nonce узла xenc:AgreementMethod ДОЛЖНО использоваться как ключевой материал пользователя. Полученный зашифрованный ключ (wrapped key, WK) помещается в поле EncryptedKey структуры Gost28147-89-EncryptedKey, его значение mac (CEK_MAC) – в поле macKey структуры Gost28147-89-EncryptedKey. Поле ukm в структуре Gost28147-89KeyWrapParameters ДОЛЖНО отсутствовать. Леонтьев и другие [Страница 13] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 6.8.2. Шифрование ключей CryptoPro в EncryptionMethod Алгоритм шифрования ключей CryptoPro (CryptoPro Key Wrap) шифрует ключ (зашифрованный ключ, WK) с использованием механизма, указанного в разделах 6.3, 6.4 [CPALGS]. Идентификатор для алгоритмов шифрования ключей CryptoPro (CryptoPro Key Wrap): urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-cp Значение CipherValue для такого зашифрованного ключа – результат кодирования в DER (см. [X.208-88]) структуры GostR3410-KeyWrap (см. раздел 6.8.1), закодированный в свою очередь в формате base64 . Пример узла EncryptedData, задающего алгоритм шифрования ключей CryptoPro (CryptoPro Key Wrap): <xenc:EncryptedData> <xenc:EncryptionMethod dsig:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147" /> <dsig:KeyInfo> <xenc:EncryptedKey> <xenc:EncryptionMethod xenc:Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-cp" /> <dsig:KeyInfo> <dsig:KeyName>John Smith</dsig:KeyName> </dsig:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> </dsig:KeyInfo> <xenc:CipherData> <xenc:CipherValue>...</xenc:CipherValue> </xenc:CipherData> </xend:EncryptedData> Полученный зашифрованный ключ (wrapped key, WK) помещается в поле encryptedKey структуры Gost28147-89-EncryptedKey, его значение mac (CEK_MAC) – в поле macKey структуры Gost28147-89-EncryptedKey. Если алгоритм шифрования ключей CryptoPro (CryptoPro Key Wrap) сочетается с алгоритмом согласования ключей, то значение узла xenc:KA-Nonce узла xenc:AgreementMethod ДОЛЖНО использоваться как ключевой материал пользователя. Поле ukm в типе Gost28147-89-KeyWrapParameters должно отсутствовать. Леонтьев и другие [Страница 14] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Примечание. Данная спецификация определяет единственный алгоритм согласования ключей, допускаемый к использованию совместно с алгоритмом шифрования ключей CryptoPro (CryptoPro Key Wrap) - алгоритм, основанный на ГОСТ Р 34.10-2001 (см. раздел 6.5). Если алгоритм шифрования ключей CryptoPro (CryptoPro Key Wrap) не сочетается с алгоритмом согласования ключей, то в типе Gost28147-89-KeyWrapParameters ДОЛЖНО присутствовать поле ukm. 7. Указание ГОСТа в протоколах семейства WS-* В этом разделе определяются подробности использования алгоритмов ГОСТ с WSSecureConversation [WS-SECURECONVERSATION], WS-SecurityPolicy [WSSECURITYPOLICY] и WS-Trust [WS-TRUST]. 7.1. Набор алгоритмов по ГОСТ для WS-SecurityPolicy В настоящей спецификации определяется новое возможное значение для свойства [Algorithm Suite] привязки безопасности (Security Binding) (см. раздел 6.1 [WSSECURITYPOLICY]). Новое значение – BasicGost. Набор алгоритмов BasicGost определяет следующие значения для операций и свойств (без разрывов строк в идентификаторах URI): [Sym Sig] urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411 [Asym Sig] urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001gostr3411 [Dig] urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411 [Enc] urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147 [Sym KW] urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-cp [Asym KW] urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001 [Comp Key] urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411 [Enc KD] urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411 [Sig KD] urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411 [Min SKL] 256 Леонтьев и другие [Страница 15] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. [Max SKL] 256 [Min AKL] 512 [Max AKL] 512 Примечание. Определения алгоритмов [Comp Key], [Enc KD] и [Sig KD] см. в разделе 7.2 Чтобы указать требование использовать определенный выше набор алгоритмов по ГОСТ, соответствующие реализации ДОЛЖНЫ помещать узел cpxmlsec:BasicGost в узел sp:AlgorithmSuite (см. раздел 7.1 [WS-SECURITYPOLICY]). Определение схемы: <xs:element name="BasicGost" type="sp:QNameAssertionType"/> Определение DTD: <!ELEMENT BasicGost EMPTY > Пример набора алгоритмов ГОСТ в выражении sp:AlgorithmSuite: <sp:AlgorithmSuite> <wsp:Policy> <cpxmlsec:BasicGost/> </wsp:Policy> </sp:AlgorithmSuite> 7.2. Алгоритм создания производного ключа по ГОСТ для WS-SecureConversation Настоящая спецификация определяет новое возможное значение атрибута алгоритма узла wsc:DerivedKeyToken (см. раздел 7 [WS-SECURECONVERSATION]). Новый идентификатор алгоритма создания производного ключа: urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411 Леонтьев и другие [Страница 16] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Пример алгоритма создания производного ключа по ГОСТ в узле wsc:DerivedKeyToken: <wsc:DerivedKeyToken Algorithm= "urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411"> <wsse:SecurityTokenReference>...</wsse:SecurityTokenReference> <wsc:Nonce>...</wsc:Nonce> </wsc:DerivedKeyToken> Для получения ключей алгоритм создания производного ключа по ГОСТ использует псевдослучайную функцию P_GOSTR3411 (см. раздел 4 [CPALGS]) точно так же, как и функция P_SHA-1, используется в разделе 7 [WS-SECURECONVERSATION]. 7.3. Механизм создания вычисляемого ключа ГОСТ для WS-Trust Настоящая спецификация определяет новое возможное значение для узла wst:ComputedKey (см. раздел 4.4.4 [WS-Trust]). Новый идентификатор механизма создания вычисляемого ключа: urn:ietf:params:xml:ns:cpxmlsec:algorithms:ck-p-gostr3411 Пример механизма создания вычисляемого ключа ГОСТ в узле wst:ComputedKey (без разрывов строк): <wst:ComputedKey> urn:ietf:params:xml:ns:cpxmlsec:algorithms:ck-p-gostr3411 </wst:ComputedKey> Для вычисления ключа механизм создания вычисляемого ключа ГОСТ использует псевдослучайную функцию P_GOSTR3411 (см. раздел 4 [CPALGS]) подобно тому, как функция P_SHA-1 используется в разделе 4.4.4 [WS-Trust]. ТРЕБУЕТСЯ, чтобы значения EntREQ и EntRES были строками длиной 256 бит. 7.4. Использование WS-Trust для согласования соединения TLS с помощью набора алгоритмов ГОСТ В настоящей спецификации определяется способ использования WS-Trust ([WS-TRUST]) для согласования соединения TLS (TLS Handshake, см. [TLS]) и установления безопасного сеанса для набора алгоритмов шифрования по ГОСТ (GOST Algorithm Suite). WS-Trust может использоваться для согласования соединения TLS, как это указано в [WS-TRUST-TLS]. Итогом работы обсуждаемого протокола является новый сессионный ключ, выпущенный с помощью безопасной сессии, установленной посредством согласования соединения TLS. Выпущенный сессионный ключ предназначен для обеспечения дальнейшего взаимодействия с помощью WS-Security ([WS-SECURITY]). Леонтьев и другие [Страница 17] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Если приложению необходимо использовать набор алгоритмов по ГОСТ после выполнения согласования соединения TLS посредством WS-Trust, то оно ДОЛЖНО использовать один из наборов алгоритмов шифрования ГОСТ 28147-89 для TLS (см. [draft.CPTLS]). Базовая последовательность действий согласования TLS через WS-Trust, определенная в настоящей спецификации, соответствует [WS-TRUST-TLS], но имеются некоторые отличия, указанные ниже, которые НУЖНО учитывать. Абзац R4305 (см. раздел 4.3 [WS-TRUST-TLS]) ДОЛЖЕН быть заменен следующим текстом: The responder is responsible for issuing the key associated with the TLSNego session (Ответственность за выдачу ключа, связанного с сеансом TLSNego, лежит на отвечающей стороне). Если инициирующая сторона в исходном сообщении RST запросила свойства сгенерированного ключа (например, размер ключа), то СЛЕДУЕТ генерировать ключ так, чтобы он соответствовал этим требованиям. Выпущенный ключ ДОЛЖЕН быть возвращен обратно инициирующей стороне с помощью элемента wst:RequestedProofToken, кроме того, он ДОЛЖЕН быть защищен с помощью алгоритма шифрования ключей CryptoPro (CryptoPro Key Wrap) (см. раздел 6.3 [CPALGS]), где server_write_key (см. раздел 6.3 [TLS]) является шифрующим ключом. Зашифрованный ключ содержится в элементах <xenc:CipherData><xenc:CipherValue>...</xenc:CipherValue></xenc:CipherData> узла xenc:EncryptedKey. Алгоритмы по ГОСТ Р 34.11-94 и P_GOSTR3411 ДОЛЖНЫ использоваться соответственно вместо алгоритмов SHA1 и PSHA1 для вычисления удостоверения (authenticator) (см. раздел 4.9 [WS-TRUST-TLS]). 8. Вопросы безопасности Приложения, совместимые с настоящим документом, ДОЛЖНЫ использовать уникальные значения ukm и iv. Получатели МОГУТ проверять уникальность полей ukm и iv, указанных отправителем. Приложениям СЛЕДУЕТ удостовериться в том, что значения подписей, открытые ключи субъекта и параметры алгоритма соответствуют стандарту [GOSTR341001], перед их использованием. Параметры криптографического алгоритма влияют на его стойкость. Использование параметров, не перечисленных в [CPALGS], НЕ РЕКОМЕНДУЕТСЯ (см. раздел «Вопросы безопасности» [CPALGS]). НЕ РЕКОМЕНДУЕТСЯ использовать один и тот же ключ для подписи и для создания производного ключа. НЕ РЕКОМЕНДУЕТСЯ использовать шифрование XML без подписи XML или HMAC. Леонтьев и другие [Страница 18] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 9. Согласование с IANA В настоящем документе используются универсальные имена ресурсов (URN) для описания пространств имен XML и схем XML, соответствующих механизму регистрации, описанному в [RFC3688]. IANA зарегистрировала два значения универсального идентификатора ресурса (URI). 9.1. Регистрация подпространства имен URN для urn:ietf:params:xml:ns:cpxmlsec URI: urn:ietf:params:xml:ns:cpxmlsec Контактные данные лица, подающего заявление о регистрации: Михаил В. Павлов ООО «КРИПТО-ПРО» Сущевский вал, 16/5 Москва, 127018 Россия Телефон: +7 (495) 780 4820 Факс: +7 (495) 660 2330 Эл. адрес: pav@CryptoPro.ru Сайт: http://www.CryptoPro.ru XML: отсутствует. XML. 9.2. Адреса пространства имен не представляют собой спецификацию Регистрация схемы URI: urn:ietf:params:xml:schema:cpxmlsec Контактные данные лица, подающего заявление о регистрации: Михаил В. Павлов ООО «КРИПТО-ПРО» Сущевский вал, 16/5 Москва, 127018 Россия Телефон: +7 (495) 780 4820 Факс: +7 (495) 660 2330 Эл. адрес: pav@CryptoPro.ru Сайт: http://www.CryptoPro.ru XML: XML можно найти в Приложении А. 10. 10.1. Ссылки Нормативные ссылки [CPALGS] В. Попов, И. Курепкин и С. Леонтьев, «Дополнительные алгоритмы шифрования для использования с алгоритмами по ГОСТ 28147-89, ГОСТ Р 34.10-94, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94» (Popov, V., Kurepkin, I., and S. Leontiev, «Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.1094, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms»), RFC 4357, январь 2006 г. Леонтьев и другие [Страница 19] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. [CPCMS] С. Леонтьев и Г. Чудов, «Использование алгоритмов по ГОСТ 28147-89, ГОСТ Р 34.11-94, ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001 в криптографических сообщениях формата CMS» (Leontiev, S. and G. Chudov, «Using the GOST 28147-89, GOST R 34.11-94, GOST R 34.10-94, and GOST R 34.10-2001 Algorithms with Cryptographic Message Syntax (CMS)»), RFC 4490 , май 2006 г. [CPPK] С. Леонтьев и Д. Шефановский, «Использование алгоритмов по ГОСТ Р 34.1094, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94 в профиле сертификата и списка отзыва сертификатов (CLR) инфраструктуры открытых ключей Интернет X.509» (Leontiev, S. and D. Shefanovski, «Using the GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms with the Internet X.509 Public Key Infrastructure Certificate and CRL Profile»), RFC 4491, май 2006 г. [ГОСТ 28147] Государственный комитет СССР по стандартам, «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. Государственный стандарт СССР (на русском языке)», ГОСТ 2814789, 1989. [ГОСТ 3431004] Межгосударственный совет по стандартизации, метрологии и сертификации Содружества Независимых Государств (EASC), Минск, «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма (на русском языке)», ГОСТ 34.3102004, 2004. [ГОСТ 3431195] Межгосударственный совет по стандартизации, метрологии и сертификации Содружества Независимых Государств (EASC), Минск, «Информационная технология. Криптографическая защита информации. Функция хэширования (на русском языке)», ГОСТ 34.311-95, 1995. [ГОСТ Р 341001] Государственный комитет Российской Федерации по стандартизации, «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. Государственный стандарт Российской Федерации (на русском языке)», ГОСТ Р 34.10-2001, 2001. [ГОСТ Р 341194] Государственный комитет Российской Федерации по стандартизации, «Информационная технология. Криптографическая защита информации. Функция хэширования. Государственный стандарт Российской Федерации (на русском языке)», ГОСТ Р 34.11-94, 1994. [HMAC] Г. Кравчик, М. Белларе и Р. Каннети, «HMAC: хэширование с помощью ключей для проверки подлинности сообщений» (Krawczyk, H., Bellare, M., and R. Canetti, «HMAC: Keyed-Hashing for Message Authentication», RFC 2104, февраль 1997 г. Леонтьев и другие [Страница 20] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. [KEYWORDS] С. Браднер, «Ключевые слова для использования в документах RFC, указывающие уровень требований» (Bradner, S., Key words for use in RFCs to Indicate Requirement Levels), стандарт BCP 14, RFC 2119, март 1997 г. [RFC3688] М. Миллинг «Реестр XML IETF» (Mealling, M., The IETF XML Registry), стандарт BCP 81, RFC 3688, январь 2004 г. [RFC3986] Т. Бернерс-Ли, Р. Филдинг и Л. Мастинер, «Универсальный идентификатор ресурса (URI)» (Berners-Lee, T., Fielding, R., and L. Masinter, Uniform Resource Identifier (URI): Generic Syntax, STD 66, RFC 3986, январь 2005 г. [RFC4648] С. Джозефсон, «Кодирование данных в форматах Base16, Base32 и Base64» (Josefsson, S., The Base16, Base32, and Base64 Data Encodings), RFC 4648, октябрь 2006 г. [TLS] Т. Диркс и Е. Рескорла «Протокол TLS версии 1.2» (Dierks, T. and E. Rescorla, The Transport Layer Security(TLS) Protocol Version 1.2), RFC 5246, август 2008 г. [WS-POLICY] А. Ведамуту, Д. Оркард, Ф. Хирш, М. Хондо, П. Ендлури, Т. Бубез, Ялиналп «Политика служб Интернет 1.5 - инфраструктура» (Vedamuthu, A., Orchard, D., Hirsch, F., Hondo, M., Yendluri, P., Boubez, T., and Yalinalp, Web Services Policy 1.5 – Framework), W3C REC-ws-policy, сентябрь 2007 г., <http://www.w3.org/TR/ws-policy/>. [WS-SECURECONVERSATION] К. Лоуренс и К. Калер, «Безопасный обмен данными WSSecureConversation версии 1.3» (Lawrence, K. and C. Kaler, WS-SecureConversation 1.3), OASIS Standard ws-secureconversation-1.3-os, март 2007 г., <http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/wssecureconversation-1.3-os.html>. [WS-SECURITY] К. Лоуренс и К. Калер «Безопасность служб Интернет: безопасность сообщений SOAP версии 1.1» (Lawrence, K. and C. Kaler, Web Services Security: SOAP Message Security 1.1 (WS-Security 2004)), OASIS Standard wss-v1.1-spec-osSOAPMessageSecurity, февраль 2006 г., <http://docs.oasis-open.org/wss/v1.1/wssv1.1-spec-os-SOAPMessageSecurity.pdf>. [WS-SECURITYPOLICY] К. Лоуренс и К. Калер, «WS-SecurityPolicy версии 1.2» (Lawrence, K. and C. Kaler, WS-SecurityPolicy 1.2), OASIS Standard ws-securitypolicy-1.2-specos, июль 2007 г., <http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ ws-securitypolicy-1.2-spec-os.html>. [WS-TRUST] К. Лоуренс и К. Калер, «WS-Trust версии 1.3» (Lawrence, K. and C. Kaler, WS-Trust 1.3), OASIS Standard ws-trust-1.3-os, март 2007 г., <http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html>. Леонтьев и другие [Страница 21] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. [WS-TRUST-TLS] Дж. Александер, Г. Делла-Либера, В. Гайяла, К. Гаврилюк, К. Калер, М. Макинтош, А. Надалин, Б. Рич и Т. Вишванат, «Указания по применению: использование WS-Trust для согласования соединения TLS» (Alexander, J., DellaLibera, G., Gajjala, V., Gavrylyuk, K., Kaler, C., McIntosh, M., Nadalin, A., Rich, B., and T. Vishwanath, Application Note: Using WS-Trust for TLS Handshake, сентябрь 2007 г., <http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/wstrust/WSTrustForTLS-final.pdf>. [X.208-88] Международный консультативный комитет по телеграфии и телефонии, «Спецификация языка Abstract Syntax Notation One (ASN.1)», Рекомендация МККТТ X.208, ноябрь 1988 г. [XML-NS] Т. Брэй, Д. Холландер, А. Лэймэн и Р. Тобин «Пространства имен в XML (издание второе)» (Bray, T., Hollander, D., Layman, A., and R. Tobin, Namespaces in XML (Second Edition)), W3C REC-xml-names, август 2006 г., <http://www.w3.org/TR/REC-xml-names-20060816>. [XML-SCHEMA-1] Н. Томпсон, Д. Бич, М. Малоуни и Н. Мендельсон, «Схема XML, чаcть 1: вторая редакция структур» (Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn, XML Schema Part 1: Structures Second Edition), W3C REC-xmlschema1, октябрь 2004 г., <http://www.w3.org/TR/2004/REC-xmlschema-120041028/>. [XML-SCHEMA-2] П. Байрон и А. Малотра, «Схема XML, чаcть 2: вторая редакция типов данных» (Biron, P. and A. Malhotra, XML Schema Part 2: Datatypes Second Edition), W3C REC-xmlschema-2, октябрь 2004 г., <http://www.w3.org/TR/2004/RECxmlschema-2-20041028/>. [XMLDSIG] Д. Истлэйк, Дж. Ригль и Д. Соло, «Синтаксис и обработка подписей XML» (Eastlake, D., Reagle, J., and D. Solo, (Extensible Markup Language) XML-Signature Syntax and Processing), RFC 3275, март 2002 г. [XMLENC-CORE] Д. Истлэйк и Дж. Ригль, «Синтаксис и обработка шифрования XML» (Eastlake, D. and J. Reagle, XML Encryption Syntax and Processing), W3C Candidate Recommendation xmlenc-core, август 2002 г., <http://www.w3.org/TR/xmlenc-core/>. [draft.CPTLS] А. Афанасьев, Н. Никишин, Б. Изотов, Э. Минаева, С. Муругов, И. Устинов, А. Эркин, Г. Чудов и С. Леонтьев, «Набор алгоритмов шифрования ГОСТ 28147-89 для обеспечения безопасности транспортного уровня (TLS)», draft-chudovcryptopro-cptls-04 (незавершенная работа), декабрь 2008 г. Леонтьев и другие [Страница 22] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. 10.2. Информационные ссылки [RFC4134] П. Хоффман, «Примеры сообщений формата S/MIME» (Hoffman, P., Examples of S/MIME Messages), RFC 4134, июль 2005 г. [URNOID] М. Миллинг «Пространство имен идентификаторов объектов URN» (Mealling, M., A URN Namespace of Object Identifiers), RFC 3061, февраль 2001 г. [XML] Т. Брэй , Дж. Паоли, К. Сперберг-Маккуин, Е. Малер и Ф. Юрго «Расширяемый язык разметки (XML) 1.0 (издание четвертое)» (Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and F. Yergeau, Extensible Markup Language (XML) 1.0 (Fourth Edition)), W3C REC-xml, август 2006 г., <http://www.w3.org/TR/2006/REC-xml-20060816>. Приложение А. Полная XML-схема <?xml version="1.0" encoding="UTF-8"?> <!-- Declare helper entity to avoid overrunning right margin of RFC text while importing WS-SecurityPolicy schema.--> <!DOCTYPE schema [ <!ENTITY ws-securitypolicyuri "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> ]> <xs:schema xmlns:cpxmlsec="urn:ietf:params:xml:ns:cpxmlsec" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sp= "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" targetNamespace="urn:ietf:params:xml:ns:cpxmlsec" elementFormDefault="qualified" version="0.4"> <xs:import namespace= "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" schemaLocation= "&ws-securitypolicyuri;/ws-securitypolicy-1.2.xsd" /> <xs:simpleType name="ObjectIdentifierType"> <xs:restriction base="xs:anyURI"> <xs:pattern value="urn:oid:(([0-1]\.[1-3]?\d)|(2\.\d+))(\.\d+)*" /> </xs:restriction> </xs:simpleType> <xs:element name="ParametersR3411" Леонтьев и другие [Страница 23] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. type="cpxmlsec:ObjectIdentifierType" /> <xs:element name="GOSTKeyValue" type="cpxmlsec:KeyValueType" /> <xs:complexType name="KeyValueType"> <xs:sequence> <xs:element name="PublicKeyParameters" type="cpxmlsec:PublicKeyParametersType" minOccurs="0"/> <xs:element name="PublicKey" type="xs:base64Binary" /> </xs:sequence> </xs:complexType> <xs:complexType name="PublicKeyParametersType"> <xs:sequence> <xs:element name="publicKeyParamSet" type="cpxmlsec:ObjectIdentifierType" /> <xs:element name="digestParamSet" type="cpxmlsec:ObjectIdentifierType" /> <xs:element name="encryptionParamSet" type="cpxmlsec:ObjectIdentifierType" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:element name="Parameters28147" type="cpxmlsec:ObjectIdentifierType" /> <xs:element name="BasicGost" type="sp:QNameAssertionType"/> </xs:schema> Приложение Б. Полная схема DTD <!ELEMENT GOSTKeyValue ( PublicKeyParameters?, PublicKey) > <!ELEMENT PublicKey (#PCDATA) > <!ELEMENT PublicKeyParameters ( publicKeyParamSet, digestParamSet, encryptionParamSet?) > <!ELEMENT publicKeyParamSet (#PCDATA) > <!ELEMENT digestParamSet (#PCDATA) > <!ELEMENT encryptionParamSet (#PCDATA) > <!ELEMENT Parameters28147 (#PCDATA) > <!ELEMENT ParametersR3411 (#PCDATA) > Леонтьев и другие [Страница 24] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. <!ELEMENT BasicGost EMPTY > Приложение В. Примеры В настоящем документе примеры хранятся в том же формате, что и в документе [RFC4134], их можно извлечь с помощью той же программы. Если вы хотите извлечь примеры без использования программы, скопируйте все строки между маркерами «|>» и «|<», удалите все разрывы страниц и маркер «|» в первом столбце каждой строки. В результате вы получите правильный массив двоичных данных в формате Base64, который можно обработать с помощью любого декодера Base64. В.1. Подписанный документ В этом примере содержится подписанный документ XML, использующий образец сертификата из раздела 4.2 [CPPK]. Леонтьев и другие [Страница 25] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. |>XmlDocSigned2001.xml |PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48Q3J5cHRvUHJv |WE1MIFNpZ25lZD0idHJ1ZSI+SGVyZSBpcyBzb21lIGRhdGEgdG8gc2lnbi48U2ln |bmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcj |Ij48U2lnbmVkSW5mbz48Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09 |Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1 |IiAvPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y |Zy8yMDAxLzA0L3htbGRzaWctbW9yZSNnb3N0cjM0MTAyMDAxLWdvc3RyMzQxMSIg |Lz48UmVmZXJlbmNlIFVSST0iIj48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29y |aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3Bl |ZC1zaWduYXR1cmUiIC8+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3Jp |dGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNnb3N0 |cjM0MTEiIC8+PERpZ2VzdFZhbHVlPi9Kd3RRc3Z5NWsvUjBWZUx6ZG0ySWlqUEJ0 |U0o1cEpSalQ5RlVRSEV5VGc9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1Np |Z25lZEluZm8+PFNpZ25hdHVyZVZhbHVlPkZjYjNxNGlCdmRmZ1lvN245NUdhUUN1 |ZDkxWVA3dzhvVjAzUjZ6a1JEZGxjK0RuQ2MwcjlNc0E1YS9iaFlDeVdQZC9jRVU4 |K3FZRnJ5SmJjaXJ5d0hBPT08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5 |RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUIwRENDQVg4Q0VDdjF4aDdDRWIwWHg5 |elVZbWEwTGlFd0NBWUdLb1VEQWdJRE1HMHhIekFkQmdOVkJBTU1Ga2R2YzNSU016 |UXhNQzB5TURBeElHVjRZVzF3YkdVeEVqQVFCZ05WQkFvTUNVTnllWEIwYjFCeWJ6 |RUxNQWtHQTFVRUJoTUNVbFV4S1RBbkJna3Foa2lHOXcwQkNRRVdHa2R2YzNSU016 |UXhNQzB5TURBeFFHVjRZVzF3YkdVdVkyOXRNQjRYRFRBMU1EZ3hOakUwTVRneU1G |b1hEVEUxTURneE5qRTBNVGd5TUZvd2JURWZNQjBHQTFVRUF3d1dSMjl6ZEZJek5E |RXdMVEl3TURFZ1pYaGhiWEJzWlRFU01CQUdBMVVFQ2d3SlEzSjVjSFJ2VUhKdk1R |c3dDUVlEVlFRR0V3SlNWVEVwTUNjR0NTcUdTSWIzRFFFSkFSWWFSMjl6ZEZJek5E |RXdMVEl3TURGQVpYaGhiWEJzWlM1amIyMHdZekFjQmdZcWhRTUNBaE13RWdZSEtv |VURBZ0lrQUFZSEtvVURBZ0llQVFOREFBUkFoSlZvZFdBQ0drQjFDTTBUakRHSkxQ |M2xCUU42UTF6MGJTc1A1MDh5ZmxlUDY4d1d1WldJQTlDYWZJV3VEK1NONnFhN2Zs |Ykh5N0RmRDJhOHl1b2FZREFJQmdZcWhRTUNBZ01EUVFBOEw4a0pSTGNucWV5bjFl |bjdVMjNTdzZwa2ZFUXUzdTB4RmtWUHZGUS8zY0hlRjI2TkcreHh0WlB6M1RhVFZY |ZG9pWWtYWWlEMDJyRXgxYlVjTTk3aTwvWDUwOUNlcnRpZmljYXRlPjwvWDUwOURh |dGE+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvQ3J5cHRvUHJvWE1MPg== |<XmlDocSigned2001.xml Приложение Г. Благодарности Авторы выражают благодарность: - компании Microsoft Corporation Russia за предоставленную информацию о продуктах и решениях компании, а также за технические консультации по инфраструктуре открытого ключа (PKI); - нашему коллеге Григорию С. Чудову за написание первой версии этого документа. Леонтьев и другие [Страница 26] Срок действия истекает: 2 декабря 2010 г. Проект рекомендации RFC. Использование алгоритмов ГОСТ в протоколах и форматах сообщений на основе XML. Май 2010 г. Авторы и их адреса Сергей Е. Леонтьев ООО «КРИПТО-ПРО» Сущевский вал, 16/5 Москва, 127018 Россия Телефон: +7 (495) 780 4820 Факс: +7 (495) 660 2330 Эл. адрес: lse@CryptoPro.ru Сайт: http://www.CryptoPro.ru Павел В. Смирнов ООО «КРИПТО-ПРО» Сущевский вал, 16/5 Москва, 127018 Россия Телефон: +7 (495) 780 4820 Факс: +7 (495) 660 2330 Эл. адрес: spv@CryptoPro.ru Сайт: http://www.CryptoPro.ru Александр В. Челпанов ООО «КРИПТО-ПРО» Сущевский вал, 16/5 Москва, 127018 Россия Телефон: +7 (495) 780 4820 Факс: +7 (495) 660 2330 Эл. адрес: cav@CryptoPro.ru Сайт: http://www.CryptoPro.ru Леонтьев и другие [Страница 27] Срок действия истекает: 2 декабря 2010 г.