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 + -
显示快捷键?