On Apr 15, 2009, at 12:13 PM, Anders Rundgren wrote:

Dear list,
I may indeed be biased since I run a private standardization effort coined KeyGen2 which is designed to replace <keygen>. Anyway, it might be of some general interest knowing why I have started this thing.

Microsoft does not support <keygen>. If I were Microsoft I wouldn't bother since all CAs have adapted themselves to Microsoft's scheme. Microsoft's scheme (CertEnroll) is more flexible than <keygen>, albeit much more complex as well.

Now to the really problematic stuff: <keygen> is not really an HTML tag, it is actually 2 phases of a 3-phase key provisioning protocol. I don't see why a protocol should be plugged into a page GUI. The alternatives all use APIs or specific plugins that indeed may be spawned from an HTML page but that's something completely different.

Just as a comparison I would like to mention the fact that the KeyGen2 schema is about 25 times the size of the <keygen> specification. Although that could indicate a major design error in KeyGen2, the truth (according to me of course...) is that <keygen> is way too limited to be used by serious issuers like banks and governments.

I would also consider the "market" for <keygen>. For PCs, physical token distribution is the standard, that's why there has been so little interest in on-line provisioning. However, for mobile phones, on-line provisioning is really the only good method unless you are a government and buy into $200+ solutions like the following:
http://www.trustdigital.com/downloads/TD_EMM_CAC_Pack_101008.pdf

A difference with mobile phones is that when the phone=token you can do much cooler things than you can on a PC, including trusted execution and provisioning. It seems a bit short-sighted to build on a 15 year old design without at least having investigated what is possible.

HTML5 looks great but I think you should stick to page layout and leave protocols either to JavaScript or to some other extension mechanism.


HTML5 is meant to specify every HTML feature that you need to implement a browser than can handle the real-world Web. At this point, anyone implementing a new browser engine would have to support <keygen>. However, none of this rules out the possibility of putting more advanced crypto functionality into browsers, either via HTML or a separate spec. So I would recommend that you focus on promoting your preferred solution rather than opposing <keygen>.

Regards,
Maciej

Reply via email to