Attaques en fautes.

Slides:



Advertisements
Présentations similaires
Techniques dattaques des microcircuits par pénétration partielle Bruno Kérouanton – Resp. SNT - CISSP.
Advertisements

Systèmes d ’Information :
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
© Tous droits réservés. Toute reproduction totale ou partielle sur quelque support que ce soit ou utilisation du contenu de ce document est interdite.
Vue d'ensemble Implémentation de la sécurité IPSec
GRADATEUR Les gradateurs sont des convertisseurs statiques qui assurent une modulation d’énergie alternatif FIXE Alternatif Variable PRINCIPE A l’aide.
Thème « Modélisation comportementale des Systèmes critiques »
Architecture de machines La mémoire
Améliorer les performances du chiffrage à flot SYND
Applications de la mécanique quantique: La Cryptographie Quantique
Mise en œuvre et commande d’un moteur piézo-électrique
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Exercices sur la conception de processeurs
CEM en Électronique de Puissance
Cours d’Automatique MASTER OIV
Cryptographie Mener des Activités en classe
Réglage et protection des réseaux électriques
L'algorithme Blowfish.
CryptoGraphy
Les besoins en CAN pour les applications d'imagerie
L’ordinateur Quantique : Théorie & Applications
Chapitre 2 : La fonction de transfert
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
Architecture des Ordinateurs
LES MEMOIRES.
Les Algorithmes Cryptographiques Symétriques
Cryptographie Réalisé par TOUJENI Noura BEN SOUISSI Rania KARAOUD Imen
Dynamique des Systèmes Asservis
Réalisé par: Jihen THOUIR Imen JENDOUBI Meriam BEN SALHA Marwa LAZHAR
ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration = Optimisation Louis-Martin Côté Professeur : A. Khouas.
Chapitre 2 Les ondes mécaniques
Journées Techniques Routes 2013 Nantes – 6 & 7 février 2013
Cryptographie - 2.
Le chiffrement asymétrique
Le chiffrement symétrique
DU1 Sécurité : DU Commerce Electronique Michel de Rougemont Université Paris II Les systèmes à clé publique: RSA.
La sécurité dans les réseaux mobiles Ad hoc
Chapitre 3-B : AUTOMATIQUE : LES S.L.C.I.
Tenue aux radiations des composants Logiques et Interfaces
Le protocole d’authentification
Les Algorithmes Cryptographiques Asymétriques
PROJET N°17 : Safe Elec Le Système D.A.L.. PROJET N°17 : Safe Elec D.A.L : un système de sécurisation Projet E.D.F. : sécurisation de dispositifs électriques.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Le problème du déphasage.
Caractérisation de l’interaction du champ électromagnétique avec un environnement forestier dans les bandes VHF et P. H. Roussel 1, H. Nguyen 1, Y. Ziadé.
Les systèmes mono-puce
Attaque du protocoles RSA Yoann Moulin ESISAR IR - P2004
Pr BELKHIR Abdelkader USTHB
Développements récents à l’ E.S.R.F.
J-L Lemaire CEA-DIF/DPTA et le groupe d’étude RX2RF
Chapitre 5 : Les circuits séquentiels
Plusieurs techniques ont été expérimenté. Différentes modulations ont été étudiées et testées. Un setup expérimental a été mis en place. Les résultats.
Construction d'une hiérarchie mémoire faible consommation
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Lignes Faisceau – F. Varenne - 06/10/03Page 1 SFP - Porquerolles 2003Résumé.
Mathématiques Discrètes Chapitre 2 (section 3)
Mai 2005 Ghislain Fraidy Bouesse TIMA-CNRS-INPG-UJF 46 Av. Félix Viallet Grenoble Cedex France CIS group "Concurrent Integrated Systems" Les Circuits.
1/16 Chapitre 3: Représentation des systèmes par la notion de variables d’état Contenu du chapitre 3.1. Introduction 3.2. Les variables d’état d’un système.
Scan-Chain Attack.
ELE6306 : Test de systèmes électroniques Test intégré et Modèle de faute de délai Etudiante : S. BENCHIKH Professeur : A. Khouas Département de génie électrique.
Les attaques Physical Attacks : Principles Courtesy E. Oswald, Univ Bristol a q I(R) Physical Attacks : Principles.
Réalisation d’un logiciel de Chiffrement RSA.
Afin d'obtenir des particules à des énergies plus élevées, les performances des accélérateurs conventionnels progressent en affichant de plus en plus d’efficacité.
NOUVELLES TECHNOLOGIES APPLIQUEES A LA SECURITE
L3 Instrumentation Pétrolière S6
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
Les bascules et registres
A.Lebrun. Principe des compteurs Les compteurs servent à mesurer le nombre d’impulsion qui arrivent sur l’entrée de comptage Les compteurs sont constitués.
Chap.V RSA. I. Rappels Mathématiques La congruence Définition 1 a et b sont congrus modulo n s’ils ont même reste par la division par n. On note a≡b[n]
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

