Live data from Hacker News

Hardening your Web Server's SSL Ciphers

hynek.me

11–20 of 32 posts

Re: Hardening your Web Server's SSL Ciphers

#11
post #9

I think this CipherSuite is actually better than what you have (and Qualys seems to think so, too): SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH Also, I couldn't get your disabling of SSL compression to work (on Gentoo Linux), either by pasting the export line into /etc/conf.d/apache2 (at the end) or /etc/init.d/apache2 (at the top).

That, coincidentally, is the configuration that we (CloudFlare) are using for all our SSL sites: http://blog.cloudflare.com/new-ssl-vulnerabilities-cloudflar... One of the things we try to do for our customers is worry about this sort of thing so they don't have to.

Re: Hardening your Web Server's SSL Ciphers

#12
post #10
post #9

I think this CipherSuite is actually better than what you have (and Qualys seems to think so, too): SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH Also, I couldn't get your disabling of SSL compression to work (on Gentoo Linux), either by pasting the export line into /etc/conf.d/apache2 (at the end) or /etc/init.d/apache2 (at the top).

Yes, but some of the ciphers aren’t supported in widely used OpenSSL versions (like 0.9.8). I wanted to give people a configuration that works everywhere and is reasonable secure. If they want more, there’s a link list at the end. Let’s not make perfect the enemy of the good. Edit I’ve added an advanced section with a link to here so you get your credit. :)

To be fair, that line does work everywhere; the unrecognized ciphers are just ignored. In fact, on my Debian VPS with OpenSSL 0.9.8 it results in the exact same list of ciphers as the Apache one given in the post ("openssl ciphers" on the command line is very useful).

May as well add the newer ones to get the support if you upgrade your SSL library without having to change your Apache/nginx/etc. conf.

Re: Hardening your Web Server's SSL Ciphers

#13
post #5
post #3

Earlier quoted context omitted.

RC4 has no known practicably exploitable weaknesses and is well supported, insofar the “ancient” is actually working in its favor. That said, if you know as much as you do, you don’t need that article and can fine tune yourself. It’s for people who want a compatible and secure SSL setup – which it is.

The statement that RC4 has no weaknesses is not true. It has well-known biases: http://en.wikipedia.org/wiki/RC4#Security It is just better than CBC (as implemented), being a stream cipher, and thus using RC4 is the best solution right now. It is still important to get as much as possible up to TLS 1.2 and using AES-GCM or other AEAD modes as soon as possible. Edit: Clarified that RC4 is better than CBC as implemente…

RC4 isn't "better" than CBC (it's much worse).

But people hold their noses and use it because browser upgrade cycles haven't shaken off a bug that happens to affect CBC mode.

Re: Hardening your Web Server's SSL Ciphers

#15
post #8
post #6

Earlier quoted context omitted.

Absolutely. But since we still have to support SSLv3 from 1996, I wouldn’t hold my breath. :(

Yeah. The outlook is not that great, and RC4 will definitely be better than CBC for those legacy systems in light of this discovery ( http://www.isg.rhul.ac.uk/tls/ ). At least the browsers are actively working on supporting the latest TLS and modes.

Yes, the discovery of Lucky13 and the following helplessness by many not-really-ops-but-doing-it-anyway people were the motivation to write that article in the first place. To get a minimal baseline security out there. Those who know better, will do better. There’s enough additional links to get hooked up. Can’t do more. :)

Re: Hardening your Web Server's SSL Ciphers

#16
post #13
post #5

Earlier quoted context omitted.

The statement that RC4 has no weaknesses is not true. It has well-known biases: http://en.wikipedia.org/wiki/RC4#Security It is just better than CBC (as implemented), being a stream cipher, and thus using RC4 is the best solution right now. It is still important to get as much as possible up to TLS 1.2 and using AES-GCM or other AEAD modes as soon as possible. Edit: Clarified that RC4 is better than CBC as implemente…

RC4 isn't "better" than CBC (it's much worse). But people hold their noses and use it because browser upgrade cycles haven't shaken off a bug that happens to affect CBC mode.

You are extracting something I didn't say, or at least didn't mean to imply. RC4 is better than TLS-CBC as it is implemented by virtually all libraries. A constant-time implementation is obviously preferable, but considering the mess this makes of client libs I doubt many will adopt it. RC4 will be better for those until TLS 1.2 and e.g. AES-GCM are supported.

As an example, see Adam Langley's comments on not fixing (i.e. making constant-time) CBC in Go: https://groups.google.com/d/msg/golang-nuts/HF5O5vAKRcQ/3cYW...

Also, blaming browsers when we've known about timing attacks against this verification for years, and OpenSSL is patching it now, is probably a bit of a stretch.

Re: Hardening your Web Server's SSL Ciphers

#17
post #9

I think this CipherSuite is actually better than what you have (and Qualys seems to think so, too): SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH Also, I couldn't get your disabling of SSL compression to work (on Gentoo Linux), either by pasting the export line into /etc/conf.d/apache2 (at the end) or /etc/init.d/apache2 (at the top).

For openssl 0.9.8, where "ECDHE-RSA-AES128-SHA256" and "AES128-GCM-SHA256" aren't supported, that cipher suite actually places RC4 40bit as the preferred cipher ("openssl ciphers -v").

Re: Hardening your Web Server's SSL Ciphers

#18
How does SSL compression work together with Apache's ordinary zlib support?

Is it redundant when you're already deflating text/html pages? Looking at a page fetched from my server, Apache respondents with Content-Encoding: gzip.

Re: Hardening your Web Server's SSL Ciphers

#19
post #13

Earlier quoted context omitted.

RC4 isn't "better" than CBC (it's much worse). But people hold their noses and use it because browser upgrade cycles haven't shaken off a bug that happens to affect CBC mode.

You are extracting something I didn't say, or at least didn't mean to imply. RC4 is better than TLS-CBC as it is implemented by virtually all libraries. A constant-time implementation is obviously preferable, but considering the mess this makes of client libs I doubt many will adopt it. RC4 will be better for those until TLS 1.2 and e.g. AES-GCM are supported. As an example, see Adam Langley's comments on not fixing…

You're commenting at a greater level of detail than I am. I'm only making the AES-CBC > RC4 case because it would be awfully dumb of someone to design a new cryptosystem with RC4, even if AES-CBC was the only alternative.

The CBC timing channel 'agl is talking about is specific to TLS's idiosyncratic mac-then-encrypt implementation. Don't ever use mac-then-encrypt. Encrypt first, then MAC.

I'm blaming browsers for (a) not implementing CTR mode (AE or otherwise) and (b) being vulnerable to the chained CBC IV vulnerability. I'm not blaming browsers for the timing attack on AES-CBC.

Post reply on HN