- From: Richard D. Brown <rdbrown@GlobeSet.com>
- Date: Thu, 29 Apr 1999 09:09:24 -0500
- To: <dee3@us.ibm.com>, "'XML-DSig Workshop'" <w3c-xml-sig-ws@w3.org>
Donald, I think that there is another approach that could satisfy the requirements of a crypto-engine (CMS, PenOP, etc...) in general. We could simply assume these engines as "specific crypto-algorithms" and leverage the current syntax. <Signature> <Manifest> (resource information block) (optional authenticated attributes) (originator information block) (optional recipient information block) <Canonicalizer> <Algorithm type='urn:w3c-org:xcf'\> </Canonicalizer> <SignatureAlgorithm> <Algorithm type='urn:ietf-org:cms'\> </SignatureAlgorithm> </Manifest> <Value encoding='base64'> (CMS Blob) </Value> </Signature> <Certificates> (certificate information blocks) </Certificates> For signature computation the XML-DSIG implementation will have to indicate the underlying crypto-algorithm (i.e. RSAwithSHA1), the keying material, and optionaly the certificate-chain to the CMS crypto-engine. This simple approach should work, but, as you have mentioned in your previous email, there will be a lot of redundant pieces of information between the Manifest and the encoded CMS blob. Also, I think we should mandate that the CMS blob SHALL NOT contain any authenticated attribute. Also, if we were to consider "crypto-engines", none SHALL be made mandatory. BTW: Notice that the Manifest explicitly refers to the canonicalizer algorithm. This has nothing to do with this particular proposal (though helpful in this case), but is an option that I have proposed in the last draft document (see #99040103). *** THIS PROPOSAL DOES NOT REFLECT MY POSITION IN REGARD TO USING CRYPTO-ENGINES SUCH AS CMS OR PEN-OP *** Sincerely, Richard D. Brown > -----Original Message----- > From: w3c-xml-sig-ws-request@w3.org > [mailto:w3c-xml-sig-ws-request@w3.org]On Behalf Of dee3@us.ibm.com > Sent: Wednesday, April 28, 1999 3:23 PM > To: XML-DSig Workshop > Subject: Re: Example of XML-DSIG and CMS > > > I would say, in its purest form, it is the difference between > the top level > element in Richard Brown's draft > > <signature> > <manifest> > (resources information block) > (optional authenticated attributes) > (originator information block) > (optional recipient information block) > (optional key agreement algorithm block) > (sigature algorithm) > </manifest> > <value encoding='base64'> > base64-of-PKCS#1-or-other-encrypted-blob-signature > </value> > </signature> > > and > > <signature encoding='base64'> > base64-of-ASN.1-encoded-CMS-signatures-blob > </signature> > > where all the stuff out in the open in the Brown proposal is > now buried in > an ASN.1 BER blob. Since this is pretty distasteful, you > would probably > want to back out the resources blob, which is straightforward > to do, so you > get > > <siganture> > (resources information block) > <value encoding='base64' > base64-of-ASN.1-encoded-CMS-detached-sigantures-blob > </value> > </signature> > > which would also mean that any per resource attributes would be in the > open. However, as you try to go further and drag more out of > the ASN.1 > encoding into the light of day while staying with CMS > (<http://www.ietf.org/internet-drafts/draft-ietf-smime-cms-13. > txt>), it > gets much stickier. You can try dragging the signature level > authenicated > attributes out like > > <siganture> > <manifest> > (resources information block) > (authenticated attributes block) > </manifest> > <value encoding='base64' > base64-of-ASN.1-encoded-CMS-detached-sigantures-blob- > including-ASN.1-encoded-authenticated-attributes > </value> > </signature> > > but, as shown, there could still be some, which might be the same or > contradictory or just different, buried in the CMS. In fact CMS > specifically defines an ASN.1 encoded time of signing > attribute which is > presumably what you are supposed to use for that if you are > CMS conformant > and defines an ASN.1 encoded countersignature attribute, etc. And you > really can't drag out the algorithm, originator, or recipient > information. > Or at least, while you can put them in an XML encoded > manifest, they still > have to appear ASN.1 encoded inside the CMS blob where they could be > inconsistent, etc. > > (Well, to be precise, you could just explode the > non-encrypted part of the > CMS from ASN.1 into XML after some signature engine produced > the CMS blob > but you would, of course, have to have encoded all the > information into > ASN.1 when it was signed and re-encode all the information > back into an > ASN.1 CMS blob for verification. Doing this doesn't seem to make much > sense, since it implies code that which understands XML and all these > elements. This code could just as easily call the next level down of > crypto library. Requiring the code to also undersand ASN.1 > and going into > and out of an ASN.1 form doesn't seem to add anything but complexity.) > > At the risk of further controvery, I suppose I should talk about > certificates/CRLs also. With CMS, these are included in the blob and > constrained to be X.509, which is ASN.1 encoded. With the > Richard Brown's > markup, certficiates, when needed, are in a <certificate> > element, usually > gathered into a <certificates> aggregate, and there is provision for > arbitrary certificate types of which, no doubt, X.509 will be > common for > some time. It might seem natural to have certificates coupled to > sigantures in a strucuture, such as CMS, but as soon as you > get to complex > cases like messages with multiple different signatures, it is > common for a > certificate to help in the authentication of several of > these. Thus, I > believe, it is really the most natural model to consider all the > certificates in a message to be in a single pool that needs > to be available > to help validate any of the signatures in the message, rather > than coupled > to a particular signature. > > Hope this is helpful, > > Thanks, > Donald > > Donald E. Eastlake, 3rd > 17 Skyline Drive, Hawthorne, NY 10532 USA > dee3@us.ibm.com tel: 1-914-784-7913, fax: 1-914-784-3833 > > home: 65 Shindegan Hill Road, RR#1, Carmel, NY 10512 USA > dee3@torque.pothole.com tel: 1-914-276-2668 > > > > "Joseph M. Reagle Jr." <reagle@w3.org> on 04/27/99 04:59:42 PM > > To: "XML-DSig Workshop" <w3c-xml-sig-ws@w3.org> > cc: (bcc: Donald Eastlake/Hawthorne/IBM) > Subject: Example of XML-DSIG and CMS > > > > I often find it helps me when their's contention to have two proposals > before me, with examples. Since I'm not sure there _is any_ > disagreement, > would someone do me the favor of writing up at least one quick example > showing what a CMS blob would look like in (an extension) of Richard's > synatx? If someone then sees they disagree, it should be > clear what type of > example would demonstrate the difference. > > ___________________________________________________________ > Joseph Reagle Jr. W3C: http://www.w3.org/People/Reagle/ > Policy Analyst Personal: http://web.mit.edu/reagle/www/ > mailto:reagle@w3.org >
Received on Thursday, 29 April 1999 10:09:52 UTC