MD5 Considered Harmful (and what that means to you)

You know the lock icon in your browser that tells you your banking Web site is safe and you are secure? As of yesterday we've learned this icon may be meaningless. Yesterday a presentation was given at the Chaos Communication Congress that exposed a flaw in the way SSL certificates are handed out. In their presentation they explained that this icon, in some cases, can be completely spoofed. When you combine this with the fact that people can ALSO spoof your domain name you have the potential to have a banking Web site that looks and feels EXACTLY like your banking Web site (and even "validates" as your bank) that is...well...not your bank.

Not all hope is lost though. There's a good way (SHA-1) and a bad way (MD5) to make these certificates. So your bank might be completely fine and things will carry on as per usual. But here's the kicker: it's impossible to know which of the two were used to create the certificate that is authenticating the Web site you are using. Expect to see more information in the weeks and months to come as security experts try to figure out how to get us out of this colossal mess.

The technical information is available from MD5 Considered Harmful Today (the paper). Video from the CCC presentation is also available from their site, sort of. I think you need to download the whole day of video for that room. Please correct me if you know otherwise, or leave a link to the actual video in the comments.

And to bring in the new year and to "celebrate" this minor security catastrophe, I'll spend the evening at home quilting in front of the wood stove. If you're local, please drop by and say hello.

PS Thanks to Matthew and Leigh and Nik for the heads up and the explanations about why I needed to care (and why you should too).

Actually, you can see what

Actually, you can see what algorithm a website's SSL certificate was generated with. In Firefox, double click the padlock icon, click on the Details tab and highlight the "Certificate Signature Algorithm" to get something like "PKCS #1 SHA-1 With RSA Encryption"

oops, missed a step. After

oops, missed a step.

After double clicking the padlock icon, click on the "View Certificate" button *then* click on the Details tab ...

My understanding is that

My understanding is that this step is irrelevant because, "It's not even the certificate that matters, it's the certificate that signed the certificate that signed it."

I was not aware that some

I was not aware that some people used MD5 for this, I have always considered basic MD5 rather insecure (not enough bits for my liking). Is there anywhere that lists people (just high visibility people maybe?) that use MD5 in this way? or at the very least some advice about what security measures to take? I can't very well just stop going to my bank and paypal and such...

You may want to read the

You may want to read the technical "paper" that I linked to. It already has an official response from Microsoft, Mozilla and VeriSign. http://www.win.tue.nl/hashclash/rogue-ca/

Also: in the FAQ of the same URL it seems as though existing certificates are fine (even the "bad" ones). The problem is when someone spoofs a domain name AND pairs this with a fake certificate. The unknown question is "is it worth it to try and do both at once to get financial data." Maybe this exploit is too "hard" for anyone to take advantage of. I don't think we know yet. But we do know it is now possible.
Specifically:

Question. What are the known weaknesses in DNS that you refer to in the press release?

Answer. The DNS spoofing vulnerability discovered by Dan Kaminsky in 2008 allows an attacker to redirect requests for any website to a web server controlled by them. For more information, please see [K2] and [OMM]. The SSL protocol used for secure websites is supposed to detect this kind of attack because the attacker would not have a legitimate digital certificate for the hijacked website. However, the MD5 collision attack we discovered allows attackers to create arbitrary trusted digital certificates and allows them to hijack any secure website on the Internet if the user's DNS servers are not patched against the DNS spoofing vulnerability.

So I think it comes down to: Be wary, and watch for more information on this topic. I'm sure that lots of people will have more to say about this in the weeks to come.

Looking at the final setence

Looking at the final setence in the answer above, it seems that a solution is to make sure that your DNS server is patched against the DNS spoofing vulnerability. Since I could not control my ISP DNS server, I changed my home network to use OpenDNS instead. It was patched soon after the exploit came out. You can check if your DSN server is patched using the "Check DNS" button in

http://www.doxpara.com/

Remember to check the DNS before using a bank from an unsafe network.

Is there any way of

Is there any way of disabling the acceptance of md5 signed certificates in firefox?

Not that I know of; however,

Not that I know of; however, you may wish to monitor the Mozilla Web site for more information. They have already issued a comment about the exploit at: http://blog.mozilla.com/security/2008/12/30/md5-weaknesses-could-lead-to...

There is a SSL-blacklist

There is a SSL-blacklist extension for Firefox, I recommend it, it had a check for md5: http://codefromthe70s.org/sslblacklist.aspx

There is also a perspectives extension for Firefox which helps: http://www.cs.cmu.edu/~perspectives/

To disable MD5 checking in

To disable MD5 checking in Firefox

  1. Type: about:config in the address bar
  2. In the "Filter" bar enter: md5
  3. Double click on security.ssl3.rsa_rc4_128_md5 entry to set it to false

For windows apps see the MS KB article KB245030 . If you delete the MD5 registry key it will no longer check certificates with MD5 entries.

To disable MD5 on Windows:

reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\MD5 /va /f

To renable MD5:

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\MD5 /ve /f

The only downside is that if the certficate does not have an MD5 checksum then it will show as invalid. This change affects any application that uses the MS crypto API.

NSA is recommending SHA2-256

NSA is recommending SHA2-256 as a minimum acceptable hash now. SHA-1 has it's own issues, which are (currently) not as severe as MD5, but still not great.

my gosh... Might explain how

my gosh...

Might explain how some new malware can pull of their tricks too. They lead you to sites that ask for you to log in, some people see them as fine, and the browser often doesn't report them as fraudulent.

We use MD5 everyday, I am

We use MD5 everyday, I am sure NSA had it a long time ago

Drupal User's Guide

Drupal User's Guide

Site building for Drupal 7. Includes in-depth information on Drupal's most popular site building modules, SEO and accessibility. Two complete case studies are included in the book along with the tools you'll need to build (almost) any Web site with Drupal.

Available from Amazon.com.

Front End Drupal

Front End Drupal

The industry go-to for learning theming in Drupal 6. A great companion to Lullabot's book, Using Drupal.

Available from Amazon.com.