Attaques en fautes

Attaques en faute ? Vcc, clk, T, flash, laser X, UV, etc… Syndrome : clair ? X Vcc, clk, T, flash, laser X, UV, etc… Déroutement de programme Calculs incorrects (DFA) Déclenchement d’alarmes (Safe error) Il s’agit de “secouer” le composant avec divers moyens com… On obtient de deroutement de programme. Cela permet par exemple de contourner un test (comme la vérif d’un code pin) ou de réduire le nombre de rondes d’un algorithme de crypto et donc de l’affaiblir. Il est egalement possible de recuperer des infos sur les clefs par comparaison entre les résultats de calcul crypto avec ou sans fautes. Mais plus subtil encore d’obtenir des infos simplement à partir du comportement du circuit en présence de fautes. Tests Réduction de rondes Syndrome : Le fonctionnement du circuit peut être perturbé par la modification de son environnement

Attaque sur le RSA

Devinette (un peu de maths) Soient des objets en nombre x inconnu. Si on les range par 3 il en reste 2 Si on les range par 5, il en reste 3 et si on les range par 7, il en reste 2 Combien a-t-on d'objets ?

Les restes chinois n1, n2, ….., nk premiers entre eux 2 à 2 Soit n = n1 . n2 . … . nk Soit le système : x = a1 (mod n1) x = a2 (mod n2) …….. x = aj (mod nk) n1,n2,….,nj ,a1, a2, …., aj, connus Théorème : Il existe une solution unique (modulo n) avec x = ∑ ai*ei avec ei = ki * (ki-1 (mod ni)) et ki= n/ni Soient des objets en nombre x inconnu. Si on les range par 3 il en reste 2 Si on les range par 5, il en reste 3 et si on les range par 7, il en reste 2

Exemple x = 2 (mod 3) => k1 = (3*5*7)/3 = 35 Soient des objets en nombre x inconnu. Si on les range par 3 il en reste 2 Si on les range par 5, il en reste 3 et si on les range par 7, il en reste 2 x = 2 (mod 3) => k1 = (3*5*7)/3 = 35 x = 3 (mod 5) => k2 = (3*5*7)/5 = 21 x = 2 (mod 7) => k3 = (3*5*7)/7 = 15 on obtient n1 = 3 et k1 = 35 => k1-1 (mod 3) = 2 puisque 2*35 =1 (mod 3) n2 = 5 et k2 = 21 => k2-1 (mod 5) = 1 puisque 1*21 =1 (mod 5) n3 = 7 et k3 = 15 => k3-1 (mod 7) = 1 puisque 1*15 =1 (mod 7) une solution pour x est x=2*35*2 +3*21*1+2*15*1 = 233 (mod 105) et les solutions sont tous les entiers congrus à 233 modulo 105, c'est-à-dire à 23 modulo 105. x = 23 ou 23+105 ou 23+105+105 ou …

