Attaques par canaux auxiliaires
Attaques par canaux auxiliaires
Canal auxiliaire
Canal d’information auxiliaire qui contrairement au canal logique
(entrées/sorties) n’a pas vocation à transporter de l’information.
En général il s’agit d’un canal ”physique” (temps, température,
consommation électrique . . .).
Accès physique local Accès distant (ou logiciel local)
I Cibles : systèmes embarqués. I Cibles : machines non-isolées.
I Menace tous les systèmes I Menace les systèmes autorisant les
accessibles physiquement. logiciels tiers.
I Cours : Benoı̂t I Cours : Clémentine
Sommaire de la session
Contexte
Rappels cryptographiques
Les attaques physiques
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
Les systèmes embarqués
Des applications et des contextes variés
système embarqué
système électronique et informatique
autonome et spécialisé
Enjeux de sécurité dans l’embarqué
Menaces
Différents attaquants pour différentes menaces.
Attaquants Menaces
I Délinquants I atteinte à la vie privée,
I un geek, un garage et un I espionnage,
PC de gamer.
I vol/fraude,
I Mafias
I une équipe complète et un I rançonnage,
réseau de PC zombies. I traçage,
I États I panne générale,
I d’un groupe de hacker à la I accidents,
NSA.
I actes de guerre.
Les systèmes embarqués
Contexte
Quelques spécificités rencontrées dans le monde embarqué.
Ressources limitées Contraintes
I puissance limitée, I surface limitée,
I faible autonomie I contrainte temps réel,
(énergie). I conditions environnementales peu
clémentes (température, rayons
ionisants).
Contexte d’emploi
I embarqué donc accessible à l’attaquant !
Enjeux de sécurité dans l’embarqué
Quelques cas
Lecture du firmware d’un routeur UPC
Puis rétro-ingénierie avec des outils classiques type IDA.
Enjeux de sécurité dans l’embarqué
Quelques cas
Lecture du firmware d’un overboard
Enjeux de sécurité dans l’embarqué
Quelques cas
Modification du firmware en mémoire d’une PS3
Enjeux de sécurité dans l’embarqué
État des lieux
Observation
I Il est facile de lire toute mémoire externe à un composant.
I Des outils puissants existent pour appréhender un code binaire.
Il “suffit” alors de
1. lire le code, 3. le modifier pour supprimer la sécurité
2. le comprendre, 4. le re-charger.
Conclusion
La sécurité d’un produit ne peut donc pas uniquement se reposer sur des
tests logiciels !
Protections dans l’embarqué
Opacification
Il existe de nombreuses techniques complémentaires :
I manque de documentation,
I obfuscation de code,
I brouillage de mémoire (mélange des bits et/ou des adresses),
I enfouissement de pistes sur le PCB,
I utilisation de protocoles “maison” plutôt que de standards,
I ...
Permettent de ralentir les attaquants mais ne suffit pas en général.
Protections dans l’embarqué
Utilisation de la cryptographie
Une autre piste est l’utilisation de cryptographie !
Les trois principaux services fournis par la cryptographie sont :
I la confidentialité,
I l’intégrité,
I l’authenticité.
La confidentialité permet de rendre bénin la lecture d’un bus ou d’une
mémoire.
L’authenticité et l’intégrité permettent d’éviter les altérations d’un code
critique.
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Cryptographie asymétrique
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Cryptographie asymétrique
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Cryptographie asymétrique
X
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Cryptographie asymétrique
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Cryptographie asymétrique
Rappels cryptographiques
Symétrique vs asymétrique
Cryptographie symétrique
Cryptographie asymétrique
Rappels cryptographiques
Chiffrement et chiffrement authentifié
Chiffrement et MAC
Objectifs
I s’assurer de la confidentialité d’un contenu,
I s’assurer de l’intégrité d’un contenu (contenu non modifié par
quelqu’un ne connaissant pas la clef).
MAC = Message Authentication Code
Chiffrement + MAC = chiffrement authentifié.
Rappels cryptographiques
Chiffrement et chiffrement authentifié
Chiffrement et MAC
Objectifs
I s’assurer de la confidentialité d’un contenu,
I s’assurer de l’intégrité d’un contenu (contenu non modifié par
quelqu’un ne connaissant pas la clef).
MAC = Message Authentication Code
Chiffrement + MAC = chiffrement authentifié.
Rappels cryptographiques
Chiffrement et chiffrement authentifié
Chiffrement et MAC
Objectifs
I s’assurer de la confidentialité d’un contenu,
I s’assurer de l’intégrité d’un contenu (contenu non modifié par
quelqu’un ne connaissant pas la clef).
MAC = Message Authentication Code
Chiffrement + MAC = chiffrement authentifié.
Rappels cryptographiques
Chiffrement et chiffrement authentifié
Chiffrement et MAC
Objectifs
I s’assurer de la confidentialité d’un contenu,
I s’assurer de l’intégrité d’un contenu (contenu non modifié par
quelqu’un ne connaissant pas la clef).
MAC = Message Authentication Code
Chiffrement + MAC = chiffrement authentifié.
Rappels cryptographiques
Chiffrement et chiffrement authentifié
Chiffrement et MAC
Objectifs
I s’assurer de la confidentialité d’un contenu,
I s’assurer de l’intégrité d’un contenu (contenu non modifié par
quelqu’un ne connaissant pas la clef).
MAC = Message Authentication Code
Chiffrement + MAC = chiffrement authentifié.
Rappels cryptographiques
Chiffrement et chiffrement authentifié
Chiffrement et MAC
Objectifs
I s’assurer de la confidentialité d’un contenu,
I s’assurer de l’intégrité d’un contenu (contenu non modifié par
quelqu’un ne connaissant pas la clef).
MAC = Message Authentication Code
Chiffrement + MAC = chiffrement authentifié.
Rappels cryptographiques
Signature
Signature
Objectifs
I s’assurer de l’intégrité d’un contenu,
I s’assurer de l’authenticité (preuve de l’origine du contenu).
Rappels cryptographiques
Signature
Signature
Objectifs
I s’assurer de l’intégrité d’un contenu,
I s’assurer de l’authenticité (preuve de l’origine du contenu).
Rappels cryptographiques
Signature
Signature
Objectifs
I s’assurer de l’intégrité d’un contenu,
I s’assurer de l’authenticité (preuve de l’origine du contenu).
Rappels cryptographiques
Signature
Signature
Objectifs
I s’assurer de l’intégrité d’un contenu,
I s’assurer de l’authenticité (preuve de l’origine du contenu).
X
Rappels cryptographiques
Chiffrement asymétrique et échange de clefs
Utiliser la cryptographie symétrique implique une clef par correspondant . . .
Chiffrement asymétrique
I utilise le même principe de paire de clefs que la signature,
I le secret est du côté de la personne qui déchiffre,
I les opérations sont coûteuses.
Échange de clef
I établit un secret partagé en se basant sur des opérations coûteuses,
I pour ensuite utiliser la cryptographie symétrique.
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
L’homme du milieu
Man in the Middle
Rappels cryptographiques
Certificats
Certificats
Objectif
I s’assurer de l’identité de son correpsondant.
Rappels cryptographiques
Certificats
Certificats
Objectif
I s’assurer de l’identité de son correpsondant.
Rappels cryptographiques
Certificats
Certificats
Objectif
I s’assurer de l’identité de son correpsondant.
Rappels cryptographiques
Certificats
Certificats
Objectif
I s’assurer de l’identité de son correpsondant.
Rappels cryptographiques
Certificats
Certificats
Objectif
I s’assurer de l’identité de son correpsondant.
Rappels cryptographiques
Certificats
Certificats
Objectif
I s’assurer de l’identité de son correpsondant.
Architecture d’un système embarqué
La zone de confiance
flash core flash
rom
periph.1
ram
processeur
periph.2
Si l’attaquant ne peut pas sonder les bus et mémoires internes,
I la zone de confiance est le processeur,
I l’attaquant accède à la FLASH externe et son bus,
I l’attaquant accède aux périphériques et leur bus.
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
I Modification de la mise à jour.
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
I Modification de la mise à jour.
=⇒ MAC (+ chiffrement pour protection contre la rétro).
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
I Modification de la mise à jour.
=⇒ MAC (+ chiffrement pour protection contre la rétro).
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
I Modification de la mise à jour.
=⇒ MAC (+ chiffrement pour protection contre la rétro).
I Espionnage / modifications sur le bus des périphériques.
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
I Modification de la mise à jour.
=⇒ MAC (+ chiffrement pour protection contre la rétro).
I Espionnage / modifications sur le bus des périphériques.
=⇒ Canal sécurisé via échange de clefs.
Architecture d’un système embarqué
Mécanismes et secrets
flash core flash
rom
periph.1
ram
processeur
periph.2
I Modification de la mise à jour.
=⇒ MAC (+ chiffrement pour protection contre la rétro).
I Espionnage / modifications sur le bus des périphériques.
=⇒ Canal sécurisé via échange de clefs.
et donc certificats et clef publique racine
Rappels cryptographiques
Principe
Rappels cryptographiques
Principe
attaques actives
Rappels cryptographiques
Principe
attaques actives
attaques passives
Rappels cryptographiques
Principe
attaques actives
attaques passives
Rappels cryptographiques
Principe
attaques actives
attaques passives
attaques actives
Rappels cryptographiques
Principe
attaques actives
attaques passives
attaques actives
attaques passives
Les attaques physiques
Quelques exemples
Attaques passives
I Canaux auxiliaires (temps de calcul, consommation . . .)
Attaques actives
I Injection de fautes (rayon laser, variation de température . . .)
I Delayreing et rétroconception
I Cheval de Troie
I Micro-probing
Les attaques physiques
Attaques en faute
Moyens
I Glitch sur l’horloge ou l’alimentation.
I Préparation de l’échantillon (ouverture) puis
I tir laser sur les transistors,
I injection localisée d’ondes EM.
Effets
Modification de l’opcode
I en mémoire,
I sur le bus,
I au décodage de l’instruction,
vers une instruction sans effet de bords pour cette exécution.
Rappels cryptographiques
Rapel : RSA-CRT
RSA : N = p q et
m = cd mod N
RSA-CRT :
mp = cd mod p−1
mod p , mq = cd mod q−1
mod q
Différentes techniques de recombinaison
Classique :
m = (mq p−1 mod q) p + (mp q −1 mod p) q mod N
Garner :
m = mq + q(q −1 (mp − mq ) mod p)
Rappels cryptographiques
Faute sur le calcul de mp (CRT)
Faute : mp −→ m̂p
m = (mq p−1 mod q) p + (mp q −1 mod p) q mod N
−1 −1
m̂ = (mq p mod q) p + (m̂p q mod p) q mod N
m − m̂ = (mp − m̂p ) q −1
mod p q mod N
On a un multiple de q : on retrouve q avec
q = pgcd(N, m − m̂)
Rappels cryptographiques
Faute sur le calcul de mp (Garner)
Faute : mp −→ m̂p
m = mq + q(q −1 (mp − mq ) mod p)
−1
m̂ = mq + q(q (m̂p − mq ) mod p)
m − m̂ = q q −1 (mp − m̂p )
mod p
On a un multiple de q : on retrouve q avec
q = pgcd(N, m − m̂)
Rappels cryptographiques
Faute sur le calcul de mq (Garner)
Faute : mq −→ m̂q
m = mq + q(q −1 (mp − mq ) mod p)
−1
m̂ = m̂q + q(q (mp − m̂q ) mod p)
m − m̂ = mq − m̂q + q q −1 (m̂q − mq )
mod p
= 0 mod p
On a un multiple de p : on retrouve p avec
p = pgcd(N, m − m̂)
Rappels cryptographiques
Faute sur le module
Il existe des contre-mesures aux attaques précédentes.
On peut attaquer avec plus de calculs fautés ou plus de fautes durant un
calcul.
Mais il existe aussi une attaque en faute sur N :
m = (mq p−1 mod q) p + (mp q −1 mod p) q mod N
−1 −1
m̂ = (mq p mod q) p + (mp q mod p) q mod N̂
On peut retrouver la factorisation de N par réduction de réseaux.
Rappels cryptographiques
Faute sur le tour 9 (Piret et Quisquater)
MC + SB SR +
Case noire : il y a une différence entre deux exécutions.
Case blanche : il n’y a pas de différence entre deux exécutions.
Rappels cryptographiques
Faute sur le tour 9 (Piret et Quisquater)
MC + SB SR +
Seulement 28 valides
sur 232 .
MixColumn est linéaire :
MC(P ) ⊕ MC(P ⊕ E) = MC(E).
Les différences possibles sont donc :
{MC(0), MC(1), MC(2), . . . , MC(255)}.
Rappels cryptographiques
Faute sur le tour 9 (Piret et Quisquater)
MC + SB SR +
Seulement 28 valides
on connait les chiffrés
sur 232 .
Rappels cryptographiques
Faute sur le tour 9 (Piret et Quisquater)
MC + SB SR +
Seulement 28 valides on devine ce bout de clef
on connait les chiffrés
sur 232 .
Rappels cryptographiques
Faute sur le tour 9 (Piret et Quisquater)
MC + SB SR +
Seulement 28 valides on devine ce bout de clef
on connait les chiffrés
sur 232 .
pour calculer la différence
Rappels cryptographiques
Faute sur le tour 9 (Piret et Quisquater)
MC + SB SR +
Seulement 28 valides on devine ce bout de clef
on connait les chiffrés
sur 232 .
pour calculer la différence
1. On précalcule l’ensemble des 28 “bonnes valeurs”.
I bonne clef : la différence appartient au bon ensemble,
I mauvaise clef : la différence est aléatoire (et donc souvent hors de
l’ensemble).
2. Il faut 2 fautes par colonne pour retrouver toute la clef.
3. On peut éviter de tester 232 clefs car les calculs sont indépendents
d’un octet à l’autre.
Rappels cryptographiques
Safe-error sur l’AES
Modèle de faute
Collage à 0 d’un bit.
I Clair P = (0, 0, . . . , 0).
I Attaque un bit après XOR de la première sous-clef.
(0,1,1,0,. . .)
(0,0,0,. . .) ⊕ (0,1,1,0. . .) ... C
Rappels cryptographiques
Safe-error sur l’AES
Modèle de faute
Collage à 0 d’un bit.
I Clair P = (0, 0, . . . , 0).
I Attaque un bit après XOR de la première sous-clef.
(0,1,1,0,. . .)
(0,0,0,. . .) ⊕ (0,1,1,0. . .) ... C ⇒ K[0] = 0
Rappels cryptographiques
Safe-error sur l’AES
Modèle de faute
Collage à 0 d’un bit.
I Clair P = (0, 0, . . . , 0).
I Attaque un bit après XOR de la première sous-clef.
(0,1,1,0,. . .)
(0,0,0,. . .) ⊕ (0,0,1,0. . .) ... Ĉ ⇒ K[1] = 1
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement nominal
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement nominal
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement nominal
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement nominal
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement nominal
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement nominal
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement avec faute
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement avec faute
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement avec faute
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement avec faute
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement avec faute
Les attaques physiques
Faute : modification du flot d’exécution
Écriture en flash externe
flash core flash
rom
periph.1
ram
processeur
periph.2
Fonctionnement avec faute
La donnée est stockée en clair en mémoire externe !
Les attaques physiques
Micro-probing
Utilisation interne d’une clef
flash core flash
rom
periph.1
ram
processeur
periph.2
Les attaques physiques
Micro-probing
Utilisation interne d’une clef
flash core flash
rom
periph.1
ram
processeur
periph.2
Les attaques physiques
Micro-probing
Utilisation interne d’une clef
flash core flash
rom
periph.1
ram
processeur
periph.2
Les attaques physiques
Micro-probing
Utilisation interne d’une clef
flash core flash
rom
periph.1
ram
processeur
periph.2
On peut aussi directement récupérer une donnée.
Les attaques physiques
Protections contre les attaques actives
Détecteurs
I Détecteurs optiques (fautes lasers).
I Lissage (PLL pour l’horloge, capacités pour l’alimentation).
I Shield actif de protection (micro-probing, ouverture).
Obfuscation
I Scrambling de la mémoire.
I Enfouissement des bus.
I Mélange des points mémoire à la logique.
Attaques par canaux auxiliaires
Principe général
canal classique
Attaques par canaux auxiliaires
Principe général
canal classique
Attaques par canaux auxiliaires
Principe général
canal classique
canal auxiliaire
On obtient des informations sur les états intermédiaires
où les liens entre clair/chiffré et clef sont peu complexes
Attaques par canaux auxiliaires
Exemples de canaux
Toute observation peut être dangereuse :
I temps d’exécution,
I consommation de courant,
I rayonnements électromagnétiques,
I émissions de photons,
I émissions sonores,
I potentiel électrique d’un corps en contact avec le PC ( !)
I ...
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
0.3 ms
b o o l t es tP IN ( i n t code [ 4 ] )
{ 0000
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
0
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
0.6 ms
b o o l t es tP IN ( i n t code [ 4 ] )
{ 1000
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
1
0
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
0.4 ms
b o o l t es tP IN ( i n t code [ 4 ] )
{ 2000
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
1
0 2
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
1
0 2 3 4 5 6 7 8 9
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
1
0 2 3 4 5 6 7 8 9
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 1 ?00
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 1 ?00
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
7
0 1 2 3 4 5 6 8 9
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 1700
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
7
0 1 2 3 4 5 6 8 9
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 17 ?0
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 17 ?0
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
} 8 9
0 1 2 3 4 5 6 7
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 1780
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
} 8 9
0 1 2 3 4 5 6 7
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 178 ?
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ;
}
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 178 ?
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ; 9
} 0 1 2 3 4 5 6 7 8
Attaques par canaux auxiliaires
Exemple du code PIN
Code PIN de 4 chiffres =⇒ en moyenne 5000 essais.
Si mal implanté =⇒ au plus 37 essais.
b o o l t es tP IN ( i n t code [ 4 ] )
{ 1789
f o r ( i n t i =0 ; i <4 ; i ++)
{
i f ( code [ i ]!= c o d e r e f [ i ] )
return false ;
}
return true ; 9
} 0 1 2 3 4 5 6 7 8
Attaques par canaux auxiliaires
Le temps : attaques sur la cryptographie
I Temps d’une multiplication scalaire dans ECDSA
→ taille du nonce secret
⇒ clef retrouvée après 1000 observations.
I Temps de retour d’erreur Mac-then-Encrypt avec padding
→ info. sur la correction du padding
⇒ bloc déchiffré en 215.08 requêtes.
I Temps de chiffrement par AES (tables en mémoire)
→ lien avec la variable clair ⊕ clef
⇒ clef retrouvée après quelques milliers de chiffrement.
I Toutes les attaques basées sur le mécanisme de cache.
I Toutes les attaques pas inventées car maintenant on fait attention !