Hi Brian,
I appreciate the time you have taken to post this clarification, but as
one XML DSig co-author to another, I am wondering if you spent
any time considering the technical merits of the clarification originally
posted by Infopath program manager Alessandro Catorcini to the
microsoft.public.infopath newsgroup?
Your well-respected work on XML DSig pertained mostly to the
development of an XML Signature implementation. However,
Mr. Catorcini seems not to have appreciated that InfoPath is a consumer
of XML Signature technology, not an implementer of said technology.
This is a crucial distinction that he seems not to have made when he
cites
from the spec as follows: "XMLDSIG is a method of associating
a key with
referenced data; it does not normatively
specify...the meaning of the data being
referenced and
signed."
Of course XML DSig cannot be responsible for semantics of
the
consuming application. This is precisely why the consuming application must
therefore be responsible or else XML DSig is being misused. Indeed,
the
principal reason we allowed multiple references in a single signature
was
to permit separated data and UI to be brought together in a single
signature.
In fact, in Section 8.1.2 we directly codified the obligation of
consuming
applications to include in a signature enough references and
transforms to
preserve not just the data but also the presentation layer
information.
Thus, the posted clarification seems to do little but solidify
the reality
of the security problem we have identified with InfoPath signatures,
especially when it states that "XMLDSIG digital signatures are most commonly
used to ascertain that the XML data
underlying the InfoPath form has not been
altered since the form was originally
signed". We see clearly that InfoPath
provides data-only signatures, and we have not been able to circumvent
the design environment to force InfoPath to create secure signatures. It
may be that server-to-server communications must secure only data, but
InfoPath is a client-to-server application.
Unfortunately, an end-user signature over only the data has little or no
security value because the end-user does not see the data, but rather
the end-user sees a presentation layer view of the data, which can be
substantially modified by the relying party (the government organizations,
insurance companies, financial institutions, etc. that are the usual
validators
of signature) ** without breaking the InfoPath signature **.
I would recommend, and I encourage you to recommend to Mr. Catorcini,
that InfoPath be patched immediately to remove support for the current
insecure signatures so that Microsoft does not have to provide backwards
compatibility support for them. Consuming applications of XML
DSig
(such as InfoPath) should neither encourage nor even support the current
insecure variety of digital signatures.
Thanks for your further attention to this important security concern.
Sincerely,
John M. Boyer, Ph.D.
Senior Product Architect and Research Scientist
PureEdge Solutions Inc.
-----Original Message-----
From: Brian LaMacchia
[mailto:bal@exchange.microsoft.com]
Sent: Fri 10/31/2003 2:49 PM
To: John Boyer; AndrewWatt2001@aol.com; jmessing@law-on-line.com
Cc: www-forms@w3.org; XForms@yahoogroups.com;
w3c-ietf-xmldsig@w3.org
Subject: RE: How secure is Infopath? Was
RE: How secure is XForms?
Hi John, John and Andrew,
I just wanted to take a moment to clarify how InfoPath
supports the W3C
XML Signature standard (XMLDSIG).
InfoPath uses XMLDSIG to secure the
XML data created
by a user via an InfoPath form. Any change to the XML
data occurring after the InfoPath form has been digitally signed
will
invalidate the digital signature, which will be
detected by InfoPath
when InfoPath attempts to load or
otherwise consume the data. XMLDSIG
digital
signatures are most commonly used to ascertain that the XML data
underlying the InfoPath form has not been altered since the
form was
originally signed.
Applications that attach semantic meanings to digital
signatures, which
InfoPath does not currently support,
relate to making a signed statement
about the data
that was presented to the user, how it was presented,
and/or whether there were any semantic implications to the user
making
the signature. In these cases, the
presentation of the form itself to
the signer needs to
be secured along with the data supplied by the
signer
to the form. As the XMLDSIG specification states in its
introduction: "XMLDSIG is a method of associating a key with
referenced
data; it does not normatively specify...the
meaning of the data being
referenced and
signed." Such semantics may be built on top of XMLDSIG
but that requires that additional semantic elements be defined on top
of
the core XMLDSIG syntax. Based on customer
feedback, InfoPath will
enable this additional digital
signature functionality as a part of a
web download
expected to be made available in the first half of 2004.
--Brian
LaMacchia
Microsoft