Laboratoire Hubert Curien, CNRS UMR 5516 Université Jean ... · L’accélérateur cryptographique...

Post on 21-Sep-2020

1 views 0 download

Transcript of Laboratoire Hubert Curien, CNRS UMR 5516 Université Jean ... · L’accélérateur cryptographique...

Lilian BossuetLaboratoire Hubert Curien, CNRS UMR 5516

Université Jean Monnet, Saint-Etienne, France

25 janvier 2018Saint-Malo, France

De multiples attaques sur les systèmes embarqués connectés

FETCH 2018 225 janvier 2018 - L. Bossuet

Une TEE est un microkernel pour la sécurité Utilise des ressources matérielles dédiées

FETCH 2018 425 janvier 2018 - L. Bossuet

Element sécurisé externe

Processeur

SOC

Composants de la TEE

ROM RAM

Périphériques internes

Périphériques d’E/S

(TPM, carte à puce, crypto-processeur)

Processeur

SOC

ROM RAM

Périphériques internes

Périphériques d’E/S

Element sécurisé interne

Processeur

SOC

ROM RAM

Périphériques internes

Périphériques d’E/S

Périphériques externes

Mémoire externe

Périphériques externes

Mémoire externe

Périphériques externes

Mémoire externe

a) architecture de TEE basée sur un élément sécurisé externe

b) architecture de TEE basée sur un élément sécurisé interne

c) architecture de TEE basée sur un SoC avec technologie de sécurité d’exécusion du type

ARM TrustZone

FETCH 2018 525 janvier 2018 - L. Bossuet

6

Exemple du Freescale i.MX6

FETCH 201825 janvier 2018 - L. Bossuet

7

TrustZone Central Security Unit (CSU) – TZ Address Space Controller (TZASPC), TZ Watchdog

FETCH 201825 janvier 2018 - L. Bossuet

8

Cryptographic Acceleration and Assurance Module (CAAM) Secure Non-Volatile Storage (SNVS) System JTAG Controller with secure debug On-chip One-time Programmable (OCOTP) A On-chip boot ROM

FETCH 201825 janvier 2018 - L. Bossuet

Analyse du rayonnement EM du chiffreur AES masqué Cartographies EM avec trois ensemble de données

Objectif : localisation géographique et temporelle du CAAM dans le SoC

10FETCH 201825 janvier 2018 - L. Bossuet

Set 1HW(clé) : 0 HW(message) : 0 HW(chiffré) : 65

128 0 64

Set 2HW(message) : 0 HW(chiffré) : 65 HW(clé) : 0

128 68 0

Set 3HW(chiffré) : 0 HW(clé) : 0 HW(message) : 65

128 128 65

11FETCH 201825 janvier 2018 - L. Bossuet

12FETCH 201825 janvier 2018 - L. Bossuet

clé message chiffré AES

FETCH 2018 1325 janvier 2018 - L. Bossuet

Injection d’impulsions EM pendant le chiffrement pendant transfert de

données

L’accélérateur cryptographique de la TrustZone est sécurisé contre les attaques par canaux cachés, il existe des possibilités d’attaques en fautes. Pas de protection particulière si l’on exécute un algorithme

cryptographique dans le processeur généraliste même dans le monde sécurisé…

Publication F. Majéric, E. Bourbabo, L. Bossuet. Electromagnetic security for

SoC. In Proceedings of the 23rd IEEE International Conference on Electronics Circuits and Systems, ICECS 2016, Monte Carlo, Monaco, December 2016.

FETCH 2018 1425 janvier 2018 - L. Bossuet

FETCH 201825 janvier 2018 - L. Bossuet 16

Ext. FLASHROM

Bootloader 1 (BL1)Public Key 1

Bootloader 2 (BL2)

Linux Kernel

Vola

tile

mem

ory

ROM

Bootloader 1 (BL1)

Public Key 1

Public Key 2

Ext. FLASH

Vola

tile

mem

ory

Bootloader 2 (BL2)

Linux Kernel

LDR Rd,[Rn]STR Rd,[Rk]

ROM

Bootloader 1 (BL1)

Public Key 1

Public Key 2

Ext. FLASH

Vola

tile

mem

ory

SignatureBootloader 2 (BL2)

Linux Kernel

ROM

Bootloader 1 (BL1)

Public Key 1

Public Key 2

Ext. FLASH

Vola

tile

mem

ory

Signature

Bootloader 2 (BL2) Public Key 3

Linux Kernel

LDR Rd,[Rn]STR Rd,[Rk]

ROM

Bootloader 1 (BL1)

Public Key 1

Public Key 2

Ext. FLASH

Vola

tile

mem

ory

Signature

Bootloader 2 (BL2) Public Key 3

Signature Linux Kernel

ROM

Bootloader 1 (BL1)

Public Key 1

Public Key 2

Ext. FLASH

Vola

tile

mem

ory

Signature

Bootloader 2 (BL2) Public Key 3

Signature Linux Kernel

ROM

Bootloader 1 (BL1)

Bootloader 2 (BL2)

Linux Kernel

Public Key 1

Public Key 2

Public Key 3

Public Key 4Signature

