- From: Kenneth Jensen <xmlsec@gmail.com>
- Date: Tue, 17 May 2005 19:40:33 +0200
- To: www-xkms@w3.org
Hello,
I am currently finishing a thesis project centered around XKMS, and I
have a few questions, that I didn't know where else to ask than here,
although I am unsure if this is a "public" list.
Question 1)
When a Locate service "locates" keybindings, it must match on elements
in the KeyInfo and the UseKeyWith (and KeyUsage) elements in the
QueryKeyBinding.
The KeyBindingAbstractType allows for 0 UseKeyWith elements.
Does that mean that it is allowed to issue a query for a keybinding
matching a particular value of a key? Example (simplified):
<QueryKeyBinding>
<KeyInfo>
<RSAKey>
<Modulus>123</Modulus>
<Exponent>456</Exponent>
</RSAKey>
</KeyInfo>
<RespondWith>Everything, please</RespondWith>
</QueryKeyBinding>
Does this not pose a security threat (although a practically ignorable one)?
An attacker can generate a key and let an XKMS service "do the hard
work" of trying to find a matching target. I know the probability of
success is equal to a brute force attack, but the difference (as I see
it) is that this allows the attacker to relay the "key search work"
to the XKMS service provider.
Question 2)
Para 222 says that when invoking a Locate service, a Keybinding
matches the query, if:
* The key binding contains all the <UseKeyWith> elements
contained in the query, and
* The key binding contains all the <KeyInfo> elements contained
in the query.
What about the KeyUsage element? If the query is for a key for
signature verification, then returning an encryption key is of no use?
Is the KeyUsage neglected because some major PKIs don't
support/implement attributes corresponding to this?
Actually, in Para 176 it says:
"If a key usage is specified in a QueryKeyBinding however the key
usage forms part of the criteria the service should attempt to match."
(-and in my implementation KeyUsage IS significant for Locate operations :-)
Question 3)
There are 3 values for KeyUsage defined, Encryption, Signature and KeyExchange.
I am missing an option for intermediate certificate authorities. Is
that left out on purpose? (and if so, may I ask the arguments for
doing so?) If it is not there, either the value "Signature" can be
interpreted as implying "signing certificates", or one will have to
implement a non-compliant value. I see a practical value of being able
to register CA's (off course not for root-certificates), but maybe I
am missing some point.
Then I have a few things in the spec I don't understand - perhaps
errors/mistypings?
Para 218 ends with:
"The <UnverifiedKeyBinding> elements returned are specified by the
Respond element in the request."
Shouldn't it say "by the RespondWith element in the request"? The
schema has no such element as <Respond> anyways.
I hope you can help me clear up these questions.
Thanks for your attention.
---
Cheers,
Kenneth
Received on Tuesday, 17 May 2005 17:52:33 UTC