k c a B e k i r t S s e ci v e D BS U - SSTIC

Preview:

Citation preview

WooKey:

USB Devices Strike Back

Ryad BENADJILA1

Mathieu RENARD1

Arnauld MICHELIZZA1

Philippe THIERRY1

Philippe TREBUCHET1

Jérémy LEFAURE2

1ANSSI, prenom.nom@ssi.gouv.fr 2jeremy.lefaure@gmail.com

13 juin 2018

13 juin 2018

in a galaxy

not so far away ...

WooKey:

USB Devices Strike Back

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étudeBriques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étudeBriques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étudeBriques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étudeBriques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étudeBriques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étude

Briques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Le projet WooKey

1/18

Concevoir une clé USB chiffrante sécurisée

Répondre à la menace BadUSB

Assurer la confidentialité des données

Tenir un coût raisonnable

Produire un lot d’échantillons

Publier les résultats de l’étudeBriques modulaires/réutilisables

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Universal Serial Bus

2/18

Type de périphérique?

Périphérique « inoffensif »

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Universal Serial Bus

2/18

Type de périphérique?

Périphérique « inoffensif »

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Clé USB et usages

3/18

Laptop Pro/Perso

Transfert de fichiers

Réseau A

Réseau B

Transfert de mise à jour

FIRMWARE

Automate, routeur, …

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Clé USB et usages

3/18

Laptop Pro/Perso

Transfert de fichiers

Réseau A

Réseau B

Transfert de mise à jour

FIRMWARE

Automate, routeur, …

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Clé USB et usages

3/18

Laptop Pro/Perso

Transfert de fichiers

Réseau A

Réseau B

Transfert de mise à jour

FIRMWARE

Automate, routeur, …

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Menaces

4/18

Type de périphérique?

Clavier, souris, …

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Menaces

4/18

Mémoire FlashMémoire Flash Contrôleur USBContrôleur USB

FIRMWARE

BadUSB

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Menaces

4/18

Mémoire Flash

Mémoire Flash Contrôleur USBContrôleur USB

FIRMWARE

BadUSB

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Menaces

4/18

Mémoire Flash

Mémoire Flash

Contrôleur USBContrôleur USB

FIRMWARE

BadUSB

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Menaces

4/18

Mémoire FlashMémoire Flash

Contrôleur USB

Contrôleur USB

FIRMWARE

BadUSB

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Menaces

4/18

Mémoire FlashMémoire Flash Contrôleur USB

Contrôleur USB

FIRMWARE

BadUSB

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

État de l'art des solutions libres

5/18

2014

Cortex-A = SoC smartphone

Architecture complexe

BootROM (non désactivable)

Coûteux

Plateforme de développement

USB Armory

2016

AVR

AES logiciel

Pas de protection mémoire (MPU)

Application sur l’hôte

Nitrokey

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

État de l'art des solutions libres

5/18

2014

Cortex-A = SoC smartphone

Architecture complexe

BootROM (non désactivable)

Coûteux

Plateforme de développement

USB Armory

2016

AVR

AES logiciel

Pas de protection mémoire (MPU)

Application sur l’hôte

Nitrokey

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Modèle de Menace

6/18

Vol de la carte SD et lecture des données

Attaques logicielles sur la clé USBAttaques matérielles

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Modèle de Menace

6/18

Vol de la carte SD et lecture des données

Attaques logicielles sur la clé USB

Attaques matérielles

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|The WooKey Project |USB |Clés USB |Solutions libres |Menaces

Modèle de Menace

6/18

Vol de la carte SD et lecture des donnéesAttaques logicielles sur la clé USB

Attaques matérielles

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Architecture Matérielle

7/18

66mm

44mm

USB Full Speed (FS)USB High Speed (HS)

PHY externe (USB3300)

USB FS intégré au SoC

⇒ 12 Mb/s théoriques

USB HS nécessite un PHY externe

⇒ 480 Mb/s théoriques

MCU = Cortex-M4 STM32F4392 MB de flash, 256 kB de SRAM

MPU : primitive de cloisonnement mémoire

USB (FS et HS)

Accélérateur AES matériel

Désactivation effective des interfaces de

debug et de la BootROM

Disponible et peu coûteux (6= FPGA)

µSDCardStockage des données chiffrées

de l’utilisateurTFT+TouchSaisie de PIN et interactions

