rfc3275.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,485 行 · 第 1/5 页
TXT
1,485 行
Network Working Group D. Eastlake 3rd
Request for Comments: 3275 Motorola
Obsoletes: 3075 J. Reagle
Category: Standards Track W3C
D. Solo
Citigroup
March 2002
(Extensible Markup Language) XML-Signature Syntax and Processing
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (c) 2002 The Internet Society & W3C (MIT, INRIA, Keio), All
Rights Reserved.
Abstract
This document specifies XML (Extensible Markup Language) digital
signature processing rules and syntax. XML Signatures provide
integrity, message authentication, and/or signer authentication
services for data of any type, whether located within the XML that
includes the signature or elsewhere.
Table of Contents
1. Introduction................................................... 3
1.1 Editorial and Conformance Conventions......................... 4
1.2 Design Philosophy............................................. 4
1.3 Versions, Namespaces and Identifiers.......................... 4
1.4 Acknowledgements.............................................. 6
1.5 W3C Status.................................................... 6
2. Signature Overview and Examples................................ 7
2.1 Simple Example (Signature, SignedInfo, Methods, and References) 8
2.1.1 More on Reference........................................... 9
2.2 Extended Example (Object and SignatureProperty)............... 10
2.3 Extended Example (Object and Manifest)........................ 12
3.0 Processing Rules.............................................. 13
3.1 Core Generation............................................... 13
3.1.1 Reference Generation........................................ 13
Eastlake, et al. Standards Track [Page 1]
RFC 3275 XML-Signature Syntax and Processing March 2002
3.1.2 Signature Generation........................................ 13
3.2 Core Validation............................................... 14
3.2.1 Reference Validation........................................ 14
3.2.2 Signature Validation........................................ 15
4.0 Core Signature Syntax......................................... 15
4.0.1 The ds:CryptoBinary Simple Type............................. 17
4.1 The Signature element......................................... 17
4.2 The SignatureValue Element.................................... 18
4.3 The SignedInfo Element........................................ 18
4.3.1 The CanonicalizationMethod Element.......................... 19
4.3.2 The SignatureMethod Element................................. 21
4.3.3 The Reference Element....................................... 21
4.3.3.1 The URI Attribute......................................... 22
4.3.3.2 The Reference Processing Model............................ 23
4.3.3.3 Same-Document URI-References.............................. 25
4.3.3.4 The Transforms Element.................................... 26
4.3.3.5 The DigestMethod Element.................................. 28
4.3.3.6 The DigestValue Element................................... 28
4.4 The KeyInfo Element........................................... 29
4.4.1 The KeyName Element......................................... 31
4.4.2 The KeyValue Element........................................ 31
4.4.2.1 The DSAKeyValue Element................................... 32
4.4.2.2 The RSAKeyValue Element................................... 33
4.4.3 The RetrievalMethod Element................................. 34
4.4.4 The X509Data Element........................................ 35
4.4.5 The PGPData Element......................................... 38
4.4.6 The SPKIData Element........................................ 39
4.4.7 The MgmtData Element........................................ 40
4.5 The Object Element............................................ 40
5.0 Additional Signature Syntax................................... 42
5.1 The Manifest Element.......................................... 42
5.2 The SignatureProperties Element............................... 43
5.3 Processing Instructions in Signature Elements................. 44
5.4 Comments in Signature Elements................................ 44
6.0 Algorithms.................................................... 44
6.1 Algorithm Identifiers and Implementation Requirements......... 44
6.2 Message Digests............................................... 46
6.2.1 SHA-1....................................................... 46
6.3 Message Authentication Codes.................................. 46
6.3.1 HMAC........................................................ 46
6.4 Signature Algorithms.......................................... 47
6.4.1 DSA......................................................... 47
6.4.2 PKCS1 (RSA-SHA1)............................................ 48
6.5 Canonicalization Algorithms................................... 49
6.5.1 Canonical XML............................................... 49
6.6 Transform Algorithms.......................................... 50
6.6.1 Canonicalization............................................ 50
6.6.2 Base64...................................................... 50
Eastlake, et al. Standards Track [Page 2]
RFC 3275 XML-Signature Syntax and Processing March 2002
6.6.3 XPath Filtering............................................. 51
6.6.4 Enveloped Signature Transform............................... 54
6.6.5 XSLT Transform.............................................. 54
7. XML Canonicalization and Syntax Constraint Considerations...... 55
7.1 XML 1.0, Syntax Constraints, and Canonicalization............. 56
7.2 DOM/SAX Processing and Canonicalization....................... 57
7.3 Namespace Context and Portable Signatures..................... 58
8.0 Security Considerations....................................... 59
8.1 Transforms.................................................... 59
8.1.1 Only What is Signed is Secure............................... 60
8.1.2 Only What is 'Seen' Should be Signed........................ 60
8.1.3 'See' What is Signed........................................ 61
8.2 Check the Security Model...................................... 62
8.3 Algorithms, Key Lengths, Certificates, Etc.................... 62
9. Schema, DTD, Data Model, and Valid Examples.................... 63
10. Definitions................................................... 63
Appendix: Changes from RFC 3075................................... 67
References........................................................ 67
Authors' Addresses................................................ 72
Full Copyright Statement.......................................... 73
1. Introduction
This document specifies XML syntax and processing rules for creating
and representing digital signatures. XML Signatures can be applied
to any digital content (data object), including XML. An XML
Signature may be applied to the content of one or more resources.
Enveloped or enveloping signatures are over data within the same XML
document as the signature; detached signatures are over data external
to the signature element. More specifically, this specification
defines an XML signature element type and an XML signature
application; conformance requirements for each are specified by way
of schema definitions and prose respectively. This specification
also includes other useful types that identify methods for
referencing collections of resources, algorithms, and keying and
management information.
The XML Signature is a method of associating a key with referenced
data (octets); it does not normatively specify how keys are
associated with persons or institutions, nor the meaning of the data
being referenced and signed. Consequently, while this specification
is an important component of secure XML applications, it itself is
not sufficient to address all application security/trust concerns,
particularly with respect to using signed XML (or other data formats)
as a basis of human-to-human communication and agreement. Such an
application must specify additional key, algorithm, processing and
rendering requirements. For further information, please see Security
Considerations (section 8).
Eastlake, et al. Standards Track [Page 3]
RFC 3275 XML-Signature Syntax and Processing March 2002
1.1 Editorial and Conformance Conventions
For readability, brevity, and historic reasons this document uses the
term "signature" to generally refer to digital authentication values
of all types. Obviously, the term is also strictly used to refer to
authentication values that are based on public keys and that provide
signer authentication. When specifically discussing authentication
values based on symmetric secret key codes we use the terms
authenticators or authentication codes. (See Check the Security
Model, section 8.3.)
This specification provides an XML Schema [XML-schema] and DTD [XML].
The schema definition is normative.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
specification are to be interpreted as described in RFC2119
[KEYWORDS]:
"they MUST only be used where it is actually required for
interoperation or to limit behavior which has potential for
causing harm (e.g., limiting retransmissions)"
Consequently, we use these capitalized key words to unambiguously
specify requirements over protocol and application features and
behavior that affect the interoperability and security of
implementations. These key words are not used (capitalized) to
describe XML grammar; schema definitions unambiguously describe such
requirements and we wish to reserve the prominence of these terms for
the natural language descriptions of protocols and features. For
instance, an XML attribute might be described as being "optional."
Compliance with the Namespaces in XML specification [XML-ns] is
described as "REQUIRED."
1.2 Design Philosophy
The design philosophy and requirements of this specification are
addressed in the XML-Signature Requirements document [XML-Signature-
RD].
1.3 Versions, Namespaces and Identifiers
No provision is made for an explicit version number in this syntax.
If a future version is needed, it will use a different namespace.
The XML namespace [XML-ns] URI that MUST be used by implementations
of this (dated) specification is:
xmlns="http://www.w3.org/2000/09/xmldsig#"
Eastlake, et al. Standards Track [Page 4]
RFC 3275 XML-Signature Syntax and Processing March 2002
This namespace is also used as the prefix for algorithm identifiers
used by this specification. While applications MUST support XML and
XML namespaces, the use of internal entities [XML] or our "dsig" XML
namespace prefix and defaulting/scoping conventions are OPTIONAL; we
use these facilities to provide compact and readable examples.
This specification uses Uniform Resource Identifiers [URI] to
identify resources, algorithms, and semantics. The URI in the
namespace declaration above is also used as a prefix for URIs under
the control of this specification. For resources not under the
control of this specification, we use the designated Uniform Resource
Names [URN] or Uniform Resource Locators [URL] defined by its
normative external specification. If an external specification has
not allocated itself a Uniform Resource Identifier we allocate an
identifier under our own namespace. For instance:
SignatureProperties is identified and defined by this specification's
namespace:
http://www.w3.org/2000/09/xmldsig#SignatureProperties
XSLT is identified and defined by an external URI
http://www.w3.org/TR/1999/REC-xslt-19991116
SHA1 is identified via this specification's namespace and defined via
a normative reference
http://www.w3.org/2000/09/xmldsig#sha1
FIPS PUB 180-1. Secure Hash Standard. U.S. Department of
Commerce/National Institute of Standards and Technology.
Finally, in order to provide for terse namespace declarations we
sometimes use XML internal entities [XML] within URIs. For instance:
<?xml version='1.0'?>
<!DOCTYPE Signature SYSTEM
"xmldsig-core-schema.dtd" [ <!ENTITY dsig
"http://www.w3.org/2000/09/xmldsig#"> ]>
<Signature xmlns="&dsig;" Id="MyFirstSignature">
<SignedInfo>
...
Eastlake, et al. Standards Track [Page 5]
RFC 3275 XML-Signature Syntax and Processing March 2002
1.4 Acknowledgements
The contributions of the following Working Group members to this
specification are gratefully acknowledged:
* Mark Bartel, Accelio (Author)
* John Boyer, PureEdge (Author)
* Mariano P. Consens, University of Waterloo
* John Cowan, Reuters Health
* Donald Eastlake 3rd, Motorola (Chair, Author/Editor)
* Barb Fox, Microsoft (Author)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?