Side channel attack

From Wikipedia, the free encyclopedia
  (Redirected from Side-channel attack)
Jump to: navigation, search
An attempt to decode RSA key bits using power analysis. The left peak represents the CPU power variations during the step of the algorithm without multiplication, the right (broader) peak - step with multiplication, allowing to read bits 0, 1.

In cryptography, a side channel attack is any attack based on information gained from the physical implementation of a cryptosystem, rather than brute force or theoretical weaknesses in the algorithms (compare cryptanalysis). For example, timing information, power consumption, electromagnetic leaks or even sound can provide an extra source of information which can be exploited to break the system. Some side-channel attacks require technical knowledge of the internal operation of the system on which the cryptography is implemented, although others such as differential power analysis are effective as black-box attacks. Many powerful side channel attacks are based on statistical methods pioneered by Paul Kocher.[1]

Attempts to break a cryptosystem by deceiving or coercing people with legitimate access are not typically called side-channel attacks: see social engineering and rubber-hose cryptanalysis. For attacks on computer systems themselves (which are often used to perform cryptography and thus contain cryptographic keys or plaintexts), see computer security. The rise of Web 2.0 applications and software-as-a-service has also significantly raised the possibility of side-channel attacks on the web, even when transmissions between a web browser and server are encrypted (e.g., through HTTPS or WiFi encryption), according to researchers from Microsoft Research and Indiana University.[2]

General[edit]

General classes of side channel attack include:

  • Timing attack — attacks based on measuring how much time various computations take to perform.
  • Power monitoring attack — attacks which make use of varying power consumption by the hardware during computation.
  • Electromagnetic attacks — attacks based on leaked electromagnetic radiation which can directly provide plaintexts and other information. Such measurements can be used to infer cryptographic keys using techniques equivalent to those in power analysis, or can be used in non-cryptographic attacks, e.g. TEMPEST (aka van Eck phreaking or radiation monitoring) attacks.
  • Acoustic cryptanalysis — attacks which exploit sound produced during a computation (rather like power analysis).
  • Differential fault analysis — in which secrets are discovered by introducing faults in a computation.
  • Data remanence — in which sensitive data are read after supposedly having been deleted.

In all cases, the underlying principle is that physical effects caused by the operation of a cryptosystem (on the side) can provide useful extra information about secrets in the system, for example, the cryptographic key, partial state information, full or partial plaintexts and so forth. The term cryptophthora (secret degradation) is sometimes used to express the degradation of secret key material resulting from side channel leakage.

Examples[edit]

A timing attack watches data movement into and out of the CPU, or memory, on the hardware running the cryptosystem or algorithm. Simply by observing variations in how long it takes to perform cryptographic operations, it might be possible to determine the entire secret key. Such attacks involve statistical analysis of timing measurements, and have been demonstrated across networks.[3]

A power analysis attack can provide even more detailed information by observing the power consumption of a hardware device such as CPU or cryptographic circuit. These attacks are roughly categorized into simple power analysis (SPA) and differential power analysis (DPA).

Fluctuations in current also generate radio waves, enabling attacks that analyze measurements of electromagnetic emanations. These attacks typically involve similar statistical techniques as power analysis attacks.

Non-cryptographic historical analogues to modern side channel attacks are known. A recently declassified NSA document reveals that as far back as 1943, an engineer with Bell telephone observed decipherable spikes on an oscilloscope associated with the decrypted output of a certain encrypting teletype.[4] According to former MI5 officer Peter Wright, the British Security Service analysed emissions from French cipher equipment in the 1960s.[5] In the 1980s, Soviet eavesdroppers were suspected of having planted bugs inside IBM Selectric typewriters to monitor the electrical noise generated as the type ball rotated and pitched to strike the paper; the characteristics of those signals could determine which key was pressed.[6]

Power consumption of devices causes heating, which is offset by cooling effects. Temperature changes create thermally induced mechanical stress. This stress can create low level acoustic (i.e. noise) emissions from operating CPUs (about 10 kHz in some cases). Recent research by Shamir et al. has suggested that information about the operation of cryptosystems and algorithms can be obtained in this way as well. This is an acoustic attack; if the surface of the CPU chip, or in some cases the CPU package, can be observed, infrared images can also provide information about the code being executed on the CPU, known as a thermal imaging attack.

Countermeasures[edit]

Because side channel attacks rely on the relationship between information emitted (leaked) through the side-channel and the secret data, countermeasures fall into two main categories: (1) eliminate or reduce the release of such information; and (2) eliminate the relationship between the leaked information and the secret data; that is, make the leaked information unrelated, or rather uncorrelated, to the secret data, typically through some form of randomization of the ciphertext that transforms the data in a way that can be undone after the cryptographic operation (e.g., decryption) is completed.

Under the first category, displays are now commercially available which have been specially shielded to lessen electromagnetic emissions reducing susceptibility to TEMPEST attacks. Power line conditioning and filtering can help deter power monitoring attacks, although such measures must be used cautiously since even very small correlations can remain and compromise security. Physical enclosures can reduce the risk of surreptitious installation of microphones (to counter acoustic attacks) and other micro-monitoring devices (against CPU power draw or thermal imaging attacks).

Another countermeasure (still in the first category) is to jam the emitted channel with noise. For instance, a random delay can be added to deter timing attacks, although adversaries can compensate for these delays by averaging multiple measurements together (or, more generally, using more measurements in the analysis). As the amount of noise in the side channel increases, the adversary needs to collect more measurements.

In the case of timing attacks against targets whose computation times are quantized into discrete clock cycle counts, an effective countermeasure against is to design the software so that it is isochronous—so it runs in an exactly constant amount of time, independently of secret values. This makes timing attacks impossible.[7] Such countermeasures can be difficult to implement in practice, since even individual instructions can have variable timing on some CPUs.

