62
Comment deviner les secrets de votre carte ` a puce ? Application ` a la Java Card TM Laboratoire Bordelais de Recherche en Informatique ´ Equipe : Syst` emes et Objets Distribu´ es

de votre carte a puce? - Damien Sauverondamien.sauveron.fr/fileadmin/damiensauveron/slides/GT... · 2013. 2. 26. · d’informations (exemple : co-processeur cryptographique). Avantage

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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

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

[email protected]

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

Plan

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 2

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

La carte a microprocesseur

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 3

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

La carte a contact

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 4

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

La carte a contact

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 5

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

Les securites de la carte a puce

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 6

☞ 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

Les securites de la carte a puce

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 7

☞ 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

Les canaux caches

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 8

☞ 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

Le materiel

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 9

☞ 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

Le montage

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 10

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

La “timing attack”

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 11

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

La “timing attack” sur le PIN

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 12

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

La consommation de courant

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 13

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

La consommation de courant

La SPA (Simple Power Analysis)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 14

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

La consommation de courant

La SPA sur la signature RSA

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 15

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

La consommation de courant

La DPA (Differential Power Analysis)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 16

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

La consommation de courant

La DPA (Differential Power Analysis)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 17

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

La consommation de courant

La DPA (Differential Power Analysis)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 18

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

La consommation de courant

La DPA (Differential Power Analysis)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 19

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

La consommation de courant

La DPA (Differential Power Analysis)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 20

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

La consommation de courant

La HODPA (High Order DPA)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 21

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

La CEM (Conformite EM)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 22

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

La retro-conception

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 23

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

La retro-conception

Le “dictionnaire”

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 24

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

La retro-conception

La methode du temps-frequence ?

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 25

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

La retro-conception

La methode du temps-frequence ?

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 26

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

La retro-conception

La methode du temps-frequence ?

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 27

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

La retro-conception

La methode du temps-frequence ?

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 28

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

La retro-conception

Le dictionnaire ?

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 29

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

La retro-conception

On ne se decourage pas !

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 30

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

La retro-conception

Ca marche ! On isole des instructions

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 31

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

La retro-conception

Verification par collage

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 32

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

La retro-conception

La repetitivite est bonne

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 33

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

La retro-conception

On recommence notre collage ...

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 34

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

La retro-conception

... et on zoome

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 35

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

La retro-conception

La confirmation du probleme

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 36

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

La retro-conception

L’explication du probleme

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 37

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

La retro-conception

La methode du temps-echelle ? (ondelettes)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 38

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

La retro-conception

Tout fonctionne pour le moment !

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 39

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

La retro-conception

Comportement sur un de nos problemes ?

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 40

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

La retro-conception

KO !

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 41

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

La retro-conception

Et avec la CEM ? (1)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 42

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

La retro-conception

Et avec la CEM ? (2)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 43

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

La retro-conception

On a le meme type d’information (1)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 44

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

La retro-conception

On a le meme type d’information (2)

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 45

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

La retro-conception

Le dispositif de cartographie

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 46

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

La retro-conception

Cartographie pour l’algo 1

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 47

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

La retro-conception

Cartographie pour l’algo 2

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 48

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

La retro-conception

Les suites ...

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 49

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

Application a la Java Card

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 50

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

Application a la Java Card

Architecture

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 51

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

Application a la Java Card

Cycle de developpement

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 52

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

Application a la Java Card

La communication

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 53

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

Application a la Java Card

Traitement normal

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 54

{ . . .

// 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

Application a la Java Card

Traitement avec 2 waitExtension

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 55

{ . . .

// 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

Application a la Java Card

Traitement avec 1 waitExtension

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 56

{ . . .

// 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

Application a la Java Card

Traitement avec notre synchro

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 57

{ . . .

// 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

Application a la Java Card

Traitement avec notre synchro amelioree

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 58

(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

Application a la Java Card

Application au bytecode

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 59

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

Application a la Java Card

Liste des bytecodes instrumentes

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 60

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

Application a la Java Card

Liste des bytecodes instrumentes

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 61

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

Perspectives

Laboratoire Bordelais deRecherche en Informatique

Equipe : Systemes etObjets Distribues

Damien Sauveron

[email protected] 62

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

...