Major SSL Vulnerability

Jeff Mancuso July 30th, 2009

I’m kind of shocked there isn’t more news on this Major SSL vulnerability:

Certificates for authenticating SSL communications are obtained through Certificate Authorities (CAs) such as VeriSign and Thawte and are used to initiate a secure channel of communication between the user’s browser and a website. When an attacker who owns his own domain — badguy.com — requests a certificate from the CA, the CA, using contact information from Whois records, sends him an email asking to confirm his ownership of the site. But an attacker can also request a certificate for a subdomain of his site, such as Paypal.com\0.badguy.com, using the null character \0 in the URL.

The CA will issue the certificate for a domain like PayPal.com\0.badguy.com because the hacker legitimately owns the root domain badguy.com.

Then, due to a flaw found in the way SSL is implemented in many browsers, Firefox and others theoretically can be fooled into reading his certificate as if it were one that came from the authentic PayPal site. Basically when these vulnerable browsers check the domain name contained in the attacker’s certificate, they stop reading any characters that follow the “\0″ in the name.

This is rather scary and has big ramifications for the security of most websites. There is now no easy way to for an average user to feel confident they are actually securely communicating with the service they intend to.

SSL is important for two primary reasons. First and foremost, it provides a secure channel for communication. But secondly, it makes a pretty reasonable guarantee that you’re securely communicating with the server that is listed in your browser’s address bar. With this vulnerability, it’s possible [although difficult, still], for somebody to masquerade as the server in your address bar and allow you to securely communicate with them. Yikes.

  • http://www.internet54.com/ David Guerra

    They need to start verifying IP addresses somehow. If Paypals cert is for IP 123.12.12.12 and badguy.com’s ip is 321.21.21.21, then the cert SHOULD fail. How hard would this be to implement? Simple solution in my opinion.

  • http://www.expandrive.com Jeff Mancuso

    The problem is that DNS might be load balancing you – https://www.expandrive.com could resolve to different machines in different parts of the world, in theory

  • http://www.twitter.com/allenkelly Allen Kelly

    Tim Callan, vice president of product marketing at VeriSign, responds to these Black Hat presentations in his new SSL blogpost:

    https://blogs.verisign.com/ssl-blog/2009/07/busy_day_at_black_hat.php

    He fills some of the holes that these researchers dug.

    @allenkelly

  • Jason

    That’d be very simple to implement. So simple that it’s completely portable to IPv6, and every site only EVER uses one single IP address.

    That way, SSL companies can charge even more ludicrous prices for doing 0 work, because they’d have to start adding IP addresses. Not to even mention we have to change all the SSL standards and specifications in order to address an “Installed IP Address” field.

    Not to even mention, think of the sheer number of servers that paypal, yahoo, microsoft, google, anyone uses, with the capability of doing round robin DNS (e.g. resolving to different IPs) and what not.

    David, Your ‘solution’ is entirely worthless.

Grab the RSS feed
Follow ExpanDrive on Twitter Follow us on Twitter


Try ExpanDrive

If you’ve heard of SSH then you need ExpanDrive.



Try Strongspace

Awesome SFTP/rsync online storage by ExpanDrive.