This vulnerability occurs when a hardware device lacks adequate safeguards against physical side-channel attacks. Attackers can exploit measurable patterns in power usage, electromagnetic radiation, or even sound emissions to uncover sensitive information like encryption keys.
Physical side-channel attacks work by monitoring the subtle, analog side effects of a device's operation. Even when digital data is perfectly secured, an attacker with physical access or nearby equipment can analyze fluctuations in power consumption, electromagnetic leaks, or acoustic noise. By correlating these physical patterns with the device's processing activity, secrets can be inferred without ever breaking the digital security directly. These attacks are a well-established threat, particularly against cryptographic operations. Protecting against them requires deliberate hardware and software design choices that obscure or eliminate the relationship between secret data processing and its physical manifestations. Without such countermeasures, devices remain vulnerable to key extraction and data theft from seemingly innocuous physical signals.
Impact: Read MemoryRead Application Data
As each character of the PIN number is entered, a correct character exhibits one current pulse shape while an incorrect character exhibits a different current pulse shape.
Rather than comparing each character to the correct PIN value as it is entered, the device could accumulate the PIN in a register, and do the comparison all at once at the end. Alternatively, the components for the comparison could be modified so that the current pulse shape is the same regardless of the correctness of the entered character.
The local method of extracting the secret key consists of plugging the key into a USB port and using electromagnetic (EM) sniffing tools and computers.
Several solutions could have been considered by the manufacturer. For example, the manufacturer could shield the circuitry in the key or add randomized delays, indirect calculations with random values involved, or randomly ordered calculations to make extraction much more difficult. The manufacturer could use a combination of these techniques.
... module mod_exp
verilog
if (exponent_reg[0])**
verilog
verilog... module mod_exp
verilog
if (exponent_reg[0]) begin**
verilog
verilog
mask_reg <= result_next;**
verilog