Ext. FLASH

Signature

Signature

Vola

tile

mem

ory

Ext. FLASHROM

Bootloader 1 (BL1)Public Key 1

Bootloader 2 (BL2)

Linux Kernel

Vola

tile

mem

ory

Ext. FLASHROM Public Key 1

Bootloader 2 (BL2)

Linux Kernel

Vola

tile

mem

ory

ROM Public Key 1Ext. FLASH

Vola

tile

mem

ory

Bootloader 2 (BL2)

Linux Kernel

Malicious code

Pointer to @ of malicious code

Pointer to @ of malicious code

……

LDR Rd,[Rn]STR Rd,[Rk]

ROM Public Key 1Ext. FLASH

Vola

tile

mem

ory

Bootloader 2 (BL2)

Linux Kernel

Malicious code

Pointer to @ of malicious code

Pointer to @ of malicious code

……

Run the codeLDR PC,[Rn]

Comment est-ce possible ? LDR processing instruction LDR{<cond>} Rd, [Rn {,#+/-12_bit_offset }]

LDR R13, [R0] ([R0]point to the address of the malicious code)

27

cond 01 I P U 0 W 1 Rn Rd 12_bit_offset

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 0

1110 01 0 1 1 0 0 1 0000 1101 000000000000

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 0

FETCH 201825 janvier 2018 - L. Bossuet

Comment est-ce possible ? LDR processing instruction LDR{<cond>} Rd, [Rn {,#+/-12_bit_offset }]

LDR PC , [R0] ([R0]point to the address of the malicious code)

28

cond 01 I P U 0 W 1 Rn Rd 12_bit_offset

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 0

1110 01 0 1 1 0 0 1 0000 1111 000000000000

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 0

FETCH 201825 janvier 2018 - L. Bossuet

29FETCH 201825 janvier 2018 - L. Bossuet

N. Timmers, A. Spruyt and M. Witteman,ControllingPC on ARM using fault injection, in Workshop on FaultDiagnosis and Tolerance in Cryptography, (FDTC2016), Santa Barbara, CA, US, August 16, 2016.

Injection durant l’exécution de LDR Rd, [R0] Vérfier si LDR Rd, [R0] => LDR PC, [R0]

30FETCH 201825 janvier 2018 - L. Bossuet

FETCH 2018 3125 janvier 2018 - L. Bossuet

Rd changed into PC: Rd Rd occurrenceR12 8

R11 6

R10 3

R9 2

R8 2

R7 5

R6 1

R5 0

R4 0

R3 4

R2 1

R1 1

La sécurité de la séquence de chargement du boot est assurée par un protocole cryptographique

Faille de sécurité matérielle due à une trop faible distance de Hamming entre les registres généraux et registres spéciaux du processeur

FETCH 2018 3225 janvier 2018 - L. Bossuet

INTEL SoC FPGA ARM Dual Core Cortex-A9 ALTERA Cyclone V FPGA

Projet FUI TEEVA – Réunion de démarrage 3429 janvier 2016 - L. Bossuet

Xilinx Zynq ARM Dual Core Cortex-A9 Xilinx Artix-7 FPGA

35FETCH 201825 janvier 2018 - L. Bossuet

Extension de la TrustZone d’un cœur ARM vers le FPGA

36FETCH 201825 janvier 2018 - L. Bossuet

En mode non securisé (REE)

Projet FUI TEEVA – Réunion de démarrage 3713 janvier 2016 - L. Bossuet

En mode securisé (TEE)

38FETCH 201825 janvier 2018 - L. Bossuet

Architecture du système développé (Xilinx Vivado)

39FETCH 201825 janvier 2018 - L. Bossuet

Corruption d’AWPROT et ARPROT

41FETCH 201825 janvier 2018 - L. Bossuet

Corruption du signal d’erreur

Projet FUI TEEVA – Réunion de démarrage 4213 janvier 2016 - L. Bossuet

Cheval de Troie matériel

43FETCH 201825 janvier 2018 - L. Bossuet

Mémorisation de l’ID de l’IP sécurisé

44FETCH 201825 janvier 2018 - L. Bossuet

Récupération d’ID

45FETCH 201825 janvier 2018 - L. Bossuet

46FETCH 201825 janvier 2018 - L. Bossuet

Preuve de concept de plusieurs attaques possiblesciblant l’extension de la TrsutZone dans un SoCcomplexe hétérogène (FPGA + ARM) Publication : El Mehdi Benhani, Cédric Marchand, Alain Aubert, Lilian Bossuet.

On the Security Evaluation of the ARM TrustZone Extension in aHeterogeneous SoC. IEEE SOCC, Munich, September 2017

En cours Mise en évidence de fuites d’informations sur canaux internes

48FETCH 201825 janvier 2018 - L. Bossuet

49

“Ce projet est financé dans le cadre du 20ème appel à projets de R&D du Fonds Unique Interministériel (FUI)”

FETCH 201825 janvier 2018 - L. Bossuet

Lilian BossuetLaboratoire Hubert Curien, CNRS UMR 5516

Université Jean Monnet, Saint-Etienne, France

25 janvier 2018Saint-Malo, France