Changes to XML Signature Syntax and Processing Second Edition for proposed XML Signature 1.1

Frederick Hirsch <>
Thomas Roessler <>
$Date: 2009/07/30 17:17:21 $

Status of this Document

This document summarizes the changes that the XML Security Working Group has made to the XML Signature Syntax and Processing Specification Second Edition in preparing a proposed 1.1.

Discussion of Changes

General Changes

Removed DTD snippets and all references to a DTD.

Cover page

Updated to Version 1.1, updated date and version links. Updated editor information to add Kelvin Yiu as editor, updated entries for Frederick Hirsch and Thomas Roesssler to include 1.1 editing.

Update MIT address from lcs to csail.

Table of Contents

Include 3.1.1, 3.1.2, Reference Generation, Signature Generation

Include 3.2.1, 3.2.2, Reference Validation, Signature Validation

Include 4.1, "CryptoBinary Simple Type"

Added new section, 4.5.3, "The ECKeyValue Element", include sub-sections "Explicit Curve Parameters", "Compatibility with RFC 4050"

Added new section, 4.5.8, "The DEREncodedKeyValue Element"

Add subsections to 6.2 for SHA-1, SHA-256, SHA-384, SHA-512

Add subsections to 6.3 for HMAC

Add subsections to 6.4 for DSA, RSA (PKCS1), ECDSA

Added new section, 6.5.3, "Exclusive XML Canonicalization 1.0"

Changed title of section 9 from "Schema, DTD, Data Model, and Valid Examples" to "Schema"

Removed "Authors' Address" section

1.3 Versions, Namespaces and Identifiers

Add new namespace for 1.1 specific features, while retaining earlier namespace for unchanged features. Clarification of use of namespace prefixes and XML internal entities. Clarification regarding versioning.

1.4 Acknowledgements

Affiliation update for Konrad Lanz. Add statement acknowledging contributions from the XML Security WG to 1.1.

2.1 Simple Examples

Example updated to use rsa-sha256 SignatureMethod algorithm and sha256 DigestMethod algorithm.

2.1.1 More on References

Example updated to use sha256 DigestMethod algorithm.

2.2 Extended Example

Example updated to use sha256 DigestMethod algorithm.

2.3 Extended Example

Example updated to use sha256 DigestMethod algorithm.

3.1 Signature Generation

Changed title of Section 3.1 to "Signature Generation" from "Core Generation"

3.2.1 Reference Validation

Added note indicating need for canonicalization as part of Reference Validation since changes could occur in serialization after Signature generation.

4.0 Core Signature Syntax

Added preamble for dsig11 namespace, including DOCTYPE and schema material.

4.3.2 The SignatureMethod Element

Added minimum output length for HMACOutputLength parameter The Reference Processing Model

Added XPath Filter 2 Transform as alternative to URI fragment identifiers, in addition to XPath Transform.

4.4 The KeyInfo Element

Editorial, replace &dsig; with dsig:.

Add new KeyInfo Type URIs for new child elements, specifically ECKeyValue and DEREncodedKeyValue, updating text and showing location in schema extension point using comments.

4.4.2 The KeyValue Element

Change RSA from RECOMMENDED to REQUIRED in note that the corresponding structured keys are defined in the Signature Algorithms section.

Add ECDSA as REQUIRED in list of formats.

Show placement of ECKeyValue in schema using comment. The ECKeyValue Element

New section

Define ECKeyValue element. Include editorial note that working group has considered but not accepted an alternative design and may change decision if additional information is obtained. Explicit Curve Parameters

New section

Define ECParameters element.

Inserted reference to SEC-1 2.0 for verifiably random curves. Compatibility with RFC 4050

New section

Profile RFC 4050 with respect to ECDSA key formats.

4.4.3 The RetrievalMethod Element

Add note to describe the need to use a Transform to obtain content of KeyInfo referenced by ID.

4.4.4 The X509Data Element

Add dsig11:OCSPResponse element to list of elements that may be included.

Add RECOMMENDED certificate encoding to be BER or DER subset.

Add note regarding use of X509IssuerSerial and possible issue with schema validation when large serial numbers are used. Distinguished Name Encoding Rules

Note placement of OCSPResponse element in schema definition for X509Data, using comment at existing extension point. Add comment noting it should be in dsig11: namespace.

4.4.8 The DEREncodedKeyValue Element

New section

Add a KeyInfo representation for DER-Encoded Subject Public Key Info representation of public keys.

6.1 Algorithm Identifiers and Implementation Requirements

Added note that the working group does not have consensus on manditory algorithms and note some of the positions regarding the choice.

Reformat the list of algorithms into separate Required and Optional lists, for clarity.

Added text to SHA-1 to state that use is DISCOURAGED (but still REQUIRED).

Add SHA256 as REQUIRED Digest algorithm.

Add SHA384 and SHA512 as OPTIONAL Digest algorithms.

Added text to HMAC-SHA1 to state that use is DISCOURAGED



Add RSAwithSHA256 as REQUIRED Signature algorithm.

