• Nenhum resultado encontrado

Implémentation

No documento Pierre-Henri Thevenon (páginas 96-99)

PARTIE IV. La solution

3. Implémentation

Cette partie présente l’implémentation de la solution précédente au niveau du lecteur et de la carte. Les deux éléments possèdent chacun un composant en logique programmable ; il est ainsi possible de tester notre solution de façon totalement autonome. En effet, tous les tests précédemment réalisés nécessitaient des actions de notre part (enregistrement de signaux, traitement sous Matlab,…) ou du matériel en plus du système sans contact (oscilloscope, bobines de calibrations, …). L’implémentation d’un tel système directement sur carte permet de se rapprocher d’une solution finale pour la détection d’attaques relais.

Dans un système sans contact classique, le lecteur émet une requête et la carte envoie sa réponse après avoir interprété cette requête, voir la figure III-31. Entre la fin de l’émission du lecteur et le début de l’émission de la carte, les normes définissent un certain temps, appelé parfois temps de retournement, permettant à la carte d’interpréter la commande lecteur, de préparer sa réponse,…

Notre contre-mesure a pour objectif final de s’intégrer dans ce temps de retournement de façon à ne pas avoir à modifier les normes actuelles du sans-contact. Le circuit identifiant le top de synchronisation, générant la séquence et le temps aléatoire ainsi que le traitement de ces données devrait être dans un circuit indépendant du circuit interprétant les commandes du lecteur de façon à ne pas perturber le temps de retournement avant la réponse de la carte.

A l’heure actuelle, la contre-mesure remplace la réponse de la carte, la carte envoie la séquence aléatoire comme si cette séquence était la réponse de la carte à la requête du lecteur.

Tr + σ The reader sends a triggering pulse

The card receives the triggering pulse

Reader

Card

Recorded signal T

T T+2(Tr+σ)

2(Tr + σ)

The reader generates the sequence

The card sends the sequence The reader receives

the sequence

Légende:

Tr : propagation time σ: induced delay T shared secret time

1

2

3 4 5

Figure III-31 – Placement de la contre-mesure dans le système sans contact

L’organigramme, voir la figure III-32, montre les différentes étapes et actions du lecteur et de la carte lors d’une séquence de recherche de présence de relais.

Figure III-32 – Organigramme des étapes de l'algorithme implémenté

Lors de cette implémentation, plusieurs données n’ont pas été prises en compte. Dans un premier temps, la séquence à corréler n’est pas envoyée pendant le temps de retournement de la carte. Cela nous laisse plus de temps pour envoyer la séquence voulue et faire les traitements nécessaires avant. Dans un deuxième temps, tout le protocole de cryptographie n’est pas appliqué ici, le lecteur et la carte génèrent chacun une séquence fixe donnée par l’utilisateur.

La figure III-33 permet de voir le rendu de ces différentes étapes sur le signal lui-même afin de mieux comprendre le fonctionnement du système.

Requête lecteur Réponse carte

Requête lecteur Contre-mesure Réponse carte

Requête lecteur Contre-mesure

Système sans contact

Système sans contact avec contre-mesure voulu

Système sans contact avec contre-mesure réalisé

Début

Génération séquence à corréler

Emission d’une trame

Envoi du bit de synchronisation

Début

Bit de synchronisation

reçu?

Génération séquence à envoyer t > T1

t > T2

t > T2 Moyennes bornes

supérieures

Moyennes bornes

inférieures Envoi une

séquence nulle 1

2

3

4

10

11

12

t > T3

t > T5 Calcul des seuils

Récupération des échantillons

Corrélation 5

6

Envoi une séquence nulle

Envoi trame t > T4

Fin Fin

13

14 7

8

Non

Oui Non Oui

Non

Oui Non

Oui Non

Oui Non

Oui

Non Oui

Carte Lecteur

Figure III-33 – Chronogramme de la solution proposée

Chaque numéro sur les figures III-32 et III-33 représente une action à réaliser par le lecteur ou la carte. Chacune de ces actions est indispensable pour que la contremesure fonctionne :

Etape 1 : Cette étape consiste à générer côté lecteur la séquence qui sera corrélée avec celle reçue de la carte. Plusieurs données sont à prendre en compte : la fréquence d’échantillonnage du lecteur, le débit binaire de la carte, le nombre d’octets envoyés par la carte. Dans cette version de la solution, la carte envoie 4 octets soit 32 bits. Le débit binaire de la carte est de 424kbits/s et la fréquence d’échantillonnage du lecteur est de 27,12 MS/s. La séquence envoyée par la carte et reçue par le lecteur compte donc 2048 échantillons. La figure III-34 montre la conversion des octets à la conversion en échantillons par le lecteur.

Figure III-34 – Génération de la séquence à corréler

De plus, il faut que le lecteur génère en plus de la séquence deux séries de ‘0’ permettant le glissement d’un des signaux par rapport à l’autre lors de la corrélation. La séquence générée est la suivante, voir la figure III-35.

Figure III-35 – Séquence générée

Etape 2 : Cette étape concerne l’émission d’une trame par le lecteur. Dans cette version de la solution, le lecteur envoie un REQB selon la norme ISO14443-B en utilisant donc la modulation d’amplitude.

Etape 3 : Cette étape consiste à envoyer le top de synchronisation entre la carte et le lecteur à la fin de la transmission de la requête du lecteur. C’est donc le lecteur qui envoie ce top un temps aléatoire après l’EOF sous la forme d’une modulation de son champ RF.

Etape 4, 5 et 6 : Ces étapes sont abordées dans la section traitant de la démodulation par

Champ RF

Modulation Lecteur

Modulation de charge carte Actions Lecteur

Actions carte

10 12 13 14

2 3 4 5 6 7

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x00 0x00 0x00 0x00

0 0 0 0 0 0 0 0

Hexadécimal

Binaire

Echantillons

donc des valeurs dont la valeur absolue est inférieure à celle trouvée lors de l’étape 4. L’étape 6 consiste à calculer les seuils de la manière décrite précédemment.

Etape 7 : L’étape 7 consiste à échantillonner le signal à la fréquence de 27,12MS/s. Chaque échantillon est comparé, selon s’il est positif ou négatif à la valeur d’un des seuils pour déterminer s’il correspond à un niveau logique ‘1’ ou ’0’.

Etape 8 : l’étape 8 est réalisée par un processeur NIOS intégré au composant FPGA, elle consiste à corréler le signal reçu avec celui généré par le lecteur et à déterminer le délai entre ces deux signaux. Selon la valeur du délai, le système peut alors conclure sur la présence ou on d’un relais.

Etape 10 : Cette première étape est une étape d’attente, la carte est en attente du top de synchronisation provenant du lecteur. La carte n’a aucune action à réaliser en attendant ce bit de démarrage.

Etape 11 : La carte génère de son côté la séquence à envoyer, cette séquence est pour le moment fixée par le développeur.

Etape 12 : Après un temps T2, ce temps correspondant à un temps nécessaire au lecteur pour réaliser l’étape 4, la carte envoie ensuite une séquence nulle. L’envoi d’une séquence nulle par la carte consiste en une modulation de sa charge; l’amplitude du signal est plus faible et le lecteur peut donc faire l’étape 5.

Etape 13 : La carte envoie ensuite la séquence à corréler.

Etape 14 : Cette étape consiste à renvoyer une nouvelle séquence de bits ‘0’ de façon à permettre le glissement lors de la corrélation.

No documento Pierre-Henri Thevenon (páginas 96-99)