- From: <david.solo@citicorp.com>
- Date: Tue, 24 Aug 1999 08:30:05 -0400
- TO: w3c-ietf-xmldsig@w3.org
- CC: dsolo@alum.mit.edu
- Message-Id: <H0000cc40413fd61@MHS>
Based on the recent discussion, I want to propose the following resolution for
the detached/embedded and transform discussions. In the last version of the
syntax, the notion was to allow either an object within the siginfo element or
a reference to an external element. This introduced two problems (at least):
one was the potential for nested c14n's where one alg applied to the object and
the other to the sigInfo wrapper; and the other the fact that the processing
for an embedded vs. detached signature were different (thus, one couldn't
convert between the methods without breaking the signature).
In order to address this, I'm proposing moving back to a variation on prior
suggestions in which the sigInfo element always contains a single reference (a
resource element) to the object being signed(which may be a manifest, a PDF
file, etc.). The resource element in sigInfo contains the location, a set of
transformations to be applied prior to digest calculation (e.g. c14n,
exclusion, encoding), and the digest alg and value (calculated over the
contents of the object element or the referenced document, but excluding the
<object> start and end tags. An embedded object may be contained within the
signature element, but not within siginfo.
This approach allows switching between embedded and detached signatures without
breaking the signature (as long as we get the digest computation rules right),
and separates the c14n of sigInfo from the transformations applied to the
object. It does impose the cost of an additional digest calculation in some
instances.
In addition to documenting and refining this (example below), I expect the
draft for next Monday to also begin to define some of the keyInfo and algorithm
structures. I should have the new draft out later this week.
Dave
P.S. My citicorp.com email address is currently in send-only mode (?), so send
any replies to dsolo@alum.mit.edu
---
Sample revised syntax:
<signature id="...">
<signedInfo>
<c14nAlg type="null"/>
<!-- applies to signedInfo, should have a default value -->
<sigAlg type="rsaWithSHA-1"/>
<resource>
<reference type="http://..." href="..."/>
<transformations>
<!--applies to object-->
<c14nAlg type="http://..."/>
<encoding type="http://..."/>
</transformations>
<digestAlg type="sha-1"/>
<digestValue> a23bcd43 </digest>
</resource>
<signedAttributes>
<attributeData type="http://...">19990824132700Z</attributeData>
</signedAttributes>
</signedInfo>
<object ID="...">
<!-- present if embedded object -->
jhasodutoinwoiahsh
</object>
<keyInfo type="keyName"> 3 </keyInfo>
<sigValue> dd2323dd </sigValue>
</signature>
Received on Tuesday, 24 August 1999 08:31:00 UTC