- From: Rich Salz <rsalz@datapower.com>
- Date: Wed, 11 Jun 2003 15:31:50 -0400
- To: "xml-dist-app@w3.org" <xml-dist-app@w3.org>
Martin and I exchanged some email off-line, just to make sure we each understood each other. :) Here's my Noah-like attempt to get it all down in one note. A single XML DSIG can cover multiple data sources within a single signature, by including multiple dsig:Reference elements. The reference has a digest (hash), a URI to point to the data, and an optional set of transformations. Transformations are applied in order, so one can say "run this stylesheets, and then canonicalize the results" for example. There are about 3 or 4 XML canonicalization algorithms for XML DSIG (c14n, exc-c14n, UDDI's schema-aware c14n, and soap message normalization are the main ones that come to mind). All of them assume that they are working on valid XML 1.0 data; this means that arbitrary binary data isn't legal. The issue is how do you sign <m:MyElement someattr='blah' > <xbinc:Include href='someuritoanattachment' /> </m:MyElement> where the data is binary. In the Inofset it's base64. There are a couple of approaches: 1. Define a new C14N mechanism; I recommend against this. WS-Security seems like the way the market is going to do XML DSIG, and that strongly recommends exc-c14n. Getting all xml dsig vendors to buy into this, and its necessary integration with their customer's infoset, might be very hard. 2. Don't try to sign binary data; this is in accord with current c14n mechanisms which will want a base64 bytestream anyway, as described above in the no-binary sentences. 3. Use two dsig:References: one for the element and its attributes and another for the binary content. 4. Sign just the content, treating it as binary. For what it's worth, my preference is #2. We crypto guys are used to dealing with base64 all the time, anyway. :) In another posting, Gudge asked by signing times. In most cases (i.e., assuming no tricky XSLT transforms involved), the cost of signing is ka+b, where a is the length of the data, and b is fixed based on the number of bits in the key. Hope this helps. /r$ -- Rich Salz, Chief Security Architect DataPower Technology http://www.datapower.com XS40 XML Security Gateway http://www.datapower.com/products/xs40.html XML Security Overview http://www.datapower.com/xmldev/xmlsecurity.html
Received on Wednesday, 11 June 2003 15:34:19 UTC