A side-channel attack (SCA) is a security exploit that involves collecting information about what a computing device does when it is performing cryptographic operations and using that information to reverse engineer the device's cryptography system. In computing, a side channel is any communication channel that is incidental to another communication channel. Security researcher Paul Kocher is credited with coining the term side-channel attack in the 1990s when he discovered it was possible to reverse engineer security tokens by monitoring a computer's power consumption and electromagnetic emissions.
Unlike many other types of security exploits, side-channel attacks are hardware and software agnostic. Instead of targeting a software vulnerability caused by a coding error or configuration drift, the attacker exploits the way the device's operating system (OS) accesses the hardware upon which the OS runs. Side-channel attacks can be launched against any operating system, including Windows and Linux.
Types of Side-Channel Attacks
Side-channel attacks work by monitoring the emissions produced by electronic circuits when the victim's computer is being used. In addition to exploiting information about power consumption and electromagnetic fields, an attacker may actually listen to the sounds a central processing unit (CPU) produces and use that information to reverse engineer what the computer is doing. This type of side-channel attack is called an acoustic cryptanalysis attack. Other types of side-channel attack include:
Cache attacks that exploit how and when cache is accessed in a physical system.
Differential fault analysis attacks that seek to gleam information from a system by introducing faults into the system’s computations.
Timing attacks that track the movement of data to and from a system's CPU and memory.
Thermal-imaging attacks that use infrared images to observe the surface of a CPU chip and collect executed code.
Optical side-channel attacks that collect information about hard disk activity by using a audio/visual recorder, such as a video camera.
Van Eck phreaking is a form of eavesdropping that involves monitoring the electromagnetic fields produced by data as it moves through the computer.
How to Prevent Side-Channel Attacks
To prevent side-channel attacks, users have two choices: they must either reduce the release of electromagnetic information that could be used to launch an attack or they must make it impossible for an attacker to link information about what the CPU is doing with specific compute operations. For example, a computer engineer may want to change the order of operations used on data within the system by using a process called randomization to make it more difficult for an attacker to launch a side-channel attack.
Another preventative technique an engineer may use is to increase the amount of noise in a channel. An increase in noise means an attacker will have to collect more measurements than is needed and not all the information will be relevant. Faraday cages can also be used to reduce electromagnetic leaks.