Spent about two hours of my Tuesday night doing something that sounds boring even by my own low standards: editing an Apache config file to turn off a protocol almost nobody uses on purpose anymore. But if you run any kind of server, you should probably go do the same thing this week, because SSLv3 has a name-brand vulnerability now and its not going away on its own.
The bug is called POODLE (Padding Oracle On Downgraded Legacy Encryption, and yes, someone really did work backward from that acronym). Google's security team published it about a week ago, and the short version is that SSL 3.0, the fifteen-plus-year-old encryption protocol still hanging around as a fallback in basically every browser and server, has a padding flaw that lets an attacker in the right position (same coffee shop wifi as you, say) decrypt small chunks of your supposedly encrypted traffic one byte at a time. Its not a drop-everything-the-internet-is-on-fire bug the way Heartbleed was back in April. You need an active man in the middle to pull it off, so its not something that gets exploited passively at scale. But its bad enough that the fix everyone agrees on isnt "patch it," its "kill it." SSLv3 doesnt get fixed. It gets turned off.
Which is a little bit funny, because almost nothing actually needs it anymore. SSLv3 mostly survives as a compatibility fallback for genuinely ancient clients, and the going joke this week among the people I follow is that its main remaining user is Internet Explorer 6 on some Windows XP box in a government office somewhere. Good riddance.
If you run your own box, heres what I actually did, in case youre procrastinating on it the way I was:
Apache: find your SSL config (mine's in a sites-available file, could be httpd.conf for you) and look for the SSLProtocol line. Change it to:
SSLProtocol all -SSLv2 -SSLv3
Nginx: same idea, in your server block:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Just leave SSLv3 off the list entirely. Restart the service, then go test yourself against Qualys SSL Labs' checker, which as of this week has already started flagging SSLv3 support as a problem instead of just quietly noting it. Watching my own grade change felt disproportionately satisfying for a Tuesday night.
One complaint while Im in here: this is the third time this year Ive had to go do some version of this exact drill. Heartbleed in April, Shellshock last month, now this. Im not a security researcher and dont pretend to be one on this blog, but even I'm starting to feel like the entire stack of boring old protocols everyone assumed were fine is getting audited all at once, and none of it is coming back clean. I dont know if thats because more people are looking now or because we just built a decade of internet infrastructure on stuff nobody stress tested properly in the first place. Probably both, honestly.
Browsers are going to eventually stop offering SSLv3 as a fallback on their own (Ive seen chatter that both Chrome and Firefox have it slated for upcoming releases), but "eventually" isnt "now," and in the meantime your server is still offering it unless you go turn it off yourself. Doesnt take long. Mine took about ten minutes once I found the right config file. The other hour and fifty minutes was me getting distracted reading about it instead of actually doing it, which if youve read this blog for more than a week you know is basically my whole personality.
Small unrelated aside since its been sitting in my head all week: iOS 8.1 dropped Monday and brought Apple Pay along with it, and I tried to set it up at the Walgreens near me out of pure curiosity and just got a "card not supported by this bank" message. Apparently my bank is somewhere down the list of ones that actually signed on for launch day. Kind of anticlimactic after all the demo videos with the fingerprint and the beep. Ill try again in a few weeks once more banks are online, but for now Im back to swiping a physical card like its 2013, which, I mean, it basically still is.
Go check your SSL config this week if you havent already. Its a genuinely small fix for a genuinely real problem, and those two things dont line up nearly often enough in this line of work to skip it when they do.