Rappel : RSA Cryptographie à clé « privée » cryptage symétrique Clé petite (128 bits), chiffrement rapide Chiffrage Déchiffrage Canal Emetteur Récepteur hello fidjr Cryptographie à clé « publique » cryptage asymétrique 2 grandes clés (512 à 1024 bits) : 1 publique connue de tous 1 privée pour déchiffrer Chiffrage Déchiffrage Canal Emetteur Récepteur hello fidjr

Rappel : RSA Cryptographie à clé publique RSA (Rivest, Shamir, Adleman, 1977) Le Récepteur génère les clés: Il prend deux grands nombres premiers p et q gardés secrets clé "publique": - n = p*q - (n)=(p)(q)= (p-1)(q-1) - Soit a premier avec (n) - b = a-1 mod (n) par l’algorithme d’Euclide étendu il faut que (a.b) mod (n) =1 clé "privée" : a (élément inversible )

Soit x le message à chiffrer ( x < n ) Rappel : RSA Exemple: Récepteur génère les clés Soit p = 9767 , q = 12347 , (p et q premiers), n = p*q = 120593149 (n) = (p-1)(q-1) = 120571036 a = 17345973 et b = a-1 mod (n) = 7013393 On a bien (a . b) mod (n) = 1 Récepteur publie ( b , n ) = ( 7013393 , 120593149 ) clé privée» clé publique» Soit x le message à chiffrer ( x < n ) Emetteur Récepteur y = xb mod n z = ya mod n Clé publique Clé privée

Récepteur reçoit Y et calcule Z = 1240905817345973 mod 120593149 Exemple clé privée» clé publique» Emetteur chiffre le message : « hello » et le découpe en blocs de 24 bits 24 bits X = (01101000 01100101 01101100)2 = (6841708)10 Y = 68417087013393 mod 120593149 = 12409058 Récepteur reçoit Y et calcule Z = 1240905817345973 mod 120593149 Z = 6841708 = 104*2562 + 101*256 + 108

RSA-CRT n = p * q , p et q premiers (rôles des n1 et n2 du CRT) Soit à calculer S = xb (mod n) CRT : But = accélérer le calcul avec des modulo plus petits On calcule S1 = xb (mod p) (S1 joue le rôle du a1 précédent, p celui du n1) S2 = xb (mod q) (S2 ………………………………., q celui du n2) k1 = q , k2 =p En appliquant le résultat du théorème (restes chinois)

RSA-CRT archi α xb (mod p) xb (mod q) x S1 S2 β xd (mod n)

Attaque : phase 1 α β α β S1 xb (mod p) x S = xd (mod n) xb (mod q) S2 On code 2 fois le même message, un fois sans faute, une fois avec faute. S1 ≠ S1* S2 = S2*

Attaque : phase 2 En d’autres termes : p et q premiers, n = p*q q divise (S-S*) et p ne divise pas (S-S*) Donc PGCD (S-S*, n = pq) = q On a n, S et S*, on en déduit q, on en déduit p. On a tout

Exercice n = 35 = p*q (imaginez à la place, un très grand nombre n produit de 2 nombres premiers), b =11 Trouver p et q ( 5 et 7 ici évidement) Soit x = 4 à coder càd calculer S = 411 (modulo 35) Sans erreur : p=5, p-1 mod 7 = 3 => α = 3*5 = 15 =1 mod 7 q=7, q-1 mod 5 = 3 => β = 7*3 = 21 =1 mod 5 α = 3*7 =21 β = 3*5 =15 S1 = 411 (modulo 5) = 4 S2 = 411 (modulo 7) = 2 S = 4 * 21 + 15 * 2 (modulo 35) = 114 (modulo 35) = 9

Exercice 21 15 21 15 S1 = 4 411 (mod 5) 4 S = 114(mod 35) = 9 xd (mod p) 411 (mod 7) 4 S1*= 3 S2 =2 15 S* = 93(mod 35) = 23

Récapitulatif Connus n = 35 =p*q S = 9 S*= 23 PGCD (23-9, 35) = PGCD (14, 35) = 7 = q 35 = p *7 => p = 5

