XML Security 1.1 Requirements and Design Considerations
Abstract
This Note summarizes scenarios, design decisions, and requirements for the XML Signature and Canonical XML specifications, to guide ongoing W3C work to revise these specifications.
Status of This Document
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
Changes since the previous publication include reformatting of some material and editorial corrections. updates to the references ( diff ).
This document was published by the XML Security Working Group as a Working Group Note. If you wish to make comments regarding this document, please send them to public-xmlsec@w3.org ( subscribe , archives ). All comments are welcome.
Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .
Table of Contents
- 1. Introduction
- 2. Principles
-
3.
Requirements
and
Design
Options
- 3.1 Widget Security
- 3.2 Derived Keys
- 3.3 Algorithm security and interoperability
- 3.4 Correct known issues
- 4. Acknowledgments
- A. References
1. Introduction
This use case and requirements document is intended to summarize use cases and requirements driving revisions to XML Signature 2nd Edition [ XMLDSIG-CORE ], XML Encryption [ XMLENC-CORE ], and Canonical XML 1.1 [ XML-C14N11 ]. It is not intended to define all possible use cases for these Recommendations, but rather to provide rationale for decisions leading to XML Signature 1.1, XML Encryption 1.1, XML Signature Properties and XML Security Generic Hybrid Ciphers.
This document outlines general principles and use cases leading to requirements and offers some design options. It elaborates on principles and updates requirements expressed for the original XML Security work including original requirements documents (e.g. [ XML-CANONICAL-REQ ], and [ XMLDSIG-REQUIREMENTS ]). This document also reflects material from a W3C workshop on next steps for XML Security [ XMLSEC-NEXTSTEPS-2007 ] and position papers associated with the workshop, including [ XMLDSIG-COMPLEXITY ], [ XMLDSIG-SEMANTICS ], and [ XMLDSIG-THOMPSON ].
Design options were documented early on to provide a starting point with the expectation that specifications developed to meet the requirements could subsequently differ in design choices.Thus the design choices in this document should be viewed as historical information.
2. Principles
The following design principles will be used to guide further development of XML Security, including XML Signature, XML Encryption and Canonical XML. These principles are intended to encourage consistent design decisions, to provide insight into design rationale and to anchor discussions on requirements and design. This list includes items from the original requirements for XML Signature [ XMLDSIG-REQUIREMENTS ] as well as general principles from EXI [ EXI ]. Listed in alphabetical order:
-
Backward
compatible:
-
Backward compatibility should not be broken unnecessarily. Versioning should be clearly considered. Consideration must be given, for example, for interoperability with the First and Second Editions of XML Signature [ XMLDSIG-CORE ].
Consistent
with
the
Web
Architecture:
-
XML Security must be consistent with the Web Architecture [ WEBARCH ].
Efficient:
-
XML Security should enable efficient implementations, in order to remove barriers to adoption and use.
Meet
common
requirements,
enable
extensibility:
-
One of primary objectives of XML Signature is to support a wide variety of use cases requiring digital signatures, including situations requiring multiple signatures, counter-signatures, and signatures including multiple items to be included in a signature. Extensibility should be possible, but by default options should be constrained when the flexibility is not needed.
Minimal:
-
To reach the broadest set of applications, reduce the security threat footprint and improve efficiency, simple, elegant approaches are preferred to large, analytical or complex ones.
Pragmatic:
-
Recognize pragmatic issues, including recognizing that software might be implemented in layers, with a security layer independent of an application layer.
Reuse
Existing
Open
Standards
-
Existing open standards should be reused where possible, as long as other principles can be met.
Secure:
-
XML Security should adhere to security best practices, and minimize the opportunities for threats based on XML Security mechanisms.
XML
Interoperable:
-
XML Security must integrate well with existing XML technologies, be compatible with the XML Information Set [ XML-INFOSET ], in order to maintain interoperability with existing and prospective XML specifications.
XML
Signatures
are
First
Class
Objects:
-
XML Signatures should themselves be self-describing first class XML objects [ XMLDSIG-REQUIREMENTS ]. This means that XML Signatures can be referenced via URI and used in other operations. For example, an XML Signature may be signed or encrypted, or referred to in a statement (such as an RDF statement).
3. Requirements and Design Options
This section outlines the motivation, requirements and design considerations for XML Security 1.1.
3.1 Widget Security
3.1.1 Use Cases
Widgets may require signing for integrity protection and source authentication. This signing of a Widget package may be provided using XML Signature.
3.1.2 Requirements
Provide the ability to sign and verify a widget package using XML Signature. Enable the use of SHA-256 to support sufficient security. Support the use of properties in a XML Signature, including Profile, Role, and Identifier properties to enable interoperable interpretation of signatures. See the Widget Signature specification for a summary of requirements [ WIDGETS-DIGSIG ].
3.1.3 Design
Define generic widget properties. See XML Signature Properties [ XMLDSIG-PROPERTIES ].
3.2 Derived Keys
3.2.1 Use Cases and Background
Several open specifications make use of derived keys, e.g. RSA Laboratories' PKCS #5 v2.0 [ PKCS5 ] and OASIS' WS-SecureConversation Version 1.3 [ WS-SECURECONVERSATION13 ]. These derived keys are used for a variety of purposes including encryption and message authentication, and the purpose of key derivation itself is typically a combination of a desire to expand a given, but limited, set of key material and prudent security practices of limiting use (exposure) of such key material.
Contrary to the situation in the ASN.1-based world (e.g. S/MIME [ SMIME ]), there is currently a lack of general support in the core XML Security specifications, XML Signature and XML Encryption, for derived keys. Amendment 1 of the aforementioned PKCS #5 v2.0 Amendment 1 [ PKCS5 ] adds support for derived keys only in the context of password-based cryptography. Other XML-based open specifications have similar limitations (see below). This means that an originator of an XML document or message cannot generally make use of key derivation in a standardized manner when performing cryptographic operations on that document.
3.2.2 Use Of Derived Keys in Existing WS-* Specifications
This section outlines the use of derived keys with Web Services specifications related to Web Services Security [ WS-SECURITY11 ].
Web Services Security: UsernameToken Profile Version 1.1
This specification [ WSS-USERNAME11 ] describes a key derivation technique for passwords using salt and iteration count (PKCS #5 PBKDF1). It does not allow use of PBKDF2, which is the recommended method to derive keys from passwords in PKCS #5 v2.0. Initial key material cannot be referenced other than with wsu:Id. The key length will always be 160 bits.
3.2.2.1 WS-Trust Version 1.3:
Ws-Trust Version 1.3 [ WS-TRUST13 ] describes key derivation through a combination of entropies from both parties. The key is never sent on the wire. The key is never referenced directly (but further key material is derived from it). WS-Trust provides one specific method to derive keys which builds on the P_hash (P_SHA-1) function from TLS.
3.2.2.2 WS-SecurityPolicy 1.2:
WS-SecurityPolicy Version 1.2 [ WS-SECURITYPOLICY12 ] really only specifies whether derived keys shall be used or not but may also specify the algorithm to derive keys. The specification also identifies when derived key tokens shall appear in message headers (header layout). WS-SecurityPolicy relies on WS-SecureConversation for the definition of derived keys, key derivation methods and derived key token format.
3.2.2.3 WS-SecureConversation 1.3:
This
specification
[
WS-SECURECONVERSATION13
]
defines
the
wsc:DerivedKeyTokenType
token
type.
The
derived
key
token
can
be
used
to
derive
keys
from
any
other
token
that
contains
keys.
The
key
derivation
algorithm
specified
builds
on
the
P_hash
(P_SHA-1)
function
from
TLS,
just
as
the
algorithm
in
the
Web
Service
Security
UsernameToken
Profile
document.
Citing
from
the
specification:
"The
<wsc:DerivedKeyToken>
element
is
used
to
indicate
that
the
key
for
a
specific
reference
is
generated
from
the
function.
This
is
so
that
explicit
security
tokens,
secrets,
or
key
material
need
not
be
exchanged
as
often."
(This
latter
seems
dubious
since
the
DerivedKeyToken
still
needs
to
be
exchanged.)
Further:
"Basically,
a
signature
or
encryption
references
a
<wsc:DerivedKeyToken>
in
the
<wsse:Security>
header
that,
in
turn,
references
the
<wsc:SecurityContextToken>
."
The
derived
key
token
does
not
support
references
using
key
identifiers
or
key
names.
All
references
must
MUST
use
an
ID
(to
a
wsu:Id
attribute)
or
a
URI
reference
to
the
<wsc:Identifier>
element
in
the
Security
Context
Token.
3.2.3 Solution Requirements
3.2.3.1 Use in existing specifications (R1)
A derived key type shall be possible to use in those situations where existing specifications make use of ad-hoc derived keys or needs a derived key type
The motivation for this requirement is that any XML Security definition shall be generic enough that there shall be no need to continue with "point" solutions for derived keys; i.e. it shall cover existing and foreseeable uses.
3.2.3.2 No external dependencies (R2)
A derived key type shall enable the simple use of derived keys with XML Signature or XML Encryption -using applications, and shall not require import of non- W3C developed specifications with complex security tokens.
The motivation for this is that basic use of XML Signature or XML Encryption should not require use of externally defined security tokens or other security specification elements.
3.2.3.3 Continued use of existing derivation methods (R3)
An XML Security derived key type shall allow for existing methods to derive keys; i.e. it shall be possible to use already specified key derivation methods with the new derived key type.
This requirement is based on the assumptions that implementations may want to continue with already chosen key derivation schemes.
3.2.3.4 Future-proof with regards to key lengths (R4)
A derived key type shall allow for arbitrary derived key lengths.
3.2.3.5 Referential flexibility (R5)
A derived key type shall allow for referencing using any referencing method in use today for other key types used in XMLDsig or XMLEnc.
A derived key type shall allow for forward referencing with reference lists as recommended by WS-I BSP [ WSI-BSP10 ].
3.2.4 Existing Specifications vs. Requirements
Evaluating the existing specifications against the requirements gives the following result:
UsernameToken Profile:
-
R1: Not met (method specified in UsernameToken profile is ad-hoc for UsernameToken specifically)
-
R2: Not met (method requires use of UsernameToken profile)
-
R3: Not met (UsernameToken profile mandates use of specified mechanism)
-
R4: Not met (Only accept length of 160 bits)
-
R5: Not met (No referencing with KeyName or KeyIdentifier and no
<referenceList>
element)
WS-Trust:
-
R1: N/A (WS-Trust does not define a derived key type per se; only a method to derive keys)
-
R2: N/A
-
R3: Meets (Through use of URI to identify method and extensibility)
-
R4: Meets
-
R5: Meets (Choice of STS on how to identify key)
WS-SecurityPolicy:
-
R1: N/A (WS-SecurityPolicy does not define a derived key type)
-
R2: N/A
-
R3: Meets (Through the use of URIs to identify key derivation methods and schema extensibility)
-
R4: Meets
-
R5: N/A
WS-SecureConversation:
-
R1: Meets
-
R2: Does not meet.
-
R3: Meets (may use the
<Properties>
element to carry parameters for other key derivation methods. -
R4: Meets
-
R5: Does not meet as referencing can only be done to a
<wsse:SecurityTokenReference>
3.2.5 Design Options
3.2.5.1 Create a ds:DerivedKeyType type modeled after the xenc:EncryptedKeyType.
In
this
design
option,
the
new
DerivedKeyType
is
modeled
after
the
xenc:EncryptedKeyType
.
A
*possible*
outline
of
such
a
type
could
be:
Example 1
Outline of possible DerivedKeyType schema definition <element name="DerivedKey" type="xmlsec:DerivedKeyType"/> <complexType name="DerivedKeyType"> <sequence> <element name="KeyDerivationMethod" type="xmlsec:KeyDerivationMethodType" minOccurs="0"/> <element ref="xenc:ReferenceList" minOccurs="0"/> <element name="CarriedKeyName" type="string" minOccurs="0"/> </sequence> <attribute name="Id" type="ID" use="optional"/> <attribute name="Type" type="anyURI" use="optional"/> </complexType> <complexType name="KeyDerivationMethodType"> <sequence> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="Algorithm" type="anyURI" use="required"/> </ complexType >
The proposal immediately meets requirements R2, R3 (any key derivation method may be used, including the ones specified, e.g., in WS-SecureConversation), R4 and R5. For R1 we have:
Username
Token
Profile:
As
the
UsernameToken
Profile
requires
use
of
an
existing
procedure
to
derive
keys,
the
proposal
cannot
formally
meet
requirement
R1.
However,
since
the
UsernameTokenType
is
extensible,
syntactically
the
requirement
can
be
met
since
a
<ds:DerivedKey>
element
could
be
placed
in
lieu
of
the
current
<salt>
and
<iteration>
elements.
WS-Trust:
Use
of
derived
keys
in
WS-Trust
is
_implicit_,
since
the
derived
key
is
never
sent.
The
derived
keys
may
be
referenced
by
any
available
means
in
issued
tokens
and
the
requester
is
only
required
to
identify
particular
key
derivation
methods.
Since
URIs
are
used
for
this
(the
<wst:ComputedKey>
element),
any
other
key
derivation
method
with
a
well-known
URI
may
be
used.
Specifically,
one
can
also
envision
an
STS
returning
a
proof
token
containing
a
<DerivedKey>
element
when
there
already
is
a
shared
key
between
the
STS
and
a
token
requester.
And
so,
R1
is
met.
WS-SecurityPolicy: Not affected by a new key type. R1 is met.
WS-SecureConversation:
Use
of
derived
keys
in
WS-SecureConversation
is
typically
based
on
the
establishment
of
a
session
context,
from
which
specific
keys
are
derived.
The
proposed
<xmlsec:DerivedKeyType>
type
may
be
used
in
a
similar
fashion,
although
the
interactive
nature
of
WS-SecureConversation
(exchange
of
Nonces,
Labels)
may
still
favor
use
of
the
existing
DerivedKeyToken
in
this
context.
But
as
a
counterexample,
a
party
that
wishes
to
send
data
authenticated
with
a
key
derived
from
a
key
established
in
the
session,
may
do
so
using
the
<xmlsec:DerivedKey>
element
in
the
<ds:KeyInfo>
element,
and
the
element
may
refer
to
a
SecurityContextToken
that
identifies
the
base
key.
This
would,
it
seems,
eliminate
an
absolute
need
for
a
<wsc:DerivedKeyToken>
(and
should
be
similar
in
nature
as
the
"Implied
Derived
Key"
option
in
WS-SecureConversation).
Also,
the
<wsc:DerivedKeyToken>
implies
use
of
a
particular
key
derivation
algorithm
(the
<Label>
and
<Nonce>
elements)
although
it
does
not
require
them.
In summary, WS-Trust and WS-SecurityPolicy are not directly affected by this proposal. UsernameToken profile could use the proposal if the (artificial) requirement to only use the key derivation method specified in the UsernameToken Profile document was relaxed. WS-SecureConversation comes close in establishing an alternative but the specification defines a token primarily for use in interactive sessions based on a security context and which is designed for a particular key derivation method. It also seems strange to require use of such a token in more basic XMLDsig or XMLEnc situations. Finally, the proposal seems to be able to replace the DerivedKeyToken currently used in WS-SecureConversation.
3.3 Algorithm security and interoperability
3.3.1 Fundamentals
XML Signature specifies algorithm identifiers and implementation requirements for algorithms related to various aspects of signature processing, including digest and signature algorithms. The algorithms listed in XML Signature, Second Edition date from the original XML Signature Recommendation, published in 2002. Since that time there have been new algorithms introduced to address security risks associated with earlier algorithms (e.g. SHA-256 versus SHA-1), changes in patent status related to algorithms (e.g. RSA signing no longer has licensing requirements), and additional algorithms introduced to meet additional requirements (Suite B algorithms [ SUITEB ], [ ECC-ALGS ]).
In order to meet the principle of "Secure" and "Pragmatic", new algorithm requirements should be met.
3.3.2 Requirements
3.3.2.1 Address SHA security concerns, recognize RSA de-facto use.
In order to address concerns related to potential risks associated with SHA-1 [ SHA-1-Collisions ], the following algorithm requirements that update the SHA algorithm should be met in XML Signature 1.1 and XML Encryption 1.1:
-
Digest:
SHA256 be required.
SHA384 and SHA512 optional.
-
Mac:
HMAC-SHA256 recommended.
HMAC-SHA384 and HMAC-SHA512 optional. (Note these are Recommended in XML Signature 1.1.)
-
Signature:
RSAwithSHA256 required.
RSAwithSHA384, RSAwithSHA512 optional.
3.3.2.2 Revise guidance for DSAwithSHA1
In order to discourage the use of DSAwithSHA1 but to continue to enable interoperability, the following algorithm changes are requirements;
-
Signature:
Continue to require DSAwithSHA1 for signature verification, but change DSAwithSHA1 to optional (from required) for signature generation.
3.3.2.3 Add Suite B algorithm support
In order to:
-
enable long term security for digital signatures (including in commercial contexts),
-
ensure that the XML Signature standard is cryptographically secure and makes use of the best current practices for digital signature algorithms, and
-
enable use of XML Signature technology in a wide variety of commercial and government applications, including those that require Suite B
The additional algorithm requirements are as follows:
-
Signature:
Require ECDSAwithSHA256.
ECDSAwithSHA1, ECDSAwithSHA384, ECDSAwithSHA512 optional. (Note ECDSAwithSHA1 is Discouraged in XML Signature 1.1 due to concerns with SHA-1.)
-
Define ECKeyValue element to enable interoperable exchange of EC public key values in XML Signature context.
-
Provide profile guidance for use of RFC 4050 [ RFC4050 ] when it continues to be used in XML Signature context but indicate preference for mechanism defined in XML Signature.
The last two requirements are discussed in more detail in the following design section.
3.3.3 Suite B Elliptic Curve Key Value Design (ECKeyValue)
3.3.3.1 RFC 4050 issues in XML Signature context
RFC 4050 is an informational RFC that defines a method of representing ECDSA public keys and ECC curve parameters for use with XML Signature, but it has some issues related to XML Signature:
-
The RFC 4050 definition of an ECDSAKeyValue is larger than necessary.
An ECDSAKeyValue is defined by the type ECPointType, which has subelements X and Y. X and Y are defined as FieldParamsType which is an abstract type. Separate derived types are defined for prime fields, trinomial base fields, pentanomial base fields, and odd characteristic extension fields. In order to validate against the 4050 schema, one must include the type attribute from the XML schema instance namespace. This is not a significant problem but it does make the public key larger than necessary.
-
ECPointType definition is inconsistent with ANSI X9.62 and RFC 3279.
ECPointType is reused in the definition of the ExplicitParamsType to describe the base point of a curve. The field parameters are already included in the FieldParams element. The use of the FieldParamsType in the ECPointType definition appears to be a mistake in 4050. If you look at the ASN.1 definition for ECC public keys in RFC 3279 [ RFC3279 ] , ECPoint simply references the Point to Octet String conversion function in ANSI X9.62 (section A.5.6 in the 2005 version, section 4.3.6 in the 1998 version). The conversion functions in X9.62 are not ASN.1 specific and it appears they would be implemented as part of any ECC crypto library. It appears that RFC 4050 tried to avoid using any of the conversion functions in X9.62 but somehow mixed up the definitions between a field type and a field element.
-
Limitation of the decimal type in XSD
RFC 4050 defines X and Y (at least for prime and odd characteristic extension fields) as xs:nonNegativeInteger which derives from the xs:decimal primitive type. However, XSD requires implementations to support only a maximum of 18 digits (see section 3.2.3 in [ XMLSCHEMA11-2 ] ). It is possible to create an example requiring 77 and 78 digits for X and Y respectively. This means that there is no guarantee that an RFC 4050 compliant ECDSAKeyValue element will actually validate against the RFC 4050 schema.
-
Collision between the RFC 4050 DTD and the XMLDSIG DTD
Merging the RFC 4050 DTD into the XMLDSIG DTD is a problem due to conflicting DTD definitions. In ECDSAKeyValue, Y is defined as follows:
Example 2
Definition of Y in ECDSAKeyValue <!ELEMENT Y EMPTY> <! ATTLIST Y Value CDATA #REQUIRED>
However, DSAKeyValue defines Y as follows:
Example 3
Definition of Y in DSAKeyValue <! ELEMENT Y ( #PCDATA) >
ECDSAKeyValue also contains identical definition for elements SEED and P as DSAKeyValue.
It does not seem possible to scope the definition of Y under a specific element in DTD.
3.3.3.2 Proposed Solution to RFC 4050 issues in XML Signature context
Because of these issues, a possible proposed solution is for XML Signature 1.1 to define a new ECPublicKey element in the ds namespace rather than attempt to reuse the RFC 4050 ECDSAPublicKey elements. This new element will be based on the ASN.1 definition ANSI X9.62 and RFC 3279. Changing the name of the element to ECPublicKey means it can be also used in XML Encryption to support ECDH. (Note, XML Signature 1.1 defined ECKeyValue instead).
To maximize interoperability with existing RFC 4050 implementations, we should also put a note in 1.1 to recommend implementations to support a profile of RFC 4050. The profile will support only named prime curves.
3.4 Correct known issues
This section summarizes the motivation for new features designed to address known issues. (This section of the requirements document was written after the XML Signature 1.1 specification was updated in order to record the rationale for the changes.)
3.4.1
Limitations
associated
with
X509IssueSerial
The
X509IssuerSerialNumber
child
element
of
the
X509IssuerSerialType
XML
Schema
type
was
defined
to
be
an
integer
holding
an
X.509
certificate
serial
number.
XML
Schema
validators
may
not
support
integer
types
with
decimal
data
exceeding
18
decimal
digits
[
XMLSCHEMA-2
]
and
this
maximum
length
has
proven
insufficient
as
many
Certificate
Authorities
issue
certificates
with
large
random
serial
numbers
that
exceed
this
limit.
A
new
element
is
defined
in
XML
Signature
1.1
with
a
different
type
definition,
the
sig11:X509Digest
element,
and
a
warning
that
deployments
that
make
use
of
the
X509IssuerSerial
element
should
take
care
if
schema
validation
is
involved.
3.4.2
Simplify
access
to
ds:KeyInfo
The
RetrievalMethod
is
ambiguous
about
whether
the
result
is
an
element
within
KeyInfo
or
the
KeyInfo
element
itself.
It
also
supports
the
use
of
ds:Transform
adding
complexity.
The
new
KeyInfoReference
element
removes
the
ambiguity
by
always
referencing
the
KeyInfo
element
itself.
It
also
is
simpler
in
that
it
does
not
allow
any
ds:Transform
children.
3.4.3
XML
KeyValue
type
interoperability
XML
Signature
1.1
defines
XML
formats
to
convey
key
information
in
the
KeyValue
element.
There
are
scenarios
where
at
least
one
of
signer
and/or
verifier
are
not
able
to
serialize
keys
in
those
XML
formats.
The
DEREncodedKeyValue
element
has
been
added
to
XML
Signature
1.1
to
support
use
of
other
binary
encodings.
3.4.4 Support OCSP use case
It
is
sometimes
useful
to
provide
an
OCSP
response
along
with
an
X.509
certificate.
The
OCSPResponse
element
was
added
to
X509Data
to
support
this
use
case.
4. Acknowledgments
Contributions received from the members of the XML Security Working Group: Scott Cantor, Juan Carlos Cruellas, Pratik Datta, Gerald Edgar, Ken Graf, Phillip Hallam-Baker, Brad Hill, Frederick Hirsch, Brian LaMacchia, Konrad Lanz, Hal Lockhart, Cynthia Martin, Rob Miller, Sean Mullan, Shivaram Mysore, Magnus Nyström, Bruce Rich, Thomas Roessler, Ed Simon, Chris Solc, John Wray, Kelvin Yiu.
A. References
Dated references below are to the latest known or appropriate edition of the referenced work. The referenced works may be subject to revision, and conformant implementations may follow, and are encouraged to investigate the appropriateness of following, some or all more recent editions or replacements of the works cited. It is in each case implementation-defined which editions are supported.
A.1 Informative references
-
[ECC-ALGS]
- D. McGrew, McGrew; K. Igoe, Igoe; M. Salter. RFC 6090: Fundamental Elliptic Curve Cryptography Algorithms. Algorithms . February 2011. IETF Informational RFC. URL: http://www.rfc-editor.org/rfc/rfc6090.txt [EXI]
- Takuki Kamiya; John Schneider. Efficient XML Interchange (EXI) Format 1.0. 1.0 . 8 December 2009. W3C Candidate Recommendation. (Work in progress.) URL: http://www.w3.org/TR/2009/CR-exi-20091208/ [PKCS5]
- B. Kaliski. PKCS #5 v2.0: Password-Based Cryptography Standard . September 2000. IETF RFC 2898. September 2000. URL: http://www.ietf.org/rfc/rfc2898.txt [RFC3279]
- W. Polk, R. Housley, L. Bassham. Algorithmupdates and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile . April 2002. Internet RFC 3279. URL: http://www.ietf.org/rfc/rfc3279.txt [RFC4050]
- S. Blake-Wilson, Blake-Wilson; G. Karlinger, Karlinger; T. Kobayashi, Kobayashi; Y. Wang. Using the Elliptic Curve Signature Algorithm (ECDSA) for XML Digital Signatures. Signatures (RFC 4050) IETF RFC 4050. . April 2005. RFC. URL: http://www.ietf.org/rfc/rfc4050.txt [SHA-1-Collisions]
- X. Wang, Y.L. Yin, H. Yu. Finding Collisions in the Full SHA-1 . In Shoup, V., editor, Advances in Cryptology - CRYPTO 2005, 25th Annual International Cryptology Conference, Santa Barbara, California, USA, August 14-18, 2005, Proceedings, volume 3621 of LNCS, pages 17–36. Springer, 2005. URL: http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf (also published in http://www.springerlink.com/content/26vljj3xhc28ux5m/ ) [SMIME]
- B. Ramsdell. S/MIME Version 3.1 Message Specification. Specification . July 2004. Internet RFC 3851. URL: http://www.ietf.org/rfc/rfc3851.txt [SUITEB]
- NSA Suite B Cryptography . URL: http://www.nsa.gov/ia/programs/suiteb_cryptography/ [WEBARCH]
- Norman Walsh; Ian Jacobs. Architecture of the World Wide Web, Volume One. One . 15 December 2004. W3C Recommendation. URL: http://www.w3.org/TR/2004/REC-webarch-20041215/ [WIDGETS-DIGSIG]
- M. Cáceres; P. Bayers; Stuart Knightley; F. Hirsch; M Priestley. Digital Signatures for Widgets. Widgets . (Work in progress.) progress. ). URL: http://www.w3.org/TR/2010/CR-widgets-digsig-20100624 http://www.w3.org/TR/widgets-digsig [WS-SECURECONVERSATION13]
- A. Nadalin, M. Goodner, M. Gudgin, A. Barbir, H. Granqvist. WS-SecureConversation 1.3 . OASIS Standard, 1 March 2007. URL: https://www.oasis-open.org/standards#wssecconv1.3 [WS-SECURITY11]
- A. Nadalin, C. Kaler, R. Monzillo, P. Hallam-Baker. Web Services Security: SOAP Message Security 1.1 (WS-Security 2004) . OASIS Standard, 1 February 2006. URL: https://www.oasis-open.org/standards#wssv1.1 [WS-SECURITYPOLICY12]
- A. Nadalin, M. Goodner, M. Gudgin, A. Barbir, H. Granqvist. WS-SecurityPolicy 1.2, OASIS Standard . 1 July 2007. URL: https://www.oasis-open.org/standards#wssecpolv1.2 [WS-TRUST13]
- A. Nadalin, M. Goodner, M. Gudgin, A. Barbir, H. Granqvist. WS-Trust 1.3 . OASIS Standard, 19 March 2007. URL: https://www.oasis-open.org/standards#wstrustv1.3 [WSI-BSP10]
- M. McIntosh, M. Gudgin, K. S. Morrison, A. Barbir. Basic Security Profile Version 1.0 . WS-I Final Material, 30 March 2007. URL: http://www.ws-i.org/Profiles/BasicSecurityProfile-1.0.html [WSS-USERNAME11]
- A. Nadalin, C. Kaler, R. Monzillo, P. Hallam-Baker. Web Services Security UsernameToken Profile 1.1 . OASIS Standard Specification, 1 February 2006. URL: https://www.oasis-open.org/committees/download.php/16782/wss-v1.1-spec-os-UsernameTokenProfile.pdf [XML-C14N11]
- John Boyer, Boyer; Glenn Marcy. Canonical XML Version 1.1. 1.1 . 2 May 2008. W3C Recommendation. URL: http://www.w3.org/TR/2008/REC-xml-c14n11-20080502/ [XML-CANONICAL-REQ]
- James Tauber; Joel Nava. XML Canonicalization Requirements. Requirements . 5 June 1999. W3C Note. URL: http://www.w3.org/TR/1999/NOTE-xml-canonical-req-19990605 [XML-INFOSET]
- John Cowan; Richard Tobin. XML Information Set (Second Edition). Edition) . 4 February 2004. W3C Recommendation. URL: http://www.w3.org/TR/2004/REC-xml-infoset-20040204/ [XMLDSIG-COMPLEXITY]
- Brad Hill. Complexity as the Enemy of Security: Position Paper for W3C Workshop on Next Steps for XML Signature and XML Encryption. Encryption . 25-26 September 2007. September. W3C Workshop. Working Draft. URL: http://www.w3.org/2007/xmlsec/ws/papers/04-hill-isecpartners/ [XMLDSIG-CORE]
- Joseph Reagle; Reagle et al. XML Signature Syntax and Processing (Second Edition). Edition) . 10 June 2008. W3C Recommendation. URL: http://www.w3.org/TR/2008/REC-xmldsig-core-20080610 http://www.w3.org/TR/2008/REC-xmldsig-core-20080610/ [XMLDSIG-PROPERTIES]
- Frederick Hirsch. XML Signature Properties. Properties 24 January . 11 April 2013. W3C Proposed Recommendation. (Work in progress.) URL: http://www.w3.org/TR/2013/PR-xmldsig-properties-20130124/ http://www.w3.org/TR/2013/REC-xmldsig-properties-20130411/ [XMLDSIG-REQUIREMENTS]
- Joseph Reagle Jr. XML-Signature Requirements. Requirements . 14 October 1999. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/1999/WD-xmldsig-requirements-19991014 [XMLDSIG-SEMANTICS]
- Sebastian Gajek, Gajek; Lijun Liao, Liao; and Jörg Schwenk. Towards a Semantic of XML Signature: Position Paper for W3C Workshop on Next Steps for XML Signature and XML Encryption . 25-26 September 2007. W3C Workshop. URL: http://www.w3.org/2007/xmlsec/ws/papers/07-gajek-rub/ [XMLDSIG-THOMPSON]
- Henry Thompson. Radical proposal for Vnext of XML Signature: Position Paper for W3C Workshop on Next Steps for XML Signature and XML Encryption . 26 September 2007. W3C Workshop. URL: http://www.w3.org/2007/xmlsec/ws/papers/20-thompson/ [XMLENC-CORE]
- Donald Eastlake; Joseph Reagle. XML Encryption Syntax and Processing. Processing . 10 December 2002. W3C Recommendation. URL: http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/ [XMLSCHEMA-2]
- Paul V. Biron; Ashok Malhotra. XML Schema Part 2: Datatypes Second Edition. Edition . 28 October 2004. W3C Recommendation. URL: http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/ [XMLSCHEMA11-2]
- Henry S. Thompson; Thompson et al. W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. Datatypes . 5 April 2012. W3C Recommendation Recommendation. URL: http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/ [XMLSEC-NEXTSTEPS-2007]
- Frederick Hirsch; Thomas Roessler. Workshop Report W3C Workshop on Next Steps for XML Signature and XML Encryption . 25-26 September 2007. W3C Workshop Report. URL: http://www.w3.org/2007/xmlsec/ws/report.html