InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

MD5 Exploit Potentially Compromises SSL Security

Posted by Charlie Martin on Jan 05, 2009

Sections
Development,
Architecture & Design
Topics
Security ,
Architecture
Tags
SSL

SSL-based security using X509 certificates from certain CA's opens a vulnerability to sites masquerading under a forged X509 certificate, even in a "secure" connection. This was demonstrated recently at the Chaos Conference in Berlin by spoofing a real certificate.

"Making the theoretical possible is sometimes the only way you can affect change and secure the Internet." This is the conclusion of "MD5 Considered Harmful Today: Creating a rogue CA certificate", a talk given on December 29th 2008 at the 25th Chaos Communication Congress in Berlin. In this talk, the authors revealed how they have used a previously theoretical attack on the MD5 signature, first described in 2004, to construct forged certificates that can allow a "perfect man in the middle attack" on SSL secured web sites.

The attack works like this.  SSL servers are authenticated by using an x.509 certificate issued by one of many "trusted signing authorities" or "CA's".  The signing authority "signs" a certificate using one of several cryptographic algorithms to generate a hash.  The algorithms are designed so that the probability of two different sets of data computing the same hash value -- a collision --is extremely small.

To make an attack, the attacker needs to buy several SSL certificates from CAs who sign certificates with the MD5 algorithm.  Using information derived from these certificates, it's possible to construct an apparently valid, but forged, certificate with a valid signature from one of the purchased certificates, but with different contents, by adding a specially computed block of data to force a collision. Now the MD5 algorithm will falsely verify that the signature matches the new contents. In effect, it's like forging a letter by putting new contents onto a piece of paper that was legitimately signed.

Once the forged certificate is created, it can be used in a "man in the middle" attack; by using the certificate, a proxy can be set up that appears to be legitimate to both ends of an SSL connection; at that point, any confidential information can be captured and stored by the attacker.

The attack is computationally intensive, but recent advances and Moore's Law have made the computation of a colliding certificate feasible. In this case, the computation could be done for around $2000 in the Amazon EC2 cloud, or by a "home supercomputer" built from clustered PS3 game consoles.

This attack doesn't mean that all Internet or SSL security has been compromised, but it does mean vendors should move away from using the MD5 signing algorithm.  The authors have identified and notified a number of signing authorities who still have active certificates with MD5 signatures.

No comments

Watch Thread Reply

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.