Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OF SECURING A PIN CODE WITH ERROR COUNTERS IN A CHIP CARD
Document Type and Number:
WIPO Patent Application WO/2016/097637
Kind Code:
A1
Abstract:
The invention relates to a verification method implemented by an electronic device (2), said method comprising the following steps: - obtaining of a secret code input by a user; - processing of the secret code, the processing step comprising checking the secret code and managing a first counter (TOT_PTC); - storage of the value of the first counter (TOT_PTC) in a rewritable non-volatile memory (10); the electronic device being such that: - if the code input is detected as being false during said checking, the processing step has the effect of modifying the value of the first counter (TOT_PTC) so as to indicate that the secret code is false; and - if the code input is detected as being correct during said checking, the processing step has the effect of keeping unchanged the value of the first counter (TOT_PTC) regardless of the value of the first counter. The invention also relates to an electronic device able to implement such a verification method.

Inventors:
CHAMBEROT FRANCIS (FR)
DE OLIVEIRA MARCO (FR)
Application Number:
PCT/FR2015/053602
Publication Date:
June 23, 2016
Filing Date:
December 17, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
OBERTHUR TECHNOLOGIES (FR)
International Classes:
G06F21/34; G07F7/10; G06F21/55; G06F21/78
Foreign References:
DE102010044687A12012-03-08
FR2786007A12000-05-19
EP1646018A12006-04-12
Other References:
None
Attorney, Agent or Firm:
COUGARD, Jean-Marie et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de contrôle mis en œuvre par un dispositif électronique (2), ledit procédé comprenant les étapes suivantes :

- obtention (E2) d'un code secret saisi par un utilisateur ;

- traitement du code secret, le traitement comprenant une vérification (E18) du code secret et une gestion (E4, E8, E20) d'un premier compteur (TOT_PTC) ;

- mémorisation (E16) de la valeur du premier compteur dans une mémoire non- volatile réinscriptible (10) ;

caractérisé en ce que :

- si le code saisi est détecté comme étant faux lors de ladite vérification (E18), l'étape de traitement a pour effet de modifier la valeur du premier compteur (TOT_PTC) pour indiquer que le code secret est faux ; et

- si le code saisi est détecté comme étant bon lors de ladite vérification (E18), l'étape de traitement a pour effet de garder la valeur du premier compteur (TOT_PTC) inchangée quelle que soit la valeur du premier compteur.

2. Procédé selon la revendication 1, comprenant une détection (E30) d'une anomalie à partir de la valeur du premier compteur (TOT_PTC) lorsqu'une condition prédéterminée est satisfaite.

3. Procédé selon la revendication 2, dans lequel la condition prédéterminée définit une valeur seuil (LMT2), la détection de l'anomalie étant réalisée en comparant la valeur courante du premier compteur avec la valeur seuil.

4. Procédé selon la revendication 3, dans lequel :

- à chaque fois que le code saisi est détecté comme étant faux lors de ladite vérification (E18), l'étape de traitement a pour effet d'incrémenter la valeur du premier compteur (TOT_PTC) pour indiquer la saisie d'un code faux supplémentaire, ladite anomalie étant détectée lorsque la valeur courante du premier compteur est supérieure ou égale à ladite valeur seuil ; ou

- à chaque fois que le code saisi est détecté comme étant faux lors de ladite vérification (E18), l'étape de traitement a pour effet de décrémenter la valeur du premier compteur (TOT_PTC) pour indiquer la saisie d'un code faux supplémentaire, ladite anomalie étant détectée lorsque la valeur courante du premier compteur est inférieure ou égale à ladite valeur seuil.

5. Procédé selon l'une quelconque des revendications 2 à 4, comprenant,

sur détermination de ladite anomalie, une opération de sécurisation (E30) d'au moins l'un parmi le dispositif électronique et une opération avec un terminal externe (LT).

6. Procédé selon la revendication 5, l'opération de sécurisation (E30) comprenant au moins l'une parmi les opérations suivantes :

- reconfiguration du dispositif électronique (2) de manière à restreindre ses capacités de fonctionnement ;

- mise en échec d'une opération avec le terminal externe (LT) ; et

- envoi au terminal externe (LT) d'une donnée de sécurité représentative de ladite anomalie.

7. Procédé selon la revendication 5 ou 6, dans lequel l'opération avec le terminai externe (LT) est une transaction bancaire.

8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel ledit traitement comprend la gestion d'un deuxième compteur (PTC), comprenant les étapes suivantes :

- si le code saisi est détecté (E18) comme étant faux, le traitement a pour effet de modifier la valeur du deuxième compteur (PTC) pour indiquer la saisie d'un code faux supplémentaire ;

- si le code saisi est détecté (E18) comme étant bon, le traitement a pour effet de :

o modifier la valeur du deuxième compteur (PTC) de façon à la réinitialiser à une valeur constante prédéterminée lorsque la valeur du deuxième compteur est différente de ladite valeur constante prédéterminée, et o garder la valeur du deuxième compteur (PTC) inchangée lorsque la valeur du deuxième compteur est égale à ladite valeur constante prédéterminée

9. Procédé selon la revendication 8, dans lequel, la valeur du premier compteur et la valeur du deuxième compteur sont enregistrées lors d'une même opération d'écriture dans la mémoire non volatile réinscriptible (10) du dispositif électronique.

10. Procédé selon la revendication 8, dans lequel, la valeur du premier compteur et la valeur du deuxième compteur sont enregistrées dans un même bloc mémoire (BC) de la mémoire non volatile réinscriptible (10) du dispositif électronique. 11. Procédé selon la revendication 10, dans lequel chaque bloc mémoire (BC) de la mémoire non volatile réinscriptible (10) contient 256 octets de mémoire.

