An SSL vulnerability for the masses
Those of you following the news have probably heard about a recent SSL authentication bug in Internet Explorer discovered by Mike Benham. This would be an excellent time to laugh at yet another Windows bug if it weren't for the fact that this same bug is found in Konqueror, the KDE browser. To understand the bug, let's take a look at how a browser correctly authenticates a Web server.
The Web server has a public and private key installed that it uses for encryption and authentication. When the browser connects, the Web server presents it's public key. Certificate Authority -- an overpaid entity such as VeriSign that says, "Yes, this key belongs to this site" -- signs this public key.
The browser has a hard-coded list of acceptable Certificate Authorities. It will check the CA signature that is part of the server's certificate and verify that it is signed by one of these trusted CAs. If it is not, either the connection is dropped or you are assaulted with a series of warning dialogs.
Some site certificates are not signed directly by a CA key, but by intermediary CAs as part of a certificate chain. For example if you have a trusted Certificate Authority, "Foo Security, Inc.", and that CA has signed an Intermediate Certificate Authority for "Bar None Security", then Bar is allowed to sign server certificates such as www.example.com. This certificate chain would look something like this:
Certificate Type Trust Level
www.example.com: server cert Signed by Bar None Security
Bar None Security: Intermediate CA Signed by Foo Security, Inc
Foo Security, Inc: Root CA Implicit trust - installed in
browser
The problem with IE and Konqueror is that they simply verified that cert Foo signed cert Bar, which signed www.example.com. They did not verify that Bar was an Intermediate Certificate Authority. What does this mean? If I had a valid certificate for some domain, say www.my_domain.com, I can use it to sign any server certificate I want. For example:
www.big_bank.net: server cert Signed by www.my_domain.com
www.my_domain.com: server cert Signed by Foo Security, Inc
Foo Security, Inc: Root CA Implicit trust - installed in
browser
So, what to do? Well Konqueror had a fix available in an hour and a half. If you're using the CVS version of KDE, recompile Konqueror and you'll be all set. The fix is part of KDE 3.0.3, which is being released pretty soon. Most Linux distributions either have or are preparing updated packages.
If you're using IE then you have a longer wait in front of you. Microsoft says that the bug is in the OS, not in IE. The certificate checking code is not part of the CryptoAPI, a cryptography library used by several other Microsoft programs, so the bug only affects IE. Why the code isn't in the CrytoAPI, I can't imagine. And why the broken code - which is in the OS, not in IE -- would only affect IE, I'll leave to your imagination. But expect to wait a while. Microsoft doesn't see broken SSL as a pressing security problem.
To read more about this vulnerability, see Benham's original BugTraq post here.
F-Secure Warns About a Worm Affecting Corporate Networks 2009-01-08 16:42:00+11
Fortinet Cures Mobile Phone “Curse of Silence/CurseSMS” Attack 2009-01-07 16:30:00+11
SEAGATE SHIPS DESKTOP HARD DRIVE WITH WORLD’S HIGHEST AREAL DENSITY – 500GB PER DISK 2009-01-06 15:34:00+11
New FileMaker Pro 10 Ships With Sleek New Interface and Breakthrough Reporting and Automating Features 2009-01-06 12:21:00+11
Lexar extends KODAK offering with Secure Digital High-Capacity, High-Speed Memory Card 2009-01-06 09:36:00+11