avec l’utilisateur

34

6

57

8

0

9

1

2

PIN CODE

Token extractibleUART SWD (JTAG)

Points de test

Interfa

cesdedebugprotégéesenmodeproductio

n(RDP)

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Architecture Matérielle

7/18

66mm

44mm

USB Full Speed (FS)USB High Speed (HS)

PHY externe (USB3300)

USB FS intégré au SoC

⇒ 12 Mb/s théoriques

USB HS nécessite un PHY externe

⇒ 480 Mb/s théoriques

MCU = Cortex-M4 STM32F4392 MB de flash, 256 kB de SRAM

MPU : primitive de cloisonnement mémoire

USB (FS et HS)

Accélérateur AES matériel

Désactivation effective des interfaces de

debug et de la BootROM

Disponible et peu coûteux (6= FPGA)

µSDCardStockage des données chiffrées

de l’utilisateurTFT+TouchSaisie de PIN et interactions

avec l’utilisateur

34

6

57

8

0

9

1

2

PIN CODE

Token extractibleUART SWD (JTAG)

Points de test

Interfa

cesdedebugprotégéesenmodeproductio

n(RDP)

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Architecture Matérielle

7/18

66mm

44mm

USB Full Speed (FS)USB High Speed (HS)

PHY externe (USB3300)

USB FS intégré au SoC

⇒ 12 Mb/s théoriques

USB HS nécessite un PHY externe

⇒ 480 Mb/s théoriques

MCU = Cortex-M4 STM32F4392 MB de flash, 256 kB de SRAM

MPU : primitive de cloisonnement mémoire

USB (FS et HS)

Accélérateur AES matériel

Désactivation effective des interfaces de

debug et de la BootROM

Disponible et peu coûteux (6= FPGA)

µSDCardStockage des données chiffrées

de l’utilisateurTFT+TouchSaisie de PIN et interactions

avec l’utilisateur

34

6

57

8

0

9

1

2

PIN CODE

Token extractibleUART SWD (JTAG)

Points de test

Interfa

cesdedebugprotégéesenmodeproductio

n(RDP)

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Architecture Matérielle

7/18

66mm

44mm

USB Full Speed (FS)USB High Speed (HS)

PHY externe (USB3300)

USB FS intégré au SoC

⇒ 12 Mb/s théoriques

USB HS nécessite un PHY externe

⇒ 480 Mb/s théoriques

MCU = Cortex-M4 STM32F4392 MB de flash, 256 kB de SRAM

MPU : primitive de cloisonnement mémoire

USB (FS et HS)

Accélérateur AES matériel

Désactivation effective des interfaces de

debug et de la BootROM

Disponible et peu coûteux (6= FPGA)

µSDCardStockage des données chiffrées

de l’utilisateur

TFT+TouchSaisie de PIN et interactions

avec l’utilisateur

34

6

57

8

0

9

1

2

PIN CODE

Token extractibleUART SWD (JTAG)

Points de test

Interfa

cesdedebugprotégéesenmodeproductio

n(RDP)

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Architecture Matérielle

7/18

66mm

44mm

USB Full Speed (FS)USB High Speed (HS)

PHY externe (USB3300)

USB FS intégré au SoC

⇒ 12 Mb/s théoriques

USB HS nécessite un PHY externe

⇒ 480 Mb/s théoriques

MCU = Cortex-M4 STM32F4392 MB de flash, 256 kB de SRAM

MPU : primitive de cloisonnement mémoire

USB (FS et HS)

Accélérateur AES matériel

Désactivation effective des interfaces de

debug et de la BootROM

Disponible et peu coûteux (6= FPGA)

µSDCardStockage des données chiffrées

de l’utilisateurTFT+TouchSaisie de PIN et interactions

avec l’utilisateur

34

6

57

8

0

9

1

2

PIN CODE

Token extractible

UART SWD (JTAG)

Points de test

Interfa

cesdedebugprotégéesenmodeproductio

n(RDP)

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Architecture Matérielle

7/18

66mm

44mm

USB Full Speed (FS)USB High Speed (HS)

PHY externe (USB3300)

USB FS intégré au SoC

⇒ 12 Mb/s théoriques

USB HS nécessite un PHY externe

⇒ 480 Mb/s théoriques

MCU = Cortex-M4 STM32F4392 MB de flash, 256 kB de SRAM

