Intel's hyperthreading technology could allow a hacker to steal security keys from a compromised server using a sophisticated timing attack, a researcher said Friday in a paper presented at the BSDCan 2005 conference.
Hyperthreading allows software to take advantage of unused execution units in a processor. It essentially allows two separate processes, or software threads, to execute on a single processor at the same time, improving performance on software written to take advantage of the technology. However, by taking advantage of the fact that the processes share access to a chip's cache memory, a malicious user can determine the security keys to a particular computer by monitoring the cache for those keys, said Colin Percival, an independent researcher, in a paper posted to his Web site.
Intel and several software companies are working on a fix for the problem, but they do not consider it a critical issue, an Intel spokesman said.
Percival presented his paper Friday in Ottawa at BSDCan, a Canadian conference for developers working with the BSD operating system, a version of Unix. While Percival discovered the flaw while running the FreeBSD operating system, the exploit will work on all operating systems that support Intel chips with hyperthreading, he said in his paper. Percival could not be immediately reached for comment following his presentation.
Processors use cache memory to store frequently accessed data close to the CPU (central processing unit), where it can be quickly accessed for improved performance. On Intel's Pentium 4 and Xeon processors, both of which feature hyperthreading, the cache is divided into portions known as Level 1, Level 2 or Level 3.
A single-threaded processor usually clears the processor's L1 cache of all operating instructions in a process before it moves onto the next process. But a certain amount of instructions from one process remain in the cache of a hyperthreading processor while the next process is running, allowing one process to learn the partial contents of the other process, he said.
Therefore, a malicious user could eventually learn the security key of a system by waiting for that key to execute and then using the other thread to obtain portions of the key, Percival said. With enough repetition, most of the bits of the key can be learned, and the complete key determined through a probability analysis, he said. This type of exploit is known as a timing attack.
Hyperthreading processors also ship on desktop PCs, but this particular flaw is only a problem for servers, Percival said on his Web site. More information is available at http://www.daemonology.net/hyperthreading-considered-harmful/
Howard High, an Intel spokesman, said the company had been informed of the problem prior to the publication of the paper and it is working with software vendors such as Microsoft and Red Hat to fix the issues. But the flaw affects any processor that shares resources in the same manner as hyperthreading, not just Intel's chips or hyperthreading-enabled chips, he said.
The flaw is not considered critical, but it will be fixed in subsequent updates to the Microsoft and Linux operating systems, High said.
The flaw only works on servers that have already been compromised through a separate attack, High said. And if a user's server has already been compromised, there are far easier and less time-consuming exploits that would allow a malicious attacker to gain control or a system or steal data, he said.