FR3011650A1 - Procede et dispositif de realisation de fonction par un microcircuit - Google Patents

Procede et dispositif de realisation de fonction par un microcircuit Download PDF

Info

Publication number
FR3011650A1
FR3011650A1 FR1359808A FR1359808A FR3011650A1 FR 3011650 A1 FR3011650 A1 FR 3011650A1 FR 1359808 A FR1359808 A FR 1359808A FR 1359808 A FR1359808 A FR 1359808A FR 3011650 A1 FR3011650 A1 FR 3011650A1
Authority
FR
France
Prior art keywords
function
microcircuit
zone
decoy
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1359808A
Other languages
English (en)
Other versions
FR3011650B1 (fr
Inventor
Olivier Chamley
Christophe Giraud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1359808A priority Critical patent/FR3011650B1/fr
Publication of FR3011650A1 publication Critical patent/FR3011650A1/fr
Application granted granted Critical
Publication of FR3011650B1 publication Critical patent/FR3011650B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07363Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de réalisation de fonction par un microcircuit, comprenant : au moins une étape de détermination (205) de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; et pour chaque étape de détermination : lorsqu'il est déterminé qu'une anomalie est détectée, une étape de réalisation (210) d'une fonction de protection comprenant une commande d'écriture dans une première zone d'une mémoire non-volatile non-reprogrammable ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, une étape de réalisation (215) d'une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone de la mémoire non-volatile non-reprogrammable, différente de la première zone.

Description

DOMAINE DE L'INVENTION L'invention concerne un procédé et un dispositif de réalisation de fonction par un microcircuit. Elle s'applique, en particulier, à la protection des cartes à microcircuits contre les attaques avec analyse de consommation électrique.
CONTEXTE DE L'INVENTION Afin d'améliorer la sécurité des données et programmes que les cartes à microcircuits conservent, les procédés couramment utilisés comprennent des étapes de vérification du fonctionnement normal du microcircuit, dans le but de détecter d'éventuelles anomalies dont une origine possible est une attaque.
A ce titre, aussi bien le fabricant que les développeurs d'applications pour ces microcircuits mettent en place des mécanismes de détection des attaques. Par exemple, le fabricant peut inclure des détecteurs de conditions anormales d'alimentation (e.g. glitches) ou encore de lumière et les développeurs peuvent implémenter des contre-mesures consistant par exemple à vérifier l'intégrité des variables manipulées, ou encore tester la redondance des informations. Lorsqu'une anomalie est détectée, la carte peut mettre en oeuvre une fonction de protection consistant par exemple à écrire une valeur donnée dans une zone de mémoire non-volatile réservée à un drapeau de destruction (Killcard flag). Lorsque certaines conditions sont remplies (par exemple lorsqu'un certain nombre d'anomalies ont été détectées), cette fonction de protection peut avoir pour effet d'interdire tout fonctionnement ultérieur de la carte et/ou de supprimer les données stockées dans le microcircuit. Afin de sécuriser ce drapeau de destruction, il est possible d'utiliser une méthode bien connue de sécurisation de données consistant à écrire les données à sécuriser (ici le drapeau de destruction) dans une mémoire non-volatile non-réinscriptible (One-Time- Programmable (OTP) memory). Les mémoires OTP sont en effet couramment utilisées dans les milieux embarqués, particulièrement sujets aux attaques. Ce type de mémoire présente un niveau de sécurité supérieur à celui d'une mémoire non-volatile classique puisque son contenu, une fois programmé, ne peut être modifié par un attaquant en vue de perturber le fonctionnement du microcircuit. En pratique, chaque zone d'une telle mémoire peut être constituée d'un fusible, grillé lors de la programmation par l'application d'une tension adéquate. Bien entendu, d'autres types de mémoires OTP existent.
Cependant, les commandes d'écriture en mémoire non-volatile non-réinscriptible consomment beaucoup plus de courant que des opérations en mémoire vive. L'exécution d'une fonction de protection est donc facilement détectable par un attaquant, du fait de sa signature en consommation électrique particulière.
Lorsqu'un attaquant détecte cette signature particulière, il peut perturber physiquement le microcircuit (e.g. par perturbation de la fréquence d'horloge fournie au microcircuit ou par laser sur une zone du microcircuit), ou encore empêcher l'exécution de cette fonction de protection par exemple en coupant l'alimentation du microcircuit. L'opération d'écriture du drapeau de destruction permettant de protéger les données et programmes du microcircuit est alors interrompue. RESUME DE L'INVENTION La présente invention a ainsi pour objet de pallier au moins un de ces inconvénients. Dans ce contexte, un premier aspect de l'invention concerne un procédé de réalisation de fonction par un microcircuit, comprenant : au moins une étape de détermination de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; et pour chaque étape de détermination : lorsqu'il est déterminé qu'une anomalie est détectée, une étape de réalisation d'une fonction de protection comprenant une commande d'écriture dans une première zone d'une mémoire non-volatile non-reprogrammable ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, une étape de réalisation d'une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone de la mémoire non-volatile non-reprogrammable, différente de la première zone. Corrélativement, un deuxième aspect de l'invention concerne un dispositif de réalisation de fonction par un microcircuit, comportant : des moyens de détermination de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; une mémoire non-volatile non-reprogrammable ; et des moyens de contrôle adaptés : lorsqu'il est déterminé qu'une anomalie est détectée, à réaliser une fonction de protection comprenant une commande d'écriture dans une première zone de la mémoire non-volatile non-reprogrammable ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, à réaliser une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone de la mémoire non-volatile non-reprogrammable, différente de la première zone. Ainsi, un attaquant cherchant à perturber le fonctionnement du microcircuit aura des difficultés à percevoir la réalisation de la fonction de protection puisque même si aucune anomalie n'est détectée par le microcircuit, la fonction leurre simule la réalisation de la fonction de protection. De plus, dans le cas où l'attaquant arrête l'alimentation du microcircuit comme mentionné ci-avant dès qu'il perçoit une signature caractéristique d'une écriture dans une mémoire non-volatile (par la fonction de protection et par la fonction leurre), il ne peut analyser le fonctionnement du microcircuit de manière aussi efficace que dans l'art antérieur. L'exécution de telles commandes d'écriture peut aboutir ou non à l'écriture effective de données en mémoire non-volatile non-réinscriptible. D'autres caractéristiques du procédé et du dispositif selon des modes de réalisation de l'invention sont décrites dans les revendications dépendantes.
Chaque zone de la mémoire non-volatile non-réinscriptible n'est programmable qu'une unique fois, toute tentative de reprogrammation n'ayant pas d'effet sur le contenu de ladite zone. Or, les inventeurs ont remarqué que, contrairement à ce qu'on pouvait escompter, la commande d'écriture en mémoire non-réinscriptible effectuée par la fonction leurre a une signature similaire à l'écriture dans cette même mémoire réalisée par la fonction de protection, même lorsque la fonction leurre est réitérée et commande donc l'écriture dans une zone mémoire non modifiable. Dans un mode particulier de réalisation de l'invention, l'étape de détermination du fonctionnement normal du circuit comprend une étape de mesure d'au moins un paramètre de la liste suivante : température, tension d'alimentation, désadaptation (glitches), lumière, fréquence d'horloge. Dans un mode particulier de réalisation de l'invention, l'étape de détermination du fonctionnement normal du circuit comprend une étape de comparaison des résultats de deux exécutions, ou une étape de vérification d'une relation entre deux variables de calcul, ou une étape de vérification d'une propriété d'une variable. La fonction de protection est par exemple une fonction de mise hors service du microcircuit comme une fonction Killcard consistant à écrire une donnée dans une zone de mémoire non-volatile non-réinscriptible réservée à un drapeau de destruction (Killcard flag) tel que précité.
Sous certaines conditions, la détection de ce drapeau de destruction peut par exemple provoquer le blocage du fonctionnement de la carte (via l'arrêt du programme en cours d'exécution et l'empêchement d'une réinitialisation de la carte), ou en variante la destruction immédiate des données qu'elle contient.
Dans un mode particulier de réalisation de l'invention, la fonction leurre a une consommation électrique identique à celle de la fonction de protection ; ou la fonction leurre a un rayonnement électromagnétique sensiblement identique à celui de la fonction de protection. En variante, une grandeur physique perceptible de l'extérieur du microcircuit, 5 modulée par la fonction de protection et la fonction leurre peut être un champ électromagnétique, une résistance, une capacité, une inductance, une tension, ou une intensité. On note que, dans ce type d'attaque, si l'attaquant ne coupe pas l'alimentation électrique alors qu'il détecte une consommation électrique élevée, dans le but par exemple de poursuivre l'observation du fonctionnement du microcircuit après la réalisation d'une fonction 10 leurre, il laisse nécessairement s'exécuter la fonction de protection dès que son attaque a été détectée. Dans un mode particulier de réalisation de l'invention, le procédé comprend plusieurs étapes de détermination déterminant que le fonctionnement du microcircuit est normal, et au moins deux étapes de réalisation d'une même fonction leurre comprenant une 15 commande d'écriture dans la même seconde zone. Ainsi, lorsque la fonction leurre est plusieurs fois réalisée, seule la première commande d'écriture dans la seconde zone de la mémoire non-volatile non-reprogrammable par la fonction leurre aura un effet sur le contenu de cette mémoire, puisque la mémoire n'est pas reprogrammable. Toutefois, de l'extérieur, les différentes réalisations de la fonction leurre 20 seront perçues de la même manière, en termes de consommation électrique par exemple. Dans un mode particulier de réalisation de l'invention, le même algorithme d'écriture est mis en oeuvre lors de l'exécution des commandes d'écriture respectivement de la fonction de protection et de la fonction leurre, bien qu'elles visent des zones différentes. La signature de la fonction leurre en est d'autant plus similaire à la signature de la 25 fonction de protection. Dans un mode particulier de réalisation de l'invention, au moins une des commandes d'écriture ne fait intervenir aucune donnée de vérification. Notamment, aucune somme de vérification (Checksum) n'est mise en oeuvre. Dans un mode particulier de réalisation de l'invention, au moins une des 30 commandes d'écriture ne comprend pas la relecture de la donnée écrite. Ces dispositions permettent chacune d'accélérer l'écriture en mémoire non-volatile non-réinscriptible, réduisant ainsi le risque d'une action de l'attaquant pour perturber le microcircuit avant la réalisation complète de la fonction de protection, sans pour autant que les signatures des différentes fonctions soient différentes. 35 Par ailleurs, le fonctionnement du microcircuit est accéléré puisque le temps de calcul nécessaire à la mise en oeuvre des commandes d'écriture sans vérification et/ou sans relecture est réduit. Les avantages, buts et caractéristiques particulière du dispositif sont similaires à ceux du procédé précité.
Dans un mode particulier de réalisation, les différentes étapes du procédé précité 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, ce programme étant susceptible d'être mis en oeuvre par un microprocesseur, ce programme comprenant des instructions adaptées à la mise en oeuvre des étapes du procédé tel que mentionné ci-dessus. Ce programme peut 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. L'invention vise aussi un support d'informations lisible par un microprocesseur, et comprenant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple une ROM de microcircuit, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur, ou encore une mémoire flash. D'autre part, le support d'informations peut être 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 une plateforme de stockage d'un réseau de type Internet. Alternativement, le support d'informations peut être 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. Le support d'informations et le programme d'ordinateur précités présentent des caractéristiques et avantages analogues au procédé qu'ils mettent en oeuvre. BREVE DESCRIPTION DES FIGURES D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures : - La Figure 1 représente schématiquement un dispositif conforme à un mode de réalisation particulier de l'invention, - La Figure 2 représente sous forme d'organigramme, les principales étapes d'un procédé selon un mode particulier de réalisation de l'invention, - La Figure 3 illustre schématiquement l'état de la mémoire non-volatile non- réinscriptible après plusieurs réalisations de la fonction leurre, selon un scénario particulier de réalisation de l'invention. - La Figure 4 représente sous forme d'organigramme, un algorithme d'écriture en mémoire non-volatile non-réinscriptible courant pouvant être utilisée par les fonctions de protection et leurre, et - La Figure 5 représente sous forme d'organigramme, un algorithme d'écriture en mémoire non-volatile non-réinscriptible simplifié pouvant être utilisée par les fonctions de protection et leurre. DESCRIPTION DETAILLEE DE L'INVENTION Dans la description qui va suivre, la grandeur physique perceptible depuis l'extérieur du microcircuit considérée à titre d'exemple non limitatif est la consommation électrique, du fait que les attaques les plus couramment rencontrées aujourd'hui la concernent. Cependant, la présente invention ne se limite pas à ce type de grandeur physique modulée lors de la réalisation d'une fonction de protection ou d'une fonction leurre mais s'étend, bien au contraire, à toutes les grandeurs physiques modulées perceptibles à l'extérieur d'un microcircuit, par contact avec ce microcircuit ou avec des liaisons reliées à lui ou à distance. Ainsi, une grandeur physique modulée concernée par la présente invention peut être un rayonnement ou un champ électromagnétique, une résistance, une capacité, une inductance, une tension, une intensité ou une consommation électrique, par exemple.
De façon générale, si une anomalie est détectée au cours du fonctionnement du microcircuit, une fonction de protection du microcircuit est réalisée, modulant ainsi, en conséquence, au moins une grandeur physique prédéterminée perceptible à l'extérieur du microcircuit. Conformément à la présente invention, au cours du fonctionnement normal du microcircuit, une fonction leurre simulant la fonction de protection est réalisée en modulant chaque grandeur physique prédéterminée perceptible à l'extérieur du microcircuit de manière sensiblement identique à la fonction de protection. La Figure 1 représente une carte à microcircuit 105 comportant les éléments suivants reliés entre eux par un bus 155 : - un microprocesseur 110, - des entrées/sorties 115, - une mémoire morte 120 stockant un système d'exploitation 125, et - une mémoire non-volatile non-réinscriptible 130 comportant une matrice de mémoire 135 et directement contrôlée par le microprocesseur 110.
Cette mémoire non-volatile non-réinscriptible (one-time-programmable memory ou OTP memory) n'étant programmable qu'une unique fois, toute tentative de reprogrammation n'a pas d'effet sur celle-ci. Ce type de mémoire présente donc un niveau de sécurité supérieur à celui d'une mémoire non-volatile classique puisque son contenu, une fois programmé, ne peut être modifié par un attaquant en vue de perturber le fonctionnement du microcircuit.
Un programme 150 d'écriture simplifié (ou algorithme d'écriture simplifié), dont les instructions sont représentées sur la Figure 5 décrite ultérieurement, est stocké par exemple dans la mémoire morte 120 ou dans une mémoire non-volatile. En variante, le programme 150 est directement implémenté par le système d'exploitation 125 stocké en mémoire morte 120.
Ainsi ces mémoires peuvent constituer un support d'informations au sens de l'invention. La mémoire morte 120 ou une mémoire non-volatile stockent des instructions d'un programme de fonctionnement de la carte 105. Ce programme met notamment en oeuvre les étapes du mode de réalisation particulier illustré sur la Figure 2.
En particulier, au cours de son fonctionnement, la carte à microcircuit détermine (étape 205) si une anomalie est détectée ou si le fonctionnement de la carte est normal. En pratique, cette étape consiste par exemple à vérifier une somme de contrôle ou de vérification (Checksum), c'est-à-dire à vérifier que des données inscrites en mémoire sont bien cohérentes avec la somme de vérification associée à ces données. En variante, la détermination peut par exemple être basée sur la comparaison des résultats obtenus par deux mises en oeuvre d'un même algorithme. A l'issue de la détermination, si une anomalie est détectée, une fonction de protection, destinée à protéger la carte et/ou son contenu est réalisée (c'est-à-dire mise en oeuvre).
Au contraire, si aucune anomalie n'est détectée, c'est-à-dire s'il est déterminé que le fonctionnement est normal, une fonction leurre simulant la fonction de protection est réalisée. Cette fonction leurre est configurée de sorte à être perceptible, depuis l'extérieur dudit microcircuit, de manière sensiblement identique à la fonction de protection. Dans des modes de réalisation simples, la fonction leurre est identique à la fonction de protection à une valeur de paramètre ou de variable près. Comme illustré sur la Figure 2, dans un mode particulier de réalisation, la fonction de protection consiste, au cours d'une étape 210, à écrire une donnée prédéterminée dans une première zone d'une mémoire non-volatile non-réinscriptible. Il s'agit, par exemple, de mettre à une valeur prédéterminée un drapeau de destruction, en écrivant une donnée prédéterminée dans une première zone de la mémoire non-volatile non-réinscriptible (OTP) spécifiquement dédiée à ce drapeau. Autrement dit, la présence de cette donnée prédéterminée dans cette première zone est le résultat de la réalisation ou de la mise en oeuvre de cette fonction de protection. Ainsi, l'écriture d'une telle donnée dans une zone de mémoire différente de cette première zone dédiée au drapeau, n'est pas prise en compte par la carte comme une valeur de drapeau de destruction appelant par exemple au blocage du fonctionnement de la carte (via l'arrêt du programme en cours d'exécution et l'empêchement d'une réinitialisation de la carte), ou en variante à la destruction immédiate des données qu'elle contient.
Dans ce mode de réalisation, même si aucune anomalie n'est détectée, c'est-à-dire si le fonctionnement du circuit est déterminé comme étant normal, on effectue une étape 215 de réalisation d'une fonction leurre présentant la même signature, en termes de consommation électrique, que l'écriture par la fonction de protection d'une donnée prédéterminée dans la première zone de la mémoire non-volatile non-réinscriptible. Dans un mode de réalisation simple, la fonction leurre consiste à écrire une donnée en mémoire non-volatile non-réinscriptible, dans une deuxième zone, différente de la première zone. On rappelle que cette deuxième zone n'est pas la zone dédiée au drapeau (première zone) et donc l'écriture d'une donnée, quelle qu'elle soit, dans cette zone ne sera pas interprétée par la carte comme une valeur de drapeau de destruction appelant à la destruction immédiate des données qu'elle contient ou au blocage du fonctionnement de la carte, comme c'est le cas lors de la mise en oeuvre de la fonction de protection. Suite à l'exécution de la commande d'écriture de la fonction leurre, une nouvelle étape de détermination 205 peut être mise en oeuvre à un instant ultérieur de fonctionnement de la carte à microcircuit. Si au cours de la mise en oeuvre du procédé, il est déterminé plusieurs fois que le fonctionnement du microcircuit est normal, la fonction leurre commande plusieurs fois l'écriture de données dans la mémoire non-volatile non-réinscriptible. Selon un mode de réalisation particulier de l'invention, ces commandes d'écriture se font à chaque fois dans la même zone de mémoire, correspondant à la seconde zone précitée. Cela permet de ne monopoliser qu'une seule zone de la mémoire non-volatile non-réinscriptible pour les différentes mises en oeuvre de la fonction leurre. Considérons un exemple non limitatif de scénario, dans lequel par exemple trois étapes de détermination permettent de déterminer successivement le fonctionnement normal de la carte à deux reprises puis la détection d'une anomalie. La Figure 3 représente l'état de la mémoire non-volatile non-réinscriptible à l'issue de chacune des commandes d'écriture engendrées à la suite des trois étapes de détermination. La mémoire non-volatile non-réinscriptible comprend dans cet exemple quatre zones de mémoire Z1, Z2, Z3, Z4. La première zone Z1, réservée au drapeau de destruction et la deuxième zone Z2, réservée à la fonction leurre sont vierges lors de la mise en oeuvre de la première étape de détermination. Dans cet exemple, au cours d'une première étape de détermination 205, la carte détermine le fonctionnement normal de la carte, la fonction leurre commande l'écriture d'une donnée D1 dans la seconde zone Z2 différente de la première zone Z1 réservée au drapeau de destruction. Suite à cette écriture, le procédé peut reboucler, lors du fonctionnement ultérieur, sur une seconde étape de détermination 205 à l'issue de laquelle le fonctionnement normal de la carte est de nouveau constaté.
La fonction leurre commande l'écriture d'une donnée D2 (différente ou bien égale à la donnée D1) dans la seconde zone Z2, mais cette commande d'écriture n'a pas d'effet sur la zone de mémoire Z2 puisque la donnée D1 a déjà été écrite dans cette zone de mémoire Z2 et que la mémoire est justement non-réinscriptible.
L'état de la mémoire à l'issue de la seconde réalisation de la fonction leurre est donc identique à l'état précédent (c'est-à-dire à l'issue de la première réalisation de la fonction leurre). Bien que sans effet sur le contenu de la mémoire non-réinscriptible, cette seconde commande d'écriture provoque une consommation de courant et est perçue par l'attaquant comme une écriture classique en mémoire non-volatile telle que celle mise en oeuvre par la fonction de protection. Suite à cette seconde commande d'écriture, le procédé peut reboucler, lors du fonctionnement ultérieur, sur une troisième étape de détermination 205 à l'issue de laquelle une anomalie est détectée.
La fonction de protection est alors réalisée et la valeur Killcard du drapeau de destruction est écrite dans la zone prévue à cet effet, à savoir la première zone Z1, jusqu'alors vierge. Ainsi, alors que la fonction leurre est plusieurs fois mise en oeuvre, seule la première commande d'écriture dans la seconde zone de la mémoire non-volatile non- reprogrammable par la fonction leurre aura un effet sur le contenu de la mémoire, puisque cette mémoire n'est pas reprogrammable. De retour à la Figure 2, pour que les signatures soient les plus proches possible, au cours de la commande d'écriture dans la deuxième zone, on commande l'écriture un même nombre d'informations binaires que la donnée prédéterminée et on met en oeuvre le même protocole (ou la même routine ou le même algorithme) d'écriture que lors de l'écriture de la donnée prédéterminée. Préférentiellement, au cours de la commande d'écriture dans la deuxième zone, on commande l'écriture de la donnée prédéterminée (c'est à dire la donnée écrite par la fonction de protection) dans la deuxième zone. Par exemple, si la fonction Killcard(Z1) est utilisée lorsqu'il est déterminé qu'une anomalie est détectée, la fonction Killcard(Z2) est mise en oeuvre lorsqu'il n'y a pas de détection d'une anomalie c'est-à-dire lorsque le microcircuit fonctionne normalement. Un code, ou série d'instructions, correspondant est le suivant: If anomaly detected Complete processing of the current APDU; Killcard(Z1); Else Complete processing of the current APDU Killcard(Z2);40 Dans ce cadre, la Figure 4 représente un exemple de fonction Killcard pouvant être utilisée par les fonctions de protection et leurre. Cette fonction comprend une commande d'écriture constituée d'instructions correspondant à un algorithme courant d'écriture d'une donnée en mémoire non-volatile non-réinscriptible.
Un tel algorithme comporte : - une étape 310 de détermination d'au moins une somme de vérification (Checksum) à partir de la donnée qui doit être écrite; - une étape 315 d'écriture de la donnée et de chaque somme de vérification déterminée lors de l'étape 310 ; - une étape 320 de relecture de la donnée écrite et de chaque somme de vérification et - une étape 325 de détermination de la validité des sommes de vérification en refaisant, sur les données lues, une détermination de chaque somme de vérification correspondante et en la comparant avec la somme de vérification lue.
Ainsi, cet algorithme classique d'écriture est relativement long (e.g. 2 millisecondes dans le cas d'une mémoire EEPROM), ce qui ralentit le fonctionnement du microcircuit. Le coût calculatoire est lié principalement au nombre d'écritures en mémoire non-volatile (ici au moins deux : écriture de la donnée et d'au moins une somme de vérification). Dans le but d'éviter ces inconvénients, il est possible d'utiliser une version modifiée de la fonction Killcard comprenant des instructions correspondant à un algorithme d'écriture simplifié (e.g. d'une durée par exemple de 1 milliseconde dans le cas d'une mémoire EEPROM) par rapport à celui de la Figure 4. Un exemple d'une telle fonction Killcard modifiée utilisant un algorithme d'écriture simplifié est représenté sur la Figure 5.
En pratique, afin de ne pas perturber l'exécution de commandes d'écritures en fonctionnement normal, le microprocesseur de la carte détermine préalablement à l'exécution d'une commande d'écriture si la commande concerne l'une des zones 1 ou 2 de la mémoire non-volatile non-réinscriptible. Si non, cela signifie que cette commande d'écriture n'est pas relative à la fonction de protection ni à la fonction leurre, et l'algorithme d'écriture courant de la Figure 4 est réalisé. Si oui, cela signifie que cette commande d'écriture est relative à la fonction de protection ou à la fonction leurre et un algorithme d'écriture simplifié, tel que représenté à la Figure 5, est utilisé. Cet algorithme d'écriture simplifié ne comporte : - pas l'étape de détermination d'au moins une somme de vérification (en anglais Checksum) ; cette étape est éventuellement, maintenue pour certaines commandes d'écriture choisies aléatoirement ou cycliquement, au cours d'une étape 410 ; - pas d'étape d'écriture de somme(s) de vérification; cette étape est, éventuellement, maintenue au cours d'une étape 416 pour chaque somme de vérification déterminées au cours d'une étape 410 ; - pas l'étape de relecture de la donnée écrite; cette étape est, éventuellement, maintenue au cours d'une étape 420 pour les données ayant donné lieu à détermination d'au moins une somme de vérification; - pas l'étape de détermination de la validité des sommes de vérification en refaisant, sur les données lues, une détermination de chaque somme de vérification correspondante; cette étape est, éventuellement, maintenue au cours d'une étape 425, pour les données ayant donné lieu à détermination d'au moins une somme de vérification. Ainsi, dans un mode de réalisation envisageable, l'algorithme d'écriture en mémoire non-volatile non-réinscriptible, utilisé par les fonctions de protection et leurre, ne comporte que: - l'étape 415 d'écriture de la donnée et - seulement pour certaines commandes d'écriture de données choisies aléatoirement ou cycliquement, les étapes 410, 416, 420 et 425. En variante de ce mode dans lequel le même algorithme d'écriture est utilisé par la fonction de protection et par la fonction leurre, la fonction de protection, appelée Killcardl(Z1) peut utiliser un algorithme d'écriture différent de celui utilisé par la fonction leurre, appelée, par exemple, Killcard2(Z2). Par exemple, la fonction de protection peut utiliser l'algorithme d'écriture courant et la fonction leurre peut utiliser un algorithme d'écriture simplifié comme par exemple celui de la Figure 5. Ainsi, dans certains modes de réalisation, la commande d'écriture en mémoire non-volatile non-réinscriptible par la fonction de protection comporte la génération, l'écriture, la relecture et la vérification de somme(s) de vérification alors que l'écriture en mémoire non-volatile non-réinscriptible par la fonction leurre ne les comporte pas. En variante, comme exposé ci-avant, seule certaines commandes d'écriture (sélectionnées cycliquement ou aléatoirement) par la fonction leurre comportent la génération, l'écriture, la relecture et la vérification de somme(s) de vérification. Dans ces deux derniers cas, l'usure de la mémoire non-volatile non-réinscriptible est réduite, la vitesse de fonctionnement normal du microcircuit est augmentée, tout en complexifiant la reconnaissance de la réalisation de la fonction de protection par un attaquant extérieur.
En conséquence, le délai de finalisation de l'écriture est très limité lorsqu'il n'y a pas de mise en oeuvre de somme(s) de vérification, par rapport à l'état de l'art. On note que la présente invention peut être mise en oeuvre sous la forme d'un programme s'exécutant dans le microcircuit ou sous la forme d'un circuit intégré spécialisé, par exemple un ASIC (pour Application-Specific Integrated Circuit), un circuit logique programmable comprenant une mémoire OTP. Dans des modes de réalisation, une entité électronique de poche ou portable comporte un dispositif de protection d'un microcircuit qui met en oeuvre le procédé de protection objet de la présente invention. Par exemple, cette entité électronique est un PDA (« personal digital assistant» pour assistant personnel numérique), une clef USB, une carte mémoire, un téléphone mobile, un passeport électronique ou une carte à microcircuit (c'est-à-dire conforme à la norme ISO 7816 et sécurisée, par exemple certifiée conformément aux critères communs).
Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas.