MPU : primitive de cloisonnement mémoire

USB (FS et HS)

Accélérateur AES matériel

Désactivation effective des interfaces de

debug et de la BootROM

Disponible et peu coûteux (6= FPGA)

µSDCardStockage des données chiffrées

de l’utilisateur

TFT+TouchSaisie de PIN et interactions

avec l’utilisateur

34

6

57

8

0

9

1

2

PIN CODE

Token extractible

UART SWD (JTAG)

Points de test

Interfa

cesdedebugprotégéesenmodeproductio

n(RDP)

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Token extractible : Javacard

8/18

Javacard 3.0.1, Global Platform 2.2.1

 

Évaluation CC EAL 4+ VAN5 :

Protection contre les attaques par canaux

auxiliaires et attaques en fautes

 

Sujet abordé dans une autre présentation

SSTIC 2018

NXP JCOP JD081

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Token extractible : Javacard

8/18

Javacard 3.0.1, Global Platform 2.2.1  

Évaluation CC EAL 4+ VAN5 :

Protection contre les attaques par canaux

auxiliaires et attaques en fautes

 

Sujet abordé dans une autre présentation

SSTIC 2018

NXP JCOP JD081

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture matérielle |Token d'authentification

Token extractible : Javacard

8/18

Javacard 3.0.1, Global Platform 2.2.1  

Évaluation CC EAL 4+ VAN5 :

Protection contre les attaques par canaux

auxiliaires et attaques en fautes  

Sujet abordé dans une autre présentation

SSTIC 2018

NXP JCOP JD081

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Image en flash : problématiques

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

Résilience

Sécurisation

Mises à jour

firmware 1

Partition « Flip »

Flop

Flip

shared Zone partagée

loader

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Image en flash : « Flip » et « Flop »

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

Résilience

Mises à jour

firmware 1

Partition « Flip »

Flop

Flip

shared Zone partagée

loader Chargeur initial

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Image en flash : « Flip » et « Flop »

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

Résilience

Mises à jour

firmware 1

Partition « Flip »

Flop

Flip

shared

Zone partagée

loader

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Image en flash : « Flip » et « Flop »

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

Résilience

Mises à jour

firmware 1

Partition « Flip »

Flop

Flip

shared

Zone partagée

loader

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Détails du logiciel embarqué

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

firmware 1

Partition « Flip »

Flop

Flip

shared

Zone partagée

loader

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Mode « nominal »

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

Sécurisation

Mises à jour

firmware 1

Partition « Flip »

Flop

Flip

shared

Zone partagée

loader

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Mode « nominal »

9/18

Flash du SoC (2 MB)

DFU 2

firmware 2

DFU 1

Partition « Flop »

firmware 1

Partition « Flip »

Flop

Flip

shared

Zone partagée

loader

Exécution de « Flip »

Exécution de « Flop »Corruption

Exécution du modeDevice Firmware Update

Mise à jour signée

et chiffrée

DFU

JTAG

Exécution dumode « nominal »

(Dé)chiffrement transparent de fichiers

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Modules et services de WooKey

10/18

Module TokenModule PIN

Module Crypto Module USBModule SDIO

 

34

6

57

8

0

9

1

2

PIN CODE

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Double facteur d'authentification

11/18

Module TokenModule PIN

Module Crypto Module USBModule SDIOModule DFU

DFU

 

34

6

57

8

0

9

1

2

PIN CODE

Clé

maître

PIN OK?

PIN

Authentification mutuelle ECDH

Canal chiffré et intègre

Injection de clé

dans l’accélérateur

Utilisation de clé

sans « relecture »

Deux facteurs d’authentification :

- Token extractible

- Code PIN

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Manipulation des clés sensibles

11/18

Module TokenModule PIN

Module Crypto Module USBModule SDIOModule DFU

DFU

 

34

6

57

8

0

9

1

2

PIN CODE

Clé

maître

PIN OK?

PIN

Authentification mutuelle ECDH

Canal chiffré et intègre

Injection de clé

dans l’accélérateur

Utilisation de clé

sans « relecture »

Deux facteurs d’authentification :

- Token extractible

- Code PIN

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Manipulation des clés sensibles

11/18

Module TokenModule PIN

Module Crypto Module USBModule SDIOModule DFU

DFU

 

34

6

57

8

0

9

1

2

PIN CODE