12. Programme d'ordinateur (PG1) comportant des instructions pour l'exécution des étapes d'un procédé de contrôle selon l'une quelconque des revendications 1 à 11 lorsque ledit programme est exécuté par un processeur.

13. Support d'enregistrement (10) lisible par un processeur sur lequel est enregistré un programme d'ordinateur (PG1) comprenant des instructions pour l'exécution des étapes d'un procédé de contrôle selon l'une quelconque des revendications 1 à 11.

14. Dispositif électronique (2) comprenant :

- un module d'obtention (14) d'un code secret saisi par un utilisateur ;

- un module de traitement (16) pour réaliser un traitement du code secret, le traitement comprenant une vérification du code secret et une gestion d'un premier compteur (TOT_PTC) ;

- un module de mémorisation (18) pour mémoriser la valeur du premier compteur dans un mémoire non volatile réinscriptible du dispositif électronique ;

caractérisé en ce que :

- si le code saisi est détecté comme étant faux par le module de vérification, le traitement a pour effet de modifier la valeur du premier compteur pour indiquer la saisie d'un code faux supplémentaire ; et

- si le code saisi est détecté comme étant bon par le module de vérification, le traitement a pour effet de garder la valeur du premier compteur inchangée quelle que soit la valeur du premier compteur.

15. Dispositif électronique selon la revendication 14, comprenant un module de détection (20) d'une anomalie à partir de la valeur du premier compteur (TOT_PTC) lorsqu'une condition prédéterminée est satisfaite. 16. Dispositif électronique selon la revendication 14 ou 15, dans lequel la condition prédéterminée définit une valeur seuil (LMT2), le module de détection étant apte à détecter l'anomalie à partir d'une comparaison entre la valeur du premier compteur et la valeur seuil.

17. Dispositif électronique selon l'une quelconque des revendications 14 à 16, le dispositif électronique étant une carte à puce.

Description:
PROCEDE DE SECURISATION D'UN CODE PIN AVEC DES COMPTEURS

D'ERREURS DANS UNE CARTE A PUCE

Arrière-plan de l'invention

La présente invention se situe dans le domaine général des dispositifs électroniques aptes à coopérer avec un terminal externe afin de réaliser une transaction, dans le domaine bancaire par exemple.

L'invention concerne plus particulièrement, mais de façon non limitative, une carte à puce (ou cartes à microcircuit), conforme par exemple à la norme IS07816, et apte à réaliser une transaction en coopération avec un terminal externe ainsi qu'un procédé de contrôle d'une telle carte à puce.

L'invention vise notamment le contrôle d'une carte à puce fonctionnant selon le protocole EMV (pour « Europay Mastercard Visa ») et apte à réaliser une transaction de paiement avec un lecteur externe tel qu'un terminal de paiement.

De manière générale, une carte à puce est conçue pour communiquer avec un dispositif externe à cette carte, autrement appelé terminal ou lecteur. Ces cartes permettent d'effectuer divers types de transactions, telles que des transactions de paiement, des transactions d'identification et/ou d'authentification du porteur etc. Les cartes à puce mettant en œuvre une ou plusieurs applications bancaires (carte de crédit, carte de débit etc.) sont par exemple aptes à communiquer avec des terminaux de paiement.

EMV est le protocole standardisé utilisé majoritairement dans le monde pour sécuriser les transactions de paiement effectuées par des cartes à puce.

Le protocole EMV a été conçu pour diminuer les risques de fraudes lors d'une transaction de paiement en permettant notamment l'authentification à la fois de la carte à puce et de son porteur. L'authentification du porteur est réalisée généralement à partir d'un code secret (appelé aussi code PIN) saisi par le porteur de la carte à la demande du terminal de paiement.

Typiquement, dans le cadre du protocole EMV, le terminal externe envoie une commande VERIFY à la carte bancaire contenant le code secret saisi par l'utilisateur sur le terminal de paiement. La carte bancaire vérifie alors l'authenticité de l'utilisateur en comparant le code secret saisi par celui-ci avec un code de référence enregistré dans une mémoire sécurisée de la carte. Si l'authentification est passée avec succès, la carte bancaire renvoie au terminal un message OK indiquant que la vérification du code secret est passée avec succès. Si en revanche le code secret saisi n'est pas valide, la carte bancaire renvoie un message d'échec NOK au terminal.

Trois essais consécutifs sont généralement accordés à l'utilisateur pour fournir le bon code secret en réponse à la demande de saisie présentée par le terminal. Si l'utilisateur réalise trois essais consécutifs de saisie du code secret et échoue les trois fois, la carte bancaire informe le terminal que l'authentification du porteur a échoué. En général, trois échecs consécutifs entraînent le blocage de la carte.

Pour ce faire, une carte bancaire EMV garde en mémoire le nombre d'essais qui ont échoué consécutivement, que ce soit pendant une même transaction EMV ou lors de plusieurs transactions distinctes. Ainsi, si un utilisateur saisit un premier code secret erroné, il aura une chance de moins d'entrer le bon code secret lors du prochain essai, que cet essai ait lieu lors de la même transaction que le premier échec ou lors d'une transaction ultérieure.

Si l'utilisateur saisit le bon code secret, la carte réinitialise le nombre d'essais accordé à trois pour la prochaine demande de saisie du code secret lors d'une transaction ultérieure.

