- From: Ed Simon <ed.simon@entrust.com>
- Date: Thu, 19 Aug 1999 18:37:52 -0400
- To: "'w3c-ietf-xmldsig@w3.org'" <w3c-ietf-xmldsig@w3.org>
During today's teleconference, there were a number of examples mentioned
suggesting that some level of transformation needed to be an integral part
of the XML digital signature spec. Eg.
* excluding certain sub-elements from being signed
* signing the content of elements but not the starting and ending tags
* ensuring unique identifiers when creating a composite document
from fragments of external documents
* preserving context-information: eg. did element X have ancestor Y?
IFF (if and only if) the workgroup decides that transformations like the
above
need to be an integral part of the XML digital signature specification, I
would
propose that processing include an OPTIONAL transformation step before
the canonicalization step. The syntax which would support this
could be something like:
<signature id="foo">
...
<object>
...
<content type="manifest">
<manifest id="bar">
<resource>
<location> syntax.txt </location>
<transformationAlg type="xsl"
href="http://www.transforms_r_us.org/excludeThis.xsl"
digestAlg="sha-1"
digest="a23bcd43 "/>
<c14nAlg type="identity"/>
<digestAlg type="sha-1"/>
<digest> a23bcd43 </digest>
</resource>
</manifest>
</content>
</object>
...
</signature>
I recognize some serious problems with the above:
1. My suspicion is that there will be numerous application-specific
transformation needs. In the current framework,
application-specific details should be captured
in the signed attributes not in the <object> element itself to keep
the "core" signature as free from application-specific details as
possible. On the other hand, if transformation is critical to the
calculation of the digital signature,
it needs to be in the <resource> element. Right? Your thoughts please.
2. The above example sneaks in a covert "resource" within the attributes
of the <transformationAlg> element. Alternatively, I could have had
the <transformationAlg> element referencing a second <resource>
element, but I notice the DTD for the new syntax from David Solo,
Barb Fox, and Richard Brown seems to allow one and only one
<resource> element per signature. In Richard Brown's original
syntax, there was a <resources> element containing multiple
<resource> elements. I was surprized that there was not any
extended archive discussion about this change.
Or did I miss it? Was it decided that multiple <resource>
elements was an unnecessary complexity?
Regards, Ed
P.S.
I think mixing transformation into the canonicalization step
will not work out because there will likely be a large
number of application-specific transformations that
applications would want to do whereas I hope
the number of canonicalization algorithms can be kept to less than
half a dozen (eg. identity [no canonicalization],
lossy canonicalization [the current W3C proposal],
lossless canonicalization [like the current W3C proposal but with all
information loss, just whitespace neutralization]).
Received on Thursday, 19 August 1999 18:38:53 UTC