Clé

maître

PIN OK?

PIN

Authentification mutuelle ECDH

Canal chiffré et intègre

Injection de clé

dans l’accélérateur

Utilisation de clé

sans « relecture »

Deux facteurs d’authentification :

- Token extractible

- Code PIN

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Manipulation des clés sensibles

11/18

Module TokenModule PIN

Module Crypto Module USBModule SDIOModule DFU

DFU

 

34

6

57

8

0

9

1

2

PIN CODE

Clé

maître

PIN OK?

PIN

Authentification mutuelle ECDH

Canal chiffré et intègre

Injection de clé

dans l’accélérateur

Utilisation de clé

sans « relecture »

Deux facteurs d’authentification :

- Token extractible

- Code PIN

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Chemin de données utilisateur

11/18

Module TokenModule PIN

Module Crypto Module USBModule SDIOModule DFU

DFU

 

34

6

57

8

0

9

1

2

PIN CODE

Clé

maître

PIN OK?

PIN

Authentification mutuelle ECDH

Canal chiffré et intègre

Injection de clé

dans l’accélérateur

Utilisation de clé

sans « relecture »

Deux facteurs d’authentification :

- Token extractible

- Code PIN

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

DFU et token externe

11/18

Module TokenModule PIN

Module Crypto Module USBModule SDIOModule DFU

DFU

 

34

6

57

8

0

9

1

2

PIN CODE

Clé

maître

PIN OK?

PIN

Authentification mutuelle ECDH

Canal chiffré et intègre

Injection de clé

dans l’accélérateur

Utilisation de clé

sans « relecture »

Deux facteurs d’authentification :

- Token extractible

- Code PIN

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Cloisonnement des modules

12/18

Module TokenModule PIN

Module Crypto Module USBModule SDIO

 

34

6

57

8

0

9

1

2

PIN CODE

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Architecture du firmware |Détail des modules |Authentification et cryptographie |Cloisonnement

Cloisonnement des modules

12/18

Module TokenModule PIN

Module Crypto Module USBModule SDIO

 

34

6

57

8

0

9

1

2

PIN CODE

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-SourcePortable et modulaire

Micro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-SourcePortable et modulaire

Micro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-SourcePortable et modulaire

Micro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-SourcePortable et modulaire

Micro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-SourcePortable et modulaire

Micro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-Source

Portable et modulaire

Micro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : propriétés souhaitées

13/18

Pilotes complexes sous forme d’applications

Conçu pour les microcontrôleurs

Défense en profondeur

Simple et vérifiable

Open-SourcePortable et modulaireMicro-noyau

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : cloisonnement des applications

14/18

Micro-noyau EwoK

App PIN

App TokenApp Crypto

App SDIOApp USB

Bibliothèques Pilotes USBUsersp

ace

Kernelsp

ace

Espace Mémoire SoC

Registres USB

Registres SDIO

Registres CRYP

USB

SDIO

Crypto

Token

PIN

Micro-noyau

USB

SDIO

Crypto

Token

PIN

Micro-noyau

Supe

rvis

orSu

perv

isor

Périphériques

MPU

RWFlash

MPU

RXRAM

MPU

RW

MPU

RXMPU

RWMPU

RWMPU

RXMPU

RWMPU

RW

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : cloisonnement des applications

14/18

Micro-noyau EwoK

App PIN

App TokenApp Crypto

App SDIOApp USB

Bibliothèques Pilotes USBUsersp

ace

Kernelsp

ace

Espace Mémoire SoC

Registres USB

Registres SDIO

Registres CRYP

USB

SDIO

Crypto

Token

PIN

Micro-noyau

USB

SDIO

Crypto

Token

PIN

Micro-noyau

Supe

rvis

orSu

perv

isor

Périphériques

MPU

RWFlash

MPU

RXRAM

MPU

RW

MPU

RXMPU

RWMPU

RWMPU

RXMPU

RWMPU

RW

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : cloisonnement des applications

14/18

Micro-noyau EwoK

App PIN

App TokenApp Crypto

App SDIOApp USB

Bibliothèques Pilotes USBUsersp

ace

Kernelsp

ace

Espace Mémoire SoC

Registres USB

Registres SDIO

Registres CRYP

USB

SDIO

Crypto

Token

PIN

Micro-noyau

USB

SDIO

Crypto

Token

PIN

