introduction à la cryptographie...

112
Introduction à la cryptographie embarquée 10 Mars 2014 Alexandre Venelli

Upload: dinhtu

Post on 12-Sep-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Introduction à la cryptographie embarquée

10 Mars 2014 Alexandre Venelli

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

Produits embarqués sécurisés

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 à puce contact

Microprocesseur CPU

EEPROM / Flash

RAM

ROM

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

Acteurs du marché

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

Cryptographie embarquée

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

Attaques logiques et physiques

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

Basiques du design hardware d’un circuit

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

Diagramme de bloc typique d’un circuit

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

Code HDL

Implémentation d’une porte AND c = a AND b

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

Netlist – niveau porte

Netlist – niveau transistor

Implémentation d’un inverseur CMOS Input=0 Output=1 Input=1 Output=0

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

Exemples de layout

Layout d’un inverseur CMOS

Layout d’un circuit complet

Câblage d’une partie d’un circuit en 3D

Fabrication

• Après la création du layout, il est envoyé à l’usine de fabrication

• Technologies courantes:

– 120nm, 90nm

• Taille des wafers

– 200mm, 300mm

Wafer

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

Découpe, Test, Packaging

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

Optimisation et sécurité

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

Algorithme naïf

Comment l’attaquer?

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)

Possible contre-mesure

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

Fault attack sur la vérification de PIN

Compléxité: 1 exécution

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

Classification des attaques physiques

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

Optical side-channel attack

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)

Power Analysis

• Equipement

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

Fuite d’information

Fuite d’information

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 𝑚

SPA sur RSA

S S S S M M S M

( 1 0 0 1 1 )

𝑑 = 19

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

Exemple

𝑠 = 𝑚19𝑚𝑜𝑑𝑁

0/1 ? 0/1 ? 0/1? 0/1? 0/1?

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

Courbe DPA

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é

Schéma DPA

DPA sur DES en vrai

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

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