Attaque : conditions Les conditions de l’attaque : Pouvoir crypter 2 fois le même message (qui est quelconque) Pouvoir injecter une erreur dans un seul des deux calcul d’exponentiation Pas d’hypothèse sur le type d’erreur !

Les attaques sur l'AES Giraud (Oberthur Card System) 2003 Attaque sur un bit sur entrée dernier SubBytes Attaque sur KeySchedule (K9, K8) puis datapath (M8) Chen et Yen 2003 Attaque sur KeySchedule (K9, 2 fois K8) Contre-mesures présentées Attaques sur datapath (MixColumns) Dusart, Vivolo et Letourneux 2003 Piret et Quisquater 2003 Safe error (Blömmer et Seifert) 2003 Attaque bit 2 attaque octet Implémentation xtimes

Les attaques sur l'AES Giraud (Oberthur Card System) 2003 : Attaque sur un bit sur entrée dernier SubBytes

L’attaque bit de Giraud Faute : On attaque 1 bit sur un octet avant le dernier SubBytes L'octet est faux à la sortie Attaque : On réalise deux exécutions, une normale et une fautée, avec le même texte clair non connu On xore les deux résultats, un seul octet diffère La position de l’octet nous donne l'octet sur lequel l'attaque a eu lieu (InvShiftRows) On fait des hypothèses sur le bit faux, on calcule les candidats On réalise d’autres exécutions si besoin pour départager les candidats Fautes requises : moins de 50 pour la clé complète

Mise en œuvre des attaques en fautes Par perturbation de la tension d’alimentation Par perturbation de l’horloge Par perturbation de la température Attaques Électromagnétiques Injection laser Injection de particules Les attaques en faute exploitent les propriétés physiques des circuits et consistent à perturber le déroulement du calcul d’un algorithme, en perturbant soit sa tension d’alimentation, son signal d’horloge, ou en introduisant volontairement des fautes pendant son exécution à l’aide d’un faisceau laser par exemple

Techniques d’injection de fautes non invasives. Revue expérimentale des techniques d’injection de fautes Introduction. Mise en perspective - Problématique Techniques d’injection de fautes non invasives. Théorie (violations de setup et de délai) Réalisations expérimentales Techniques d’injection de fautes semi-invasives. L’injection laser (effet photoélectrique) Injection mono octet Conclusion

Technique d’injection Introduction Technique d’injection Partie expérimentale Chiffrés fautés, side channels, comportement, etc. Méthodes Réduction nb. rondes Analyse différentielle de fautes Safe error Modèle de faute Instant d’injection Bit /Octet Random / Given value Extraction informations La technique d’injection employée doit permettre l’injection de fautes respectant le modèle de faute requis.

Attaques non invasives : ne requérant pas l’ouverture du boîtier. Impulsion EM Over clocking Clk “glitch” Augmentation de T° Modification de Vdd Vcc “glitch” d’alimentation

Contrainte temporelle des circuits synchrones. Logique conbinatoire 1 1 DpMax 1 1 data D Q D Q Dffi Dffi+1 DclkQ clk Tclk + Tskew - su data arrival time = DclkQ + DpMax data required time = Tclk + Tskew - su Tclk > DclkQ + DpMax - Tskew + su

Injection de faute par violation de temps de setup / délai Overclocking. Approche classique : décroissance progressive de Tclk jusqu’à obtenir une violation de temps de setup. Tclk’ < DclkQ + DpMax –Tskew + su < Tclk Tclk clk DclkQ + DpMax - Tskew + su Tclk’ clk’

Injection de faute par violation de temps de setup / délai Temps de propagation – Chemin critique sorties = f (entrées) délai f fonction logique D0 Logique n D1 m chaque Di possède son propre temps de propagation combinatoire Dm-1 entrées sorties Localisation des fautes : délai > Tclk’ – setup time – DclkQ + Tskew Chemin critique = max des tps de propagation Le temps de propagation dépend : des niveaux logiques ( 0 / 1 ) permet de modifier l’endroit d’injection → le temps de propagation change avec les entrées de la tension d’alimentation de la température