One partial countermeasure against simple power attacks, but not differential power analysis attacks, is to design the software so that it is "PC-secure" in the "program counter security model". In a PC-secure program, the execution path does not depend on secret values—in other words, all conditional branches depend only on public information. (This is a more restrictive condition than isochronous code, but a less restrictive condition than branch-free code.) Even though multiply operations draw more power than NOP on practically all CPUs, using a constant execution path prevents such operation-dependent power differences—differences in power from choosing one branch over another—from leaking any secret information.[7] On architectures where the instruction execution time is not data-dependent, a PC-secure program is also immune to timing attacks. [8] by David Molnar, Matt Piotrowski, David Schultz, David Wagner (2005).[9]

Another way in which code can be non-isochronous is that modern CPUs have a memory cache: accessing infrequently used information incurs a large timing penalty, revealing some information about the frequency of use of memory blocks. Cryptographic code designed to resist cache attacks attempts to use memory in only a predictable fashion (such as accessing only the input, outputs and program data, and doing so according to a fixed pattern). For example data-dependent look-up tables must be avoided because the cache could reveal which part of the look-up table was accessed.

Other partial countermeasures attempt to reduce the amount of information leaked from data-dependent power differences. Some operations use power that is correlated to the number of 1 bits in a secret value. Using a constant-weight code (such as using Fredkin gates or dual-rail encoding) can reduce the leakage of information about the Hamming weight of the secret value, although exploitable correlations are likely to remain unless the balancing is perfect. This "balanced design" can be approximated in software by manipulating both the data and its complement together.[7]

Several "secure CPUs" have been built as asynchronous CPUs; they have no global timing reference. While these CPUs were intended to make timing and power attacks more difficult,[7] subsequent research found that timing variations in asynchronous circuits are harder to remove[citation needed].

A typical example of the second category is a technique known as blinding. In the case of RSA decryption with secret exponent d and corresponding encryption exponent e and modulus m, the technique applies as follows (for simplicity, the modular reduction by m is omitted in the formulas): before decrypting; that is, before computing the result of y^d for a given ciphertext y, the system picks a random number r and encrypts it with public exponent e to obtain r^e. Then, the decryption is done on y \cdot r^e, to obtain {(y \cdot r^e)}^d = y^d \cdot r^{e\cdot d} = y^d \cdot r. Since the decrypting system chose r, it can compute its inverse modulo m to cancel out the factor r in the result and obtain y^d, the actual result of the decryption. For attacks that require collecting side-channel information from operations with data controlled by the attacker, blinding is an effective countermeasure, since the actual operation is executed on a randomized version of the data, over which the attacker has no control or even knowledge.

See also[edit]

References[edit]

  1. ^ Kocher, Paul (1996). "Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems". Advances in Cryptology—CRYPTO’96. Lecture Notes in Computer Science 1109: 104–113. doi:10.1007/3-540-68697-5_9. Retrieved 14 April 2014. 
  2. ^ Shuo Chen, Rui Wang, XiaoFeng Wang, and Kehuan Zhang (May 2010). "Side-Channel Leaks in Web Applications: a Reality Today, a Challenge Tomorrow". IEEE Symposium on Security & Privacy 2010. 
  3. ^ David Brumley, Dan Boneh (2003). "Remote timing attacks are practical". 
  4. ^ "Declassified NSA document reveals the secret history of TEMPEST". Wired.com. April 29, 2008. 
  5. ^ Cryptome.org
  6. ^ Church, George (April 20, 1987). "The Art of High-Tech Snooping". Time. Retrieved January 21, 2010. 
  7. ^ a b c d "A Network-based Asynchronous Architecture for Cryptographic Devices" by Ljiljana Spadavecchia 2005 in sections "3.2.3 Countermeasures", "3.4.2 Countermeasures", "3.5.6 Countermeasures", "3.5.7 Software countermeasures", "3.5.8 Hardware countermeasures", and "4.10 Side-channel analysis of asynchronous architectures".
  8. ^ "The Program Counter Security Model: Automatic Detection and Removal of Control-Flow Side Channel Attacks"
  9. ^ "The Program Counter Security Model: Automatic Detection and Removal of Control-Flow Side Channel Attacks" USENIX Work-in-Progress presentation of paper

Further reading[edit]

Books
Articles
  • [1], Differential Power Analysis, P. Kocher, J. Jaffe, B. Jun, appeared in CRYPTO'99.
  • [2], Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, P. Kocher.
  • Cryptography.com, Introduction to Differential Power Analysis and Related attacks, 1998, P Kocher, J Jaffe, B Jun.
  • Nist.gov, a cautionary Note Regarding Evaluation of AES Candidates on Smart Cards, 1999, S Chari, C Jutla, J R Rao, P Rohatgi
  • DES and Differential Power Analysis, L Goubin and J Patarin, in Proceedings of CHES'99, Lecture Notes in Computer Science Nr 1717, Springer-Verlag
  • Grabher, Philipp et al. (2007). "Cryptographic Side-Channels from Low-power Cache Memory". In Galbraith, Steven D. Cryptography and coding: 11th IMA International Conference, Cirencester, UK, December 18-20, 2007 : proceedings, Volume 11. Springer. ISBN 9783540772712. 
  • Kamal, Abdel Alim; Youssef, Amr M. (2012). "Fault analysis of the NTRUSign digital signature scheme". Cryptography and Communications 4 (2): 131–144. doi:10.1007/s12095-011-0061-3. 
  • Daniel Genkin; Adi Shamir; Eran Tromer (December 18, 2013). "RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis". Tel Aviv University. Retrieved October 15, 2014. 

External links[edit]