A presentation at the recent Black Hat meeting discussed a side-channel attack on web servers. Variations in supply voltage and CPU temperature can cause errors which leak information about the server’s RSA secret key. Full details are in their paper “Fault-Based Attack of RSA Authentication.”
This is another case where cloud provider infrastructure could provide a security advantage.
Multiplier circuits in microprocessors are complex semiconductor designs with short critical path delays to maximize performance. Environmental conditions such as higher temperature or lower supply voltage can slow signals so they do not reach their latches by the next clock cycle. This causes an error in the fixed-width modular exponentiation algorithm used in RSA authentication.
The key-stealing exploit requires single-bit errors, multi-bit errors yield no key information. But single-bit errors are most common at only very slight supply voltage variations.
The researchers were able to recover the entire 1024-bit private key using just 650 signatures containing single-bit errors. The faulty signatures then had to be processed for about 100 hours on a compute cluster, but those are cheaply available in the cloud.
How much should we worry about this?
If you are relying on the security of public-key cryptography embedded in easily accessible devices, such as smart phones and Blu-ray players, this is a big deal.
But, you say, our server is in a physically secured server room and so an attacker can’t fiddle with the cooling or power supplies.
True, but how well are you protecting and monitoring the system supply voltages and cooling?
Without direct access to system voltages and environment, a patient attacker would have to wait for naturally occurring single-bit errors. Remember that the errors that leak key information occur most frequently at the smallest voltage and temperature variations.
Packages such as lm-sensors can measure temperatures and voltages at a resolution at which the dangerous single-bit multiplication errors are anticipated. A daemon can be started at boot time to monitor these measurements and send alarms when parameters exceed defined limits.
Who does the better job of monitoring server voltages and environment, you or a major cloud provider? That is difficult to answer, as cloud providers share few internal operational details. Learning Tree’s Cloud Security Essentials course discusses the infrastructure advantages enjoyed by major cloud providers. To do it yourself, the Linux Administration and Support course shows you how to install, run and monitor lm-sensors.