On Wed, Oct 28, 2009 at 09:09:59PM +0300, Victor B. Wagner wrote:

> > > But for some setups, especially in OpenSSL 1.0, which supports EC
> > > ciphersuites, dh parameters are not neccessary.
> > 
> > This is not entirely accurately, one still needs to designate an ECDH
> > curve for ECDHE ciphers. Postfix code for this:
> 
> curve is not DH parameters. It is quite different dataset.
> (and often expressed as just OID, not actual curve data).

Yes, of course, in a strictly technical sense. From a user perspective,
however, both are the same sort of thing, something one needs to configure
to enable kEDH or kEECDH ciphers. When neither set of parameters is provided,
one gets just

        - kRSA, kECDHr, kECDHe (no forward secrecy)
        - kPSK (no significant adoption)

So users or applications that want to support ephemeral key-exchange with
forward secrecy, need to configure DH parameters and/or an EECDH curve
(yes just an OID).

> > More precise is "!kEDH", and IIRC OpenSSL does not offer kEDH ciphers
> > on the wire, when no parameters are provided by the application.
> 
> Question is - should we make user immediately aware of this restriction
> during parsing the configuration?

Not sure what you mean by "during parsing".

> If user specifies DSA key only it is fatal.
> If user specifies RSA key only half of otherwise available suites
> are left.

It is OK if the user cipher selection string designates more ciphers
(e.g. DEFAULT) than actually compatible with the available with the
available certificates and/or parameters, so long as a non-empty
set of usable cipher-suites remains.

> > DTRT! When no parameters are provided, don't include kEDH ciphers in
> > the list of available ciphers, regardless of the user-specified cipherlist.
> 
> I think that is not very good idea to SILENTLY cut off lot of good
> ciphersuites. 

I strong disagree. Most users (I've talked to users trying to select
appropriate cipher lists) have no idea what the various ciphers are,
and are much better off with either DEFAULT or DEFAULT:!SSLv2:!EXPORT:!LOW
than anything they are likely to come up with on their own.

In both of the "sensible" cipherlists above, there are a lot more ciphers
than typically compatible with the rest of the configuration. This is fine.

> And obvoisly a fatal configuration error if some of these ciphersuites
> were explicitely specified by user in the cipher list.

This would be bad. It is specifically documented that unknown cipherlist
elements are ignored, and for good reason.

If you want a "lint" tool for configurations, by all means, that would
be a good idea. But, making cipherlists incompatible with libraries
that don't support every cipher on the list, is bad, one can't use
a single list whose elements include features from "future" releases
on legacy systems or build code that is intended to support "future"
versions of SSL whose features are known at development time, but
not yet available in the field.

-- 
        Viktor.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to