Ce mécanisme de vérification du code secret permet de protéger le propriétaire de la carte bancaire contre une utilisation frauduleuse par une personne malveillante. Une personne n'a généralement que trois essais consécutifs pour saisir le bon code secret, que ce soit lors d'une même transaction ou au cours de plusieurs transactions.

Des nouvelles formes de fraudes et de piratage sont cependant mises au point continuellement par les fraudeurs de sorte qu'il existe aujourd'hui un besoin pour renforcer les mécanismes de sécurité portant sur les cartes à puce (de type EMV par exemple) et, plus généralement, sur tous dispositifs électroniques destinés à réaliser une transaction, de type bancaire ou autres, en coopération avec un terminal externe. Il existe en particulier un besoin pour renforcer le processus d'authentification de l'utilisateur mis en oeuvre par de tels dispositifs électroniques. Objet et résumé de l'invention

A cet effet, la présente invention concerne un procédé de contrôle mis en œuvre par un dispositif électronique, ledit procédé comprenant les étapes suivantes :

- obtention d'un code secret saisi par un utilisateur ;

- traitement du code secret, le traitement comprenant une vérification du code secret et une gestion d'un premier compteur ; - mémorisation de la valeur du premier compteur dans une mémoire non-volatile réinscriptible ;

dans lequel :

- si le code saisi est détecté comme étant faux lors de ladite vérification, l'étape de traitement a pour effet de modifier la valeur du premier compteur pour indiquer que le code secret est faux ; et

- si le code saisi est détecté comme étant bon lors de ladite vérification, l'étape de traitement a pour effet de garder la valeur du premier compteur inchangée quelle que soit la valeur du premier compteur.

Selon un mode de réalisation particulier, le procédé de contrôle comprend une détection d'une anomalie à partir de la valeur du premier compteur lorsqu'une condition prédéterminée est satisfaite.

Selon un mode de réalisation particulier, la condition prédéterminée définit une valeur seuil, la détection de l'anomalie étant réalisée en comparant la valeur courante du premier compteur avec la valeur seuil.

Selon un mode de réalisation particulier, le procédé de contrôle est tel que :

- à chaque fois que le code saisi est détecté comme étant faux lors de ladite vérification, l'étape de traitement a pour effet d'incrémenter la valeur du premier compteur pour indiquer la saisie d'un code faux supplémentaire, ladite anomalie étant détectée lorsque la valeur courante du premier compteur est supérieure ou égale à ladite valeur seuil ; ou

- à chaque fois que le code saisi est détecté comme étant faux lors de ladite vérification, l'étape de traitement a pour effet de décrémenter la valeur du premier compteur pour indiquer la saisie d'un code faux supplémentaire, ladite anomalie étant détectée lorsque la valeur courante du premier compteur est inférieure ou égale à ladite valeur seuil.

Selon un mode de réalisation particulier, le procédé de contrôle comprend, sur détermination de ladite anomalie, une opération de sécurisation d'au moins l'un parmi le dispositif électronique et une opération avec un terminal externe.

Selon un mode de réalisation particulier, l'opération de sécurisation comprend au moins l'une parmi les opérations suivantes :

- reconfiguration du dispositif électronique de manière à restreindre ses capacités de fonctionnement ;

- mise en échec d'une opération avec le terminal externe ; et

- envoi au terminal externe d'une donnée de sécurité représentative de ladite anomalie. Selon un mode de réalisation particulier, l'opération avec le terminal externe est une transaction bancaire.

Selon un mode de réalisation particulier, ledit traitement comprend la gestion d'un deuxième compteur, le procédé de contrôle comprenant les étapes suivantes :

- si le code saisi est détecté comme étant faux, le traitement a pour effet de modifier la valeur du deuxième compteur pour indiquer la saisie d'un code faux supplémentaire ;

- si le code saisi est détecté comme étant bon, le traitement a pour effet de :

o modifier la valeur du deuxième compteur de façon à la réinitialiser à une valeur constante prédéterminée lorsque la valeur du deuxième compteur est différente de ladite valeur constante prédéterminée, et o garder la valeur du deuxième compteur inchangée lorsque la valeur du deuxième compteur est égale à ladite valeur constante prédéterminée" Selon un mode de réalisation particulier, la valeur du premier compteur et la valeur du deuxième compteur sont enregistrées lors d'une même opération d'écriture dans la mémoire non volatile réinscriptible du dispositif électronique.

Selon un mode de réalisation particulier, la valeur du premier compteur et la valeur du deuxième compteur sont enregistrées dans un même bloc mémoire de la mémoire non volatile réinscriptible du dispositif électronique.

Selon un mode de réalisation particulier, dans lequel chaque bloc mémoire de la mémoire non volatile réinscriptible contient 256 octets de mémoire.

Dans un mode particulier de réalisation, les différentes étapes du procédé de contrôle sont déterminées par des instructions de programmes d'ordinateurs.

