k c a b e k i r t s s e ci v e d bs u - sstic
TRANSCRIPT
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
|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