[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Selecting TLS Cipher problem
On Mon, 24 Mar 2008, Pat Riehecky wrote:
I am trying to disable all the ciphers and then only enable the ciphers
captured by the HIGH, SSLv3, TLSv1, MEDIUM, and SSLv2 list
Umm, a cipher's inclusion in a HIGH/MEDIUM/EXPORT/LOW list is orthogonal
to its inclusion in a TLSv1/SSLv3/SSLv2 list. For example, if you said
"all HIGH ciphers and all SSLv3 ciphers", then you would get some MEDIUM
strength ciphers (that are for SSLv3) and some SSLv2 ciphers (that are
HIGH strength).
Furthermore, saying "all of SSLv3, TLSv1, and SSLv2" is the same as saying
you want all ciphers, as every cipher is in one of those lists!
Explicitly turning off
the NULL ciphers. Whenever possible I want to try and use SHA digests
instead of MD5 since MD5 is no longer the approved digest, but those are
preferred above non-digested ciphers (which are not present in SSLv2 and
later, but...).
After poking about the net a bit more (thanks to the Ah Ha of the ! that
you listed below) I have revised this to HIGH:+SSLv3:+TLSv1:MEDIUM:
+SSLv2:!aNULL:!NULL:@STRENGTH:+SHA:+MD5
I would suggest removing the ":+SSLv3:+TLSv1" and ":+SSLv2", as they have
no effect for your list.
You're concerned about MD5 and yet you permit SSLv2?!? I think your risk
assessment is a bit...odd.
If a cipher w/o a digest actually existed, you cipher list expression
would actually prefer it over ciphers w/digest, as ":+SHA:+MD5" shuffles
ciphers with SHA and MD5 to the end of the list. I think it's a pointless
concern, because no one is stupid enough to specify a cipher w/o digest
unless it's secure that way. Indeed, the TLS version 1.2 internet-draft
say the following when describing the signature_hash_algorithms extension:
hash
This field indicates the hash algorithm which may be used. The
values indicate support for undigested data, MD5 [MD5], SHA-1,
SHA-256, SHA-384, and SHA-512 [SHA] respectively. The "none"
value is provided for future extensibility, in case of a
signature algorithm which does not require hashing before
signing.
I.e., while none exist, they can imagine it.
I would just use ":+MD5" to shuffle those to the end of the list and stop
there.
...
This tells me that now I am actually selecting a valid cipher list, but
the start-up problem remains.
TLS: could not set cipher list HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:!aNULL:!
NULL:@STRENGTH:+SHA:+MD5.
main: TLS init def ctx failed: -1
slapd destroy: freeing system resources.
slapd stopped.
OpenLDAP 2.4.7-5 on Debian x86 installed from apt
If that uses GnuTLS like Quanah, then you'll have to figure out how
ciphers are expresses there and adjust your expression to fit. Good luck!
Philip Guenther