U2F2 : Prévenir la Menace Fantôme sur FIDO/U2F - Sstic
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
U2F2 :
Prévenir la Menace Fantôme sur FIDO/U2F
SSTIC 2021
Ryad Benadjila, Philippe Thierry
ANSSI
Juin 2021Authentification forte
Pourquoi ?
Mots de passe fragiles
Fuites massives de bases de données
Vol par malware, phishing, etc. Keylogger
Temps Temps
Attaques en force brute Longueur d’attaque d’attaque
1 GPU 100 GPUs
Mots de passe alphanumériques
1Authentification forte
Pourquoi ?
Mots de passe fragiles
Fuites massives de bases de données
Vol par malware, phishing, etc. Keylogger
Temps Temps
Attaques en force brute Longueur d’attaque d’attaque
1 GPU 100 GPUs
Mots de passe alphanumériques
1Authentification forte
Pourquoi ?
Mots de passe fragiles
Fuites massives de bases de données
Vol par malware, phishing, etc. Keylogger
Temps Temps
Attaques en force brute Longueur d’attaque d’attaque
1 GPU 100 GPUs
Mots de passe alphanumériques
1Authentification forte
Définition
Concaténation d’au moins deux facteurs d’authentification
Quelque chose
que l’on connaît
Mot de passe, PIN, etc.
Quelque chose Quelque chose
que l’on possède que l’on est/fait
Smartphone, Token, Carte à puce, etc. Biométrie, gestuelle, signature, etc.
2/21Authentification forte
Définition
Concaténation d’au moins deux facteurs d’authentification
Quelque chose
que l’on connaît
Mot de passe, PIN, etc.
Quelque chose Quelque chose
que l’on possède que l’on est/fait
Smartphone, Token, Carte à puce, etc. Biométrie, gestuelle, signature, etc.
2/21Authentification à deux facteurs
2FA : Des premières solutions limitées
One Time Passwords (OTP)
Phishing Clé secrète partagée
Canal SMS attaquable
3/21Authentification à deux facteurs
2FA : Des premières solutions limitées
One Time Passwords (OTP)
Phishing Clé secrète partagée
Canal SMS attaquable
3/21Authentification à deux facteurs
2FA : Des premières solutions limitées
One Time Passwords (OTP)
Phishing Clé secrète partagée
Canal SMS attaquable
3/21Authentification à deux facteurs
2FA : Des premières solutions limitées
One Time Passwords (OTP)
Phishing Clé secrète partagée
Canal SMS attaquable
3/21Authentification à deux facteurs
Introduction de FIDO
2FA : un nouveau standard
2014 : le consortium FIDO standardise U2F
Utilisation d’un Token (matériel) dédié
Avantages Limitations
Cryptographie asymétrique ECDSA
(protection contre les attaques des services)
é s e n t ation
Vol (avec ou sans remise) du token
ette prAttaques physiques (SCA, fautes)
PC suppposé de confiance
Protection contre le phishing + rejeu
e de c
ontext
Action physique de l’utilisateur
Protection deC
Autres limitations
l’anonymat
(confusion, “désenregistrement”)
(cloisonnement des services)
Simple + Standardisé ⇒ large adoption
4/21Authentification à deux facteurs
Introduction de FIDO
2FA : un nouveau standard
2014 : le consortium FIDO standardise U2F
Utilisation d’un Token (matériel) dédié
Avantages Limitations
Cryptographie asymétrique ECDSA
(protection contre les attaques des services)
é s e n t ation
Vol (avec ou sans remise) du token
ette prAttaques physiques (SCA, fautes)
PC suppposé de confiance
Protection contre le phishing + rejeu
e de c
ontext
Action physique de l’utilisateur
Protection deC
Autres limitations
l’anonymat
(confusion, “désenregistrement”)
(cloisonnement des services)
Simple + Standardisé ⇒ large adoption
4/21Authentification à deux facteurs
Introduction de FIDO
2FA : un nouveau standard
2014 : le consortium FIDO standardise U2F
Utilisation d’un Token (matériel) dédié
Avantages Limitations
Cryptographie asymétrique ECDSA
(protection contre les attaques des services)
é s e n t ation
Vol (avec ou sans remise) du token
ette prAttaques physiques (SCA, fautes)
PC suppposé de confiance
Protection contre le phishing + rejeu
e de c
ontext
Action physique de l’utilisateur
Protection deC
Autres limitations
l’anonymat
(confusion, “désenregistrement”)
(cloisonnement des services)
Simple + Standardisé ⇒ large adoption
4/21Authentification à deux facteurs
Introduction de FIDO
2FA : un nouveau standard
2014 : le consortium FIDO standardise U2F
Utilisation d’un Token (matériel) dédié
Avantages Limitations
Cryptographie asymétrique ECDSA
(protection contre les attaques des services)
é s e n t ation
Vol (avec ou sans remise) du token
ette prAttaques physiques (SCA, fautes)
PC suppposé de confiance
Protection contre le phishing + rejeu
e de c
ontext
Action physique de l’utilisateur
Protection deC
Autres limitations
l’anonymat
(confusion, “désenregistrement”)
(cloisonnement des services)
Simple + Standardisé ⇒ large adoption
4/21Fonctionnement de FIDO
Architecture à trois entités
Token Browser Relying Party
Transport USB Javascript
Transport NFC
Transport Bluetooth
5/21Fonctionnement de FIDO
REGISTER : enregistrement du token
Token Browser Relying Party
Login/mdp
Transport USB
appparam=Hash(appid), Javascript
challparam=Hash(type, challenge, …) appid, challenge
Génération
bi-clé ECDSA :
appid appid
Kpriv /Kpub
Transport NFC
Génération Signature ECDSA
Key Handle : Transport Bluetooth
KHappid
Vérification ’sig’
appid appid
Kpub , KHappid , attestation_cert, sig Stockage Kpub , KHappid
login/mdp
registrationData CTR=0
6/21Fonctionnement de FIDO
REGISTER : enregistrement du token
Token Browser Relying Party
Login/mdp
Transport USB
appparam=Hash(appid), Javascript
challparam=Hash(type, challenge, …) appid, challenge
Génération
bi-clé ECDSA :
appid appid
Kpriv /Kpub
Transport NFC
Génération Signature ECDSA
Key Handle : Transport Bluetooth
KHappid
Vérification ’sig’
appid appid
Kpub , KHappid , attestation_cert, sig Stockage Kpub , KHappid
login/mdp
registrationData CTR=0
6/21Fonctionnement de FIDO
REGISTER : enregistrement du token
Token Browser Relying Party
Login/mdp
Transport USB
appparam=Hash(appid), Javascript
challparam=Hash(type, challenge, …) appid, challenge
Génération
bi-clé ECDSA :
appid appid
Kpriv /Kpub
Transport NFC
Génération Signature ECDSA
Key Handle : Transport Bluetooth
KHappid
Vérification ’sig’
appid appid
Kpub , KHappid , attestation_cert, sig Stockage Kpub , KHappid
login/mdp
registrationData CTR=0
6/21Fonctionnement de FIDO
AUTHENTICATE : authentification du token
Token Browser Relying Party
KHappid
Login/mdp
Transport USB
appparam=Hash(appid), Javascript
challparam=Hash(type, challenge, …) KHappid , appid, challenge
Récupération appid
Stockage Kpub , KHappid
bi-clé ECDSA
login/mdp
avec KHappid :
appid appid Transport NFC CTR=n
Kpriv /Kpub appid
Signature ECDSA avec Kpriv
CTR++ Transport Bluetooth
Userpresence, CTR, sig Vérification ’sig’
Vérification CTR > n
CTR=n+1
signatureData
7/21Fonctionnement de FIDO
AUTHENTICATE : authentification du token
Token Browser Relying Party
KHappid
Login/mdp
Transport USB
appparam=Hash(appid), Javascript
challparam=Hash(type, challenge, …) KHappid , appid, challenge
Récupération appid
Stockage Kpub , KHappid
bi-clé ECDSA
login/mdp
avec KHappid :
appid appid Transport NFC CTR=n
Kpriv /Kpub appid
Signature ECDSA avec Kpriv
CTR++ Transport Bluetooth
Userpresence, CTR, sig Vérification ’sig’
Vérification CTR > n
CTR=n+1
signatureData
7/21Fonctionnement de FIDO
AUTHENTICATE : authentification du token
Token Browser Relying Party
KHappid
Login/mdp
Transport USB
appparam=Hash(appid), Javascript
challparam=Hash(type, challenge, …) KHappid , appid, challenge
Récupération appid
Stockage Kpub , KHappid
bi-clé ECDSA
login/mdp
avec KHappid :
appid appid Transport NFC CTR=n
Kpriv /Kpub appid
Signature ECDSA avec Kpriv
CTR++ Transport Bluetooth
Userpresence, CTR, sig Vérification ’sig’
Vérification CTR > n
CTR=n+1
signatureData
7/21Fonctionnement de FIDO
U2F et FIDO 2.0
Token Browser Relying Party
Transport USB
HID
U2FHID CTAP1/2
APDU CBOR APDU
Javascript
U2F FIDO2 U2F
Transport NFC
Transport Bluetooth
FIDO 1.2 (2017) FIDO 2.0 (2018)
8/21FIDO : limitations et modèle de menace
Un Token à la sécurité limitée
Malware, perte de vue, vol, vol avec remise, clonage
Userpresence limité Pas d’authentification
Peu abordé (appui bouton) du porteur
dans FIDO
Compteur limité Pas de granularité
(global) par service
!
Affichage Service Confusion + vol de session
Non abordé es
s ciblé
! dans FIDO
le s , a ttaque
sib
es sen
t“Désenregistrement”
nsibles
Service Confiance dans le service ?
Contex e s s e
eur
Servic l’ utilisat Attaques logicielles, Mise à jour
ô le à
contr logicielle
Sécurité
ExplicitementRendre le (buffer overflows, etc.)
écarté par FIDO Attaques matérielles
Sécurité matérielle
(SCA, fautes)
9/21FIDO : limitations et modèle de menace
Un Token à la sécurité limitée
Malware, perte de vue, vol, vol avec remise, clonage
Userpresence limité Pas d’authentification
Peu abordé (appui bouton) du porteur
dans FIDO
Compteur limité Pas de granularité
(global) par service
!
Affichage Service Confusion + vol de session
Non abordé es
s ciblé
! dans FIDO
le s , a ttaque
sib
es sen
t“Désenregistrement”
nsibles
Service Confiance dans le service ?
Contex e s s e
eur
Servic l’ utilisat Attaques logicielles, Mise à jour
ô le à
contr logicielle
Sécurité
ExplicitementRendre le (buffer overflows, etc.)
écarté par FIDO Attaques matérielles
Sécurité matérielle
(SCA, fautes)
9/21FIDO : limitations et modèle de menace
Un Token à la sécurité limitée
Malware, perte de vue, vol, vol avec remise, clonage
Userpresence limité Pas d’authentification
Peu abordé (appui bouton) du porteur
dans FIDO
Compteur limité Pas de granularité
(global) par service
!
Affichage Service Confusion + vol de session
Non abordé es
s ciblé
! dans FIDO
le s , a ttaque
sib
es sen
t“Désenregistrement”
nsibles
Service Confiance dans le service ?
Contex e s s e
eur
Servic l’ utilisat Attaques logicielles, Mise à jour
ô le à
contr logicielle
Sécurité
ExplicitementRendre le (buffer overflows, etc.)
écarté par FIDO Attaques matérielles
Sécurité matérielle
(SCA, fautes)
9/21FIDO : limitations et modèle de menace
Un Token à la sécurité limitée
Malware, perte de vue, vol, vol avec remise, clonage
Userpresence limité Pas d’authentification
Peu abordé (appui bouton) du porteur
dans FIDO
Compteur limité Pas de granularité
(global) par service
!
Affichage Service Confusion + vol de session
Non abordé es
s ciblé
! dans FIDO
le s , a ttaque
sib
es sen
t“Désenregistrement”
nsibles
Service Confiance dans le service ?
Contex e s s e
eur
Servic l’ utilisat Attaques logicielles, Mise à jour
ô le à
contr logicielle
Sécurité
ExplicitementRendre le (buffer overflows, etc.)
écarté par FIDO Attaques matérielles
Sécurité matérielle
(SCA, fautes)
9/21FIDO : limitations et modèle de menace
Un Token à la sécurité limitée
Malware, perte de vue, vol, vol avec remise, clonage
Userpresence limité Pas d’authentification
Peu abordé (appui bouton) du porteur
dans FIDO
Compteur limité Pas de granularité
(global) par service
!
Affichage Service Confusion + vol de session
Non abordé es
s ciblé
! dans FIDO
le s , a ttaque
sib
es sen
t“Désenregistrement”
nsibles
Service Confiance dans le service ?
Contex e s s e
eur
Servic l’ utilisat Attaques logicielles, Mise à jour
ô le à
contr logicielle
Sécurité
ExplicitementRendre le (buffer overflows, etc.)
écarté par FIDO Attaques matérielles
Sécurité matérielle
(SCA, fautes)
9/21État de l'art
SoloKeys Ledger
OpenSK OnlyKeys Trezor Yubikeys U2F2
Nitrokey3 Nano SoloKeys
OnlyKeys
Trezor
Yubikey “Bio”
Userpresence limité
(appui bouton)
7 7 X X ∼ X X
Compteur limité Ledger Nano S
OpenSK
(global)
7 7 7 7 7 7 X
Affichage Service 7 7 7 X 7 X X
“Désenregistrement” Service 7 7 7 7 7 7 X Rust/Trussed
Biométrie
Peu(confiance
d’éléments?)ouverts
Rust/TockOS Cloisonnement logiciel limité
(pour l’instant)
Sécurité logicielle ∼ ∼ 7 ∼ 7 X X
Sécurité des mises à jour ? (usage MPU restreint)
Pas de mises à jour
Sécurité matérielle ∼ 7 7 7 X X X Seulement pour
Application U2FNitrokey3 :
Open source X X X X 7 ∼ X Secure
open source “figé”
Element
(seulement)
10/21État de l'art
SoloKeys Ledger
OpenSK OnlyKeys Trezor Yubikeys U2F2
Nitrokey3 Nano SoloKeys
OnlyKeys
Trezor
Yubikey “Bio”
Userpresence limité
(appui bouton)
7 7 X X ∼ X X
Compteur limité Ledger Nano S
OpenSK
(global)
7 7 7 7 7 7 X
Affichage Service 7 7 7 X 7 X X
“Désenregistrement” Service 7 7 7 7 7 7 X Rust/Trussed
Biométrie
Peu(confiance
d’éléments?)ouverts
Rust/TockOS Cloisonnement logiciel limité
(pour l’instant)
Sécurité logicielle ∼ ∼ 7 ∼ 7 X X
Sécurité des mises à jour ? (usage MPU restreint)
Pas de mises à jour
Sécurité matérielle ∼ 7 7 7 X X X Seulement pour
Application U2FNitrokey3 :
Open source X X X X 7 ∼ X Secure
open source “figé”
Element
(seulement)
10/21État de l'art
SoloKeys Ledger
OpenSK OnlyKeys Trezor Yubikeys U2F2
Nitrokey3 Nano SoloKeys
OnlyKeys
Trezor
Yubikey “Bio”
Userpresence limité
(appui bouton)
7 7 X X ∼ X X
Compteur limité Ledger Nano S
OpenSK
(global)
7 7 7 7 7 7 X
Affichage Service 7 7 7 X 7 X X
“Désenregistrement” Service 7 7 7 7 7 7 X Rust/Trussed
Biométrie
Peu(confiance
d’éléments?)ouverts
Rust/TockOS Cloisonnement logiciel limité
(pour l’instant)
Sécurité logicielle ∼ ∼ 7 ∼ 7 X X
Sécurité des mises à jour ? (usage MPU restreint)
Pas de mises à jour
Sécurité matérielle ∼ 7 7 7 X X X Seulement pour
Application U2FNitrokey3 :
Open source X X X X 7 ∼ X Secure
open source “figé”
Element
(seulement)
10/21État de l'art
SoloKeys Ledger
OpenSK OnlyKeys Trezor Yubikeys U2F2
Nitrokey3 Nano SoloKeys
OnlyKeys
Trezor
Yubikey “Bio”
Userpresence limité
(appui bouton)
7 7 X X ∼ X X
Compteur limité Ledger Nano S
OpenSK
(global)
7 7 7 7 7 7 X
Affichage Service 7 7 7 X 7 X X
“Désenregistrement” Service 7 7 7 7 7 7 X Rust/Trussed
Biométrie
Peu(confiance
d’éléments?)ouverts
Rust/TockOS Cloisonnement logiciel limité
(pour l’instant)
Sécurité logicielle ∼ ∼ 7 ∼ 7 X X
Sécurité des mises à jour ? (usage MPU restreint)
Pas de mises à jour
Sécurité matérielle ∼ 7 7 7 X X X Seulement pour
Application U2FNitrokey3 :
Open source X X X X 7 ∼ X Secure
open source “figé”
Element
(seulement)
10/21État de l'art
SoloKeys Ledger
OpenSK OnlyKeys Trezor Yubikeys U2F2
Nitrokey3 Nano SoloKeys
OnlyKeys
Trezor
Yubikey “Bio”
Userpresence limité
(appui bouton)
7 7 X X ∼ X X
Compteur limité Ledger Nano S
OpenSK
(global)
7 7 7 7 7 7 X
Affichage Service 7 7 7 X 7 X X
“Désenregistrement” Service 7 7 7 7 7 7 X Rust/Trussed
Biométrie
Peu(confiance
d’éléments?)ouverts
Rust/TockOS Cloisonnement logiciel limité
(pour l’instant)
Sécurité logicielle ∼ ∼ 7 ∼ 7 X X
Sécurité des mises à jour ? (usage MPU restreint)
Pas de mises à jour
Sécurité matérielle ∼ 7 7 7 X X X Seulement pour
Application U2FNitrokey3 :
Open source X X X X 7 ∼ X Secure
open source “figé”
Element
(seulement)
10/21État de l'art
SoloKeys Ledger
OpenSK OnlyKeys Trezor Yubikeys U2F2
Nitrokey3 Nano SoloKeys
OnlyKeys
Trezor
Yubikey “Bio”
Userpresence limité
(appui bouton)
7 7 X X ∼ X X
Compteur limité Ledger Nano S
OpenSK
(global)
7 7 7 7 7 7 X
Affichage Service 7 7 7 X 7 X X
“Désenregistrement” Service 7 7 7 7 7 7 X Rust/Trussed
Biométrie
Peu(confiance
d’éléments?)ouverts
Rust/TockOS Cloisonnement logiciel limité
(pour l’instant)
Sécurité logicielle ∼ ∼ 7 ∼ 7 X X
Sécurité des mises à jour ? (usage MPU restreint)
Pas de mises à jour
Sécurité matérielle ∼ 7 7 7 X X X Seulement pour
Application U2FNitrokey3 :
Open source X X X X 7 ∼ X Secure
open source “figé”
Element
(seulement)
10/21U2F2 : solutions
Authentification Stockage SD
Compteur global chiffré
forte
intègre
Userpresence limité
“Désenregistrement” Services
Authentification porteur
Isolation Écran
Carte à puce
cryptographique tactile
Sécurité matérielle U2F2 Confusion Services
Authentification
(FIDO)forte Disque USB chiffrant
Applets open source
Écran tactile
Certifiée ≥ EAL4+
Mise à jour Device Firmware Upgrade (DFU) sécurisé
Carte à puce Open source DFU SécuritéDéfense
logicielleen profondeur
(Javacard) sécurisée (microkernel, tâches)
Microkernel
Isolation des
WooKey Tâches
parsers
Preuves
11/21U2F2 : solutions
Authentification Stockage SD
Compteur global chiffré
forte
intègre
Userpresence limité
“Désenregistrement” Services
Authentification porteur
Isolation Écran
Carte à puce
cryptographique tactile
Sécurité matérielle U2F2 Confusion Services
Authentification
(FIDO)forte Disque USB chiffrant
Applets open source
Écran tactile
Certifiée ≥ EAL4+
Mise à jour Device Firmware Upgrade (DFU) sécurisé
Carte à puce Open source DFU SécuritéDéfense
logicielleen profondeur
(Javacard) sécurisée (microkernel, tâches)
Microkernel
Isolation des
WooKey Tâches
parsers
Preuves
11/21U2F2 : sécurité logicielle
Authentification Stockage SD
Compteur global chiffré
forte
intègre
Userpresence limité
“Désenregistrement” Services
Authentification porteur
Isolation Écran
Carte à puce
cryptographique tactile
Sécurité matérielle U2F2 Confusion Services
Authentification
(FIDO)forte Disque USB chiffrant
Applets open source
Écran tactile
Certifiée ≥ EAL4+
Mise à jour Device Firmware Upgrade (DFU) sécurisé
Carte à puce Open source DFU SécuritéDéfense
logicielleen profondeur
(Javacard) sécurisée (microkernel, tâches)
Microkernel
Isolation des
WooKey Tâches
parsers
Preuves
12/21U2F2 : sécurité logicielle
Séparation en tâches
PI
N CODE
1 6 0
8 3 5
4 2 7
Module PIN
9
Module Parser Module USB
Module FIDO
(APDU, CBOR) (CTAPHID)
Module Storage
13/21U2F2 : sécurité logicielle
Séparation en tâches
PI
N CODE
1 6 0
8 3 5
4 2 7
Module PIN
9
Module Parser Module USB
Module FIDO
(APDU, CBOR) (CTAPHID)
Module Storage
13/21U2F2 : sécurité logicielle
Séparation en tâches
PI
N CODE
1 6 0
8 3 5
4 2 7
Module PIN
9
Module Parser Module USB
Module FIDO
(APDU, CBOR) (CTAPHID)
Module Storage
13/21U2F2 : sécurité matérielle
Authentification Stockage SD
Compteur global chiffré
forte
intègre
Userpresence limité
“Désenregistrement” Services
Authentification porteur
Isolation Écran
Carte à puce
cryptographique tactile
Sécurité matérielle U2F2 Confusion Services
Authentification
(FIDO)forte Disque USB chiffrant
Applets open source
Écran tactile
Certifiée ≥ EAL4+
Mise à jour Device Firmware Upgrade (DFU) sécurisé
Carte à puce Open source DFU SécuritéDéfense
logicielleen profondeur
(Javacard) sécurisée (microkernel, tâches)
Microkernel
Isolation des
WooKey Tâches
parsers
Preuves
14/21U2F2 : sécurité matérielle
Isolation cryptographique FIDO
Carte à puce
Plateforme WooKey
KW HMACKT (KW ) KDF KT
Perdable, volable KFIDO Perdable, volable
REGISTER
appparam=Hash(appid) Dérive nonce
REGISTER
KH=nonce, HMACKFIDO (appparam, nonce)
ECDSA_privappid =HMACKFIDO (KH)
AUTHENTICATE
AUTHENTICATE Vérifie et
appparam=Hash(appid) KH
Dérive
ECDSA_privappid =HMACKFIDO (KH)
15/21U2F2 : sécurité matérielle
Isolation cryptographique FIDO
Carte à puce
Plateforme WooKey
KW HMACKT (KW ) KDF KT
Perdable, volable KFIDO Perdable, volable
REGISTER
appparam=Hash(appid) Dérive nonce
REGISTER
KH=nonce, HMACKFIDO (appparam, nonce)
ECDSA_privappid =HMACKFIDO (KH)
AUTHENTICATE
AUTHENTICATE Vérifie et
appparam=Hash(appid) KH
Dérive
ECDSA_privappid =HMACKFIDO (KH)
15/21U2F2 : sécurité matérielle
Isolation cryptographique FIDO
Carte à puce
Plateforme WooKey
KW HMACKT (KW ) KDF KT
Perdable, volable KFIDO Perdable, volable
REGISTER
appparam=Hash(appid) Dérive nonce
REGISTER
KH=nonce, HMACKFIDO (appparam, nonce)
ECDSA_privappid =HMACKFIDO (KH)
AUTHENTICATE
AUTHENTICATE Vérifie et
appparam=Hash(appid) KH
Dérive
ECDSA_privappid =HMACKFIDO (KH)
15/21U2F2 : sécurité matérielle
Isolation cryptographique FIDO
Carte à puce
Plateforme WooKey
KW HMACKT (KW ) KDF KT
Perdable, volable KFIDO Perdable, volable
REGISTER
appparam=Hash(appid) Dérive nonce
REGISTER
KH=nonce, HMACKFIDO (appparam, nonce)
ECDSA_privappid =HMACKFIDO (KH)
AUTHENTICATE
AUTHENTICATE Vérifie et
appparam=Hash(appid) KH
Dérive
ECDSA_privappid =HMACKFIDO (KH)
15/21U2F2 : aides à l'utilisateur
Authentification Stockage SD
Compteur global chiffré
forte
intègre
Userpresence limité
“Désenregistrement” Services
Authentification porteur
Isolation Écran
Carte à puce
cryptographique tactile
Sécurité matérielle U2F2 Confusion Services
Authentification
(FIDO)forte Disque USB chiffrant
Applets open source
Écran tactile
Certifiée ≥ EAL4+
Mise à jour Device Firmware Upgrade (DFU) sécurisé
Carte à puce Open source DFU SécuritéDéfense
logicielleen profondeur
(Javacard) sécurisée (microkernel, tâches)
Microkernel
Isolation des
WooKey Tâches
parsers
Preuves
16/21Identifier un compte 17/21
Identifier un compte
Service Gmail de Google
un service
17/21Identifier un compte
Service Gmail de Google
un service
’Bob’
un nom d’utilisateur
17/21Identifier un compte
Service Gmail de Google
un service
’Bob’
un nom d’utilisateur
une icône
17/21Identifier un compte
Service Gmail de Google
un service
’Bob’
un nom d’utilisateur
une icône
’Gmail’
un nom reconnaissable
17/21Identifier un compte
Service Gmail de Google
un service
’Bob’
un nom d’utilisateur
une icône
’Gmail’
un nom reconnaissable
des attributs
Service ’non sensible’, ’activé’, …
17/21Identifier un compte
Service Gmail de Google
un service
’Bob’
un nom d’utilisateur
une icône
CTR=n ’Gmail’
un compteur un nom reconnaissable
d’authentifications
des attributs
Service ’non sensible’, ’activé’, …
17/21Identifier un compte
Service Gmail de Google
un service
’Bob’
Utilisation SD WooKey
un nom d’utilisateur
Chiffrement intègre
Slot dédié par service
Enregistrements et suppressions
du stockage … une icône
CTR=n ’Gmail’
un compteur un nom reconnaissable
d’authentifications
des attributs
Service ’non sensible’, ’activé’, …
17/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : cinématique du REGISTER
HID
ER
Module PIN
R IST
HIDulation
ISTE REG
nKKHH
DsUs
DPU
Acquittement
Information utilisateur
REpGonse
ussêitoe
aps
F eAPA
fo2rg
USB
éremqi
enc
ré
Module Parser Module USB
U
Module FIDO
(APDU, CBOR) (CTAPHID)
Accèsàstockage
Mise jour stockage
Gmail
Registered
Unused Module Storage
Hash(KH)
CTR=0
18/21U2F2 : application de gestion des services sur PC
Application sur PC optionnelle
Permet la personnalisation de nouveaux comptes
Permet la suppression de comptes indésirables
Nécessite le séquestre de la clef chiffrée de plateforme WooKey
19/21Conclusion
Apport du projet
Analyse poussée de la sécurité du Token
Pour des contextes et services sensibles
Prise en compte de risques écartés ou peu considérés par FIDO
1. Sécurité logicielle et matérielle forte
2. Anti-confusion
3. “Désenregistrement”
4. Compteur local à chaque compte
Fourniture d’un prototype fonctionnel
Open source
Open hardware (base WooKey)
Tests de conformité U2F validés (de Yubico / Solokeys)
20/21Conclusion
Limitations et roadmap
Nombre de comptes actifs simultanés limité à 8192
FIDO 2.0 (CBOR) en cours d’implémentation
Personnalisation des slots sur Token (GUI embarquée) en cours de finalisation
20/21U2F2 :
Prévenir la Menace Fantôme sur FIDO/U2F
SSTIC 2021
Question ?Vous pouvez aussi lire