Claims (11)

  1. REVENDICATIONS1. Procédé de réalisation de fonction par un microcircuit, caractérisé en ce qu'il comprend : au moins une étape de détermination (205) de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; et pour chaque étape de détermination : lorsqu'il est déterminé qu'une anomalie est détectée, une étape de réalisation (210) d'une fonction de protection comprenant une commande d'écriture dans une première zone (Z1) d'une mémoire non-volatile non-reprogrammable (130) ; et lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, une étape de réalisation (215) d'une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone (Z2) de la mémoire non-volatile non-reprogrammable (130), différente de la première zone (Z1).
  2. 2. Procédé selon la revendication 1, caractérisé en ce que la fonction leurre a une consommation électrique identique à celle de la fonction de protection ; ou la fonction leurre a un rayonnement électromagnétique sensiblement identique à celui de la fonction de protection.
  3. 3. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que chaque zone (Z1 ; Z2 ; Z3 ; Z4) de la mémoire non-volatile non-réinscriptible (130) n'est programmable qu'une unique fois.
  4. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend plusieurs étapes de détermination (205) déterminant que le fonctionnement du microcircuit est normal, et au moins deux étapes de réalisation d'une même fonction leurre comprenant une commande d'écriture dans la même seconde zone (Z2).
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le même algorithme d'écriture est mis en oeuvre lors de l'exécution des commandes d'écriture respectivement de la fonction de protection et de la fonction leurre.
  6. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'au moins une des commandes d'écriture ne fait intervenir aucune donnée de vérification.
  7. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'au moins une des commandes d'écriture ne comprend pas la relecture de la donnée écrite.
  8. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que la fonction de protection est une fonction de mise hors service du microcircuit.
  9. 9. Programme d'ordinateur comprenant des instructions pour la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 8, lorsqu'il est chargé et exécuté par un microprocesseur (110).
  10. 10. Support d'informations (120) lisible par un microprocesseur (110), comprenant les instructions d'un programme d'ordinateur pour mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 8.
  11. 11. Dispositif de réalisation de fonction par un microcircuit, caractérisé en ce qu'il comprend : des moyens de détermination (110, 120, 130, 150) de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; une mémoire non-volatile non-reprogrammable (130) ; et des moyens de contrôle (110, 120, 130, 150) adaptés : lorsqu'il est déterminé qu'une anomalie est détectée, à réaliser une fonction de protection comprenant une commande d'écriture dans une première zone (Z1) de la mémoire non-volatile non-reprogrammable (130) ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, à réaliser une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone (Z2) de la mémoire non-volatile non-reprogrammable (130), différente de la première zone (Z1).
