69
Ryad BENADJILA 1 Mathieu RENARD 1 Arnauld MICHELIZZA 1 Philippe THIERRY 1 Philippe TREBUCHET 1 Jérémy LEFAURE 2 1 ANSSI, [email protected] 2 [email protected] 13 juin 2018 in a galaxy not so far away ... WooKey: USB Devices Strike Back

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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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

WooKey:

USB Devices Strike Back

Ryad BENADJILA1

Mathieu RENARD1

Arnauld MICHELIZZA1

Philippe THIERRY1

Philippe TREBUCHET1

Jérémy LEFAURE2

1ANSSI, [email protected] [email protected]

13 juin 2018

13 juin 2018

in a galaxy

not so far away ...

WooKey:

USB Devices Strike Back

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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 »

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

|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 »

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

|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, …

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

|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, …

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

|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, …

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

|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, …

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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)

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

|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)

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

|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)

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

|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)

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

|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)

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

|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)

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

|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

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

Questions