introduction à la cryptographie...
TRANSCRIPT
Présentation personnelle
• Alexandre Venelli – Thèse CIFRE en informatique dans la sécurité
embarquée
• Ingénieur cryptographe depuis 6 ans chez INSIDE Secure – Développement de librairies crypto pour
l’embarqué
– Analyse de vulnérabilités
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Types de produits embarqués sécurisés
• Cartes à puce – Contact – Sans contact – Dual interface
• Tag RFID • NFC • Tokens
– USB
• Set top box • Documents officiels:
– Carte d’identité – Passeport – Permis de conduire
Historique de la carte à puce
• 1974-1975: R. Moreno brevette une carte pouvant contenir beaucoup de données – Inventeur de la carte à puce
• 1977: M. Ugon ajoute – Une NVM – Un microprocesseur
• 1984: premières cartes bancaires • 1984: premières cartes téléphoniques • 1991: invention de la carte SIM • 1998: cartes Vitale • 1998-1999: boom de la carte SIM
– Cartes les plus vendues encore aujourd’hui
• Dans plus en plus de produits depuis: – Cartes de fidélité, Pay-TV, …
Qu’est-ce qu’une carte à puce?
• Un morceaux de silicone sur une carte plastique
• Très bon moyen de stocker peu de données sensibles
Carte à puce contact
• VCC: tension d’alimentation de la carte • RST: signal de remise à zéro • CLK: signal d’horloge • GND: masse électrique • VPP: tension de programmation • I/O: entrées/sorties des données
Carte sans contact
• Caractéristiques proches d’une carte contact sans connexion électrique
• Energie fournie par le champ magnétique émis par le lecteur
Carte à puce duale
• Possède à la fois les technologies contact et sans contact
• Remplace peu à peu les cartes contact
Tags RFID
• Plus simple que les cartes à puces
• Peut ne pas avoir de microprocesseur
• Coût très réduit
• Exemples d’applications:
– Magasinage, transport de colis, suivis dans les hôpitaux, etc.
NFC
• Near Field Communication
• Peut fonctionner en 3 modes – Lecteur
• Agit comme un lecteur sans contact et peut parler avec une carte sans contact
– Carte • Se comporte comme une carte sans contact et peut
parler avec un lecteur
– Peer-to-peer • Effectue un lien entre 2 participants (ex: téléphones).
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Pourquoi ajouter de la sécurité?
• Vol de services – Attaques sur des fournisseurs de services (TV satellite,
cartes d’accès, …)
• Accès à l’information – Récupération et extraction d’informations – Récupérer des secrets commerciaux – Vol d’identité
• Clonage et surproduction – Copier pour faire des profits sans coûts de R&D – Production en masse à faible coût par des sous-
traitants
Qui a besoin de puces sécurisées?
• Demande de plus en plus importante – Industrie automobile, fournisseurs de services – Banques, applications militaires
• Puces sécurisées sont partout – Électronique grand consommation (authentification, protection contre
la copie) – Contrôle du marché de l’après-vente (accessoires, pièces de rechange) – Contrôle d’accès (tags RF, cartes) – Contrôle de services (téléphones portables, TV satellite) – Protection de la propriété intellectuelle (IP) (sofware, algorithmes)
• Challenges – Comment concevoir une puce sécurisée? (ingénierie sécurité/crypto) – Comment évaluer sa résistance? (estimation du coût d’une faiblesse) – Comment trouver la meilleur solution? (compromis temps/argent)
Comment concevoir un système sécurisé?
• Pour quelles raisons attaquerait-on votre système? – Scénarios d’attaques et enjeux (vol, accès, etc)
• Qui l’attaquerait? – Classe de l’attaquant: extérieur, initié, organisation
• Quels outils utiliseraient-ils pour attaquer? – Catégories d’attaques: side-channel, faute, reverse engineering
• Comment se protéger de ces attaques? – Estimer le danger: comprendre les enjeux, le coût, la probabilité – Développer des protections adéquates aux point faibles – Faire une évaluation de sécurité – Choisir des composants sûrs pour construire le système
cryptographie forte
Cryptographie
• La cryptographie permet d’assurer – Intégrité
• Un attaquant ne peut pas modifier un message
– Confidentialité • Un attaquant ne doit pas pouvoir lire des messages
– Authenticité • Un attaquant ne doit pas pouvoir se faire passer pour
quelqu’un d’autre
– Non-répudiation • Un attaquant ne doit pas pouvoir dénier avoir fait un
échange
Principe de Kerkhoff
• Les algorithmes de cryptographie modernes sont basés sur le principe de Kerkhoff: – Un cryptosystème n’a pas à être secret et doit pouvoir tomber
dans les mains d’un attaquant sans poser de problème
• La sécurité des cryptosystèmes est basée sur le fait que la clé soit gardée secrète!
• Quelques raisons pour ce principe: – Il est plus facile de garder une clé secrète qu’un algorithme – Les clés peuvent être changées plus facilement que les
algorithmes – Communication avec d’autres plus facile – Les algorithmes publics subissent un examen public détaillé
Cryptographie – Primitives et cryptosystèmes
• Cryptosystèmes symétriques: – Chiffrements par blocs
• DES, AES, …
– Chiffrement par flot • RC4, A5/1, A5/2, …
• Cryptosystèmes asymétriques: – RSA, Diffie-Hellman, ECC, …
• Fonctions de hash – MD5, SHA-1, SHA-2, SHA-3, …
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Scénarios classiques d’attaques
• Chiffré seul – L’attaquant n’a accès qu’au chiffré
• Message connu – L’attaquant a accès à un ensemble de chiffrés avec les messages
correspondants
• Chiffré choisi – L’attaquant peut obtenir des messages pour un ensemble arbitraire de chiffrés
choisis
• Chiffré choisi adaptatif – L’attaquant peut choisir des chiffrés en fonction des informations qu’il a
obtenu des chiffrements précédents
• Attaque par clé apparentée – L’attaquant peut obtenir des chiffrés pour des messages choisis chiffrés avec
deux clés différentes. Les clés sont inconnues mais l’attaquant connait la relation qui lie leurs valeurs.
• ...
Attaquer un système embarqué sécurisé – attaque logique
• Les clés stockées et utilisées dans les objets sécurisés ne doivent jamais quitter l’objet
• Le but des attaques logiques est de révéler la clé en utilisant seulement l’interface de communication
Attaquant Objet sécurisé Communication
Attaques logiques
• Faiblesses basées sur des vulnérabilités software
• L’attaquant essaye de casser le système en envoyant des messages spéciaux
• Attaques typiques: buffer overflow, format string attack, ...
Autre type d’attaque?
• Les attaques logiques considèrent que l’attaquant a le contrôle complet sur l’interface de communication
• Il existe de nombreux scénarios où ces attaques sont les plus importantes (ex: communication via internet)
• Pour les objets embarqués, la situation est différente. L’attaquant a souvent accès à beaucoup plus que seulement l’interface de communication. Il possède physiquement l’objet en question.
Exemple: Pay TV
• Les entreprises de pay TV donnent des cartes à puces à leurs clients qui payent pour voir un certain contenu.
Exemple: Pay TV
• La compagnie ne peut pas supposer que tous ses client sont honnêtes. Un client peut vouloir dupliquer sa carte pour ses amis
Autres exemples
• Porte-monnaie électronique: le client peut vouloir s’ajouter de l’argent
• DRM: le client peut vouloir copier le contenu (film, musique, ...) pour ses amis
• Protection des marques: le client peut vouloir utiliser des encres, batteries moins chères
• ... • Résumé: beaucoup de scénarios où casser le système à
un intérêt pour l’utilisateur • l’attaquant est en possession de l’objet attaqué et
peut donc utiliser d’autres chemins d’attaques plus puissants
Attaques physiques sur systèmes embarqués
• Attaques logiques ne se basent que sur des informations récupérées lors de communications
• Attaques physiques observent et manipulent les propriétés du système ou de son environnement
Attaquant Objet sécurisé Communication
Attaquant Objet sécurisé Communication
Manipulation
Observation
Attaques physiques
• Dans une attaque physique, l’attaquant fait quasiment ce qu’il veut avec l’objet
• Avec assez de ressources, l’attaquant réussiera toujours à casser le système en plus ou moins de temps
• En pratique, le but est de rendre les attaques tellement difficiles à réaliser qu’elles deviennent inutiles
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Pourquoi s’intéresser au hardware?
• Certaines attaques spécifiques à l’embarqué utilisent l’implémentation physique du composant pour exploiter une faiblesse
• Il faut avoir une compréhension globale du fonctionnement d’un composant pour pouvoir se protéger
Caractéristiques physiques d’une carte à puce
• Micro-processeur de 8, 16 ou 32 bits
• De 2Ko à 32Ko de mémoire RAM
• De 32Ko à 512Ko de mémoire non volatile (Flash/ROM)
• Surface de quelques mm2
• Modules de sécurité
Design synchrone
• La grande majorité des circuits sont synchrones • Propriétés d’un circuit synchrone
– Un état est stocké dans des éléments mémoires (registres, RAM, portes logiques, ...)
– Des éléments de circuits combinatoires effectuent des calculs – Un signal d’horloge déclenche la mise à jour des élements
mémoires
• Les circuits synchrones sont des finite state machine (automate fini) déclenché par un signal d’horloge
Processus de développement du hardware
• A un certain niveau, la conception du hardware est similaire à du software
• Comme en software, il existe des niveaux d’abstractions qui permettent de gérer la complexité
Modélisation et description HDL
• Le processus de design commence par une modélisation du hardware en software
• Un modèle de haut-niveau est constamment rafinée jusqu’à obtenir une description du design au register-transfer-level (RTL)
• Au niveau RTL, le hardware est décrit en utilisant un language de description (HDLs) – Ex: Verilog, VHDL
• A ce niveau, le hardware peut être vu comme une FSM qui met à jour son état à chaque coup d’horloge
Synthèse du design
• Pour chaque technologie de logique, il existe des librairies de portes logiques – Ex: NAND, OR, AND, …
• L’outil de synthèse transforme la description HDL en des portes logiques de la librairie
• La sortie de la synthèse est une netlist – Graphe où chaque nœud est une porte
logique
Layout
• Les portes sont placées et connectées
• Dans cette étape, de nombreuses contraintes physiques doivent être prises en compte – Placer proches les portes connectées – Minimiser le surcoût du placement – …
• Le layout est une description géométrique du design qui décrit à quel endroit doit être placé chaque élément
Fabrication
• Après la création du layout, il est envoyé à l’usine de fabrication
• Technologies courantes:
– 120nm, 90nm
• Taille des wafers
– 200mm, 300mm
Découpe, Test et Packaging
• Une fois le wafer produit, il reste à – Découper: séparer tous les circuits
présents sur le wafer
– Tester: le processus de fabrication n’est pas parfait, il faut donc tester tous les circuits produits
– Packager: protège le circuit dans un petit bloc de matériel semi-conducteur pour le protéger de la corrosion et de dommages physiques
Résumé d’un design hardware
• Le design hardware est un processus complexe avec beaucoup de niveaux d’abstraction
• Les étapes d’optimisations présentes à chaque niveau peuvent influencer la sécurité finale du composant
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Principaux axes d’optimisations
• Bande passante
• Consommation de courant
• Qualité/Fiabilité
• Taille mémoire/surface
Bande passante vs. sécurité
• La vitesse de bande passante est souvent un facteur déterminant dans le succès d’un produit
• En sécurité embarquée, il existe une attaque physique appelée timing attack – Principe: retrouver une information secrète traitée par
la carte en mesurant le temps d’exécution du software qui tourne
– Chaque optimisation qui produit des temps d’exécution dépendant de la valeur des données est potentiellement une faille de sécurité
Exemple: vérification d’un code PIN
• Une donnée secrète est stockée dans la carte
– Ex: un code PIN, 8 octets (caractères)
• Comme un mot de passe sur un PC, l’authentification est basée sur le secret
• Il existe généralement une fonction dédiée:
– Reçoit la valeur de PIN (le challenge)
– Compare le challenge au PIN stocké
– Donne accès si la comparaison est réussie
Comment retrouver le PIN?
• L’attaque ne suppose aucune limite sur le nombre de challenges possibles – Pas réaliste, généralement un compteur enregistre le nombre d’échec
et la carte est bloquée avec 3 essais faux
• Implémentation de l’attaque – Pour chacune des 256 valeurs possibles 𝑛0 de 𝐶[0] (peu importe la
valeur des autres octets) – Mesure 𝜏(𝑛0) le temps d’exécution de chaque commande – Toutes les commandes doivent s’exécuter dans le même temps, sauf
une • Sélectionner 𝜏∗ = max(𝜏 𝑛0
∗ ) • 𝑛0
∗ est le vrai octet du PIN secret 𝑃[0]
– Affecter 𝑛0∗ à 𝐶[0] et itérer sur les octets suivants 𝐶[𝑖]
• Compléxité: – Pire cas: 8*256 commandes – Au lieu de 2568 en recherche exhaustive (brute force)
Contre-mesure pour une timing attack
• Le temps d’exécution des programmes doit être complétement indépendant des valeurs critiques
– Ex: éviter toutes branches conditionnelles dépendant de valeurs sensibles
• Augmente forcément le temps d’exécution Réduit la bande passante
Consommation de courant vs. sécurité
• En général, la consommation instantanée de courant et la dissipation d’énergie totale sont des éléments cruciaux d’objets embarqués – Besoin de courant seulement lorsque des valeurs
changent (CMOS)
• En sécurité embarquée, il existe une attaque physique appelée power analysis attack – Principe: retrouver une information secrète traitée par
la carte en mesurant sa consommation de courant – Ces attaques sont très puissantes et ne demandent
qu’un simple oscilloscope
Consommation de courant
• La grande majorité des systèmes embarqués utilisent la technologie CMOS
• La consommation de courant instantanée de ces systèmes dépend de – L’instruction exécutée – La donnée traitée
• Si la contre-mesure pour le code PIN était implémentée en ajoutant des « NOP » pour équilibrer le temps d’exécution – L’attaquant mesure la consommation de courant et
détecte si une instruction NOP est exécutée ou non
Power analysis attack sur la vérification PIN
• Implémentation de l’attaque – Pour chacune des 256 valeurs possibles 𝑛0 de 𝐶[0] (peu importe
la valeur des autres octets) – Mesure 𝛾(𝑛0) la consommation de courant de chaque
commandes – Toutes les commandes doivent avoir la même consommation
sauf une • Sélectionner 𝜏∗ = 𝜏 𝑛0
∗ la consommation la plus différente des autres • 𝑛0
∗ est le vrai octet du PIN secret 𝑃[0]
– Affecter 𝑛0∗ à 𝐶[0] et itérer sur les octets suivants 𝐶[𝑖]
• Compléxité: – Pire cas: 8*256 commandes – Au lieu de 2568 en recherche exhaustive (brute force)
Contre-mesure pour une power analysis attack
• Très difficile de s’en protéger
– Encore aujourd’hui, il est très difficile de s’en protéger complétement
– Les contre-mesures vont dépendre fortement de l’algorithme à protéger
• Ces contre-mesures ajoutent de la complexité Plus de consommation
Qualité/Fiabilité vs. sécurité
• Un système embarqué doit fonctionner correctement dans la limite de ses caractéristiques (voltage fourni, fréquence d’horloge, température, ...) – Le comportement d’un système en dehors de ces
conditions n’est pas gênant
• En sécurité embarquée, il existe une attaque physique appelée fault attack – Principe: retrouver une information secrète traitée par la
carte en altérant le fonctionnement du système – Ces attaques sont très puissantes et peuvent permettre de
retrouver un secret en analysant seulement quelques pairs d’exécutions correctes/fautées
Effets d’une fault attack
• Une attaque par faute peut affecter
– Le déroulement du programme: instructions modifiées, sautées, ...
– L’intégrité des données: leur valeur change
• Sur des composants non sécurisés contre les fautes, tout types de fautes peut s’appliquer
Contremesure contre une fault attack
• R1=VERIFYSECRET(P,C)
• R2=VERIFYSECRET(P,C)
• 𝑅1 =? 𝑅2
– Si égaux, aucune faute, retourne 𝑅1
– Si différent, faute détectée, retourne code d’erreur
Contre-mesure pour une fault attack
• Protections au niveau hardware
– Détecteurs de tension, lumière, fréquence, ...
• Protections au niveau software
– Redondance, duplication
• Il faut aussi que le composant soit résistant si le système est soumis à des conditions anormales de fonctionnement
Taille mémoire/surface vs. sécurité
• La surface d’un composant est proportionnelle à son coût de fabrication
• On essaye donc d’optimiser au maximum la surface occupée – Aucune attention n’est portée à quelle information est
transférée sur quel niveau de métal
• En sécurité embarquée, il existe une attaque physique appelée probing attack – Principe: retrouver une information secrète traitée par
la carte en utilisant des outils d’analyse de défaillance
Probing attack
• Une des attaques les plus chères à mettre en place
• Idée basique – Manipuler ou lire des signaux sur le composant
pour compromettre la sécurité du système
• Exemple – Placer une sonde directement sur le bus de
données qui va transporter la valeur du secret lors de son utilisation
Résumé
• Il faut distinguer sécurité logique de sécurité physique qui a un impact crucial sur la conception d’un circuit
• La sécurité n’est pas une caractéristique du produit mais un des paramètres de conception
• La sécurité impacte toutes les stratégies d’optimisations classiques, il faut faire des compromis
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Attaques physiques
• Deux critères principaux
• Comportement de l’attaquant – Actif: il agit, modifie le comportement du circuit
– Passif: il observe certains propriétés physiques du circuit
• Degré d’implication de l’attaquant – Invasive: il n’a aucune limite (coûteux)
– Semi-invasive: il peut enlever le packaging mais ne touche pas à la structure interne du circuit (abordable)
– Non-invasive: observe et manipule le circuit sans modifications physiques (très peu coûteux)
Principe d’une attaque active
• Manipuler/Modifier le circuit pour exploiter des faiblesses
• Changer le comportement général du circuit – Activer le mode de test – Désactiver les contre-mesures, détecteurs – Changer le programme (sauter la vérification PIN, etc) – …
• Insérer des fautes dans les calculs crypto – L’attaquant faute l’algorithme pendant son exécution et
récupère le résultat fauté – Il exploite des propriétés mathématiques de l’algo pour
retrouver la clé
Principe d’une attaque passive
• Observer les propriétés physiques du circuit pour retrouver le secret
• Le secret est manipulé par le circuit (lors d’opérations crypto par ex)
• Des informations sur le secret peuvent être observée en surveillant – Le temps d’exécution
– La consommation de courant
– Les émanations électromagnétiques
– …
Attaques physiques principales
Active Passive
Non-invasive Glitching, changement de
température, faible voltage, …
Attaques par canaux cachés (side-channel
attack)
Semi-invasive Attaques par lumière,
radiation, … Attaques EM, inspection
optique
Invasive FIB Probing
Active invasive attack
• Le composant est manipulé et modifié par l’attaquant • Le circuit peut être modifié par un focused ion beam (FIB)
(sonde ionique focalisée) • Equipement très coûteux mais possibilités énormes pour
l’attaquant
Active semi-invasive attack
• Injection de faute (fault attack) – Composant dépackagé et placé sous un microscope – Les transistors peuvent être changés d’état par une
lumière forte et focalisées (laser)
Active non-invasive attack
• Perturber le fonctionnement du composant sans le dépackager
• Glitching – Perturber l’alimentation en courant du composant
pendant son fonctionnement peut provoquer des sauts d’instruction
– Perturber l’horloge extérieure peut provoquer des corruptions de données ou des sauts d’instruction
• Température – Modifications aléatoires dans la RAM – Opérations de lecture erronées dans les NVMs
Passive invasive attack
• Microprobing: – Sonder des signaux sur le composant à l’aide
de microprobes
– Injection de signaux et observation des réactions du composant
– Sert à extraire des clés secrètes ou du contenu de mémoire
Passive semi-invasive attacks
• Attaques side-channel qui demande de dépackager le composant: émanations EM
– Plus coûteux
– Plus précis que la consommation de courant
Passive semi-invasive attacks
• Attaque par émissions optique
– Les transistors émettent des photons lorsqu’ils changent d’états
– De 10−2 à 10−4 photos par changement
– Ces émissions peuvent être détectées par des caméras CCD ou des photomultiplicateurs
Passive non-invavise attacks: side-channel attacks
• Idée: révéler le secret en observant les propriétés physiques du composant
• Timing attack – Mesure le temps d’exécution
• Power attack – Mesure la consommation de courant – Peu coûteux en équipement: un PC avec un oscilloscope et
une petite résistance sur l’alimentation en courant du composant
– Attaque très efficace – Deux méthode basiques: attaque simple (SPA) et
différentielle (DPA)
Fuite d’information
• La consommation d’un composant dépend de – L’instruction exécutée – La donnée manipulée
• Modèles de fuite – Poids de Hamming (HW) de la donnée manipulée à un
instant 𝑡 • 𝑊 𝑡 = 𝛼.𝐻𝑊 𝑑𝑎𝑡𝑎 + 𝛽
– Distance de Hamming (HD) entre la donnée manipulée à l’instant 𝑡 et la donnée précédente du registre • 𝑊 𝑡 = 𝛼.𝐻𝐷 𝑑𝑎𝑡𝑎, 𝑟 + 𝛽 = 𝛼.𝐻𝑊 𝑑𝑎𝑡𝑎 ⊕ 𝑟 + 𝛽
• Le modèle dépends de la technologie de logique utilisée
Simple Power Analysis sur RSA
• Rappels sur RSA • Signature RSA = exponentiation modulaire requiert des
opérations sur des grands entiers • En embarqué, ces opérations sont traitées par un
coprocesseur arithmétique dédié • Signature RSA:
– 𝑠 = 𝑚𝑑 𝑚𝑜𝑑𝑁 • 𝑚 le message à signer • 𝑁 = 𝑝. 𝑞 un grand modulo (> 1024 bits) avec 𝑝 et 𝑞 deux grands
premiers • 𝑑 la clé privée telle que 𝑒𝑑 = 1(𝑚𝑜𝑑 𝑝 − 1 . 𝑞 − 1 ) avec 𝑒 la clé
publique
• But: retrouver 𝑑
SPA sur RSA
Exemple: 𝑠 = 𝑚13 = 𝑚11012 • i=3 (𝑑3 = 1) : 𝑠 = 1 2. 𝑚 = 𝑚 • i=2 (𝑑2 = 1) : 𝑠 = 𝑚 2. 𝑚 = 𝑚3 • i=1 (𝑑1 = 0) : 𝑠 = 𝑚3 2 = 𝑚6 • i=0 (𝑑0 = 1) : 𝑠 = 𝑚6 2. 𝑚 = 𝑚13
SPA sur RSA
• Courbe de consommation d’une exponentiation 𝑠 = 𝑚𝑑𝑚𝑜𝑑𝑁
Conso
temps
Que vaut 𝑑 ? Indice: = élévation au carré
= multiplication par 𝑚
Résumé SPA
• SPA utilise les motifs présents dans l’implémentation qui sont liés aux données sensibles
• Stratégie d’attaque
– Connaître l’algorithme utilisé
– Phase de reverse engineering
Contremesure SPA
• Pas de code conditionnel sur des données secrètes
• Contremesure au niveau algorithme
– Structure du code
– Randomisation des données
• Contremesure au niveau hardware
– Ajouter du bruit
– Désynchronisations
Differential Power Analysis
• La DPA est un moyen d’isoler et d’augmenter l’effet des faibles contributions des bits des données sur un large ensemble de courbes de consommation
• Il est souvent difficile de repérer la différence de consommation entre le traitement de 2 données
Faible contribution d’un bit de donnée
Il est difficile de repérer la contribution des bits de données sur une courbe de consommation
Courbes de consommation pour différentes valeurs de bit
Courbes de différences à la moyenne La consommation semble plus forte lorsque le bit de poids faible vaut 1 plutôt que 0
Augmenter la contribution du bit
• Problème: comparer manuellement la série de valeurs pour le bit par rapport aux courbes de consommation est complexe
• Solution: séparer les traces en 2 ensembles suivant la valeur 𝑏 du bit recherché – Soit 𝑆1 et 𝑆0 les ensembles pour 𝑏 = 1 et 𝑏 = 0 – Toutes les traces de 𝑆1 ont une consommation plus forte lorsque
le bit recherché est traité • Les 2 ensembles 𝑆1 et 𝑆0 sont significativement différents
– Aux autres instants temporels, les ensembles ont à la fois des consommation fortes et faibles • Les 2 ensembles 𝑆1 et 𝑆0 sont similaires
– Moyenne les 2 ensembles et soustraction: • Courbe DPA = 𝑆1 − 𝑆0
Résumé DPA
• La DPA utilise un nombre important de courbes de consommations
• La fonction crypto attaquée est exécutée avec des entrée connues et différentes
• L’attaquant choisit un bit intermédiaire d’une valeur qui dépend du secret (et des entrées)
• Quand ce bit est traité, la courbe de consommation va légèrement dépendre de sa valeur
• En séparant les courbes en 2 ensembles suivant le bit, la différence de leur moyenne montre une différence si (et quand) le bit est traité
DPA sur le DES
• Le Data Encryption Standard (DES) est un chiffrement par bloc symétrique
DPA sur la sortie d’une Sbox: 𝑦 = 𝑆(𝑚⊕ 𝑔) • Cibler 1 bit 𝑏 de la sortie 𝑦 de Sbox • Faire une hypothèse 𝑔 sur la valeur de la sous-clé
𝐾1 hypothèse sur 𝑦 • Obtient une série de valeurs prédites (une valeur par
message – par courbe de consommation correspondante)
• Calcule une courbe DPA entre les valeurs prédites et les courbes de consommation
• Seulement pour la bonne hypothèse, les valeurs prédites correspondent aux courbes
• Pour toutes les 26 hypothèses de la valeur de sous-clé
Contremesure DPA
• Randomiser les données sensibles
• Randomisation de la clé entre chaque calculs – RSA: 𝑚𝑑 𝑚𝑜𝑑𝑁
• 𝜙 𝑁 = 𝑝 − 1 . (𝑞 − 1) : indicatrice d’Euler
• 𝑚𝜙 𝑁 = 1𝑚𝑜𝑑𝑁
• 𝑟 : random
• 𝑚𝑟.𝜙 𝑁 𝑚𝑜𝑑𝑁 = 1 𝑟𝑚𝑜𝑑𝑁 = 1𝑚𝑜𝑑𝑁
• 𝑚𝑑 𝑚𝑜𝑑𝑁 = 𝑚𝑑+𝑟.𝜙 𝑁 𝑚𝑜𝑑𝑁
Sommaire
I. Produits embarqués sécurisés
II. Cryptographie embarquée
III. Attaques logiques et physiques
IV. Basiques du design hardware d’un circuit
V. Optimisation et sécurité
VI. Classification des attaques physiques
VII.Conclusion
Conclusions
• Il n’existe pas de protection absolue
– Avec assez de temps et ressources toute contremesure peut être cassée
• L’objectif en pratique est de rendre un système tellement cher à attaquer que ce n’est plus rentable pour un attaquant
• Domaine en constante évolution
– Protections doivent tenir compte des possibles évolutions du matériel et techniques des attaquants