de votre carte a puce? - damien sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/gt... ·...
TRANSCRIPT
![Page 1: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/1.jpg)
Comment deviner les secretsde votre carte a puce ?
Application a la Java CardTM
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Groupe de travail de l’equipe SOD
Damien Sauveron
http://dept-info.labri.u-bordeaux.fr/~sauveron 29 octobre 2002
![Page 2: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/2.jpg)
Plan
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
La carte a microprocesseur et ses
securites
Les canaux caches
La retro-conception
Application a la Java Card
Perspectives
![Page 3: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/3.jpg)
La carte a microprocesseur
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Taille de la puce : 25mm2
☞ Microprocesseur (CPU) : 8, 16 ou 32bits (a architecture RISC ou pas)
☞ ROM : 16 a 24 Ko
☞ EEPROM : 8 a 64 Ko
☞ RAM : 1 Ko
☞ Coprocesseur cryptographique
☞ Generateur de nombres aleatoires(RNG)
![Page 4: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/4.jpg)
La carte a contact
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Son fonctionnement, l’oblige a etre inseree dans un lecteur de carte.
Elle utilise une communication serie via huit contacts.
Microprocesseur
CPUEEPROM ROM RAM
BUS DE DONNEES
BUS D’ADRESSES
Microcontact Microchip
Micromodule
I/O
Vpp
GNDVcc
RST
CLK
![Page 5: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/5.jpg)
La carte a contact
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Suit le standard ISO 7816.
Problemes :
☞ l’insertion et le retrait sont des facteurs d’usure de la carte
☞ il faut bien orienter la carte dans le lecteur.
![Page 6: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/6.jpg)
Les securites de la carte a puce
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
☞ au niveau physique : techniques d’impression sophistiquees
☞ au niveau hardware :
• un numero de serie unique
• l’utilisation de memoire de type PROM
• blindage physique du composant
• des detecteurs de conditions anormales (temperature,...)
• brouillage des informations dans le composant
• co-processeurs cryptographiques
![Page 7: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/7.jpg)
Les securites de la carte a puce
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
☞ au niveau software :
• controles d’acces aux donnees
• maintien de l’integrite des donnees
• entrees/sorties securisees
☞ au niveau de l’environnement de production qui doit etrephysiquement securise
![Page 8: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/8.jpg)
Les canaux caches
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
☞ le temps d’execution=⇒ nombre de cycle d’une instruction ou d’un algorithme.
☞ la consommation de courant=⇒ Les modifications rapides de la tension et de l’intensite du courant ausein du meme composant sont a la base des emissions du circuit car ilsconduisent des courants RF a l’interieur et a l’exterieur du chip.
☞ les emissions electromagnetiques=⇒ Les courants RF entraınent un rayonnement electromagnetique.
![Page 9: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/9.jpg)
Le materiel
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
☞ un oscilloscope numerique,
☞ un lecteur de carte a puce,
☞ un pc equipe de cartesd’acquisition et de logicielsmathematique pour le traite-ment des donnees,
☞ une sonde CEM si onveut etudier les emissionselectromagnetiques.
![Page 10: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/10.jpg)
Le montage
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 11: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/11.jpg)
La “timing attack”
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Cette attaque consiste a mesurer le temps d’execution d’un algorithme.=⇒ Revele des informations sur les operations et/ou les operandes.
Necessite souvent :
☞ un grand nombre d’execution a messages choisis,
☞ un traitement statistique des resultats obtenus.
![Page 12: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/12.jpg)
La “timing attack” sur le PIN
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
for ( b = 0 ; i >= 7; i++)
if ( pinCarte [ i ] ! = pinPresente [ i ] )
return false ;
return true ;
☞ Presenter les n valeurs de pinPresente[0] (256 valeurs).
☞ Mesurer la duree d’execution de la commande τ pour les n valeurs.
☞ Calculer τ [n0] le maximum des τ
• τ [n0] = max(τ [n]), n = 0, ..., 255
• n0 est la solution pour pinPresente[0]
☞ Iterer sur tous les pinPresente[i]
Nombre d’essais : 8 ∗ 256 = 2048 (contre 2568 en force brute)
![Page 13: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/13.jpg)
La consommation de courant
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Elle est surtout utilisee dans le domaine de la cryptographie.
Il existe differentes attaques :
☞ la SPA (Simple Power Analysis)
☞ la DPA (Differential Power Analysis)
☞ la HODPA (High Order Differential Power Analysis)
![Page 14: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/14.jpg)
La consommation de courant
La SPA (Simple Power Analysis)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Principe : Des instructions differentes ont une trace differente.
Consommation en courant d’unDES. On peut voir la permutationinitiale, suivie des 16 tours.
![Page 15: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/15.jpg)
La consommation de courant
La SPA sur la signature RSA
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
s = 1;
for ( i = L − 1 ; i >= 0; i−−) {s = s∗s mod n ;
if ( a [ i ] == 1)
s = s∗y mod n ;
}
Signature RSA : ya mod ny est le message a signer,n est public,a, l’exposant peut etre considere commela cle secrete.
![Page 16: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/16.jpg)
La consommation de courant
La DPA (Differential Power Analysis)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Principe : La consommation depend des operations effectuees (lesinstructions) mais aussi des operandes.
Elle utilise des fonctions statistiques adaptees a l’algorithme vise qui fontressortir des correlations entre un bit intermediaire a (ne dependant qued’un fragment Kr de r bits de la cle et du message d’entree M) et laconsommation de courant.
![Page 17: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/17.jpg)
La consommation de courant
La DPA (Differential Power Analysis)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Preliminaire : a = f(Kr,M) ouKr est inconnu, M est connu et f() est une fonction de selection qui peut etrededuite de l’algorithme cryptographique connu.
Le bit a apparaıt a l’entree d’une instruction I.Plus la dependance entre la consommation de courant pour cette instructionPI et a sera forte, plus la DPA a de chances de reussir.
![Page 18: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/18.jpg)
La consommation de courant
La DPA (Differential Power Analysis)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Collecte de donnees :
☞ Faire tourner l’algorithme sur la carte N fois avec N messages d’entreealeatoires : M1,M2, ...,MN .
☞ Pendant les executions, on enregistre les consommations de courantP (Kr,M1), P (Kr,M2), ..., P (Kr,MN ).
Analyse de donnees :
☞ Pour chacun des 2r fragments de cle K∗r possible, faire tournerl’algorithme N fois avec les memes messages que precedemment sur uneimplementation personnelle, de sorte a pouvoir “observer” le bit a.
☞ Separer les courbes en 2 paquets :
E0 = P (K∗r ,Mi) tel que f(K∗r ,Mi) = 0
E1 = P (K∗r ,Mi) tel que f(K∗r ,Mi) = 1
![Page 19: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/19.jpg)
La consommation de courant
La DPA (Differential Power Analysis)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Si le fragment de cle K∗r est correct (K∗r = Kr), quand l’instruction I esteffectuee, il y aura une difference notable DI entre les P (K∗r ,Mi) de E0 etceux de E1.
g(t) =< P (K∗r ,Mi)(t) >P (K∗r ,Mi)∈E0 − < P (K∗r ,Mi)(t) >P (K∗r ,Mi)∈E1
SuccesEchec
![Page 20: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/20.jpg)
La consommation de courant
La DPA (Differential Power Analysis)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Resume :On essaie toutes les possibilites pour le fragment de cle K∗r en regardant achaque fois le graphe de la fonction g.Le fragment donnant une fonction g presentant un pic est normalement le bon.
![Page 21: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/21.jpg)
La consommation de courant
La HODPA (High Order DPA)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
La HODPA ou DPA d’ordre n est aussi basee sur une etude statistique de laconsommation de courant de la carte.
Difference : elle utilise des correlations entre la consommation de courant et nvariables intermediaires ne dependant que d’un fragment de la cle et dumessage d’entree.
Elle est beaucoup plus difficile a realiser, mais beaucoup plus puissante.
![Page 22: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/22.jpg)
La CEM (Conformite EM)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Principe : Les courants qui circulent dans la puce induisent des champselectromagnetiques qui sont susceptibles de donner le meme typed’information que le courant.
Difference : L’information est plus locale. On peut deplacer la micro-sondeelectromagnetique au dessus de la zone qui nous donnera le plusd’informations (exemple : co-processeur cryptographique).
Avantage : Insensible aux contre-mesures physiques tels que l’ajout de bruiten sortie ou le lissage de la consommation globale de courant.
Inconvenient : La reproductibilite des mesures est difficile.
![Page 23: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/23.jpg)
La retro-conception
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Nous aborderons ces quelques travaux :
=⇒ methode du “dictionnaire” :
☞ avec la consommation en courant,
☞ avec la CEM.
=⇒ traitement du signal en temps-frequence et temps-echelle.=⇒ cartographie avec la CEM.
![Page 24: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/24.jpg)
La retro-conception
Le “dictionnaire”
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Une instruction : Une autre instruction :
La sequence des deux :
![Page 25: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/25.jpg)
La retro-conception
La methode du temps-frequence ?
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 26: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/26.jpg)
La retro-conception
La methode du temps-frequence ?
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 27: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/27.jpg)
La retro-conception
La methode du temps-frequence ?
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 28: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/28.jpg)
La retro-conception
La methode du temps-frequence ?
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Probleme : Difficile de determiner si on charge un $00 ou un $11.
![Page 29: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/29.jpg)
La retro-conception
Le dictionnaire ?
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Probleme : Certaines intructions tres differentes ont la meme allure.
![Page 30: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/30.jpg)
La retro-conception
On ne se decourage pas !
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
LDAB #$40
STAB $1004
LOOP LDAA #$FF ( 2 cycles )
BRA LOOP ( 3 cycles )
END
LDAB #$40
STAB $1004
LOOP LDAA #$00 ( 2 cycles )
BRA LOOP ( 3 cycles )
END
On distingue les instructions BRA.
![Page 31: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/31.jpg)
La retro-conception
Ca marche ! On isole des instructions
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 32: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/32.jpg)
La retro-conception
Verification par collage
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Deception : Pas exactement la meme chose.Hypothese : Probleme de repetitivite ?
![Page 33: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/33.jpg)
La retro-conception
La repetitivite est bonne
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 34: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/34.jpg)
La retro-conception
On recommence notre collage ...
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 35: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/35.jpg)
La retro-conception
... et on zoome
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Probleme sur le BRA.Cela demande confirmation.
![Page 36: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/36.jpg)
La retro-conception
La confirmation du probleme
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
L’instruction BRA ne possede pas la meme allure de signal selon sonemplacement dans le programme.
![Page 37: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/37.jpg)
La retro-conception
L’explication du probleme
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Ce probleme vient du fait que l’on travaille sur un composant 68HC11A8 quipossede un bus commum pour les donnees et pour les addresses.
Resume des problemes :
☞ la non-repetitivite de l’instruction BRA,
☞ la ressemblance de certaines instructions.
![Page 38: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/38.jpg)
La retro-conception
La methode du temps-echelle ? (ondelettes)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 39: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/39.jpg)
La retro-conception
Tout fonctionne pour le moment !
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 40: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/40.jpg)
La retro-conception
Comportement sur un de nos problemes ?
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 41: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/41.jpg)
La retro-conception
KO !
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 42: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/42.jpg)
La retro-conception
Et avec la CEM ? (1)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Sonde CEM au dessus du CPU
![Page 43: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/43.jpg)
La retro-conception
Et avec la CEM ? (2)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Sonde CEM au dessus du CPU
![Page 44: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/44.jpg)
La retro-conception
On a le meme type d’information (1)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 45: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/45.jpg)
La retro-conception
On a le meme type d’information (2)
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 46: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/46.jpg)
La retro-conception
Le dispositif de cartographie
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 47: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/47.jpg)
La retro-conception
Cartographie pour l’algo 1
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 48: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/48.jpg)
La retro-conception
Cartographie pour l’algo 2
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
![Page 49: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/49.jpg)
La retro-conception
Les suites ...
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Le positionnement sur les points chaud X et Y a permis de montrer que leCPU n’emet pas pareil partout et que l’on peut ainsi decouvrir del’information locale.
C’est une technique qui demande beaucoup de precision, mais qui a beaucoupd’avenir.
![Page 50: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/50.jpg)
Application a la Java Card
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Problematique : Est-il possible d’appliquer des techniques d’exploitation descanaux caches a la technologie Java Card ?Reponse : oui
Avec succes : incertain, mais le verdict de faisabilite est plus facile et rapide aobtenir pour un attaquant car la Java Card est une carte multi-applicativeouverte.
Comment ? C’est ce que nous allons voir.
![Page 51: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/51.jpg)
Application a la Java Card
Architecture
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
installateur
gestion des
Applet Applet Applet
gestion destransactions communication
Autresservicesapplets
Java Card Virtual Machine(bytecode interpréteur) méthodes natives
JCRE
Classes systèmes
Hardware de la carte à puce et système natif.
à l’industrieExtensions spécifiquesAPIs
réseau I/O
![Page 52: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/52.jpg)
Application a la Java Card
Cycle de developpement
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
classFichiers
Carte à puce
Programme d’installationhors-carte
CAPFichier
Convertisseur
PC ou station de travail
InstallateurJCRE
CAD
JCVM (Interpréteur)
embarqué
![Page 53: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/53.jpg)
Application a la Java Card
La communication
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
On a un modele maıtre-esclave entre la carte et le lecteur.La communication se fait via :
☞ les APDUs pour la couche application,
☞ les TPDUs pour la couche transport.
JCRE
Applet
![Page 54: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/54.jpg)
Application a la Java Card
Traitement normal
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
{ . . .
// Encrypt sLength2 bytes from the offset 0 in the
// apduBuffer and put the result into apduBuffer to
// the offset 0
sLength = cipher . doFinal ( apduBuffer , ( short ) 0 ,
sLength2 ,
apduBuffer , ( short ) 0 ) ;
apdu . sendBytes ( ( short ) 0 , sLength ) ;
}
lecteur
puce
JCREApplet ce que l’on veut observer
JCRE
puce
lecteur
Temps
![Page 55: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/55.jpg)
Application a la Java Card
Traitement avec 2 waitExtension
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
{ . . .
// Send the synchro
apdu . waitExtension ( ) ;
sLength = cipher . doFinal ( apduBuffer , ( short ) 0 ,
sLength2 ,
apduBuffer , ( short ) 0 ) ;
apdu . waitExtension ( ) ;
apdu . sendBytes ( ( short ) 0 , sLength ) ;
}
apdu.waitExtension() est une methode statique qui envoie un octet d’attenteau lecteur afin qu’il ne soit pas en timeout.
![Page 56: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/56.jpg)
Application a la Java Card
Traitement avec 1 waitExtension
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
{ . . .
// Send the synchro
apdu . waitExtension ( ) ;
sLength = cipher . doFinal ( apduBuffer , ( short ) 0 ,
sLength2 ,
apduBuffer , ( short ) 0 ) ;
apdu . sendBytes ( ( short ) 0 , sLength ) ;
}
Probleme : Cette methode est inhibee par la plupart des implementeurs deplate-forme Java Card et la gestion des octets d’attente est automatique.
![Page 57: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/57.jpg)
Application a la Java Card
Traitement avec notre synchro
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
{ . . .
// Here sLength = the next value of sLength + 1
apdu . setOutgoingLength ( sLength ) ;
// Send the synchro
apdu . sendBytes ( ( short )0 x00 , ( short )0 x01 ) ;
sLength = cipher . doFinal ( apduBuffer , ( short ) 1 ,
sLength2 ,
apduBuffer , ( short ) 0 ) ;
apdu . sendBytes ( ( short ) 0 , sLength ) ;
}
lecteur
puce
JCREApplet ce que l’on veut observer
JCRE
puce
lecteur
Temps
JCRE
JCRE JCREJCRE
pucepuce
Coté lecteurCoté lecteur
![Page 58: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/58.jpg)
Application a la Java Card
Traitement avec notre synchro amelioree
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
(0 x 1 9 ) a l o a d _ 1
(0 x 1 f ) s l o a d _ 3
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x d
(0 x 1 9 ) a l o a d _ 1
(0 x 0 3 ) s c o n s t _ 0
(0 x 0 4 ) s c o n s t _ 1
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x a
(0 x a d ) g e t f i e l d _ a _ t h i s 0 x 1
(0 x 1 a ) a l o a d _ 2
(0 x 0 4 ) s c o n s t _ 1
(0 x 1 6 ) s l o a d 0 x 4
(0 x 1 a ) a l o a d _ 2
(0 x 0 3 ) s c o n s t _ 0
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x 1 5
(0 x 3 2 ) s s t o r e _ 3
(0 x 1 9 ) a l o a d _ 1
(0 x 0 3 ) s c o n s t _ 0
(0 x 1 f ) s l o a d _ 3
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x a
(0 x 7 a ) r e t u r n
(0 x 1 9 ) a l o a d _ 1
(0 x 1 f ) s l o a d _ 3
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x d
(0 x 0 0 ) n o p
(0 x 0 0 ) n o p
(0 x 1 9 ) a l o a d _ 1
(0 x 0 3 ) s c o n s t _ 0
(0 x a d ) g e t f i e l d _ a _ t h i s 0 x 1
(0 x 1 a ) a l o a d _ 2
(0 x 0 4 ) s c o n s t _ 1
(0 x 1 6 ) s l o a d 0 x 4
(0 x 1 a ) a l o a d _ 2
(0 x 0 3 ) s c o n s t _ 0
(0 x 1 9 ) a l o a d _ 1
(0 x 0 3 ) s c o n s t _ 0
(0 x 0 4 ) s c o n s t _ 1
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x a
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x 1 5
(0 x 8 b ) i n v o k e v i r t u a l 0 x 0 0 x a
(0 x 7 a ) r e t u r n
![Page 59: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/59.jpg)
Application a la Java Card
Application au bytecode
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Bytecode pop
aload_1
sconst_0
sconst_1
aconst_null
aload_1
sconst_0
sconst_1
invokevirtual 0 x0 0 xc
pop
invokevirtual 0 x0 0 xc
return
![Page 60: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/60.jpg)
Application a la Java Card
Liste des bytecodes instrumentes
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
aconst_null__pop sconst_3
aload_0__pop sconst_4
astore_0 sconst_5
dup sconst_m1__pop
dup2__pop2 sdiv
getfield_b sload_0
getfield_b_this sload_1
getfield_s sload_2
getfield_s_this sload_3
getstatic_b smul
getstatic_s sneg
invokestatic__aload_0__sconst_0__sconst_1 sor
invokevirtual__aload_1__sconst_0__sconst_1 srem
nop sreturn
pop sshl
pop2 sshr
putfield_s sstore_0
putfield_s_this sstore_1
![Page 61: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/61.jpg)
Application a la Java Card
Liste des bytecodes instrumentes
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
putstatic_s sstore_2
s2b sstore_3
sadd ssub
sand sushr
sconst_0__pop sxor
sconst_1
sconst_2
![Page 62: de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage](https://reader036.vdocuments.net/reader036/viewer/2022071116/5ffde80faba23b354c0f04fa/html5/thumbnails/62.jpg)
Perspectives
Laboratoire Bordelais deRecherche en Informatique
Equipe : Systemes etObjets Distribues
Damien Sauveron
Un article a ecrire sur ce probleme et sur des proposition de solutions.
Etude des bytecodes suivant les methodes presentees.
Utilisation du mecanisme de synchronisation pour mieux connaıtre lesimplementations des differents objets sur la carte afin de pouvoir faire del’injection de faute (DFA).
...