<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Firmware extraction from real IoT devices through power analysis of AES</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Francesco</forename><surname>Benvenuto</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DAIS</orgName>
								<orgName type="institution">Ca&apos; Foscari University</orgName>
								<address>
									<addrLine>via Torino 155</addrLine>
									<postCode>30172</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Francesco</forename><surname>Palmarini</surname></persName>
							<email>palmarini@unive.it</email>
							<affiliation key="aff0">
								<orgName type="department">DAIS</orgName>
								<orgName type="institution">Ca&apos; Foscari University</orgName>
								<address>
									<addrLine>via Torino 155</addrLine>
									<postCode>30172</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="institution">10Sec S.r.l</orgName>
								<address>
									<addrLine>via delle Industrie, 13</addrLine>
									<postCode>30175</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Riccardo</forename><surname>Focardi</surname></persName>
							<email>focardi@unive.it</email>
							<affiliation key="aff0">
								<orgName type="department">DAIS</orgName>
								<orgName type="institution">Ca&apos; Foscari University</orgName>
								<address>
									<addrLine>via Torino 155</addrLine>
									<postCode>30172</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="institution">10Sec S.r.l</orgName>
								<address>
									<addrLine>via delle Industrie, 13</addrLine>
									<postCode>30175</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Flaminia</forename><forename type="middle">L</forename><surname>Luccio</surname></persName>
							<email>luccio@unive.it</email>
							<affiliation key="aff0">
								<orgName type="department">DAIS</orgName>
								<orgName type="institution">Ca&apos; Foscari University</orgName>
								<address>
									<addrLine>via Torino 155</addrLine>
									<postCode>30172</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="institution">10Sec S.r.l</orgName>
								<address>
									<addrLine>via delle Industrie, 13</addrLine>
									<postCode>30175</postCode>
									<settlement>Venezia</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Firmware extraction from real IoT devices through power analysis of AES</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">08217C5013DB9533CA8BAB1509B2C682</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T20:06+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>IoT</term>
					<term>firmware extraction</term>
					<term>embedded system security</term>
					<term>side channel</term>
					<term>cryptanalysis</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The recent growth of Internet of Things has made embedded systems an interesting target for potential attackers. Extracting the firmware of an embedded device breaks the intellectual property of the manufacturer and makes it possible to produce functionally equivalent devices at a lower price. It is thus of ultimate importance to understand the methodologies and techniques used by attackers in order to extract the firmware, so that manufacturers become aware of the implication of their design choices for what concerns the protection of their products. In this paper, we discuss some advanced techniques and methodologies that attackers use to break the security of embedded devices. We then apply these techniques and methodologies to extract the firmware from a real device. In particular, we implement a cost-effective Correlation Power Analysis (CPA) setup that allows us to discover the confidential AES key used by the microcontroller to encrypt its code and data.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Embedded systems are known to be prone to different classes of attacks. With the exponential growth of the Internet of Things (IoT) we are more and more facing the so-called patching vulnerability, as we are surrounded by vulnerable devices that are hard or even impossible to patch <ref type="bibr" target="#b0">[1]</ref>.</p><p>In this paper, we discuss techniques and methodologies that an attacker can use to break the security of embedded devices, focusing on firmware extraction attacks. We illustrate and discuss in detail the steps that an attacker can follow to extract the firmware from a Microcontroller Unit (MCU). The process is analyzed starting from an initial phase in which information on the device is gathered so to define an attack plan, up to the final phase in which the firmware is extracted. Studying these steps in detail, and understanding the capabilities that an attacker can have, should hopefully help the manufacturers to improve the software and hardware protection of IoT devices. We have carried out several experiments on real devices in our laboratory, and we present a representative example without providing any detail that could reveal the actual target. The case study consists in extracting the firmware from the two MCUs of an embedded device. Typically, MCUs have a specific mechanism, often called Read Out Protection (RDP), to prevent the read-out of their firmware. We will illustrate a setup based on off-the-shelf, affordable hardware that will allow us to perform advanced power analysis attacks on the AES cipher, making it possible to bypass protections, execute arbitrary code on the MCU, and extract its firmware.</p><p>The paper is organized as follows: in Section 2 we discuss the background and the related work. In Section 3 we discuss the techniques and methodologies used by an attacker to extract firmware. In Section 4 we present our case study. We conclude in Section 5.</p><p>This article is based on the first author's Master's thesis work <ref type="bibr" target="#b1">[2]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Background and related work</head><p>This section provides technical background on power analysis, discussing related work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Simple Power Analysis (SPA). Simple Power Analysis is a classic power analysis technique</head><p>based on the analysis of the shape of the power consumption, which is directly used to infer information about data and/or the executed code path (see, e.g., <ref type="bibr" target="#b2">[3]</ref>). For instance, let us consider the code in Figure <ref type="figure">1</ref>: it is a time dependent implementation of a password check which exits  as soon as one password character is wrong. In Figure <ref type="figure">2</ref> we show different power traces of an embedded device running the code listed in Figure <ref type="figure">1</ref> with different passwords. The rightmost power trace represents the device elaborating the correct password, the other two represent power traces for passwords that have the first wrong password character at positions 0 and 1, respectively. The red bounding box, in each trace, contains the power consumption of the for loop in the code of Figure <ref type="figure">1</ref>. It is clearly noticeable that the red bounding box expands depending on the position of the first wrong character. The attacker can now easily brute-force, one by one, the characters of the password by observing the expansion of the box: in fact, when the box expands the attacker discovers that the character is correct and can move to brute-forcing the next one. This makes the attack polynomial with respect to the length of the password.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Differential Power Analysis (DPA).</head><p>This attack is based on the observation that different processed values imply (slightly) different power consumption, observable through statistical measures <ref type="bibr" target="#b2">[3]</ref>. For example, in the first AES round, a substitution is applied to the XOR of a round key byte with a plaintext byte. The attacker collects a big number of power traces for different plaintexts and, for each guess of the the key byte, selects a bit (e.g., the least significant one) of the output of the substitution function. If the key guess is correct, the average power consumption for the traces where the bit is 0 will be smaller than the average power consumption of the traces where the bit is 1, called difference of means. In Figure <ref type="figure" target="#fig_2">3a</ref> we plot the difference of means for a wrong (green) key guess and a correct (blu) key guess. For the correct key it is possible to observe spike(s) where the value is processed. This method allows for individually guessing the bytes of the AES key.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Correlation Power Analysis (CPA).</head><p>In <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b5">6]</ref> a new refined class of attacks, called Correlation Power Analysis, was introduced. CPA is based on defining a power consumption model for the processed data so that the correlation between modeled and actual consumption can be used to verify guesses more accurately. For example, the Hamming weight, i.e., the number of 1 bits in a value, can be shown to be proportional to power consumption. The attacker considers a possible guess of a key byte, computes the power consumption according to the Hamming weight model, and estimates its correlation with respect to the actual power consumption trace. This can be done using standard statistical tools such as the Pearson correlation coefficient. The most correlated guesses reveal the actual key bytes. In Figure <ref type="figure" target="#fig_2">3b</ref> we show the correlation plot using a Hamming weight model: the correct key byte is in blue, the wrong key byte with the largest negative correlation is in green and the wrong key byte with the largest positive correlation is in red. Note that, the model offers a more accurate distinction between correct and wrong key bytes than DPA. However, we can notice that the points of highest correlation for the correct key (the blue spikes) are about at the same time as the ones of DPA. Both DPA and CPA attacks have been applied to other symmetric ciphers, like DES (see e.g., <ref type="bibr" target="#b3">[4]</ref>) and to asymmetric ciphers (see, e.g., <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b8">9]</ref>).</p><p>Equipment. We briefly describe the equipment used in our power analysis setups. A digital storage oscilloscope is a device that acquires varying analog signal voltages as a function of time; in this work we used both Picoscope 5444D and Chipwhisperer Lite, an open source toolchain dedicated to hardware security research which is also able to perform both side-channel and fault injection attacks. <ref type="foot" target="#foot_0">1</ref> A logic analyzer (Saleae Logic Pro 8) that measures the digital voltage variation of a target signal. A differential probe used in combination with an oscilloscope, that allows for measuring voltage variations between any two points of the circuit.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Related work.</head><p>Firmware extraction from read-protected microcontrollers is a relatively little explored field: in <ref type="bibr" target="#b9">[10]</ref> Goodspeed defeated the password protection mechanism found in Texas Instruments' old MSP430 microcontrollers. The author used a time-based side channel attack to take advantage of an unbalanced code in the password check routine and, using voltage glitches, bypassed the security protection. The authors of <ref type="bibr" target="#b10">[11]</ref> demonstrated how to downgrade hardware-imposed security restrictions and download the internal firmware of an STM32F0 MCU, but the attack was invasive as it required decapsulating the chip. As for the characterization of the attack parameters, in <ref type="bibr" target="#b11">[12,</ref><ref type="bibr" target="#b12">13,</ref><ref type="bibr" target="#b13">14]</ref> authors have successfully applied genetic algorithms and other optimization techniques. Glitch generation using FPGAs combined with digital-to-analog converters has been studied in <ref type="bibr" target="#b14">[15,</ref><ref type="bibr" target="#b15">16]</ref> and adopted by commercial tools, such as the Riscure VC Glitcher <ref type="bibr" target="#b16">[17]</ref>. After the seminal work by Boneh, DeMillo and Lipton <ref type="bibr" target="#b17">[18]</ref>, numerous articles (e.g., <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b15">16,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b19">20,</ref><ref type="bibr" target="#b20">21,</ref><ref type="bibr" target="#b21">22,</ref><ref type="bibr" target="#b22">23]</ref>) have investigated the feasibility of applying voltage glitching to attack both microcontrollers and secure hardware, such as smartcards. Extensive surveys are provided in <ref type="bibr" target="#b23">[24,</ref><ref type="bibr" target="#b24">25]</ref>. Fault attacks against cryptographic implementations have been studied in several papers (e.g., <ref type="bibr" target="#b25">[26,</ref><ref type="bibr" target="#b26">27]</ref>). In recent years, fault injection has also been proven effective for achieving privilege escalation on a locked-down ARM processor <ref type="bibr" target="#b14">[15]</ref> and, in the same year, authors of <ref type="bibr" target="#b27">[28]</ref> proved that two widely used software countermeasures to fault attacks do not provide strong protection in practice.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Attacker methodology</head><p>We now present a typical firmware extraction attack methodology. This is useful to define a proper threat model and to understand the possible implications of an attack, so to consider suitable defense and mitigation techniques. Interestingly, we assume a setup based on off-theshelf, affordable hardware, so to maximize the risk of attack: our attacker does not require a professional lab with very expensive equipment (cf. Section 2). The attacker targets the MCU firmware in order to: (𝑖) reverse engineer it; (𝑖𝑖) obtain confidential information about the protocols and algorithms implemented in the firmware, breaking the intellectual property (IP) of the manufacturer; (𝑖𝑖𝑖) discover possible vulnerabilities, that could be exploited to compromise the device. Typically, the attacker has no prior knowledge of the attacked system: we refer to this situation as black-box attack scenario.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Information gathering</head><p>The first step in a black-box attack is to gather as much information about the system as possible. This allows the attacker to make informed decisions about the objective and opens the possibility of exploiting different attack techniques.</p><p>Inspecting system components. When facing an unknown hardware, the first information gathering step is to visually inspect the integrated circuit trying to understand what are the various components and how they behave. To make this task harder, a common manufacturer practice is to erase labels from the crucial components, typically from the MCU. This practice is performed to slow down the reverse engineering of the circuit and make the eventual exploitation of the device more time consuming and expensive. In fact, this could discourage occasional attackers to even start performing experiments on the device. Some companies even place a wrong label, misdirecting the attacker. A typical attack technique is to perform targeted experiments in order to discover the functionality of the MCU pins. This mapping, also called pin-out, allows for searching among existing MCUs the ones that match the particular pin layout. Once the MCU is known, the attacker looks for the datasheet describing in detail the MCU behaviour and capabilities.</p><p>Sometimes, even when the MCU name is known, it is impossible to obtain its datasheet; indeed, some companies do not publicly disclose it, so to slow down the reverse engineering process. However, it is worth noticing that it is very hard to keep an MCU datasheet secret forever. Sooner or later, these documents are leaked or released. Interestingly, erasing the MCU label and keeping the datasheet confidential are classic examples of what is referred to as security-by-obscurity, a typical approach in industrial security that has proved to be inefficient and that, in many cases, only reinforces a false sense of security.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Detecting encrypted content.</head><p>A fairly common embedded system architecture consists of an MCU paired with an external flash memory (e.g., Espressif ESP8266 and ESP32). The flash memory might contain both code and data that can be easily leaked by connecting directly to it. A typical defensive technique is to encrypt the flash memory content, using a key that is stored securely inside the MCU. Clearly, it is important for the attacker, to immediately  detect this protection in order to decide her next move. One method that is widely used to distinguish between plain data or encrypted one is to measure its entropy: intuitively a high entropy indicates that data are encrypted, as encryption algorithms behave like pseudo-random functions producing a high-entropy output. However, as observed in <ref type="bibr" target="#b28">[29]</ref>, it is possible to obtain a high entropy also with structured file formats. For example, compressed files exhibit a high entropy. It can also happen that a small number of bytes, among the encrypted ones, are in plaintext, leading in any case to a high entropy and making it hard to notice those particular plaintext bytes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Firmware Extraction</head><p>After the attacker has acquired enough information about the system, she devises the possible attack vectors to extract the firmware. The following list is far from being exhaustive, but is general enough to cover the most commonly used attack techniques.</p><p>Code Injection. One of the most powerful attack vectors is called code injection. It requires the attacker capability to inject code into the MCU, which will then be executed by the target. If the attacker knows the instruction set architecture (ISA) of the target MCU, she can craft a special payload that would dump the firmware from the inside, directly through the I/O pins of the MCU. It is enough to use two General-Purpose Input/Output (GPIO) pins, one as clock signal and the other one as data signal. Figure <ref type="figure" target="#fig_4">4a</ref> summarizes the explained method. This attack vector works in case the MCU firmware is readable by the injected code. For example, there might exist different memory areas, isolating the injected code from the firmware and, in such a case, this attack would not work.</p><p>Fault Injection. Fault injection attacks are based on inducing faults in the execution so to modify the control flow and/or corrupt data <ref type="bibr" target="#b20">[21]</ref>. There exist different types of fault injection. The cheapest and simplest one is probably voltage fault injection, i.e., injecting disturbances in the power supply rail of the target MCU so to induce faulty behavior. The injected disturbance is also known as a voltage glitch. In <ref type="bibr" target="#b13">[14]</ref> it is presented a modern, cost-effective voltage fault injection setup with accurate control over the glitch shape, duration and timing. The authors show that the setup allows for highly reproducible and reliable fault injections enabling attacks that require over one million of faults on the same MCU. Figure <ref type="figure" target="#fig_4">4b</ref> shows a simplified schema of the setup presented in the paper that uses an MCU-proxy to perform the low-level communication with the target MCU, and a waveform generator to produce the chosen glitch shape and to inject it in the supply voltage line of the target.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>i f ( c o n d i t i o n ) { / / dump t h e f i r m w a r e }</head><p>The ability to inject an error is a powerful capability for the attacker and can be easily leveraged to dump the MCU firmware when the MCU itself has already implemented a firmware dump functionality. Consider, as a simple example, an MCU whose bootloader contains code to dump the firmware only if a certain condition holds (cf. Figure <ref type="figure" target="#fig_5">5</ref>). This piece of code is the ideal target for the considered attack: through fault injection, the attacker can skip/modify the jump instruction that implements the branch and dump the firmware even when the condition is false. Of course, more sophisticated attacks may be required for more complex code and/or less explicit branches (see, e.g., <ref type="bibr" target="#b13">[14]</ref>).</p><p>As this kind of attacks can become easily destructive, it is a common practice to try them on spare MCUs before reproducing them on the real targets. Notice that, attacks made on the bootloader work with very high probability on any identical MCU. Moreover, controlling the firmware makes attacks simpler to experiment with.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IC decapsulation.</head><p>The attack techniques explained so far require the device to actively execute instructions that directly or indirectly dump the firmware. IC decapsulation requires static, physical analysis of the MCU, i.e., decapsulating and inspecting the integrated circuit die with a powerful microscope. This can reveal several constructive components, like the physical bits that compose the firmware. Based on the constructive elements of the memory, it might be possible to distinguish the value of each bit. This technique, however, requires very expensive equipments, such as a scanning electron microscope (SEM), and is out of the scope of our current analysis setup that assumes off-the-shelf, affordable hardware (cf. Section 3).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Case study</head><p>In our laboratory we have carried out several experiments on extracting firmware from real devices. In this section, we present a representative case study without providing any detail that could reveal the actual target. Instead, we focus on the applied techniques and methodology.</p><p>We are given an embedded device with two MCUs, that we will call RED and BLUE, a flash memory and a button (cf. Figure <ref type="figure" target="#fig_6">6</ref>). The goal is to extract the firmware of the two MCUs. We consider a black-box scenario in which the attacker has physical access to the device: a typical situation in which the manufacturer's IP is under attack.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">Information gathering</head><p>As explained in Section 3.1 the first step consists in gathering as much information as possible about the system.</p><p>Inspecting system components. The labels of the MCUs were removed but we were able to discover the names of the MCUs, and to obtain the relative datasheets using the pin-out technique described in Section 3.1. The most relevant features of RED were:</p><p>• a one-time-programmable (OTP) memory containing the firmware; • two execution states: development and deployed. In the development state the debug interface is enabled and, through it, it is possible to read the firmware; • an AES-128 hardware accelerator.</p><p>The most interesting features of BLUE were:</p><p>• a non-volatile memory (NVM) containing the firmware; • various functionalities, among which one for dumping the NVM content that, unfortunately, was locked.</p><p>The flash memory was a fairly standard one, offering usual operations such as: erase, program, read, etc. The only way for a user to interact with the device was through the button connected to RED: when pressed, RED started to read the flash content. RED communicated with BLUE only when some particular data were loaded into the flash. This information, extracted by monitoring the transferred data on the communication bus, that we probed with the logic analyzer, lead us to the idea that the flash was an essential portion of the system, and that the functionalities of the device were conditioned by the content of the flash.</p><p>The ISA of RED was publicly available, so using a disassembler software like Ghidra<ref type="foot" target="#foot_1">2</ref> we searched RED native code in the flash, as plaintext, with no success. Detecting encrypted content. As explained in Section 3.1, we measured the entropy level of the flash content to understand if it was encrypted. The entropy level was really high inducing us to think that the majority of the flash content was indeed encrypted. By examining the flash content we noticed blocks of 16 bytes repeated in the memory. This led us to the hypothesis of a block cipher with a block size of 16 bytes, used in ECB mode of operation. <ref type="foot" target="#foot_2">3</ref> This hypothesis was strongly supported by the presence of an AES-128 hardware accelerator in the RED MCU. Furthermore, we noticed that RED read the flash data 16 bytes at the time. In Figure <ref type="figure">7</ref> we show the RED's reading pattern, where each of the spike corresponds to the MCU reading 16 bytes from the flash. Between each read block, there is an empty communication time lapse during which, most likely, RED was performing the decryption of the received block.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">Attack Vectors</head><p>We now report the attack vectors that we devised for the two MCUs assuming a setup based on off-the-shelf, affordable hardware (cf. Sections 2, 3 and 3.2).</p><p>Attack vectors for RED. The first idea is based on the following educated guess: RED has two running states, the development mode and the deployed one. Different functionalities are available depending on the MCU state, meaning that at some point this state is checked, most likely in the bootloader. We can presume that the bootloader contains code similar to the one of Figure <ref type="figure">8</ref>. The first attack vector aims at injecting a voltage glitch, during the bootloader state check, to enter the development mode, access the debug interface and extract the firmware. The second attack vector is based on side channel analysis. Indeed, with the assumption that AES-128 is used to decrypt the flash content, it would be possible to perform a power analysis attack to recover the AES key. This would allow us to decrypt the flash content, understand  on a Raspberry Pi. To capture the power trace we used Chipwhisperer Lite. The code changed the state of a GPIO just before the start of the AES operation, in order to trigger Chipwhisperer Lite recording at the right time. To measure power consumption we placed a shunt resistor in series with the RED MCU's power supply rail. The attack setup is shown in Figure <ref type="figure" target="#fig_8">10</ref>.</p><p>Our first experiment aimed at giving us knowledge about the "shape" of an AES-128 round. In Figure <ref type="figure" target="#fig_9">11</ref> we show the starting portion of two power traces that were generated by encrypting different plaintexts using the same AES key. The differences in height, between the red trace and the blue one, are due to the different plaintexts used. It is notable that in the power traces some portions repeat, due to the AES rounds. In fact, we claimed that the first round started around sample number 500 and ended around sample number 1500, where the shape of the plot starts repeating. We collected several traces to try a CPA attack and experimented with more sophisticated setups to increase accuracy of measurements, as explained below.</p><p>Attacking the RED target. To improve the quality of the analysis we milled a Printed Circuit Board (PCB). The information gathering task of Section 4.1 convinced us that the 16-byte blocks were read from the flash memory and decrypted on the fly. So, we changed the first block of the flash with our chosen data, in order to control the first input block of AES decryption. Then, we triggered the button of the RED MCU to start the decryption process. We chose to use the Picoscope 5444D and the differential probe, with the idea that these changes would drastically improve the attack results. The setup (Figure <ref type="figure" target="#fig_10">12</ref>) was so good that after only a hundred traces the best correlations values were around 0.98, and all the other guesses had correlation values around 0.01. This result convinced us that we had extracted the correct key. To confirm the correctness of the key, we decrypted some of the flash content and analyzed them with Ghidra. We found the code responsible for some of the measurable actions confirming that the key was indeed correct.</p><p>At this point, we were able to decrypt all the flash content and encrypt arbitrary data. We wanted to verify if some sort of check was performed before executing the firmware loaded from the flash. After a few attempts we discovered the presence of a checksum on the plaintext bytes. This allowed us to arbitrarily modify the firmware and make the MCU execute it. At this point, we could in principle execute arbitrary code. What we did not know was where RED started to execute the flash content. We overcame this problem using a standard nop sled, i.e., a block of NOP instructions, doing nothing, right in front of the code. This increases the probability for the code to be executed as any address of the NOP instructions is a valid entry point. Using this technique we were able to extract the firmware stored in the internal OTP memory, using the two GPIOs technique described in Section 3.2.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusion</head><p>In this paper we have systematized the knowledge about the attacker techniques and methodologies for embedded devices and shown how to apply them to a real case study. In particular, we have shown two different attacks performed on the two MCUs of the analyzed device, one based on fault injection, the other one, more complex, requiring: (𝑖) the extraction of the AES-128 key used to encrypt the code executed by the MCU, and (𝑖𝑖) the injection of malicious code, encrypted under the leaked key, used to dump the firmware of the MCU. Our work shows that advanced attacks on IoT devices can be performed with off-the-shelf, affordable hardware. These attacks fully compromise the device intellectual property by leaking the firmware and allowing for the development of identical clones of the target device. Manufacturers should seriously consider the adoption of more secure (but also more expensive) MCUs with hardware protections against power analysis and side channel attacks. We believe that developing more secure, affordable hardware will be an important challenge for the coming years.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>u i n t 8 _Figure 1 :Figure 2 :</head><label>812</label><figDesc>Figure 1: Time dependent password check implementation.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>( a )</head><label>a</label><figDesc>Differential Power Analysis (DPA). (b) Correlation Power Analysis (CPA).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Comparing differential and correlation power analysis of AES.</figDesc><graphic coords="3,115.27,84.19,166.68,142.27" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>Voltage glitch setup from<ref type="bibr" target="#b13">[14]</ref>.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Firmware extraction techniques.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Firmware dump functionality protected by a condition.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: High level architecture of the target device.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Figure 7 :Figure 8 :</head><label>78</label><figDesc>Figure 7: The RED MCU is reading the flash: each spike corresponds to a 16-byte block.</figDesc><graphic coords="9,193.47,84.19,208.34,88.33" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Figure 10 :</head><label>10</label><figDesc>Figure 10: The controlled environment for Correlation Power Analysis</figDesc><graphic coords="11,237.62,84.19,125.00,135.44" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Figure 11 :</head><label>11</label><figDesc>Figure 11: The initial part of two AES-128 encryption power traces on the RED MCU.</figDesc><graphic coords="11,203.09,259.05,166.67,134.60" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head>Figure 12 :</head><label>12</label><figDesc>Figure 12: Correlation Power Analysis of the real target.</figDesc><graphic coords="12,235.13,84.19,124.95,93.71" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://github.com/newaetech/chipwhisperer</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">https://ghidra-sre.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">ECB mode encrypts each plaintext block independently, under the same key.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>This work has been partially supported by POR FESR projects DOMHO: "Sistema domotico IoT integrato ad elevata sicurezza informatica per smart building" and SAFE PLACE: "Sistemi IoT per ambienti di vita salubri e sicuri". We would also like to thank the anonymous reviewers for their constructive and helpful suggestions.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>SCOPE</head><p>its format, and then craft a malicious content to dump the MCU firmware, as summarized in Figure <ref type="figure">9</ref>.</p><p>Attack vectors for BLUE. The only attack vector for BLUE is based on fault injection. The functionality for dumping the internal memory was disabled. Assuming this is done using a branch based on a boolean flag, the idea is to skip the branch and re-enable the functionality.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3.">Attack results</head><p>This section describes the attack performed over the target device. The attacks are based on the attack vectors identified in Section 4.2. We bought two MCUs identical to RED and BLUE, in order to experiment attacks on a firmware under our control before reproducing them on the real targets. As explained in Section 3.2, controlling the firmware makes attacks simpler to experiment with. Moreover, attacks can become easily destructive, so it is a common practice to try them on spare MCUs. We start by describing the simplest attack on BLUE.</p><p>Voltage fault injection on BLUE. We used the setup of <ref type="bibr" target="#b13">[14]</ref> (cf. Section 3.2). The attack consists in finding the right voltage glitch shape, its duration, and the timing for injecting the glitch. It is possible to reduce the search space of some parameters by using some reasonable constraint, e.g., if the target code is in the boot ROM after power-on reset, it is reasonable to target only the firsts milliseconds after the boot. We successfully skipped the branch and re-enabled the dump firmware functionality using a blank MCU. This took just a few days. The very same attack worked for the actual target device, and we could use the dump NVM functionality and extract the firmware.</p><p>Controlled environment for CPA. We tried the first attack vector, the one that uses fault injection, using the same approach used for BLUE, but we were unable to perform a successful attack. So we decided to try the second attack vector: AES correlation power analysis. We wrote native MCU code to encrypt and decrypt the data on the device under a parametric key so that we could control both the data and the key from an external Python program running</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">The Internet of Things Is Wildly Insecure -And Often Unpatchable</title>
		<author>
			<persName><forename type="first">B</forename><surname>Schneier</surname></persName>
		</author>
		<ptr target="https://www.wired.com/2014/01/theres-no-good-way-to-patch-the-internet-of-things-and-thats-a-huge-problem/" />
		<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Firmware extraction through power analysis of cryptographic algorithms</title>
		<author>
			<persName><forename type="first">F</forename><surname>Benvenuto</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2021">2021</date>
			<pubPlace>Venice, Italy</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Ca&apos; Foscari University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master&apos;s thesis</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Differential power analysis</title>
		<author>
			<persName><forename type="first">P</forename><surname>Kocher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Jaffe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Jun</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Cryptology -CRYPTO 1999</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Wiener</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="388" to="397" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Correlation power analysis with a leakage model</title>
		<author>
			<persName><forename type="first">E</forename><surname>Brier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Clavier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Olivier</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Cryptographic Hardware and Embedded Systems -CHES 2004</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="16" to="29" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Statistics and secret leakage</title>
		<author>
			<persName><forename type="first">J.-S</forename><surname>Coron</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Kocher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Naccache</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Financial Cryptography</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="157" to="173" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Smartly analyzing the simplicity and the power of simple power analysis on smartcards</title>
		<author>
			<persName><forename type="first">R</forename><surname>Mayer-Sommer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Cryptographic Hardware and Embedded Systems -CHES 2000</title>
				<editor>
			<persName><forename type="first">Ç</forename><forename type="middle">K</forename><surname>Koç</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Paar</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="78" to="92" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Power analysis for secret recovering and reverse engineering of public key algorithms</title>
		<author>
			<persName><forename type="first">F</forename><surname>Amiel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Feix</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Villegas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Workshop on Selected Areas in Cryptography</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="110" to="125" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Resistance against differential power analysis for elliptic curve cryptosystems</title>
		<author>
			<persName><forename type="first">J.-S</forename><surname>Coron</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Cryptographic Hardware and Embedded Systems -CHES 1999</title>
				<editor>
			<persName><forename type="first">Ç</forename><forename type="middle">K</forename><surname>Koç</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Paar</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="292" to="302" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">IoT application protection against power analysis attack</title>
		<author>
			<persName><forename type="first">J</forename><surname>Moon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">Y</forename><surname>Jung</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">H</forename><surname>Park</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computers &amp; Electrical Engineering</title>
		<imprint>
			<biblScope unit="volume">67</biblScope>
			<biblScope unit="page" from="566" to="578" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">T</forename><surname>Goodspeed</surname></persName>
		</author>
		<title level="m">A side-channel timing attack of the msp430 bsl</title>
				<imprint>
			<publisher>Black Hat USA</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Shedding too much light on a microcontroller&apos;s firmware protection</title>
		<author>
			<persName><forename type="first">J</forename><surname>Obermaier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Tatschner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">11th USENIX Workshop on Offensive Technologies</title>
				<meeting><address><addrLine>WOOT</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Glitch it if you can: Parameter search strategies for successful fault injection</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">B</forename><surname>Carpi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Picek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Batina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Menarini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Jakobovic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Golub</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Smart Card Research and Advanced Applications -12th International Conference</title>
				<meeting><address><addrLine>CARDIS</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="236" to="252" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Evolving genetic algorithms for fault injection attacks</title>
		<author>
			<persName><forename type="first">S</forename><surname>Picek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Batina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Jakobovic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">B</forename><surname>Carpi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">37th International Convention on Information and Communication Technology</title>
				<meeting><address><addrLine>MIPRO</addrLine></address></meeting>
		<imprint>
			<publisher>Electronics and Microelectronics</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="1106" to="1111" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Shaping the glitch: Optimizing voltage fault injection attacks</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bozzato</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Focardi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Palmarini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IACR Transactions on Cryptographic Hardware and Embedded Systems</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="199" to="224" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Escalating privileges in Linux using voltage fault injection</title>
		<author>
			<persName><forename type="first">N</forename><surname>Timmers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Mune</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on Fault Diagnosis and Tolerance in Cryptography</title>
				<meeting><address><addrLine>FDTC; Taipei, Taiwan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2017-09-25">2017. 2017. September 25, 2017, 2017</date>
			<biblScope unit="page" from="1" to="8" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">A versatile framework for implementation attacks on cryptographic rfids and embedded devices</title>
		<author>
			<persName><forename type="first">T</forename><surname>Kasper</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Oswald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Paar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Trans. Computational Science</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="page" from="100" to="130" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title/>
		<author>
			<persName><surname>Riscure</surname></persName>
		</author>
		<author>
			<persName><surname>Vc Glitcher</surname></persName>
		</author>
		<author>
			<persName><surname>Datasheet</surname></persName>
		</author>
		<ptr target="https://www.riscure.com/uploads/2017/07/datasheet_vcglitcher.pdf" />
		<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">On the importance of checking cryptographic protocols for faults (extended abstract)</title>
		<author>
			<persName><forename type="first">D</forename><surname>Boneh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">A</forename><surname>Demillo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">J</forename><surname>Lipton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Cryptology -EUROCRYPT</title>
				<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page" from="37" to="51" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Design principles for tamper-resistant smartcard processors</title>
		<author>
			<persName><forename type="first">O</forename><surname>Kömmerling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>Kuhn</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 1st Workshop on Smartcard Technology</title>
				<meeting>the 1st Workshop on Smartcard Technology</meeting>
		<imprint>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Fault attacks on RSA with CRT: Concrete results and practical countermeasures</title>
		<author>
			<persName><forename type="first">C</forename><surname>Aumüller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Fischer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hofreiter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-P</forename><surname>Seifert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Cryptographic Hardware and Embedded Systems -CHES 2002</title>
				<editor>
			<persName><forename type="first">B</forename><forename type="middle">S</forename><surname>Kaliski</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Ç</forename><forename type="middle">K</forename><surname>Koç</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Paar</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="260" to="275" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">The sorcerer&apos;s apprentice guide to fault attacks</title>
		<author>
			<persName><forename type="first">H</forename><surname>Bar-El</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Choukri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Naccache</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Tunstall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Whelan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Proceedings of the IEEE</title>
		<imprint>
			<biblScope unit="volume">94</biblScope>
			<biblScope unit="page" from="370" to="382" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Contact-based fault injections and power analysis on rfid tags</title>
		<author>
			<persName><forename type="first">M</forename><surname>Hutter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Schmidt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Plos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">European Conference on Circuit Theory and Design ECCTD</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="409" to="412" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">On the effects of clock and power supply tampering on two microcontroller platforms</title>
		<author>
			<persName><forename type="first">T</forename><surname>Korak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hoefler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on Fault Diagnosis and Tolerance in Cryptography</title>
				<imprint>
			<publisher>FDTC</publisher>
			<date type="published" when="2014">2014. 2014</date>
			<biblScope unit="page" from="8" to="17" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Fault Analysis in Cryptography</title>
	</analytic>
	<monogr>
		<title level="m">Information Security and Cryptography</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Joye</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Tunstall</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures</title>
		<author>
			<persName><forename type="first">A</forename><surname>Barenghi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Breveglieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Koren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Naccache</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Proceedings of the IEEE</title>
		<imprint>
			<biblScope unit="volume">100</biblScope>
			<biblScope unit="page" from="3056" to="3076" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Practical setup time violation attacks on AES</title>
		<author>
			<persName><forename type="first">N</forename><surname>Selmane</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Guilley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Danger</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Seventh European Dependable Computing Conference, EDCC-7</title>
				<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="91" to="96" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Low voltage fault attacks to AES</title>
		<author>
			<persName><forename type="first">A</forename><surname>Barenghi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Bertoni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Breveglieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Pellicioli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Pelosi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE International Symposium on Hardware-Oriented Security and Trust, HOST</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="7" to="12" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Instruction duplication: Leaky and not too fault-tolerant!</title>
		<author>
			<persName><forename type="first">L</forename><surname>Cojocar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Papagiannopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Timmers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Smart Card Research and Advanced Applications -16th International Conference</title>
				<meeting><address><addrLine>CARDIS</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="160" to="179" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Using entropy analysis to find encrypted and packed malware</title>
		<author>
			<persName><forename type="first">R</forename><surname>Lyda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hamrock</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Security &amp; Privacy</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="page" from="40" to="45" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