Injection de faute par violation de temps de setup / délai Overclocking (suite). limitation : injection de fautes potentiellement à chaque cycle d’horloge. Glitch d’horloge – Modification locale d’une période. clk Tclk Tclk - T clk’ DpMax + su Choix du cycle d’injection. Contrôle fin de la nature des fautes injectées (T = 35 ps).

Injection de faute par violation de temps de setup / délai Dispositif expérimental COM série trigger Clock AES generation board board COM série clock

Injection de faute par violation de temps de setup / délai Cible : AES matériel. Registre en entrée du SubBytes Architecture en boucle (i.e. chemin critique)  Enrique Zabala - Universidad ORT/Montevideo/Uruguay

Résultats expérimentaux Injection en ronde finale (fclk, nom = 100 MHz) Diminution progressive de Tclk (T = 35 ps) 16 15 14 13 No fault 12 One-bit fault 11 10 Two-bits fault Byte nb. 9 Other fault 8 7 6 5 4 3 2 1 350ps 5485ps 7585ps D1 3 bits fautés D2 Pas de faute Octet n°7 D3 2 bits fautés D4 D5 D6 D7 1 bit fauté D8 Tclk-T Tclk = 10000 ps Tclk-T

! Résultats expérimentaux Glitch d’horloge. Accès CLK requis Contrôle de la focalisation : excellent Faute mono-bit > 90% Fautes 1 puis 2 bits > 70% Fautes 1,2 puis 3 bits > 50% Contrôle de l’instant d’injection : total (choix du cycle) Type de fautes : aléatoire Facilité d’emploi : aisée (plateforme numérique) Coût : faible (<1000 €)

Résultats expérimentaux Glitch d’horloge. No fault One-bit fault Contrôle de la localisation : par variation du texte clair Two-bits fault Other fault 16 15 14 Octet 14 13 12 11 10 9 8 7 6 5 4 3 2 1 350ps 5240ps 7340ps 16 15 14 Même clef Texte clair différent 13 12 11 10 9 8 7 6 5 4 Octet 4 3 2 1 5485ps 7585ps

Résultats expérimentaux Glitch d’horloge. Résultats obtenus pour 12000 essais : 58 41 60 37 Contrôle de la localisation : possible (dépendant de l’implémentation)

Revue expérimentale des techniques d’injection de fautes Glitch d’horloge. Reproductibilité : bonne (mais non absolue)  180 ps pas de faute setup délai

   Injection de faute par violation de temps de setup / délai Injection de faute par diminution de la tension d’alimentation. (à fréquence nominale) Tension d’alimentation   ( DclkQ, su, Tskew  )  DpMax Tclk < DclkQ + DpMax - Tskew + su Injection de fautes à chaque cycle d’horloge DpMax + su + slack DpMax + su + slack Logique combinatoire D0 D0 D0 D0 Logique Logique n n D1 D1 D1 D1 m m m m entrées combinatoire sorties sorties Dm-1 Dm-1 Dm-1 Dm-1 Tclk

Injection de faute par violation de temps de setup / délai Injection de faute par diminution de la tension d’alimentation. Evolution du temps critique avec la tension d’alimentation : picoseconds Tclk 1ère faute vers 1,07 V

Injection de faute par violation de temps de setup / délai Glitch d’alimentation (à fréquence nominale) time voltage VDD nominal Injection de faute durant le glitch choix du cycle d’injection VDD nominal voltage Même mécanisme pour un glitch sur la masse (ground bounce) Gnd bounce time

Injection de faute par violation de temps de setup / délai Augmentation de la température (à fréquence nominale)

  Injection de faute par violation de temps de setup / délai Augmentation de la température (à fréquence nominale) DpMax  ( DclkQ, su, Tskew  )  1ère faute vers 210 °C

