- From: Barb Fox (Exchange) <bfox@Exchange.Microsoft.com>
- Date: Tue, 26 Oct 1999 10:32:38 -0700
- To: "'John Ross'" <ross@secstan.com>, "'Denis Pinkas'" <Denis.Pinkas@bull.net>, XML-DSIG <w3c-ietf-xmldsig@w3.org>
- Message-ID: <4992824A0863D211964B0008C7B1ACB803E1BA39@fifi.platinum.corp.microsoft.com>
John:
I have to take issue with your statement: " One of the advantages of the CMS
approach is the clear separation between the security related data (the
signed attributes) and the application data (the content)."
In the XML space this isn't an advantage; in XML we do not need A PRIORI,
hard-coded semantics definitions to separate "application-related" data and
"security-related" data. Furthermore, the underlying mechanics of CMS
assume that the entity generating the digital signature knows what
information is relevant to the signature verifier for making trust
decisions! This may be true in the world of PKIX where everyone is required
to process and evaluate trust decisions in exactly the same way, but that's
not the world of XML and the web. Dragging XML signatures back into the
limited world scope of CMS is not something we're willing to do.
--Barbara Fox
Microsoft
-----Original Message-----
From: John Ross [mailto:ross@secstan.com]
Sent: Tuesday, October 26, 1999 2:21 AM
To: Barb Fox (Exchange); 'Denis Pinkas'; XML-DSIG
Subject: Re: Comments on XML-Signature Core Syntax
Although, I agree in principal that the type of information carried as CMS
attributes can be part of the XML signed Blob. One of the advantages of the
CMS approach is the clear separation between the security related data (the
signed attributes) and the application data (the content). With the signed
attribute approach, all the data needed by the security process like a
signature validation process is readily available at the time of signature
validation, without having to decode the signed Blob.
I support Denis and think if the concept of signedAttributes and
unSignedAttributes were added it would add value to the XML signature. The
signedAttributes and unSignedAttributes should obviously be encoded using
XML at the signedData level.
John Ross
-----Original Message-----
From: Barb Fox (Exchange) < bfox@Exchange.Microsoft.com
<mailto:bfox@Exchange.Microsoft.com> >
To: 'Denis Pinkas' < Denis.Pinkas@bull.net <mailto:Denis.Pinkas@bull.net> >;
XML-DSIG < w3c-ietf-xmldsig@w3.org <mailto:w3c-ietf-xmldsig@w3.org> >
Date: 25 October 1999 15:34
Subject: RE: Comments on XML-Signature Core Syntax
Denis:
The XML dsig working group had several months of discussion on this topic
("CMS features") and specifically rejected signed attributes among others.
In my own postings, I argued that there is no compelling need for attributes
(authenticated or not) when you already have the expressive power of XML. If
a signer wants to make qualified statements about a particular XML blob,
then the signer should make those statements in XML (perhaps including a
strong reference/hash of the original
blob) and sign *that*. In any event, you're always signing a particular XML
object.
I think you will also find that while we started with the notion of
CMS-style signatures (wrapped only, requiring certificates, etc.) we evolved
that model significantly to make it more appropriate to a broad range of web
applications. These scenarios appear on the W3C page at
http://www.w3.org/Signature/Drafts/xmldsig-scenarios-990818.html
<http://www.w3.org/Signature/Drafts/xmldsig-scenarios-990818.html>
--Barb
-----Original Message-----
From: Denis Pinkas [ mailto:Denis.Pinkas@bull.net
<mailto:Denis.Pinkas@bull.net> ]
Sent: Monday, October 25, 1999 8:10 AM
To: XML-DSIG
Subject: Comments on XML-Signature Core Syntax
This is first version of the document has already a good shape.
However, I would like to raise several related comments:
It would be nice to be able to get the same features as those
present in CMS (Cryptographic Message Syntax). This seems nearly
there, but not completely. A major feature of CMS is the concept of
signed attributes which should be mirrored in this document.
In section 2.0, SignedInfo is defined as:
the actual data over which the signature is
calculated. It contains control information (algorithm
identifiers, pre-processing transformations) and digest(s) over
the object(s) being signed.
In section 1.3.4 it is said that: "additional objects have been
defined
which may be referenced by SignedInfo. The Manifest element is
provided which similarly contains a collection of references and
objects (like SignedInfo), but leaves it entirely up to the
application which digest or digests it will verify."
This does not seem crystal clear. These additional objects are
equivalent to the signed attribuytes from CMS (what don't we use
that term as well ?) and thus must be verified by the application.
In section 4.0, it is mentioned that:
SignedInfo does not include explicit signature attributes. If an
application needs to associate attributes (such as signing time,
signing device, etc.) with the signature, it may add an
additional
Object that includes that data and reference that Object via an
ObjectReference.
It would be very nice to define such "useful attributes" in the
document itself.
A last, but related comment. In section 1.3.1 it is said:
KeyInfo indicates what key was used to create the signature. It
is
optional because in some applications the key is implied by the
circumstances. A wide variety of KeyInfo forms are available
including
certificates, key names, key agreement algorithms and
information,
etc. The keying information is outside of the signed information
so
that it need not be signed. KeyInfo might contain auxiliary
information it is not desired to reveal to all signature
verifiers. If
KeyInfo were signed, it would be necessary to pass all of it to
all
verifiers. On the other hand, if it is desired to bind the keying
information in to the signature, its digest and a pointer to it
can
easily be included in the signed information.
In order to prevent some substitution attacks of certificates
holding the same public key value, it is necessary to sign the
KeyInfo. Providing a standard way to do this (using the equivalent
of a signed attribute) would be most useful.
Denis
Received on Tuesday, 26 October 1999 13:32:37 UTC