[cryptography] IETF Working Group Charter on Common Interface to Cryptographic Modules (CICM)
marsh at extendedsubset.com
Wed Jun 22 10:16:29 EDT 2011
On 06/22/2011 07:17 AM, Peter Gutmann wrote:
> Crypto API designed by an individual or a single organisation:
> CryptoAPI: A handful of guys at Microsoft
I always kind of thought this one looked like someone went a little wild
with the UML modeling tools.
> PKCS #11: Someone at RSA (I've heard different stories).
One could do worse.
> JCE: A couple of guys at Sun.
This one underwent breaking changes which, to this day, requires us to
maintain two sets of code where I work.
> OpenSSL: Using the term "designed" very loosely :-), Eric Young and Tim Hudson.
I'll withhold comment on this one until the documentation is complete. :-)
And last but not least let us not forget http://botan.randombit.net/ by
our gracious email list host!
> Crypto API designed by a committee:
> QED, I think.
OK, but when one of the buckets has 0 observations in it what is it
proving exactly? Maybe simply that most crypto APIs in common use are
designed by a "handful" or fewer guys. Which probably counts for
something, but I think it's not so obviously prescriptive.
* Perhaps the effect you're seeing could be explained by a crypto API
being a relatively straightforward data-in data-out type of thing. Or at
least that's a workable oversimplification.
* It would say a lot more if there were some examples of
committee-designed crypto APIs that nobody wanted to use because of
those noticeable effects.
* Netscape/Mozilla's NSS might be another interesting data point.
WRT IETF involvement:
* A typical IETF spec doesn't seem to have any more authors or
significant contributors than a "small" engineering team at a big company.
* Having a concrete API can keep the design grounded. There are some
things in TLS that have *no* representation in any sane API. This could
only have occurred by the design leading the implementation a little too
* There already are crypto APIs being defined in RFCs, they're just
ad-hoc and lacking interoperability. E.g.
The purpose of the IETF considering APIs in general isn't *just* that
we'll all get some huge new API to use and which will be considered a
failure if the whole world doesn't move to it immediately. Just the
process of defining an API holds potential to improve the quality of the
protocols and specification.
The prior policy of IETF seemed to frown on formal consideration of
APIs. I think that should definitely change, although it's not really an
argument in support of this specific proposal.
More information about the cryptography