rfc3075.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,509 行 · 第 1/5 页
TXT
1,509 行
Network Working Group D. Eastlake
Request for Comments: 3075 Motorola
Category: Standards Track J. Reagle
W3C/MIT
D. Solo
Citigroup
March 2001
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) 2001 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. Editorial Conventions .................................. 3
2. Design Philosophy ...................................... 4
3. Versions, Namespaces and Identifiers ................... 4
4. Acknowledgements ....................................... 5
2. Signature Overview and Examples ............................. 6
1. Simple Example (Signature, SignedInfo, Methods, and
References) ............................................ 7
1. More on Reference ................................. 9
2. Extended Example (Object and SignatureProperty) ........ 10
3. Extended Example (Object and Manifest) ................. 11
3. Processing Rules ............................................ 13
1. Core Generation .... ................................... 13
1. Reference Generation .............................. 13
2. Signature Generation .............................. 13
Eastlake, et al. Standards Track [Page 1]
RFC 3075 XML-Signature Syntax and Processing March 2001
2. Core Validation ........................................ 13
1. Reference Validation .............................. 14
2. Signature Validation .............................. 14
4. Core Signature Syntax ....................................... 14
1. The Signature element .................................. 15
2. The SignatureValue Element ............................. 16
3. The SignedInfo Element ................................. 16
1. The CanonicalizationMethod Element ................ 17
2. The SignatureMethod Element ....................... 18
3. The Reference Element ............................. 19
1. The URI Attribute ............................ 19
2. The Reference Processing Model ............... 21
3. Same-Document URI-References ................. 23
4. The Transforms Element ....................... 24
5. The DigestMethod Element ..................... 25
6. The DigestValue Element ...................... 26
4. The KeyInfo Element .................................... 26
1. The KeyName Element ............................... 27
2. The KeyValue Element .............................. 28
3. The RetrievalMethod Element ....................... 28
4. The X509Data Element .............................. 29
5. The PGPData Element ............................... 31
6. The SPKIData Element .............................. 32
7. The MgmtData Element .............................. 32
5. The Object Element ..................................... 33
5. Additional Signature Syntax ................................. 34
1. The Manifest Element ................................... 34
2. The SignatureProperties Element ........................ 35
3. Processing Instructions ................................ 36
4. Comments in dsig Elements .............................. 36
6. Algorithms .................................................. 36
1. Algorithm Identifiers and Implementation Requirements .. 36
2. Message Digests ........................................ 38
1. SHA-1 ............................................. 38
3. Message Authentication Codes ........................... 38
1. HMAC .............................................. 38
4. Signature Algorithms ................................... 39
1. DSA ............................................... 39
2. PKCS1 ............................................. 40
5. Canonicalization Algorithms ............................ 42
1. Minimal Canonicalization .......................... 43
2. Canonical XML ..................................... 43
6. Transform Algorithms ................................... 44
1. Canonicalization .................................. 44
2. Base64 ............................................ 44
3. XPath Filtering ................................... 45
4. Enveloped Signature Transform ..................... 48
5. XSLT Transform .................................... 48
Eastlake, et al. Standards Track [Page 2]
RFC 3075 XML-Signature Syntax and Processing March 2001
7. XML Canonicalization and Syntax Constraint Considerations ... 49
1. XML 1.0, Syntax Constraints, and Canonicalization ..... 50
2. DOM/SAX Processing and Canonicalization ................ 51
8. Security Considerations ..................................... 52
1. Transforms ............................................. 52
1. Only What is Signed is Secure ..................... 52
2. Only What is "Seen" Should be Signed .............. 53
3. "See" What is Signed .............................. 53
2. Check the Security Model ............................... 54
3. Algorithms, Key Lengths, Etc. .......................... 54
9. Schema, DTD, Data Model,and Valid Examples .................. 55
10. Definitions ................................................. 56
11. References .................................................. 58
12. Authors' Addresses .......................................... 63
13. Full Copyright Statement .................................... 64
1.0 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).
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
Eastlake, et al. Standards Track [Page 3]
RFC 3075 XML-Signature Syntax and Processing March 2001
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 uses both XML Schemas [XML-schema] and DTDs [XML].
(Readers unfamiliar with DTD syntax may wish to refer to Ron
Bourret's "Declaring Elements and Attributes in an XML DTD"
[Bourret].) The schema definition is presently 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 keywords 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 XML-namespace 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 3075 XML-Signature Syntax and Processing March 2001
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/PR-xslt-19991008
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>
...
1.4 Acknowledgements
The contributions of the following working group members to this
specification are gratefully acknowledged:
* Mark Bartel, JetForm Corporation (Author)
* John Boyer, PureEdge (Author)
* Mariano P. Consens, University of Waterloo
Eastlake, et al. Standards Track [Page 5]
RFC 3075 XML-Signature Syntax and Processing March 2001
* John Cowan, Reuters Health
* Donald Eastlake 3rd, Motorola (Chair, Author/Editor)
* Barb Fox, Microsoft (Author)
* Christian Geuer-Pollmann, University Siegen
* Tom Gindin, IBM
* Phillip Hallam-Baker, VeriSign Inc
* Richard Himes, US Courts
* Merlin Hughes, Baltimore
* Gregor Karlinger, IAIK TU Graz
* Brian LaMacchia, Microsoft
* Peter Lipp, IAIK TU Graz
* Joseph Reagle, W3C (Chair, Author/Editor)
* Ed Simon, Entrust Technologies Inc. (Author)
* David Solo, Citigroup (Author/Editor)
* Petteri Stenius, DONE Information, Ltd
* Raghavan Srinivas, Sun
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?