[foaf-protocols] Fwd: XAuth critiques
Bruno Harbulot
Bruno.Harbulot at manchester.ac.uk
Wed Jun 9 15:01:18 CEST 2010
Hi David,
On 09/06/10 12:50, David Chadwick wrote:
>>
>> Thinking more from the user side, if I install a cert via keygen and
>> then find it in two browsers, but not the third, I'll be a little confused
>
> agreed. So it does need to be common to all browsers. Imagine one
> browser uses C: and another uses D: how confusing that would be to
> users. The solution is to have a standard PSE (Personal Security
> Environment) in which private keys and self signed root CA keys are
> stored. Public key certificates can be stored anywhere, so the user
> should be able to choose a file directory and all browsers should be
> configurable to look there for PKCs.
That could work, but I just wonder how you'd see that standardized
across browsers.
This more or less already exists in Java. Via the Keystore abstraction,
you can already use JKS (custom Java), PKCS#12 (slightly different
because it's cert + private key in fact), PKCS#11, NSS (Mozilla format,
but cannot be used concurrently with Firefox, I think), Keychain on the
Mac. I don't know if there's something to talk to Windows's store, but I
wouldn't be surprised.
It's a rather good abstraction, in particular because PrivateKey is an
object that represents the concept rather than the content of the key.
In the case of a PKCS#11 back-end you can't always get the private
exponent out of an RSA key, but you can still use it.
I guess there are other abstraction layers (and after all, PKCS#11 is
itself a layer of abstraction on top of other certificate and key
repositories). Maybe PKCS#11 is the solution? There are software
implementation too after all.
I think the problem with this is to get the vendors to agree to the
standards. It's not obvious because the existing solutions have features
that are often very specific to the OS and cannot necessarily be
abstracted easily.
For example, if I use a privKey+cert from my keychain for client-cert
authentication to a remote server, OSX's keychain mechanism will ask me
whether I want to allow the private key to be used for 'signing'
(there's a slight flaw in that UI in that it doesn't ask which key is
used or what is being signed). However, if I use Safari (or something
that uses TLS via the CFNetwork API of OSX), the UI will ask me whether
I want to allow that private key to 'connect' to the remote party.
This is because the CFNetwork and the keychain in OSX make a fundamental
distinction between private key usage in TLS and for other purposes
(although ultimately, it's about signing indeed).
There are also notions of locking the keychain when you close down the
lid of your laptop, etc.
It would be good to have a common layer, but I reckon vendors have too
specific differences in their technologies at the moment.
>
> One problem is that browsers, people, and even technical gurus refer to
> private keys as certificates. They are not, They are separate, and
> should be treated as such
That's true. I think experts know what they mean when they say it,
though ;-)
The fundamental problem with use of certificates is to explain this to
non-technical users. It would be problematic if people started to send
their friends their p12 files if they were asked to send their certificates.
Best wishes,
Bruno.
More information about the foaf-protocols
mailing list