XML Signature Syntax and Processing Version 1.1 / Синтаксис и обработка XML-подписи, версия 1.1: 2.1 Simple Example (Signature, SignedInfo, Methods, and References)
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Следующий пример демонстрирует отсоединенную подпись HTML4-документа в спецификации XML. rusnavu 24.01.19 в 14:12 |
|
|
Пример https://www.w3.org/TR/xmldsig-core1/#sec-o-Simple rusnavu 24.01.19 в 14:15 |
||
|
[s02-12] Обязательный элемент <SignedInfo> - это те данные, которые подписываются на самом деле. Базовая проверка <SignedInfo> состоит из двух обязательных действий: проверки достоверности подписи элемента <SignedInfo> и проверки достоверности дайджеста каждого элемента <Reference> внутри <SignedInfo>. Обратите внимание, что алгоритмы, используемые для вычисления <SignatureValue>, также входят в состав подписанных данных, а элемент <SignatureValue> находится снаружи <SignedInfo>. rusnavu 24.01.19 в 14:42 |
||
|
[s03] Элемент <CanonicalizationMethod> содержит алгоритм, используемый как часть процедуры подписи для приведения к канонической форме элемента <SignedInfo> перед формированием дайджеста. Обратите внимание, что данный пример не в канонической форме. (Все примеры из данной спецификации не в канонической форме). rusnavu 24.01.19 в 14:51 |
||
|
[s04] Элемент <SignatureMethod> содержит алгоритм, используемый для преобразования канонической формы <SignedInfo> в значение <SignatureValue>. Это комбинация алгоритма формирования дайджеста, алгоритма с ключом и, возможно, других алгоритмов, например хэширования RSA-SHA1. Имена алгоритмов подписываются для противодействия атакам, основанным на подмене алгоритма на более слабый. Для улучшения совместимости приложений мы указываем набор алгоритмов подписи, которые должны быть реализованы, но решение о их использовании принимается создателем подписи. Кроме того мы указываем дополнительные алгоритмы как рекомендуемые или необязательные для реализации; допускаются также любые пользовательские алгоритмы. rusnavu 24.01.19 в 15:11 |
||
|
[s05-11] Каждый элемент <Reference> содержит алгоритм формирования дайджеста и его значение, вычисленное над указанным набором данных. Элемент также может содержать алгоритм преобразования, формирующий входные данные для вычисления дайджеста. Набор данных подписывается путём вычисления значения дайджеста и, затем, подписи над этим значением. Достоверность подписи проверяется позднее для полученного по ссылке набора данных. rusnavu 24.01.19 в 16:45 |
||
|
[s14-16] Элемент <KeyInfo> указывает ключ, используемый для проверки достоверности подписи. Допускается указание сертификатов, имен ключей, а также алгоритмы согласования ключей и иной информации - мы определяем только некоторые. Элемент <KeyInfo> является необязательным по двум причинам. Во-первых, создатель подписи может не желать раскрывать ключевую информацию для всех участников процесса обработки документа. Во-вторых, информация может быть доступна в контексте приложения и, таким образом, не нуждаться в явном указании. Поскольку <KeyInfo> не входит в <SignedInfo>, то при желании создателя присоединить ключевую информация к подписи, элемент <Reference> позволяет легко отождествить и использовать <KeyInfo> как часть подписи. Хотя <KeyInfo> необязателен, отправитель и получатель должны договориться о том, как будет использоваться эта информация в соответствии с процедурой, выходящей за рамки данной спецификации. rusnavu 24.01.19 в 17:04 |
||
|
2.1.1 Подробнее об элементе <Reference> rusnavu 24.01.19 в 15:16 |
||
|
[s05] Необязательный атрибут URI <Reference> указывает на подписываемый набор данных. Этот атрибут может быть опущен не более чем в одном <Reference>, входящем в <Signature>. (Это ограничение введено для гарантии того, что ссылки и объекты могут быть сопоставлены однозначно.) rusnavu 24.01.19 в 17:08 |
||
|
[s05-08] Эта ссылка, наряду с преобразованиями - описание способа получения подписанных данных в форме, для которой был сформирован дайджест, предоставленное создателем подписи (то есть дайджеста набора данных). Проверяющий может получить набор данных иным способом, если его достоверность подтверждается дайджестом. В частности, проверяющий может получить набор данных из другого источника, чем указан в значении атрибута URI, например, локального хранилища. rusnavu 24.01.19 в 17:28 |
||
