On Jan 24, 2009, at 12:44 AM, Robert J. Hansen wrote:

David Shaw wrote:
OpenPGP benefits from the flexibility of being able to use multiple
algorithms.

The ability to use multiple algorithms is independent of how many
algorithms are in the spec and in each implementation.  Algorithm
agility is a great idea and I think protocols ought be designed with it
in mind; but at the same time I think protocols ought to focus on a
minimal set of algorithms.

An extension mechanism is a great idea.  I don't think that should be
carte blanche for a spec throwing the kitchen sink into the RFC, though.

I think this is actually a good example for my point as well (I love an example which points out multiple things): Note when the Elgamal signing key bug happened, it did not take down the rest of the protocol. People
with RSA or DSA signing keys kept right on chugging.

Yes.  We're in total agreement that algorithm agility is a good idea.

But then, once we have algorithm agility, that means we must have a means for dealing with that agility (preference lists being the defined OpenPGP mechanism for that). And then, having such means, why do we care all that much whether an algorithm is present or not?

Camellia is a good example here. It does not really bring something new to OpenPGP in terms of security. Sure, Camellia is believed to be strong, and some studies have shown it to be strong. But we don't really *need* that - we have other ciphers that are (arm-wave here) roughly as strong. So why add it? Because it brings something helpful to the protocol as a whole - it means OpenPGP can be used in certain environments in Japan that mandate Camellia. More people using OpenPGP is good. That helps the community.

Do we want to add every cipher that comes down the pike? Certainly not. Do we want to add well designed ciphers that have strong evidence behind them? Maybe, but still, why bother? We have that already. Do we want to add well designed ciphers with strong evidence behind them that people actually want to use (as opposed to the oft- heard "Yeah, it would be neat if OpenPGP had the new BLAH-256 cipher")? Sure we do. Or at least, I do.

It does tend to argue against what you desire though: if you are
advocating that everyone in the community use a smaller algorithm list,

Looking over RFC4880, 3DES is the only MUST symmetric cipher, but it
makes mention of Twofish, Blowfish, CAST, IDEA and AES.

Better, in my mind, to reduce this to 3DES (or AES, take your pick,
algorithm agnosticism and all).  Move the others to an appendix.  Note
them for history and interoperability with old versions, but encourage
implementors to not use old algorithms for new traffic unless there is a
compelling reason not to.

So if I understand, the change you advocate is to move the optional algorithms to an appendix? They're already tagged as optional (they can't, after all, be made *more* optional). I think the 4880 language here is very clear: you MUST support 3DES (the protocol requires it), you SHOULD support AES and CAST5 (we recommend this, but you're free to disagree, and the protocol will work just fine either way), and you MAY support anything else you like (i.e. completely optional, do what you like).

Remember that 4880 is not a guide to the coder, nor is it intended to be used to favor or un-favor particular ciphers beyond what is necessary for interoperability. It is a mainly message format document (note the title of 4880 is in fact "The OpenPGP Message Format"). While there have been various suggestions for a "OpenPGP Best Practices" sort of RFC, nobody has of yet stepped up to write one. I suspect this is due to the currently limited community of people developing OpenPGP software, so it is not clear who the audience of such an RFC would be.

In the meantime, though, we have a message format. There is a section for ciphers, and all the ciphers are in that section. Having two sections for ciphers would just makes people scroll around when reading it.

My understanding is that you do not favor Camellia in OpenPGP (which is what started this thread). I don't quite see how to reconcile that with your "algorithm appendix" comment. After all, Camellia is in its whole own draft. You can't be more detached from the main RFC 4880 than that.

... I'm motivated, to some degree, by my own frustrations in
implementing RFC2440 for a telco back in '99.  My implementation was
simple: 3DES, SHA1, DSA/ELG, no compression, no MDC, no nothing, but it was -- as far as I could tell; it's been ten years, please understand my
memory isn't perfect -- standards-conformant.  I could send traffic to
PGP and GnuPG, PGP and GnuPG could, with the proper settings, send
traffic to me.  Success.

It was not enough of a success for Management.  They insisted on
supporting IDEA, CAST, MD5, RIPEMD160, etc. -- when I got knocked down
on a performance review because I hadn't yet implemented double-width
SHA or HAVAL, I knew they were viewing each and every algorithm as a
checkbox. [*]

This is obviously far, far more a failing of management than a failing
of the spec.  That said, I think the spec contributes to this kind of
misreading and misunderstanding.

How? You don't think they'd have just asked for all of the algorithms in "Appendix A" rather than "Section 9.2" ?

David


_______________________________________________
Gnupg-users mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to