En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations (ou d'enregistrement), ce programme étant susceptible d'être mis en œuvre dans un dispositif électronique tel qu'une carte à puce ou un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de contrôle tel que défini ci-dessus.

L'invention vise aussi un support d'enregistrement (ou support d'informations) lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.

Corrélativement, l'invention concerne un dispositif électronique comprenant :

- un module d'obtention d'un code secret saisi par un utilisateur ; - un module de traitement pour réaliser un traitement du code secret, le traitement comprenant une vérification du code secret et une gestion d'un premier compteur ;

- un module de mémorisation pour mémoriser la valeur du premier compteur dans un mémoire non volatile réinscriptible du dispositif électronique ;

dans lequel :

- si le code saisi est détecté comme étant faux par le module de vérification, le traitement a pour effet de modifier la valeur du premier compteur pour indiquer la saisie d'un code faux supplémentaire ; et

- si le code saisi est détecté comme étant bon par le module de vérification, le traitement a pour effet de garder la valeur du premier compteur inchangée quelle que soit la valeur du premier compteur.

Selon un mode de réalisation particulier, le dispositif électronique comprend un module de détection d'une anomalie à partir de la valeur du premier compteur lorsqu'une condition prédéterminée est satisfaite.

Selon un mode de réalisation particulier, la condition prédéterminée définit une valeur seuil, le module de détection étant apte à détecter l'anomalie à partir d'une comparaison entre la valeur du premier compteur et la valeur seuil.

Selon un mode de réalisation particulier, le dispositif électronique est une carte à puce.

A noter que les programme d'ordinateur mentionnés dans le présent exposé peuvent utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

De plus, les supports d'enregistrement (ou d'information) mentionnés dans le présent exposé peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.

D'autre part, les supports d'enregistrement peuvent correspondre à un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, les supports d'enregistrement peuvent correspondre à un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des dessins

D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures:

- la figure 1 représente sous forme d'un organigramme un exemple de réalisation d'une transaction mis en œuvre par une carte à puce selon le protocole EMV avec un terminal externe ;

- la figure 2 représente, de manière schématique, l'architecture matérielle d'une carte à puce conforme à un mode de réalisation particulier de l'invention ;

- la figure 3 représente schématiquement des modules mis en œuvre par la carte à puce de la figure 2 ;

- la figure 4 représente sous forme d'un organigramme un procédé de contrôle mis en œuvre par la carte à puce des figures 2 et 3 conformément à un mode de réalisation particulier ; et

- la figure 5 représente sous forme d'un organigramme une variante de réalisation du procédé de contrôle de l'invention.

Description détaillée de plusieurs modes de réalisation

Comme indiqué ci-avant, la présente invention se situe dans le domaine général des dispositifs électroniques aptes à coopérer avec un terminal externe afin de réaliser une transaction, dans le domaine bancaire par exemple.

Dans ce document, des modes de réalisation de l'invention sont décrits dans le cadre d'une carte bancaire (carte de crédit, carte de débit, carte de paiement etc.) apte à réaliser une transaction bancaire avec un lecteur externe. Dans cet exemple, la carte bancaire et le lecteur coopèrent ensemble selon le protocole EMV.

On comprendra toutefois qu'il ne s'agit que d'exemples non limitatifs et que l'invention peut s'appliquer notamment à d'autres protocoles et à d'autres types de transactions. Plus généralement, la carte à puce peut être un quelconque dispositif électronique apte à communiquer avec le lecteur pour réaliser une transaction donnée.

Par ailleurs, dans les exemples considérés ici, la carte à puce est conforme à la norme ISO 7816. Sauf indications contraires, les éléments communs ou analogues à plusieurs figures portent les mêmes numéros de références et présentent des caractéristiques identiques ou analogues, de sorte que ces éléments communs ne sont généralement pas à nouveau décrits par souci de simplicité.

On décrit tout d'abord en référence à la figure 1 un exemple de traitement mise en œuvre par une carte à puce EMV, ce traitement comprenant la vérification du code secret et la gestion d'un compteur pour compter le nombre d'essais consécutifs manqués de saisie du code secret par un utilisateur.

Lors d'une transaction EMV, on suppose qu'un lecteur demande à un utilisateur de saisir le code secret (ou code PIN) d'une carte EMV. L'utilisateur saisit généralement le code secret à l'aide des touches présentes sur le lecteur.

La carte EMV assure en particulier la gestion d'un compteur noté PTC qui détermine le nombre d'essais consécutifs de saisie du code PIN par l'utilisateur qui ont échoué. A partir du suivi du compteur PTC, la carte EMV est apte à déterminer la suite à donner à la saisie d'un code PIN par l'utilisateur.

Plus précisément, au cours d'une étape S2, la carte à puce reçoit un premier code PIN saisi par l'utilisateur. La carte détermine (S4) alors si le compteur PTC est tel que :

PTC > LMTl

où LMTl est une constante prédéterminée fixée par exemple ici à 3, cette constante représentant le nombre maximal autorisé d'essais consécutifs manqués de saisie du code PIN. Si 3 essais du code PIN échouent consécutivement, la vérification du code PIN échoue définitivement et, en général, la carte se bloque.

Si PTC > LMTl, la carte EMV procède à l'étape S8. Dans le cas contraire, la variable PTC est détectée comme étant invalide et un message d'échec NOK est renvoyé (S6) au lecteur par la carte.

En S8, la carte EMV décrémente la variable PTC de 1 puis procède à l'étape S10.

En S10, la carte EMV détermine si le code secret saisi par l'utilisateur est valide en comparant celui-ci avec un code de référence stocké par exemple dans une mémoire sécurisée de la carte.

Si le code secret est valide, la carte EMV (S14) réinitialise la variable PTC à la valeur de la constante LMTl. En outre, la carte EMV renvoie (S14) au lecteur un message OK indiquant le succès de la vérification du code secret.

Si, en revanche, le code secret est détecté comme étant invalide en S10, la carte EMV vérifie (S16) si la variable PTC est égale à zéro. Si tel est le cas, l'utilisateur a effectué le nombre maximum d'essais consécutifs du PIN de sorte que l'authentification du porteur échoue et la carte renvoie (S8) un message d'échec au lecteur et, généralement, se bloque.

Si revanche la variable PTC n'est pas égale à zéro, cela signifie que l'utilisateur a encore au moins une chance pour saisir le bon code secret. Dans ce cas, la carte EMV invite (S20) l'utilisateur à saisir à nouveau le code secret en envoyant une commande TRY_AGAIN prévue à cet effet au lecteur.

Un exemple d'algorithme correspondant aux étapes S2 à S14 est proposé ci-dessous :

/* held in NVM; set during personalization

to 3 for example*/

byte constant: PIN_TRY_COUNTER_LIMIT;

/* Held in NVM; set during personalization

to the value of PIN_TRY_COUNTER_LIMI */

byte variable: PTC; get-pin(pin) {

if (PTC > PIN_TRY_COUNTER_LIMIT)

return NOK;

—PTC;

if (ok(pin)) {

PTC = PIN_TRY_COUNTER_LIMIT;

return OK;

}

else {

return TRY_AGAIN;

}

}

Dans l'exemple d'algorithme ci-dessus, on entend par NVM une mémoire non volatile (Non volatile Memory) de la carte à puce. De plus, PI _TRY_CO U NTE R_LI M ΓΓ est la valeur prédéfinie LMT1 fixée ici à 3.

Par ailleurs, on notera dans l'exemple d'algorithme ci-dessus, que lorsque le code PIN est détecté comme étant erroné à l'étape S10, l'algorithme ne lance pas une étape de vérification pour vérifier si le compteur PTC est égal à zéro ou non mais génère simplement une commande TRY_AGAIN invitant l'utilisateur à réaliser une nouvelle saisie du code secret. On comprendra que divers exemples de réalisation sont toutefois envisageables.

Le suivi du compteur PTC permet avantageusement à la carte à puce d'empêcher un utilisateur de saisir plus N fois consécutivement un code secret faux, que ce soit pendant une même transaction ou au cours de plus transaction (pourvu que les essais en question soient consécutifs). N est un nombre entier défini par la constante LMT1. Cette authentification de l'utilisateur à partir du compteur PTC permet de limiter les tentatives de fraudes à encontre des cartes à puce, de type EMV par exemple.

La déposante a cependant constaté qu'une faille subsiste lorsque ce mécanisme de sécurité est mis en œuvre dans un dispositif électronique tel qu'une carte bancaire EMV par exemple.

Plus précisément, la déposante a observé qu'il est possible pour une personne malveillante de subtiliser une carte bancaire EMV et de faire deux tentatives de saisie du code secret (dans le cas où LMT1 = 3 par exemple). En cas d'échec, la personne malveillante peut ensuite rendre la carte EMV à son utilisateur légitime sans que ce dernier en ait connaissance. Dès lors que le propriétaire légitime entre le bon code secret lors d'une transaction ultérieure, le compteur PCT se réinitialise à la valeur maximum définie par LMT1, c'est-à-dire la valeur 3 dans cet exemple. La personne malveillante a alors la possibilité de tenter à nouveau deux saisis du code secret à l'insu de l'utilisateur légitime de la carte. En répétant autant de fois que nécessaire ce subterfuge dans le temps, il est possible pour une personne malveillante de déterminer le bon code secret de la carte.

Cette faiblesse détectée dans le protocole réside dans le fait qu'à chaque fois qu'un code secret est saisi avec succès par un utilisateur, la carte à puce réinitialise le compteur PTC.

L'invention propose notamment de palier les problèmes et inconvénients identifiés ci- avant.

Pour ce faire, l'invention propose une carte à puce (et plus généralement un dispositif électronique) capable de contrôler un nombre total d'essais manqués de saisie du code secret. Il est ainsi possible pour la carte à puce de détecter une anomalie représentative d'une utilisation anormale de la carte à partir du nombre total d'essais manqués de saisie du code secret à un instant donné. Une anomalie est par exemple détectée lorsque la carte détermine que le nombre total d'essais manqués de saisie du code secret atteint une valeur seuil LIMT2 prédéterminée. Si une telle anomalie est détectée, la carte à puce peut réaliser un traitement approprié de l'anomalie tel qu'une opération de sécurisation donnée (blocage de la carte, envoi d'un message de mise en échec de la transaction en cours au lecteur etc.). Il est ainsi possible de détecter une utilisation frauduleuse de la carte à puce même si le nombre de saisies consécutives du code secret n'a pas atteint la limite maximale autorisée (fixée à trois, par exemple).