FR1359808A 2013-10-09 2013-10-09 Procede et dispositif de realisation de fonction par un microcircuit Active FR3011650B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1359808A FR3011650B1 (fr) 2013-10-09 2013-10-09 Procede et dispositif de realisation de fonction par un microcircuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1359808A FR3011650B1 (fr) 2013-10-09 2013-10-09 Procede et dispositif de realisation de fonction par un microcircuit

Publications (2)

Publication Number Publication Date
FR3011650A1 true FR3011650A1 (fr) 2015-04-10
FR3011650B1 FR3011650B1 (fr) 2015-12-11

Family

ID=50231265

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1359808A Active FR3011650B1 (fr) 2013-10-09 2013-10-09 Procede et dispositif de realisation de fonction par un microcircuit

Country Status (1)

Country Link
FR (1) FR3011650B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725935B2 (en) 2015-12-15 2020-07-28 Idemia France Method for writing in a non-volatile memory of an electronic entity, and related electronic entity

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2164031A1 (fr) * 2008-09-11 2010-03-17 Oberthur Technologies Procédé et dispositif de protection d'un microcircuit contre des attaques

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2164031A1 (fr) * 2008-09-11 2010-03-17 Oberthur Technologies Procédé et dispositif de protection d'un microcircuit contre des attaques

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725935B2 (en) 2015-12-15 2020-07-28 Idemia France Method for writing in a non-volatile memory of an electronic entity, and related electronic entity

