- From: Joseph M. Reagle Jr. <reagle@w3.org>
- Date: Tue, 25 Jul 2000 17:25:33 -0700
- To: "IETF/W3C XML-DSig WG" <w3c-ietf-xmldsig@w3.org>
Some thoughts [1]. (Basically, let's tighten our definition of a conformant Signature application and define a conformant signature element as why that is laxly valid according to the schema). Other thoughts are welcome. __ [1] http://www.w3.org/Signature/2000/07/27-conformance.html Status This is a proposed enumeration of the conformance requirements specified in [3]http://www.w3.org/TR/2000/WD-xmldsig-core-20000711/ with suggestions to provide greater organization and clarity that will hopefully be reflected back into the next version of the specification. _________________________________________________________________ [3] http://www.w3.org/TR/2000/WD-xmldsig-core-20000711/ Presently, the specification constrains (a) XML Signature Syntax and (b) XML Signature Applications. Most of the MUSTs relate to XML Signature applications. Should we cast all of these constraints as application conformance requirements or syntax requirements? (I don't think the latter is possible and that we should continue to want to use both as discussed below). Syntax I'm not sure what these MUSTs mean as they are more descriptive than prescriptive. (This is also currently being discussed on the list). * 7.1 XML 1.0, Syntax Constraints, and Canonicalization Thus, to interoperate between different XML implementations, the following syntax constraints MUST be observed when generating any signed material to be processed as XML, including the SignedInfo element: * 7.2 DOM/SAX Processing and Canonicalization For an XML Signature to be verifiable by an implementation using DOM or SAX, not only must the syntax constraints given in [4]section 7.1 be followed but an appropriate XML Canonicalization MUST be specified so that the verifier can re-serialize DOM/SAX mediated input into the same octect stream that was signed. [4] http://www.w3.org/Signature/2000/07/27-conformance.html#sec-XML-1 I believe a single syntax constraint should be stated along the lines of: a conforming digital signature element is an element that is [5]schema-valid-lax [[6]XML-schema] with respect to the XML Signature schema. [5] http://www.w3.org/TR/2000/WD-xmlschema-1-20000407/#cvc-elt-lax [6] http://www.w3.org/Signature/2000/07/27-conformance.html#ref-XML-schema The questions are: 1. Do we have any other choice? (We could speak of an XML1.0 Signature document, but this only works with external signatures/DTDs). 2. How much work does this validation entail? We aren't using that many schema features, consequently how much work does it take relative to a schema validating parser? XML Signature Applications I suspect some of these could use some tuning. * 1.3 Versions, Namespaces and Identifiers ...The XML namespace [[7]XML-ns] URI that MUST be used by implementations of this (dated) specification is: xmlns="http://www.w3.org/2000/07/xmldsig#" While applications MUST support XML and XML-namespaces, the use of [8]internal entities [[9]XML] or our "dsig" XML [10]namespace prefix and defaulting/scoping conventions are OPTIONAL * 2.1 Simple Example (Signature, SignedInfo, Methods, and References) To promote application interoperability we specify a set of signature algorithms that MUST be implemented, though their use is at the discretion of the signature creator. * 4.3.3 The Reference Element XML Signature applications MUST be able to parse URI syntax. We RECOMMEND they be able to dereference URIs and null URIs in the HTTP scheme XML Signature applications MUST support the XPointer '[11]bare name' [[12]Xptr] shortcut after '#' so as to identify IDs within XML documents. * 4.4 The KeyInfo Element While applications may define and use any mechanism they choose through inclusion of elements from a different namespace, compliant versions MUST implement Section 4.4.2: [13]KeyValue and SHOULD implement Section 4.4.3: [14]RetrievalMethod. * 4.4.4 The X509Data Element Multiple declarations about a single certificate (e.g., a X509SubjectName and X509IssuerSerial element) MUST be grouped inside a single X509Data element; multiple declarations about the same key but different certificates (related to that single key) MUST be grouped within a single KeyInfo element but multiple X509Data elements. For example, the following block contains two pointers to certificate-A (issuer/serial number & SKI) and a single reference to certificate-B (Subject Name): * 6.1 Algorithm Identifiers and Implementation Requirements Explicit additional parameters to an algorithm appear as content elements within the algorithm role element. Such parameter elements have a descriptive element name, which is frequently algorithm specific, and MUST be in the XML Signature namespace or an algorithm specific namespace. Algorithms: SHA1 Base64, HMAC-SHA1, DSAwithSHA1 (DSS), Canonical XML The Enveloped Signature transform removes the Signature element from the calculation of the signature when the signature is within the document that it is being signed. This MAY be implemented via the RECOMMENDED XPath specification specified in 6.6.4: [15]Enveloped Signature Transform; it MUST have the same effect as that specified by the XPath specification. * 6.6.4 Enveloped Signature Transform Note that it is not necessary to use an XPath expression evaluator to create this transform. However, this transform MUST produce output in exactly the same manner as the XPath transform parameterized by the XPath expression above. [7] http://www.w3.org/Signature/2000/07/27-conformance.html#ref-XML-ns [8] http://www.w3.org/TR/REC-xml#sec-internal-ent [9] http://www.w3.org/Signature/2000/07/27-conformance.html#ref-XML [10] http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-prefix [11] http://www.w3.org/TR/xptr#bare-names [12] http://www.w3.org/Signature/2000/07/27-conformance.html#ref-XPointer [13] http://www.w3.org/Signature/2000/07/27-conformance.html#sec-KeyValue [14] http://www.w3.org/Signature/2000/07/27-conformance.html#sec-RetrievalMethod [15] http://www.w3.org/Signature/2000/07/27-conformance.html#sec-EnvelopedSignatur e _________________________________________________________ Joseph Reagle Jr. W3C Policy Analyst mailto:reagle@w3.org IETF/W3C XML-Signature Co-Chair http://www.w3.org/People/Reagle/
Received on Tuesday, 25 July 2000 17:25:24 UTC