La figure 2 représente, de manière schématique, l'architecture matérielle de la carte à puce 2 conforme à un mode de réalisation particulier de l'invention. La carte 2 est dans cet exemple une carte EMV conforme à la norme ISO 7816.

Plus particulièrement, la carte à puce 2 comprend ici un microprocesseur 4 couplé à des contacts externes 6 (ports d'entrées/sorties), une mémoire volatile réinscriptible (de type RAM) 8 et une mémoire non volatile réinscriptible 10 (de type Flash par exemple). La carte 2 peut également comprendre une mémoire morte (de type ROM) non représentée ici.

Le microprocesseur 4 est apte, via les contacts externes 6, à communiquer par contact avec un lecteur (ou terminal) externe LT approprié, un terminal de paiement par exemple. On comprendra toutefois que l'invention peut s'appliquer également aux cartes à puce communiquant en mode sans contact.

Dans cet exemple, on considère que la mémoire 10 est sécurisée, en faisant appel à un mécanisme de sécurité classique bien connu de l'homme du métier et qui ne sera donc pas décrit ici.

La mémoire 10 constitue ici un support d'enregistrement (ou d'information) conforme à un mode de réalisation de l'invention, lisible par la carte à puce 2, et sur lequel est enregistré un programme d'ordinateur PG1 conforme à un mode de réalisation de l'invention. Le programme PG1 comporte des instructions pour l'exécution des étapes d'un procédé de contrôle, conformément à un mode de réalisation de l'invention. Des exemples de réalisation de ce procédé sont représentés sur les figures 4 à 5 décrites ultérieurement.

