- From: Joseph Reagle <reagle@w3.org>
- Date: Fri, 21 Jun 2002 15:35:18 -0400
- To: pbaker@verisign.com
- Cc: <www-xkms@w3.org>
Thanks for the latest version Phil, having the examples updated is very
useful! Comments on "W3C Editors Copy 20th June 2002"
http://lists.w3.org/Archives/Public/www-xkms/2002Jun/0030.html
Abstract
Executive Summary
1 Introduction
I think the Executive Summary should be collapsed into the Introduction.
W3C specs don't have ESs.
1.4 Key Information Service Specification Overview (Non-Normative)
¶26 X-KISS allows a client to delegate part or all of the tasks
required to process XML Signature <ds:KeyInfo> elements to a Trust
service. A key objective of the protocol design is to minimize the
complexity of applications using XML Signature. By becoming a client
of the trust service,
Please don't use the term "trust service." This is
undefined. I presume XKMS Service = Validate Service | Trust Service, we
should use these terms. This should be done in section 1.2 .
2 Message Format
¶35 At the semantic level the XKMS protocol consists of pairs of
requests and responses.
I don't know what "at the semantic level" means. Perhaps should just say,
"TheXKMS protocol consists of ..."
¶36 Each XKMS response message contains a MajorResult code that
determines whether the response is final or further processing is
required. The protocol is specified in the CSP formalism [CSP] as
follows:
I'm unfamiliar with CSP and the reference " [CSP] C. A. R. Hoare" doesn't
help me.
¶40 Conforming XKMS services MAY support the use of encryption to
ensure message confidentiality and MUST support the use of
authentication to ensure message integrity as follows:
* The use of XML Signature to authenticate the message payload MUST
be supported.
* The use of TLS [TLS] to support authentication and encryption of
the entire SOAP transaction SHOULD be supported
Service <C2> [Required]
The URI of the Web Service port to which the request is
addressed
I presume this URI also is associated with the terms of the "trust" service
policy. Should this be stated? Is there a processing requirement that the
service check this value corresponds to the policy it's actually operating
under? (For example, I send a signed Validate Request with a low liability
URI but include a high liability URI in the request to get more bang for my
buck.)
3.3 Using Locate and Validate
I'm glad this section is here to explain the difference. If we agree about
the Service attribute, perhaps something could be said here on that note.
4.2.2 Element <KeyInfo>
¶163 The following schema defines the <KeyInfo> element of the
KeyInfoType type imported from the XML Signature Specification:
<!-- KeyInfo -->
<element name="KeyInfo" type="ds:KeyInfoType" />
<!-- /KeyInfo -->
Why is this not ds:KeyInfo? Is its semantic or processing different from
that defined by ds?
¶180 The <KeyUsage> element specifies one or more intended uses of
the key. If no <KeyUsage> is specified all uses are permitted.
xkms:Encryption
The key pair may be used for encryption and decryption
xkms:Signature
The key pair may be used for signature and verification
xkms:Exchange
The key pair may be used for key exchange
Perhaps more needs to be said about this. For instance, what if I have a
key that can be used in Encryption and Signature? How would you specify
this, two KeyUsage elements? If it can be used for both, but the service
only vouches for Signing, what does it mean if I violate the directive?
¶184 The following table lists application URIs for common protocols
and the corresponding format for the identifier information:
A reference to RFC2648 for urn:ietf would be useful.
8 Security Considerations
¶307 A generally applicable means of preventing a replay attack is to
place a token in each message that demonstrates to the recipient that
the message is 'fresh', for example:
* A message origination time that the recipient verifies by checking
that it is sufficiently recent.
* A nonce, that is a piece of random data that was previously issued
by the user.
* A message serial number
I'm a little confused on this note. The RequestID is REQUIRED, so, as
mentioned earlier, a service that makes sure not to respond to a previously
requested response within a time interval should be straightforward. We are
also specifying a 2-phase challange response too, right? Do we know both of
these will need to be used? Are both mandatory to implement, but optional
to use?
Another consideration worth noting (perhaps) is that while client
authentication is important to both reading (locate/validate) and writing
(registration) to the database, its especially so to regisrations. How do
you deal with folks populating your service with malicious data. (Nothing
to say on that in this spec aside from warn about it -- if that.)
Received on Friday, 21 June 2002 15:35:52 UTC