Also Published As

Publication number Publication date
FR3011650B1 (fr) 2015-12-11

Similar Documents

Publication Publication Date Title
EP2164031B1 (fr) Procédé et dispositif de protection d'un microcircuit contre des attaques
EP1161725B1 (fr) Procede de surveillance du deroulement d'un programme
EP1904946B1 (fr) Detection d'une faute par perturbation longue
WO2006045924A1 (fr) Protection contre les attaques par generation de fautes sur les instructions de saut
CA2575143C (fr) Procede et dispositif de traitement de donnees
EP2860668B1 (fr) Procédé et dispositif de réalisation de fonction par un microcircuit
EP3391228B1 (fr) Procédé d'écriture dans une mémoire non-volatile d'une entité électronique et entité électronique associée
FR3011650A1 (fr) Procede et dispositif de realisation de fonction par un microcircuit
EP2860669B1 (fr) Procédé mis en oeuvre dans un microcircuit et dispositif associé
EP2797018B1 (fr) Procede et systeme de simulation des effets d'une attaque sur un code informatique
EP2333703B1 (fr) Composant électronique apte à détecter des attaques actives
EP3042334B1 (fr) Procédé de mise en place de moyens de sécurité en fonction d'un indice de confiance variant avant et après l'exécution de commandes sous la forme ddans un dispositif électronique à mémoire, et dispositif pour la mise en oeuvre dudit procédé
FR3070076A1 (fr) Procede de protection d'un dispositif electronique contre des attaques par injection de faute
EP2229648B1 (fr) Methode de transfert securise de donnees
EP2466506A1 (fr) Procédé dynamique de contrôle de l'intégrité de l'exécution d'un code exécutable
EP2343663A1 (fr) Procédé de protection polymorphe d'un code exécutable
EP3422232B1 (fr) Procédé de protection d'un dispositif électronique exécutant un programme contre des attaques par injection de faute
WO2008096076A2 (fr) Systemes electroniques securises, procedes de securisation et utilisations de tels systemes
FR2879781A1 (fr) Procede et dispositif de remplissage de securisation d'une memoire et memoire associee
FR3011657A1 (fr) Procede mis en œuvre par un processeur et entite electronique associee
FR3075430A1 (fr) Procede de traitement de donnees et dispositif electronique associe
FR2964480A1 (fr) Procede d'execution d'une application dans un dispositif de traitement tel qu'une carte a puce, et dispositif de traitement associe
FR2980600A1 (fr) Procede et systeme de securisation d'une application logicielle comprenant une instruction conditionnelle basee sur une variable booleenne

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

CA Change of address

Effective date: 20200218

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200218

CJ Change in legal form

Effective date: 20200218

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11