La mémoire 10 contient par ailleurs dans cet exemple un code de référence CREF représentatif du code secret authentique de la carte 2, les valeurs du compteur PTC et du compteur TOT_PTC, ainsi que les valeurs seuils LMT1 et LMT2.

Comme déjà expliqué, la valeur du compteur PTC est représentative du nombre consécutifs d'essais manqués de saisie du code secret par l'utilisateur de la carte 2. La valeur du compteur TOT_PTC est représentative du nombre total d'essais de saisie par l'utilisateur du code secret.

Comme expliqué par la suite, la mémoire RAM 8 sert de mémoire de travail dans laquelle le microprocesseur 4 peut enregistrer de façon provisoire des données, telles que les valeurs des compteurs TOT_PTC et PTC. Ces données sont transférées si nécessaire de la RAM 8 dans la mémoire non volatile réinscriptible 10.

La valeur seuil LMT1 est représentative du nombre maximum autorisé d'essais consécutifs manqués de saisie du code secret par l'utilisateur tandis que la valeur seuil LMT2 est représentative du nombre total maximum autorisé d'essais manqués de saisie du code secret par l'utilisateur.

On suppose par exemple ici que LMT1 = 3 et que LMT2 = 15, ces valeurs pouvant bien entendu être adaptées selon les besoins.

La figure 3 représente schématiquement des modules pouvant être mis en œuvre par le microprocesseur 4 exécutant le programme PG1, à savoir : un module d'obtention d'un code secret 14, un module de traitement 16 d'un code secret obtenu par le module d'obtention 14, un module de mémorisation 18 apte à mémoriser une valeur du compteur TOT_PTC obtenue par le module de traitement 16, un module de détection 20 apte à détecter une anomalie à partir de la valeur du compteur TOT_PTC, et un module de sécurisation 22 apte à réaliser une opération de sécurisation de la carte à puce 2 lorsqu'une telle anomalie est détectée.

Un mode de réalisation particulier de l'invention est à présent décrit en référence à la figure 4. Plus précisément, la carte à puce 2 met en œuvre un procédé de contrôle conforme à un mode particulier de l'invention en exécutant le programme PG1.

On suppose ici que la carte à puce 2 et le lecteur LT coopèrent ensemble selon le protocole EMV pour réaliser une transaction telle qu'une transaction de paiement ou une transaction bancaire par exemple. D'autres exemples de réalisation de l'invention sont toutefois envisageables.

On suppose ici que la carte EMV 2 est insérée dans le lecteur LT et que la carte 2 entame un dialogue selon le protocole EMV avec le lecteur LT.

Lors d'une phase d'authentification de l'utilisateur, le lecteur externe LT récupère un code secret (ou code PIN) saisi par l'utilisateur et envoie ce code secret à la carte EMV qui le reçoit à l'étape E2. Dans cet exemple, l'obtention du code PIN est réalisée à l'aide du module d'obtention 14 de la carte EMV 2 via les contacts externes 6.

La carte EMV2 réalise ensuite un traitement du code secret, ce traitement comprenant en particulier une vérification du code secret (E10) ainsi récupéré et une gestion (E4, E8 et E20) du compteur TOT_PTC. Dans cet exemple, ce traitement comprend en outre la gestion du compteur PTC (E8, E12 et E20) bien que la mise en œuvre de ce compteur PTC ne soit strictement obligatoire pour réaliser l'invention. Ce traitement est réalisé à l'aide du module de traitement 16 dans l'exemple ici considéré.

La carte EMV incrémente (E4) ensuite de 1 la valeur du compteur TOT_PTC. Dans cet exemple, la valeur de TOT_PTC ainsi incrémentée est enregistrée (E6) dans la mémoire RAM 8 de la carte EMV 2. Les différents enregistrements du compteur TOT_PTC dans la RAM 8 ou dans la mémoire non volatile réinscriptible 10 sont réalisés dans cet exemple à l'aide du module de mémorisation 18.

Au cours d'une étape E8, la carte EMV 2 détermine si la valeur du compteur PTC et la valeur du compteur TOT_PTC sont erronées. Dans cet exemple, la carte EMV 2 :

(1) vérifie si la valeur du compteur PTC est strictement supérieure à la valeur seuil LMTl, et

(2) vérifie si la valeur du compteur TOT_PTC est strictement supérieure à la valeur seuil LMT2.

Si l'une de ces deux vérifications est positives (i.e. si PTC > LMTl ou si TOT_PTC > LMT2), la carte EMV 2 détecte une anomalie et renvoie (E10) un message d'erreur NOK au lecteur externe LT.

Si au contraire les deux vérifications ci-dessus (1) et (2) sont négatives, la carte EMV 2 procède à l'étape E12 au cours de laquelle elle décrémente de 1 la valeur du compteur PTC.

La carte EMV 2 enregistre (E14) ensuite la valeur ainsi décrémentée du compteur PTC dans la mémoire RAM 8 puis transfert (E16) la valeur courante du compteur PTC et du compteur TOT_PTC dans la mémoire non volatile réinscriptible 10. Dans cet exemple, ce transfert est réalisé au cours d'une même étape d'écriture dans la mémoire 10.