Micro-noyau

Supe

rvis

orSu

perv

isor

Périphériques

MPU

RWFlash

MPU

RXRAM

MPU

RWMPU

RXMPU

RWMPU

RW

MPU

RXMPU

RWMPU

RW

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

Micro-noyau : cloisonnement des applications

14/18

Micro-noyau EwoK

App PIN

App TokenApp Crypto

App SDIOApp USB

Bibliothèques Pilotes USBUsersp

ace

Kernelsp

ace

Espace Mémoire SoC

Registres USB

Registres SDIO

Registres CRYP

USB

SDIO

Crypto

Token

PIN

Micro-noyau

USB

SDIO

Crypto

Token

PIN

Micro-noyau

Supe

rvis

orSu

perv

isor

Périphériques

MPU

RWFlash

MPU

RXRAM

MPU

RW

MPU

RXMPU

RWMPU

RW

MPU

RXMPU

RWMPU

RW

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

EwoK : défense en profondeur

15/18

Micro-noyau EwoK

syscalls

App PIN

App TokenApp Crypto

App SDIOApp USB

Usersp

ace

Kernelsp

ace

Espace Mémoire SoC

syscalls = surface d’attaque

Utilisation d’Ada/SPARK

Buffer overflows

Interger overflows

Dangling pointers

Ada/SPARK

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

EwoK : défense en profondeur

15/18

Micro-noyau EwoK

syscalls

App PIN

App TokenApp Crypto

App SDIOApp USB

Usersp

ace

Kernelsp

ace

Espace Mémoire SoC

syscalls = surface d’attaque

Utilisation d’Ada/SPARK

Buffer overflows

Interger overflows

Dangling pointers

Ada/SPARK

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

EwoK : défense en profondeur

15/18

Micro-noyau EwoK

syscalls

App PIN

App TokenApp Crypto

App SDIOApp USB

Usersp

ace

Kernelsp

ace

Espace Mémoire SoC

syscalls = surface d’attaque

Utilisation d’Ada/SPARK

Buffer overflows

Interger overflows

Dangling pointers

Ada/SPARK

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

|Un nouveau micro-noyau ? |Architecture à base de MPU |EwoK

EwoK : ADA/SPARK

16/18

Micro-noyau EwoK

syscalls softirqd scheduler dma-control

clock & rcc MPU UART task init

perms gpios & exti devices idle task

C Ada Ada+SPARK

API, impose une validation stricte des entrées/sorties

Composant critique pour la sécurité

Composant critique pour la sûreté de fonctionnement

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

Primitives de sécurité versus menaces

17/18

DFU

JTAG

DFU+signature Chiffrement accéléré EwoK+Ada/SPARK

Double facteur+

Authentification forte

Prim

itivesdesécu

rité

BadUSB+

Attaques logicielles

Ew

oK

Wo o K e

y

To

ke

n

DFU

OK

Attaques

matérielles basiques

Ew

oK

Wo o K e

yT

ok

en

DFU

OK

Attaques

matérielles avancées

Menaces

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

Primitives de sécurité versus menaces

17/18

DFU

JTAG

DFU+signature Chiffrement accéléré EwoK+Ada/SPARK

Double facteur+

Authentification forte

Prim

itivesdesécu

rité

BadUSB+

Attaques logicielles

Ew

oK

Wo o K e

y

To

ke

n

DFU

OK

Attaques

matérielles basiques

Ew

oK

Wo o K e

yT

ok

en

DFU

OK

Attaques

matérielles avancées

Menaces

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

Primitives de sécurité versus menaces

17/18

DFU

JTAG

DFU+signature Chiffrement accéléré EwoK+Ada/SPARK

Double facteur+

Authentification forte

Prim

itivesdesécu

rité

BadUSB+

Attaques logiciellesEw

oK

Wo o K e

y

To

ke

n

DFU

OK Attaques

matérielles basiquesEw

oK

Wo o K e

yT

ok

en

DFU

OK Attaques

matérielles avancées

Menaces

|Introduction |Hardware |Software |Le micro-noyau EwoK |Conclusion

Conclusion

18/18

Exemple de clé USB sécurisée de confiance

https://github.com/wookey-project (Q3 2018)

Plateforme matérielle Open Hardware

Micro-noyau EwoK + SDK Open Source

Double facteur d’authentification

Questions

Recommended