Andrea Pellegrini, Valeria Bertacco, and Todd Austin at the University of Michigan's Electrical Engineering and Computer Science Department, found that they could work out pieces of the private key employed in the RSA encryption algorithm as implemented within OpenSSL by inducing variations in the power supply of a hardware device as it was running the software to process encrypted messages. Using this technique, they were able to expose four bits of the key at a time, and assemble the entire 1024-bit key in 104 hours using a cluster of 81 2.4-GHz Pentium 4 computers.
"If the hardware lab in a secure system is compromised, not only would it be possible to extract secret information about the software, but it would also be extremely hard for the software to detect that an attack is underway," said the scientists in a paper that will be published this week at the Design Automation and Test in Europe conference.
"The work presented in this paper further underscores the potential danger that systems face due to fault-based attacks and exposes a severe weakness to fault-based attacks in the OpenSSL libraries," they concluded.
OpenSSL is said to be preparing a patch to solve the problem. The bug is relatively easy to fix, according to reports, and would simply involve the use of randomization techniques to add an error checking algorithm in the software. However, the researchers have said that it might be possible to apply the method to other cryptography libraries.
OpenSSL is an open source implementation of the SSL encryption and certification system, and is used on hundreds of thousands of systems across the world.