La carte EMV 2 détermine (E18) par ailleurs si le code secret saisi par l'utilisateur et récupéré à l'étape E2 est correct. Pour ce faire, la carte EMV 2 compare ici le code secret obtenu en E2 avec le code de référence CREF stocké dans la mémoire 10. Si la carte EMV 2 détecte (E18) qu'il y a correspondance entre le code secret saisi et le code de référence CREF, elle procède à l'étape E20, sinon elle procède à l'étape E26.

Au cours de l'étape E20, la carte EMV réinitialise la valeur du compteur PTC à la valeur seuil LMTl et décrémente de 1 la valeur du compteur TOT_PTC de sorte à annuler l'incrémentation réalisée précédemment en E4. Le compteur de TOT_PTC revient ainsi à l'état immédiatement avant l'étape d'incrémentation E4.

La carte EMV 2 renvoie (E22) au lecteur LT un message OK indiquant le succès de la vérification du code secret.

En outre, la carte EMV 2 enregistre (E24) dans la RAM 8 la valeur réinitialisée en E20 de PTC et la valeur décrémentée en E20 de TOT_PTC. La carte EMV 2 réalise (E124) ensuite le transfert des valeurs des compteurs PTC et TOT_PTC depuis la mémoire RAM 8 dans la mémoire 10. Dans cet exemple, ce transfert est réalisé au cours d'une même étape d'écriture dans la mémoire 10. A l'étape E26 (cas du code secret invalide), la carte EMV 2 détermine (E26) si l'utilisateur est autorisé a réaliser un nouvel essai de saisie du code secret, à partir de la valeur du compteur TOT_PTC et de celle du compteur PTC. Pour ce faire, la carte EMV 2 vérifie ici si l'une des deux conditions suivantes est satisfaite :

(a) TOT_PTC = LMT2

(b) PTC = 0

Si aucune des deux conditions (a) et (b) ci-dessus n'est satisfaite, la carte EMV 2 autorise (E28) une nouvelle saisie du code secret par l'utilisateur. Si en revanche au moins l'une des conditions (a) et (a) ci-dessus est satisfaite, la carte EMV 2 détecte qu'il y a une anomalie et procède à l'étape E30 au cours de laquelle elle réalise un traitement de l'anomalie ainsi détectée. Divers traitements peuvent être envisagés selon le cas. La détection de l'anomalie effectuée en E26 à partir des valeurs de TOT_PTC et PTC est ici réalisée à l'aide du module de détection 20.

Le traitement réalisé en E30 constitue ici une opération de sécurisation de la carte EMV 2. Cette opération de sécurisation est ici réalisée à l'aide du module de sécurisation 22. L'opération de sécurisation peut comprendre au moins l'une parmi les opérations suivantes :

- la reconfiguration de la carte EMV 2 de manière à restreindre ses capacités de fonctionnement (afin par exemple de bloquer la carte EMV) ;

- la mise en échec de la transaction en cours avec le lecteur externe ; et

- l'envoi au lecteur externe d'une donnée de sécurité représentative de ladite anomalie (un message indiquant par exemple que TOT_PTC = LMT2 et/ou que PTC = 0 selon le cas).

On notera que si le code secret saisi par l'utilisateur est détecté comme étant valide en E18, le compteur TOT_PTC est décrémenté de 1 de sorte que le traitement E4-E20 réalisé par la carte EMV 2 a pour effet global de garder la valeur du compteur TOT_PTC inchangée et ce, quel que soit la valeur du compteur TOT_PTC avant d'initier le traitement E4-E20 en question.

En revanche, si le code secret saisi par l'utilisateur est détecté comme étant erroné en E18, le compteur TOT_PTC n'est pas décrémenté de sorte que le traitement E4-E18 réalisé dans ce cas par la carte EMV 2 a pour effet global de modifier la valeur du compteur TOT_PTC, c'est-à-dire décrémenter de 1 la valeur du compteur TOT_PTC dans l'exemple décrit ici.

