Fault Injection Characterization on ARM Cortex-A9 George - - PowerPoint PPT Presentation

fault injection
SMART_READER_LITE
LIVE PREVIEW

Fault Injection Characterization on ARM Cortex-A9 George - - PowerPoint PPT Presentation

ElectroMagnetic Fault Injection Characterization on ARM Cortex-A9 George Thessalonikefs George.Thessalonikefs@os3.nl University of Amsterdam February 5, 2014 Introduction Hardware Fault Injection Induce faults to hardware through side


slide-1
SLIDE 1

ElectroMagnetic Fault Injection Characterization

  • n ARM Cortex-A9

George Thessalonikefs

George.Thessalonikefs@os3.nl University of Amsterdam February 5, 2014

slide-2
SLIDE 2

Introduction

Hardware Fault Injection

Induce faults to hardware through side channels:

  • Clock
  • Power supply
  • Electromagnetic radiation
  • Light
  • Temperature

Goals

  • Change behavior
  • Change data

2

slide-3
SLIDE 3

ElectroMagnetic Fault Injection

3

For inducing a significant voltage spike, distance d < D

Source: Riscure

slide-4
SLIDE 4

EMFI vs VCC & Optical FI

No preparation needed for the target

  • VCC FI : Need to work with capacitors to glitch

the core voltage line

  • Optical FI : Decapsulation of the chip

Countermeasures for:

  • VCC FI: Glitch sensors
  • Optical FI: Light sensors

4

Picture: Decapsulated chip

slide-5
SLIDE 5

EMFI in action

http://www.youtube.com/watch?v=dew0KD_-ypw

5

slide-6
SLIDE 6

Research question

6

What are the effects of ElectroMagnetic Fault Injection (EMFI) on embedded chips?

slide-7
SLIDE 7

Setup

7

slide-8
SLIDE 8

Setup

8

slide-9
SLIDE 9

Target

Wandboard SOLO

Freescale i.MX6 Solo Processor Using an ARM Cortex-A9 Single Core

Specifications:

  • 32-bit processor
  • ARMv7 architecture based on RISC
  • Clock speed of 792 MHz:

1,26 ns/cycle

  • Pipeline
  • Dual-issue superscalar
  • Out-of-order
  • Speculative execution
  • 8-stage

9

slide-10
SLIDE 10

Dual-issue superscalar Pipeline

Example:

10

http://en.wikipedia.org/wiki/File:Superscalarpipeline.svg

IF: Instruction Fetch ID: Instruction Decode EX: Execute MEM: Memory access WB: Write Back

slide-11
SLIDE 11

ARM Cortex-A9 Pipeline

11

http://www.arm.com/images/A9-Pipeline-hres.jpg

slide-12
SLIDE 12

Code instrumentation

  • Initialize registers to known values
  • Trigger ON
  • Critical area code
  • Trigger OFF
  • Print results

Code was written in ARM assembly to avoid C compiler’s optimization

12

slide-13
SLIDE 13

Critical area code

  • R0 initialized to 0xFFFFFFFF
  • R1 initialized to 0x00000001
  • Unrolled loop of 32 pairs of instructions:
  • Logical operation
  • Shift R1 1-bit to the left

Logical operations:

  • BIC (BIt Clear)
  • EOR (Exclusive OR)

13

slide-14
SLIDE 14

Visualization of fault injection

14

Blue line: Trigger signal Red line: Coil current

slide-15
SLIDE 15

Correct Output

BIC version

R0: 00000000 R1: 80000000 R2: FFFFFFFF R3: 020B4000 R4: A54444A5 R5: A55555A5 R6: A56666A5 …….

EOR version

R0: 00000000 R1: 80000000 R2: FFFFFFFF R3: 020B4000 R4: A54444A5 R5: A55555A5 R6: A56666A5 …….

15

slide-16
SLIDE 16

Full chip detailed scan

16

slide-17
SLIDE 17

Die detailed scan

17

slide-18
SLIDE 18

Glitches with desired results

18

slide-19
SLIDE 19

Glitch results

Logical operation not executed

  • Suspects:
  • Instruction Fetch
  • Instruction Execution
  • Write back

Expected result: R0: 00000000 R1: 80000000 Glitched result: R0: 00000001 R1: 80000000

19

slide-20
SLIDE 20

Glitch results

Logical shift not executed

  • Suspects:
  • Instruction Fetch
  • Instruction Execution
  • Write back

Expected result: R0: 00000000 R1: 80000000 Glitched result: R0: 80000000 R1: 40000000

20

slide-21
SLIDE 21

Glitch results

Logical operation and Logical shift not executed

  • Suspects:
  • Instruction Fetch
  • Instruction Execution
  • Write back

Expected result: R0: 00000000 R1: 80000000 Glitched result: R0: 80000001 R1: 40000000

21

slide-22
SLIDE 22

Glitch results

Data abort exception due to unaligned access

  • Suspects:
  • PC register glitched
  • Stack corrupted

22

slide-23
SLIDE 23

Glitch results

Prefetch abort exception due to non-existing memory regions

  • Suspects:
  • PC register glitched
  • Stack corrupted

23

slide-24
SLIDE 24

Conclusion

  • Edges of the chip more sensitive than the top of

the die

  • No unused register corruptions
  • Difficult to constantly have the same results with

EMFI

24

slide-25
SLIDE 25

Future work

  • Comparison of full area scans of the package

between ALU and memory instructions

  • Research the impact of EMFI on jump

commands

25

slide-26
SLIDE 26

Thank you

Questions?

26