- From: <noah_mendelsohn@us.ibm.com>
- Date: Mon, 16 Feb 2004 21:31:26 -0500
- To: "Martin Gudgin" <mgudgin@microsoft.com>
- Cc: xml-dist-app@w3.org
Gudge,
I think this is fine as far as it goes, but I have an additional
suggestion for an area to be covered. Specifically, I think there are a
number of potential attacks relating to malicous data provided at the
sender or receiver. What I have in mind is along the following lines:
===========
MESSAGE INTEGRITY
This specification provides explicit mechanisms to protect against
inadvertent serialization of certain erroneous data. Specifically,
section 4.2 [1] requires that senders "Ensure that the Original Data Model contains no Element Node with a
node-name of http://www.w3.org/2003/12/xop/include;Include}." This rule protects against the possibility that sending software would
maliciously or inadvertently introduce a XOP link to data that did
correspond to the original envelope input, and in particular protects
against generation of links that might result in security exposures upon
dereference. Also, section 4.1 [2] makes clear that elements to be
optimized " MUST have type equal to xs:base64Binary , and (that) the return value of
the dm:string-value accessor of such Nodes must be in the canonical
lexical representation of that type as described in Errata in XML Schema,
E2-54." In so doing, the specification protects against potentially malicious
attempts to force data conversions on erroneous data.
Thus, currectly written serializers will produce streams that can be
deserialized using the mechanisms described by this recommendation, but
there is still in some circumstances the risk that malicious or erroneous
software would present for deserialization a stream that does not conform
to the rules of this recommendation. As with any such software, XOP
deserializers should be written to check for and to decline to deserialize
such erroneous input. In addition to the checks that would usually be
done in parsing a multipart MIME package and a (root) part of media type
"application/xxxx+xml", XOP deserializers SHOULD ensure that the href
attribute on each xbinc:Include properly resolves to a part within the
multipart-related package. Links to (representations of) other resources
are erroneous and SHOULD NOT be followed.
===========
Or some such. Make sense?
Noah
[1] http://www.w3.org/TR/2004/WD-xop10-20040209/#creating_xop_packages
[2] http://www.w3.org/TR/2004/WD-xop10-20040209/#creating_xop_packages
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
"Martin Gudgin" <mgudgin@microsoft.com>
Sent by: xml-dist-app-request@w3.org
02/10/2004 02:32 AM
To: <xml-dist-app@w3.org>
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: Security Consideration section for MTOM
I took an action on the 2004-02-03 call to write up a security
considerations section for MTOM. Here's a first cut. Comments welcome.
Cheers
Gudge
Message Integrity
The integrity of SOAP messages transmitted using the MTOM HTTP Binding
may need to be ensured. As such messages can be transformed to an XML
Information Set, from which an XPath 1.0 Data Model can be inferred,
existing XML Digital Signature techniques can be used to protect such
messages. Digests computed for this purpose would be over the base64
characters rather than the xbinc:Include elements. Existing
canonicalization algorithms[C14N,EXCC14N] do not permit computing
digests over the binary octets directly. Future canonicalization
algorithms could describe a more efficient algorithm.
Care should be taken when constructing an XPath node set as input to a
canonicalization algorithm. Specifically, node sets where adjacent nodes
are text nodes containing base64 characters should be avoided as an
attacker could move base64 characters from one node to another without
changing the digest value.
Message Confidentiality
The confidentiality of SOAP messages transmitted using the MTOM HTTP
Binding may need to be ensured. As such messages can be transformed to
an XML Information Set existing XML Encryption techniques can be used to
protect such messages. Any part of a message can be encrypted, whether
it includes base64 characters or not. The resulting CipherData can then
be optimized because the content of such an element is base64
characters.
In future a transform algorithm for use with xenc:CipherReference could
provide a more efficient processing model where the raw octets are
encrypted directly.
Received on Monday, 16 February 2004 21:32:08 UTC