L'effet global du traitement E4-E20 sur la valeur du compteur PTC est différent. Ainsi, si le code secret saisi par l'utilisateur est détecté comme étant valide en E18, le compteur PTC est réinitialisé à sa valeur maximale, à savoir la valeur prédéterminée LMTl. Dans ce cas, le traitement E4-E20 a pour effet global de ne pas modifier la valeur de PTC si sa valeur était déjà à la valeur LMTl immédiatement avant d'initier le traitement E4-E20 (cas particulier où l'utilisateur avait réalisé avec succès sa précédente saisie du code secret), ou a pour effet global de modifier la valeur de PTC si sa valeur n'était pas à la valeur LMTl immédiatement avant d'initier le traitement E4-E20 (cas particulier où au moins la précédente saisie du code secret réalisée par l'utilisateur était erronée).

Un exemple d'algorithme correspondant aux étapes E2 à E22 est proposé ci-dessous :

/* held in NVM; set during personalization

to 3 for example*/

byte constant: PIN_TRY_COUNTER_LIMI ;

/* held in NVM; set during personalization

to 15 for example */

byte or two-byte constant: TOT_PIN_TRY_COUNTER_LIMIT;

/* Held in NVM; set during personalization

to the value of PIN_TRY_COUNTER_LIMIT */

byte or two-byte variable: PTC;

/* Held in NVM; set to 0 during personalizaton */

byte variable TOT_PTC; get-pin(pin) {

++TOT_PTC;

if (PTC > PIN_TRY_COUNTER_LIMIT) or (TOT_PTC >

TOT_PIN_TRY_COUNTER_LIMIT )

return NOK;

—PTC;

/* commit incrémented/decremented values to EEPROM/Flash before executing ok(pin) */ if (ok(pin)) {

PTC = PIN_TRY_COUNTER_LIMIT;

—TOT_PTC;

/* commit reinitialized/decremented values to EEPROM after executing ok(pin) */

return OK;

}

else {

return TRY_AGAIN;

}

}

Dans l'exemple d'algorithme ci-dessus, on entend par NVM une mémoire non volatile (Non volatile Memory) de la carte à puce. De plus, PI _TRY_CO U NTE _LI M ΓΓ est la valeur prédéfinie LMT1 fixée ici à 3, et TOT_PIN_TRY_COU TER_LIMU est la valeur prédéfinie LMT2 fixée ici à 15.

Par ailleurs, on notera dans l'exemple d'algorithme ci-dessus, que lorsque le code PIN est détecté comme étant erroné à l'étape E18, l'algorithme ne procède pas à la vérification des compteurs PTC et TOT_PTC comme décrit ci-avant en relation à l'étape E26 mais génère simplement une commande TRY_AGAIN invitant l'utilisateur à réaliser une nouvelle saisie du code secret. On comprendra que divers exemples de réalisation sont envisageables.

Comme indiqué ci-dessus, divers variantes du mode de réalisation illustré en figures 2 à 4 sont envisageables dans le cadre de l'invention. En particulier, il est possible de décider de modifier la valeur du compteur PTC (en E4) et celle du compteur TOT_PTC (en E12) par incrémentation ou par décrémentation selon le cas. L'homme du métier saura adapter le mode de réalisation de l'invention en fonction de la configuration choisie.

On comprendra également que la présente invention porte principalement sur l'utilisation du compteur TOT_PTC. Il est toutefois préféré d'utiliser également le compteur PTC pour contrôler le nombre consécutifs d'essais manqués de saisie du code secret comme expliqué précédemment.

La présente invention permet avantageusement d'améliorer la protection d'un utilisateur légitime d'une carte à puce, de type EMV par exemple, contre une utilisation frauduleuse visant notamment à tester à de multiples reprises le code secret de la carte (de façon plus ou moins aléatoire selon le cas), en prenant le soin de retourner régulièrement la carte à l'utilisateur légitime afin que ce dernier réinitialise le compteur PTC en saisissant le bon code secret lors d'une transaction.

La mise en œuvre seule du compteur PTC ne permet pas de protéger un utilisateur contre ce type de comportement frauduleux.

L'utilisation conjointe du compteur PTC et TOT_PTC permet en outre d'offrir une protection optimale contre des tentatives d'utilisation frauduleuse d'une carte à puce, de type EMV par exemple.

La manière dont la valeur du compteur TOT_PTC, et le cas échéant celle du compteur PTC, sont enregistrées en mémoire dans la carte EMV 2 pourra être adaptée par l'homme du métier selon les besoins.

Selon une variante illustrée en figure 5 du mode de réalisation décrit ci-avant, la valeur du compteur PTC et celle du compteur TOT_PTC sont enregistrées ensemble au cours de l'étape E16 dans un même bloc mémoire BC (appelé aussi page mémoire) de la mémoire non volatile réinscriptible 10 de la carte EMV 2. Un tel bloc mémoire BC a par exemple une taille mémoire de 256 octets ou de 64 octets.

De même, la valeur du compteur PTC et celle du compteur TOT_PTC sont enregistrées ensemble au cours de l'étape E24 dans un même bloc mémoire BC.

L'enregistrement des valeurs de TOT_PTC et de PTC dans un même bloc mémoire de la mémoire 10 permet d'améliorer la sécurité de la gestion du compteur TOT_PTC. En effet, il est fréquent de mettre en œuvre dans une carte à puce EMV un mécanisme de sécurité pour vérifier si une écriture d'une valeur du compteur PTC dans la mémoire non volatile réinscriptible a été correctement réalisée, ceci afin de palier d'éventuels fraudes intentées par une personne malveillante. Un tel mécanisme de sécurité comprend par exemple la réalisation d'une fonction dite de « checksum » sur la valeur de PTC écrite dans la mémoire 10.

Enregistrer les valeurs des compteurs TOT_PTC et PTC dans un même bloc mémoire de la mémoire non volatile réinscriptible 10 permet de faire bénéficier l'écriture de TOT_PTC dans la mémoire 10 du mécanisme de sécurité visant à vérifier la bonne écriture de PTC dans la mémoire 10. Si la valeur du compteur TOT_PTC n'est pas écrite correctement dans la mémoire 10, le mécanisme de vérification portant sur l'écriture du compteur PTC pourra avantageusement le détecter.

Dans un exemple particulier, on vérifie que l'écriture de TOT_PTC et PTC dans la mémoire 10 a été correctement effectuée en réalisant une fonction checksum uniquement sur PTC. Selon une variante, la fonction checksum est réalisée à la fois sur TOT_PTC et sur PTC tels qu'enregistrés dans la mémoire 10. Un homme du métier comprendra que les modes de réalisation et variantes décrits ci- avant ne constituent que des exemples non limitatifs de mise en œuvre de l'invention. En particulier, l'homme du métier pourra envisager une quelconque combinaison des variantes et modes de réalisation décrits ci-avant afin de répondre à un besoin bien particulier.