Add ECDSAwithSHA256 as REQUIRED Signature algorithm.

Change so that DSAwithSHA1 is only REQUIRED as Signature algorithm for Signature verification, but is OPTIONAL for Signature generation. Previously it was REQUIRED for both.

Add RSAwithSHA384,RSAwithSHA512, ECDSAwithSHA1, ECDSAwithSHA384, ECDSAwithSHA512 as optional Signature algorithms.

Add Exclusive XML Canonicalization 1.0 (omits comments) as REQUIRED canonicalization algorithm.

Add Exclusive XML Canonicalization 1.0 (with Comments) as RECOMMENDED canonicalization algorithm.

Add XPath Filter 2.0 as RECOMMENDED transform algorithm.

Add recommendation to use least expressive transform possible to achieve result.

Add note that implementation requirements for XPath transform may be downgraded to optional in future version of specification.

Added text to indicate that use of RSA-SHA1 and ECDSA-SHA1 is DISCOURAGED.

6.2 Message Digests

Add introduction noting possible concerns with digest algorithm resistance to collisions and strongly recommending use of SHA-256 in preference to SHA-1.

6.2.2 SHA-256

Add identifier and information for SHA-256 digest algorithm.

6.2.3 SHA-384

Add identifier and information for SHA-384 digest algorithm.

6.2.4 SHA-512

Add identifier and information for SHA-512 digest algorithm.

6.3.1 HMAC

Add identifiers for HMAC-SHA256, HMAC-SHA384, and HMAC-SHA512 algorithms.

Add clarifying text related to trucation length.

6.4.1 DSA

Add identifier fro dsa-sha256

Clarify DSA family with respect to FIPS 186-3.

Update references to RFC 3447 from RFC 2437.

Add security considerations note regarding DSA key sizes.

6.4.2 RSA (PKCS#1 v1.5)

Change section title from "PKCS1 (RSA-SHA1)" to "RSA (PKCS#1 v1.5)".

Add identifiers for RSA-SHA256, RSA-SHA384, and RSA-SHA512 algorithms.

Update references to RFC 3447 from RFC 2437.

Clarify text regarding SignatureValue computation.

6.4.3 ECDSA

New section.

Identifiers and information for ECDSA algorithms, including ECDSA-SHA1, ECDSA-SHA256, ECDSA-SHA384, and ECDSA-SHA512 algorithms.

6.5 Canonicalization Algorithms

Remove text regarding Normalization Form C.

Add Exclusive XML Canonicalization to list of required canonicalization algorithms.

6.5.1 Canonical XML 1.0

Clarify inputs and outputs for algorithm.

6.5.2 Canonical XML 1.1

Clarify inputs and outputs for algorithm.

6.5.3 Exclusive XML Canonicalization 1.0

New Section

Define identitifers, input and output and other information for Exclusive XML Canonicalization 1.0.

6.6 Transform Algorithms

Add text that implementation requirements are listed in the Algorithm Identifier and Implementation Rquirements section.

6.6.2 Base64

Clarify inputs and outputs for algorithm.

6.6.3 XPath Filtering

Clarify inputs and outputs for algorithm.

Text clarifications.

6.6.4 Enveloped Signature Transform

Clarify inputs and outputs for algorithm.

6.6.5 XSLT Transform

Clarify inputs and outputs for algorithm.

7.0 XML Canonicalization and Syntax Constraint Considerations

Fix typo, replace "descendents" with "descendants".

8.0 Security Considerations

Fix typo, replace "Implementors" with "Implementers".

9.0 Schema, DTD, Data Model, and Valid Examples

Change title of section to Schema and remove all material related to DTD, RDF and examples. Note that examples replicated material elsewhere in the specification.

Add XML Signature 1.1 Schema Instance to the list.

11.0 References

Add references to RCF 2560 (OCSP), RFC 3279 (PKIX), RFC 4050 (ECDSA for XML Digital Signatures) and RFC 4051 (Additional XML Security URIs).

Add references to SEC1 and SEC2 (Elliptic Curve Cryptography).

Add references to FIPS PUB 180-2 for SHA-256, SHA-384 and SHA-512.

Add reference to SP 800-57 for Key Management.

Add reference to RFC 3061 for URN namespace of Object Identifiers.

Add reference for XML Encryption.

Correct URIs associated with reference for XML Signature Requirements

Added reference to recent work on SHA-1 analysis (to be changed once paper appears on

Removed reference to SEC2 (not referenced)

Updated reference to SEC1 to 2.0 version.

Removed (temporary) reference to X9.62.

Updated Reference for FIPS-186-3 to reflect final publication. Changed DSS reference to be the FIPS-186-3 reference.

Split references into normative and informative. Updated the following references to reflect final publication: DOM, PGP, RFC3279 “Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile”, SEC, SHA-1, SHA-256, SHA-384, SHA-512, SOAP, XHTML 1.0, XMLDSIG-2002, XML-schema, XPath, XSL, URL, URN, XML-Japanese, XML-MT, XML-Signature-RD, and XSLT.

Added web link for ABA, 1363, and X509v3.