1. Mouheb SAADI & Raoudha MABROUKI
Année Universitaire 2015/2016
Spécialité : II
Transaction Électronique
Présentation sujet
2. P l a n Introduction
Attaques physique
Reverse engineering
Injection de fautes
Side Channel Attack
Espionnage par micro-sonde Micro probing
Espionnage de bus de communication
Physical Tamper Resistance
Architecture d’une Carte à Puce
Processeur Cryptographique
Architecture du Processeur Cryptographique
Fonctionnement du Processeur
Type de Processeur Cryptographique
Protection d’un Processeur
Trust Plateforme Module
Conclusion
3. Introduction (1/2)
3
Attaques possibles sur chaque
élément
Logiciel Réseau Matériel
Calcul : micro-controller,
micro-processor, SoC
Stockage : ROM, RAM
Communication : bus,
I/O,UART, I2C, Wifi, JTAG
avoir un accès (physique ou à distance) à ces composants
Visent
4. • Ces attaques sont possibles non pas à cause de problèmes dans l’algorithme de
cryptographie lui même mais à cause des propriétés de son support d’exécution
(processeur, ASIC dédié, FPGA...)
• Développement trop rapide
• Implémentation partielle de certains protocoles
• Utilisation d’algorithmes moins robustes
à cause des contraintes de taille, de performance (y compris l’aspect temps réel),
4
Introduction (2/2)
5. Exemple des matériels vulnérables
• Carte bancaire qui contient des secrets de la banque émettrice,
• Carte SIM qui contient des secrets de l’opérateur,
• Set-top box qui contient des secrets liés à la gestion des droits (DRM)
5
6. Exigences d’une Attaque Physique
• Connection ou signaux, fils …
• Equipment, outils, compétences,
• Connaissances
• Matériel, Algorithmes cryptographiques, Analyse des données.
6
1- Interaction : l’attaquant étudie les caractéristiques du dispositif
2- Exploitation: analyser les informations et documentation trouver sur le dispositif
8. Types d’Attaques physique
Rétro-conception de composant / reverse engineering
Injection de fautes
Analyses des canaux auxiliaires (Side-Channel Analysis)
Attaque par sonde Micro-probing
Espionnage des bus (mémoire, bus interne...)
8
9. Reverse engineering Attack (1/3)
• Attaque intrusive
• Objectif : Obtenir le schéma du composant pour,
• Comprendre un algorithme secret implémenté en matériel
• Lire le contenu d’une ROM interne
• Ou la contrefaçon
9
10. Reverse engineering Attack (2/3)
Example : MIFARE’s CRYPTO1
• Carte sans-contact (RFID) contenant de la mémoire non volatile et un algorithme
d’authentification secret (Crypto-1) pour en protéger l’accès.
• Méthode
• Découpage du circuit en fines tranches
• Photographie de chacune des tranches
• Reconstruction du schéma
10
12. Injection de fautes
• Attaque non intrusive ou intrusive en fonction des cas;
• Objectif : Perturber le bon fonctionnement du système pour lui faire commettre des erreurs
• Conséquences : Désactivation de protection (ex. vérification d’un code PIN)
• Obtention d’informations secrètes : ex. récupération d’une clé secrète RSA en injectant une faute ,
• Méthodes très variées
• Variations de la tension d’alimentation,
• de l’horloge, de la température de fonctionnement du circuit
• (pour obtenir une violation d’un chemin critique du circuit ou une erreur d’écriture en mémoire)
• Bombardement du circuit avec des particules énergétiques (flash de lumière, laser, particules radioactives ou )
12
13. Side Channel Attack (1/7)
• Attaque non intrusive
• Objectif : Obtenir des informations sur les données
• manipulées par un circuit (vise la propriété de confidentialité)
• Exemple : Trouver une clé secrète embarquée dans un composant cryptographique (carte
à puce, ASIC, FPGA...)
• Méthode : Observer les canaux auxiliaires (ex. consommation d’un circuit, temps
nécessaire pour effectuer le calcul, rayonnement électromagnétique émis, etc.) du
composant dont l’activité peut être corrélée aux données sensibles manipulées
13
14. Side Channel Attack (2/7)
Timing attacks Power analysis
Simple Power
Analysis SPA
Differential
fault analysis
DPA,
Complex
Power
Analysis CPA
14
15. Side Channel Attack (3/7)
Power Analysis
• Consommation dynamique principalement liée au chargement des
capacités en sortie et des capacités parasites.
• Donc la consommation d’un circuit est liée au nombre de portes
changeant d’état.
• Transistors émettent des photons quand ils changent d’états
15
16. Side Channel Attack (4/7)
Power Analysis
• Simple Power Analysis (SPA)
• L'attaquant observe la consommation d'énergie
• Varie selon l’opération du microprocesseur
• Facilite l'identification des fonctions intensives ( ex.: cryptographic)
• Differential Power Analysis (DPA)
• Utilisation des méthodes avancés mathématiques pour déterminer l'information secrète
sur un appareil,
16
17. Side Channel Attack (5/7)
Simple Power Analysis
• Technique d'attaque physique consistant a extraire de l'information
secrète a partir de la mesure et de l'analyse du courant consommé lors
de l’exécution d'un calcul cryptographique.
17
18. Side Channel Attack (6/7)
Differential Power Analysis
• Technique d'attaque physique consistant a mettre en évidence une Différence
de consommation moyenne,
• en fonction de la valeur d'un bit d'une donnée manipulée.
18
19. Side Channel Attack (7/7)
Analyse de Consommation CMOS
• La consommation globale d’un circuit CMOS est principalement liée aux
commutations des portes logiques.
• Donc en observant la consommation d’un circuit, on peut en déduire son
activité,
• Or, le nombre de portes logiques qui changent d’état est lié aux opérations
effectuées ainsi qu’aux données manipulées
• Donc en observant la consommation d’un circuit, on peut en déduire de
l’information sur les opérations effectuées et les données manipulées
• Donc on peut obtenir de l’information sur le secret (clé)
19
20. Espionnage par micro-sonde Micro probing
• Attaque intrusive
• Permet par exemple de lire les données circulant sur un bus interne
(clés de chiffrement, données en clair, etc.)
• Limitations : Permet de lire que quelques fils en même temps et
seulement sur le niveaux de métallisation supérieurs.
20
21. Espionnage des bus de communication
• Attaque non intrusive
• Attaque MITM (Man-In-The-Middle) sur les entrées/sorties d’un système.
• Contremesure :
• Brouillage de bus (Bus scrampling )
• Chiffrement des Bus ( Bus enryption)
• Le contenu de la mémoire est chiffré puis envoyé à l'unité centrale à travers les Bus
• Avant d’utiliser les données par l’unité centrale, il est décrypté,
21
Crypter les bus
Brouillage de Bus
22. Simple Power Analysis
• Technique d'attaque physique consistant a extraire de l'information
secrète a partir de la mesure et de l'analyse du courant consommé lors
de l‘ exécution d'un calcul cryptographique.
22
23. Differential Power Analysis
• Technique d'attaque physique consistant a mettre en évidence une Différence
de consommation moyenne, en fonction de la valeur d'un bit d'une donnée
manipulée.
23
24. Analyse de Consommation CMOS
• La consommation globale d’un circuit CMOS est principalement liée aux
commutations des portes logiques.
• Donc en observant la consommation d’un circuit, on peut en déduire son
activité,
• Or, le nombre de portes logiques qui changent d’état est lié aux opérations
effectuées ainsi qu’aux données manipulées
• Donc en observant la consommation d’un circuit, on peut en déduire de
l’information sur les opérations effectuées et les données manipulées
• Donc on peut obtenir de l’information sur le secret (clé)
24
25. Espionnage par micro-sonde (Micro probing)
• Attaque intrusive
• Permet par exemple de lire les données circulant sur un bus interne
(clés de chiffrement, données en clair, etc.)
• Limitations : Permet de lire que quelques fils en même temps et
seulement sur le niveaux de métallisation supérieurs.
25
26. Tamper Protection (1/3)
• Les anciens équipements:
• Les fusibles de la sécurité sont placé séparément de la mémoire
Très facile de les localisés et de les battre !
• Les fusibles de la sécurité sont embarqués dans la mémoire
Très difficile de les localisés et de les battre ( technique utilisée dans les smartcards)
• Ne pas utiliser des bloc qui peuvent être identifiés facilement
26
27. Tamper Protection (2/3)
• Changement de la fabrication des Chips :
• Utilisation des blocs des couches multiples pour bloquer l’accès
directe
• Utilisation des transistors de très petit taille
• Fonctionnement à haute fréquence avec faible consommation
27
28. Tamper Protection (3/3)
• Autres techniques :
• Protection de l’accès à la mémoire
• Utilisation des crypto coprocesseurs
• Utilisation des capteurs de changement de la voltage, la fréquence et la
température
• Stabilisation de consommation pour toute les opérations effectués.
• Utilisation d’une couche en métal en haut
28
30. Architecture d’une Carte à Puce (1/3)
• Un microprocesseur : de 8, 16 ou 32 bits suivant l’application ciblée,
• La ROM (Read Only Memory) : Les données contenues dans cette mémoire sont
conservées même lorsque la carte n’est pas alimentée. Cette mémoire sert
généralement à stocker le système d’exploitation ainsi que diverses applications.
• L’EEPROM (Electrical Erasable Programable Read Only Memory) ou la Flash.
Elle sert à contenir, les données spécifiques au propriétaire de la carte. Comme
30
32. Architecture d’une Carte à Puce (3/3)
• La RAM (Random Access Memory) :Elle est considérée comme l’espace de travail utilisé par les
applications pour manipuler leurs données. La RAM est une mémoire volatile, c’est-à-dire que les
données qui y sont stockées sont effacées dès que la carte n’est plus alimentée.
• Les crypto-processeurs : Ils sont dédiés aux opérations cryptographiques symétriques et
asymétriques (RSA et AES )
• Un générateur de nombre aléatoire : Les nombres aléatoires sont utilisés, en cryptographie pour
la génération de clefs de chiffrement.
• Différents détecteurs (intrusion, lumière, etc...) visant à signaler une attaque
32
33. Protection d’une Carte à puce
• La carte à puce doit obligatoirement garantir des propriétés de sécurité
(confidentialité, intégrité...)
• Carte à puce bancaire : contient un secret (clé cryptographique)
permettant d’identifier le titulaire du compte
• Cette clé ne doit pas sortir de la puce même si la carte tombe entre les
mains d’un adversaire (voleur).
33
36. Architecture d’un System-on-Chip (SoC)
• Intégration sur la même puce électronique
• Un ou plusieurs cœurs de processeur (ARM, MIPS, etc.)
• Mémoires (eDRAM, flash, etc.)
• Périphériques (contrôleur mémoire externe, bus de communication, etc.)
• Unités de traitement dédiés (DSP, accélérateur, cryptographique, traitement vidéo,
etc.)
36
37. Processeur Cryptographique
• Accélération de chiffrement
• Protection contre les attaques physique et logique
• Détection des Intrusion
• Protection des données
• Sécuriser les i/o
• Pour une exécution sécurisé des processus,
37
38. Processeur Cryptographique
• Le principe de base d’un crypto-processeur est d’intégrer des fonctions de
cryptographie (chiffrement, signature numérique, gestion des clés)
directement à l’intérieur d’un microprocesseur classique.
• Son but est de résister à toute attaque physique ou logicielle, par exemple :
• sur les bus de données et d’adresses,
• sur la mémoire (modification du programme ou de ses données)
• ou sur le processeur lui-même
38
39. Fonctionnement du processeur
• Comme les algorithmes de chiffrement asymétriques sont lents, les
crypto-processeurs utilisent des algorithmes mixtes :
• le producteur génère une clé de session symétrique, chiffre son programme
avec cette clé puis chiffre la clé avec la clé publique du processeur.
• Ce dernier récupéré la clé de session à l’aide de sa clé privée puis déchiffre le
programme.
39
40. Fonctionnement du processeur
• Comme la mémoire interne au processeur est généralement trop faible pour stocker
les données du programme, celles-ci sont envoyées en mémoire.
• La mémoire étant supposée accessible par un adversaire, les données sont chiffrées
avec une clé de session spécifique au programme avant d’être stockées en mémoire
et déchiffrées lors de la lecture.
• Comme la clé utilisée pour chiffrer les données est différente d’un programme à un
autre, seul le processus propriétaire des données peut les lire. Il est également
nécessaire de mettre en place des algorithmes pour prévenir les modifications du
contenu de la mémoire par un adversaire 40
41. Fonctionnement du processeur
• Un crypto-processeur va donc gérer en interne une table contenant la liste des
processus chiffrés qu’il est en train d’exécuter avec leur clé de session
correspondante.
• Interruption :
• Lors d’une interruption, le processeur sauvegarde son état interne comme normalement
mais en plus, il le chiffre avec sa clé privée afin que le système d’exploitation n’y ait pas
accès.
• De plus, il efface les valeurs des registres pour ne pas divulguer d’informations sensibles.41
43. Types de Processeur Cryptographique
• Les algorithmes cryptographiques sont implémentés sur des processeurs type:
• Double Encryption Processor
• GPP (General Purpose Processor) example (Intel Pentuim)
• Vulnérables au attaques physique et logiciel,
• ASIC (Application Specific Integrated Circuit)
• Coût de fabrigation
• Temps d’exécution rapide
• FPGA (Field Programmable Gate Array)
• Rapidité de calcul cryptographique
• Flexible et Reconfigurable (cas d’évolution des algorithmes)
• Des protocoles de cryptographie, ou même des algorithmes peuvent changer dans le temps. afin de conserver le matériel en
conformité aux nouveaux besoins protocolaires, la reconfigurabilité est nécessaire. 43
44. Processeur double encryption
• Addition de multiples crypto block dédié
• Blocks parallèles avec les bus data.
• Les instructions sont pas sécurisés
• solution idéal pour les routeurs du réseau
44
46. Sur ASIC : HCrypt
• HCrypt (specific-purpose processor)
• Optimisé pour exécution d'algorithmes cryptographiques qui supporte
la gestion des clés secrètes.
• Architecture de séparation des zones est appliqué pour tous autres
crypto-processor
46
48. Sur FPGA : IBM 4765
• Algorithme Rivest-Shamir-Adleman (RSA), pour la génération et la vérification de
signatures numériques avec des clés jusqu'à 4 096 bits
• SHA, MD5 et Hash-based Message Authentication Code (HMAC) à haut-débit,
• Triple-DES, Single-DES et Advanced Encryption Standard (AES) basés sur le chiffrement, pour une
sécurité et une confidentialité de l'intégrité des données, incluant les clés sécurisées AES (AESKW)
conformes à ANS X9.102
• Elliptic Curve Cryptography (ECC) pour les signatures numériques et la négociation de clé
• Applications de carte à puce et traitement du code PIN (Personal Identification Number)
• Heure du jour sécurisée
• Mise à jour de l'application Common Cryptographic Architecture (CCA) en parallèle des traitements
48
49. Sur FPGA : IBM 4765 PCI-X
49
Moteur de Cryptage
Détection d’attaque physique
une heure du jour sécurisée
un générateur de nombres
aléatoires cryptographique,
AES, DES,
50. Sur FPGA : IBM 4765 PCI-X
• Il peut être configuré sur mesure afin de s'adapter à des contraintes
précises :
• Telles que celles liées à un volume de transactions,
• un guichet automatique (ATM), des applications de terminaux de
points de vente (POS), que ce soit dans le cadre du secteur bancaire,
financier ou dans celui du commerce de détail.
50
51. Niveau de sécurité
• Vulnérable
• Microcontrôleurs utilisant 3DES, AES
• RFID
• Sécurité endurcie
• ASIC
• Carte à puce
• Moins vulnérable
• Hardware Security Modules : ATM, les serveurs de données ,
51
52. Trust Plateforme Module TPM
• Module de confiance de plate-forme
• Ensemble de spécification pour un crypto-processeur et implémentation de ses
spécifications sur une puce.
• Boot process integrity
52
54. Protection d’un processeur
• Réduire le signal du processeur pour que les signaux soit difficile à prélever,
• Ajouter du bruit pour rendre encore plus difficile le prélèvement des signaux,
• Supprimer le timing pour être moins sensible à l’injection de signaux,
• Modifier l’ordre des opérations (NOP) pour une même action,
• Mettre des capteurs de lumière, de tension, de température pour détecter les
attaques,
54
55. Conclusion
• Principe d’un attaque Physique et ces contremesure
• Le processeur cryptographique comme exemple de solution
• Intégré la sécurité dans la conception des SoC
• Sécurisé le design des circuits
• ’intégration des fonctionnalités de sécurité au cœur du matériel couche
matérielle dédiée.
55
56. R é f é r e n c e s
• C. McIvor, M. McLoone, J.V. McCanny, Fast Montgomery modular multiplication and RSA cryptographic
processor architectures, in37th IEEE Asilomar Conference on Signals, Systems, and Computers, 2003
• M. McLoone, J.V. McCanny, A single-chip IPsec cryptographic processor, inIEEE Workshopon Signal
Processing Systems, 2002
• Securite des systemes embarques Marie Lise Flottes, LIRMM, Giorgio Di Natale, LIRMM, Guy Gogniat,
Lab-STICC Acteurs académiques français
• Hardware Cryptographic Coprocessor Peter R. Wihl Security in Software
• Physical attacks and Tamper Resistance Sergei Skorobogatov
• Hardware Engines for Bus Envryption : a Servey of Existing Technique R,Elbaz, C,Anguille
56