Mécanisme d’injection similaire. Revue expérimentale des techniques d’injection de fautes Injection de faute par violation de temps de setup / délai : Overclocking. Glitch d’horloge. Injection de faute par diminution de la tension d’alimentation. Glitch d’alimentation. Augmentation de la température. Mécanisme d’injection similaire. Validation expérimentale de l’identité des fautes injectées.

Revue expérimentale des techniques d’injection de fautes Attaques semi-invasives : ouverture chimique/mécanique du boîtier. Techniques d’injection optique [Sko02] : flash, Laser. [Sko02]

Effet du laser sur le silicium - Effet photoélectrique Drain ( Gnd ) Drain ( VDD ) Laser - + Diffusion n+ E ZCE Substrat P (Gnd) Courant (mA) Composant instantanée Composant retardée Transitoire de courant énergie du faisceau durée transitoire de tension

Energy of the band gap of the silicon Effet du laser sur le silicium - Effet photoélectrique V1=Vdd V2=gnd e- P-substrate SCR N+ P+ e- Induced photocurrent h+ h+/e- separation Energy of the laser > Energy of the band gap of the silicon

Effet photoelectriqe Transient current => Transient voltage pulse 46 Iph = f(Powerlaser, Areapn, Distancepn,Timelaser, …..) Transient current => Transient voltage pulse => Fault/Error

Injection de faute par laser Effet du transitoire de tension : propagation dans la logique sans mémorisation, propagation dans la logique avec mémorisation, inversion de l’état d’un point mémoire (registre, SRAM). injection de faute Paramètres de réglage d’un laser : longueur d’onde, énergie, taille du faisceau, (état de l’art 1 µm min.) durée de l’impulsion, gigue.

Injection de faute par laser Contrôle de la focalisation : Technologie Transistor MOS SRAM 1 µm 0.35 µm Spot laser 130 nm 90 nm 65 nm

Injection de faute par laser Contrôle de la focalisation : Taille du spot 1 µm 10 µm Zone d’effet Energie déposée 1 µm zone d’effet

Injection de faute par laser Contrôle de la localisation : lié au contrôle de la focalisation platine (x,y,z) Contrôle de l’instant d’injection : selon électronique de commande et technologie (gigue). Coût : élevé à très élevé (qqs 10aine k€ à qqs 100aines k€) Instrument de caractérisation sécuritaire (pour les plus chers) Multinationales, gouvernements, etc. Intérêt : reproductibilité, contrôle de la localisation/focalisation. Outil d’attaque pratique (pour les moins chers) Performances limitées (optiques inadaptées, pointeur laser, expertise, etc.). Interrogation : possibilité de satisfaire aux modèles de faute (DFA) ?

Synchronization board ISO Reader (optional) Banc d’injection laser Laser (IR, Green, UV) XY stage Camera Oscilloscope Synchronization board ISO Reader (optional)

Injection de faute par laser Amélioration de la focalisation (injection mono-octet). Cadre : banc d’injection rudimentaire (spot > 20 µm ). Gain en résolution spatiale dû au contrôle de l’instant d’injection Cible : implémentation AES sur microcontrôleur Attaque Piret – Quisquater : fauter un octet avant le MixColumn de la ronde 9 RAM fauter un octet de K8

Injection de faute par laser K3 K4 Chiffré RAM K5 K6 K7 K8 K9 K10 K9 K10 K7 K8 K5 K6 K3 K4 Chiffré Pas de déplacement : 0,1 µm Injection en ronde 8 Algorithmique : faute mono-octet avant le AddRoundKey Physique : fautes multi octets

Conclusion Contrôle de facilité d’emploi reproductibilité coût instant d’injection localisation focalisation Glitch d’horloge très bonne maximum moyen très bon bonne faible (numérique) Glitch d’alimentation bon1 moyen très bon bonne moyen bonne (analogique) Overclocking Baisse VDD faible moyen bon bonne faible bonne Température Laser bon2 très bon très bon bonne élevé bonne 1 selon électronique de commande 2 selon électronique de commande et technologie