Brevet FR3045862A1 — publié le 20170623

DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne la protection des entités électroniques contre les attaques. Elle concerne plus particulièrement un procédé d'écriture dans une mémoire non-volatile, un procédé de lecture dans une mémoire non-volatile et un procédé mis en oeuvre dans une entité électronique. L'invention s'applique particulièrement avantageusement dans le cas où l'on souhaite garder trace des anomalies détectées lors des phases successives de fonctionnement de l'entité électronique. ARRIERE-PLAN TECHNOLOGIQUE On connaît par exemple du document EP 2 860 669 un procédé d'écriture dans une mémoire non-volatile d'une entité électronique, comprenant les étapes suivantes : - détection d'une anomalie de fonctionnement de l'entité électronique ; - en conséquence de ladite détection, écriture, à un emplacement d'une zone de la mémoire non-volatile, d'une donnée indicative de ladite détection 20 d'anomalie. Comme indiqué dans ce document, on garde ainsi en mémoire non-volatile une trace des anomalies détectées lors des phases de fonctionnement antérieures de l'entité électronique. On peut ainsi lire ultérieurement la zone susmentionnée de la mémoire 25 non-volatile et mettre en oeuvre éventuellement des fonctions de protection (telles que le blocage du fonctionnement de l'entité électronique ou l'effacement de certaines données mémorisées par l'entité électronique), par exemple lorsque les données mémorisées dans cette zone indiquent que le nombre d'anomalies détectées atteint un seuil prédéterminé. 30 On comprend dès lors que des attaquants cherchent à éviter l'écriture de la donnée indicative de détection d'anomalie, typiquement en coupant l'alimentation électrique de l'entité électronique. En particulier, lorsque le processus d'écriture dans la mémoire non-volatile nécessite l'effacement de la page mémoire concernée avant ré-écriture de 3045862 2 l'ensemble de la nouvelle page mémoire, la coupure de l'alimentation électrique par l'attaquant peut se produire au moment où la page mémoire est effacée, mais non encore ré-écrite. Toutes les données de la page mémoire concernée auront alors une 5 valeur d'effacement (en général une valeur nulle) et l'entité électronique aura alors perdu toute trace des anomalies détectées antérieurement. OBJET DE L'INVENTION Dans ce contexte, la présente invention propose un procédé d'écriture tel que mentionné ci-dessus, caractérisé en ce que, préalablement à l'étape de 10 détection, l'emplacement est initialisé avec une valeur distincte d'une valeur d'effacement de la mémoire non-volatile. Ainsi, si on lit ultérieurement la valeur d'effacement dans cet emplacement, on saura que l'entité électronique est sortie du fonctionnement normal et on pourra alors mettre en oeuvre les mesures de protection adéquate. 15 En effet, en fonctionnement normal et en l'absence d'anomalie, l'emplacement devrait toujours mémoriser la valeur à laquelle il a été initialisé (valeur de pré-initialisation), qui est distincte de la valeur d'effacement. Selon des caractéristiques optionnelles et donc non limitatives : - la donnée indicative est obtenue par combinaison d'un code d'erreur et de ladite valeur distincte ; - la combinaison est réalisée au moyen d'une opération de "ou exclusif" ; - l'emplacement est initialisé à ladite valeur distincte avant la mise en service de l'entité électronique, par exemple lors de la fabrication de l'entité électronique ou lors d'une phase de personnalisation de l'entité électronique ; - le procédé comprend une étape de réception d'une donnée par une interface de communication ; - le procédé comprend une étape de traitement (par exemple de traitement cryptographique) de la donnée reçue ; - le traitement utilise une clé cryptographique mémorisée dans la mémoire non-volatile ; - le procédé comprend une étape de vérification d'un résultat obtenu par ledit traitement ; - ladite détection d'anomalie résulte d'un échec à l'étape de vérification ; - l'anomalie est détectée au moyen d'un détecteur d'attaque ; 3045862 3 L'invention propose également un procédé de lecture dans une mémoire non-volatile d'une entité électronique, comprenant les étapes suivantes : - lecture d'une zone de la mémoire non-volatile destinée à mémoriser au moins une donnée indicative de détection d'anomalie ; 5 - mise en oeuvre d'une fonction de protection si aucune donnée lue ne vaut une valeur donnée (appelée dans la suite "valeur de pré-initialisation") distincte d'une valeur d'effacement de la mémoire non-volatile. Le procédé peut comprendre une étape de réception d'une donnée par une interface de communication. 10 Par ailleurs, l'étape de lecture de ladite zone peut comprendre la lecture d'un octet de ladite zone. Le traitement de la donnée peut alors être effectué si l'octet lu vaut ladite valeur donnée (valeur de pré-initialisation). Le procédé peut comprendre une étape de combinaison d'un octet lu 15 dans ladite zone et de ladite valeur donnée, combinaison réalisée par exemple au moyen d'une opération de "ou exclusif'. L'invention propose enfin un procédé mis en oeuvre dans une entité électronique comprenant une mémoire non-volatile, comprenant les étapes suivantes : 20 - initialisation d'un emplacement d'une zone de la mémoire non-volatile avec une valeur distincte d'une valeur d'effacement de la mémoire non-volatile ; - au cours d'une phase de fonctionnement postérieure à ladite initialisation, détection d'une anomalie de fonctionnement de l'entité électronique ; - en conséquence de ladite détection, écriture, dans ledit emplacement, 25 d'une donnée indicative de ladite détection d'anomalie ; - suite à un démarrage ultérieur du fonctionnement de l'entité électronique, lecture de ladite zone ; - mise en oeuvre d'une fonction de protection si aucune donnée lue dans ladite zone ne vaut une ladite valeur distincte. 30 Lorsque l'entité électronique comprend un processeur (par exemple un microprocesseur), chacun des procédés décrits ci-dessus peut être mis en oeuvre du fait de l'exécution, par le processeur, d'instructions de programme d'ordinateur mémorisées dans une mémoire de l'entité électronique (par exemple dans la mémoire non-volatile susmentionnée). 3045862 4 DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. 5 Sur les dessins annexés : - la figure 1 représente schématiquement les éléments principaux d'une entité électronique au sein de laquelle est mise en oeuvre l'invention ; - la figure 2 représente un état d'une zone d'écriture sécuritaire, située en mémoire non volatile, lors de la mise en service de l'entité électronique de la figure 10 1 ; - la figure 3 est un logigramme présentant des étapes d'un procédé mis en oeuvre au sein de l'entité électronique de la figure 1; - la figure 4 représente l'état de la zone d'écriture sécuritaire après détection d'une anomalie ; et 15 - la figure 5 représente l'état de la zone d'écriture sécuritaire après effacement de la page mémoire contenant cette zone. La figure 1 représente schématiquement les éléments principaux d'une entité électronique 1 au sein de laquelle est mise en oeuvre l'invention. Cette entité électronique 1 est par exemple une carte à microcircuit, telle 20 qu'une carte à circuit intégré universelle (ou UICC pour "Universal Integrated Circuit Card!). En variante, il pourrait s'agir d'un élément sécurisé (ou SE pour "Secure Element") - par exemple un microcontrôleur sécurisé, d'un dispositif électronique portatif (ou "hand-held electronic device" selon l'appellation anglo-saxonne) - par exemple un terminal de communication ou un passeport 25 électronique, ou d'un ordinateur. L'entité électronique 1 comprend un microprocesseur 2, une mémoire vive 4 et une mémoire non-volatile 6. L'entité électronique 1 pourrait éventuellement comprendre en outre une mémoire morte. La mémoire non-volatile 6 est par exemple une mémoire non-volatile 30 réinscriptible (par exemple de type EEPROM pour "Electrically Erasable and Programmable Read-Only Memory', ou de type Flash). La mémoire vive 4 et la mémoire non-volatile 6 sont chacune liées au microprocesseur 2 de sorte que le microprocesseur 2 peut lire ou écrire des données dans chacune de ces mémoires. 3045862 5 Une de ces mémoires, par exemple la mémoire non-volatile 6, mémorise des instructions de programme d'ordinateur qui permettent la mise en oeuvre au sein de l'entité électronique 1, d'un procédé (tel que par exemple le procédé décrit ci-dessous en référence à la figure 3) lorsque ces instructions sont exécutées par 5 le microprocesseur 2. Les mémoires 4, 6 mémorisent également des données représentatives de variables utilisées lors de la mise en oeuvre de divers procédés de traitement de données, notamment le procédé décrit ci-dessous en référence à la figure 3. La mémoire non-volatile 6 comprend en outre une zone d'écriture 10 sécuritaire Z utilisée comme décrit plus bas. Lors du démarrage du fonctionnement de l'entité électronique 1 (par exemple consécutivement à sa mise sous tension), le microprocesseur 2 lit les données mémorisées dans la zone d'écriture sécuritaire Z et peut sélectivement, selon les données lues, bloquer son fonctionnement ou poursuivre son 15 fonctionnement, comme cela est expliqué ci-dessous. Dans certains cas, le blocage du fonctionnement de l'entité électronique 1 peut être accompagné d'autres mesures de protection, par exemple l'effacement de certaines données au moins mémorisées dans la mémoire non-volatile 6. L'entité électronique 1 comprend en outre une interface de 20 communication 8 avec des dispositifs électroniques externes. Dans le cas décrit ici où l'entité électronique 1 est une carte à microcircuit, l'interface de communication 8 comprend par exemple des contacts affleurant sur une face de la carte à microcircuit. En variante, l'interface de communication 8 pourrait être réalisée par un module de communication sans contact. De manière générale, l'interface de 25 communication 8 peut être un module de communication (filaire ou sans fil) avec une autre entité électronique. Comme décrit ci-dessous en référence à la figure 3, le microprocesseur 2 peut ainsi recevoir des données d en provenance de l'autre entité électronique via l'interface de communication 8, traiter ces données d au moyen d'un 30 algorithme de traitement (par exemple un algorithme cryptographique) afin d'obtenir un résultat r, et émettre ce résultat r à destination de l'autre entité électronique via l'interface de communication 8. L'entité électronique 1 comprend également un détecteur d'attaque 10; un tel détecteur d'attaque 10 est par exemple un capteur de lumière ou, en 3045862 6 variante, un détecteur de perturbation dans l'alimentation électrique. De manière générale, il s'agit d'un composant matériel conçu pour détecter des attaques au cours desquels un attaquant cherche à provoquer une anomalie de fonctionnement de l'entité électronique, par exemple en dirigeant un rayonnement 5 laser sur l'entité électronique 1 (attaque détectable au moyen du capteur de lumière précité) ou en perturbant l'alimentation électrique des composants au sein de l'entité électronique 1. La figure 2 représente un état d'une zone d'écriture sécuritaire, située en mémoire non volatile, lors de la mise en service de l'entité électronique de la figure 10 1. On prévoit en effet ici que, avant la mise en service de l'entité électronique 1 auprès de son utilisateur final (soit par exemple lors de la fabrication de l'entité électronique 1 ou lors d'une phase de personnalisation de l'entité électronique 1, au cours de laquelle des données sont inscrites dans la 15 mémoire non-volatile 6), tous les octets de la zone d'écriture sécuritaire Z soient mis (par écriture dans la mémoire non-volatile 6) à une valeur prédéterminée I (ou valeur de pré-initialisation) distincte d'une valeur d'effacement de la mémoire non-volatile 6. La valeur d'effacement de la mémoire non-volatile 6 est la valeur prise 20 par un octet de la mémoire non-volatile 6 lorsque cet octet est effacé (cet effacement pouvant éventuellement provoquer l'effacement d'autres octets, par exemple l'effacement de l'ensemble des octets d'une page mémoire). Ici, la valeur d'effacement est la valeur nulle (0x00 en hexadécimal) et la valeur de pré-initialisation I est donc non nulle (i.e. distincte de 0x00). Dans 25 l'exemple représenté en figure 2, la valeur de pré-initialisation I vaut 0x55 (en hexadécimal). La figure 3 représente, sous forme de logigramme, un exemple de procédé conforme à l'invention. Ce procédé débute à l'étape E2 à laquelle l'entité électronique 1 est mise 30 sous tension (par exemple du fait de sa connexion à une autre entité électronique telle qu'un lecteur de carte), ce qui entraîne le démarrage du microprocesseur 2 et l'initialisation du fonctionnement de l'entité électronique 1. Comme déjà mentionné ci-dessus, dès son démarrage, le microprocesseur 2 consulte la zone d'écriture sécuritaire Z, comme décrit à 3045862 7 présent. Une variable n (mémorisée par exemple en mémoire vive 4) est tout d'abord remise à zéro à l'étape E4. Le microprocesseur 2 lit alors l'octet Z[n] mémorisé, à l'emplacement 5 référencé par la valeur courante de la variable n, dans la zone d'écriture sécuritaire Z, puis combine l'octet Z[n] lu et la valeur de pré-initialisation I au moyen d'une opération de "ou exclusif', ou XOR (étape E6). (Par exemple, si on note z l'adresse de la zone d'écriture sécuritaire Z, l'octet Z[n] lu est l'octet mémorisé à l'adresse z+n.) 10 Le résultat de la combinaison est mémorisé au sein d'une variable y: = Z[n] XOR I. Le microprocesseur 2 peut ainsi déterminer à l'étape E8 si la variable vaut 0. Si la variable v est nulle (flèche P à l'étape E8), ceci signifie que l'octet 15 concerné (situé à l'emplacement n de la zone sécuritaire Z) n'a pas été modifié depuis la mise en service (i.e. l'octet lu Z[n] vaut la valeur de pré-initialisation I) et ne correspond pas à un code d'erreur (voir ci-dessous les étapes E22 et E28 à propos de l'écriture des codes d'erreur) et le fonctionnement de l'entité électronique 1 se poursuit donc normalement à l'étape E15 décrite ci-dessous. 20 Si la variable v n'est pas nulle (flèche N à l'étape E8), ceci signifie que l'octet concerné Z[n] (situé à l'emplacement n de la zone sécuritaire Z) a été modifié depuis la mise en service, soit parce qu'un code d'erreur y a été écrit (voir ci-dessous les étapes E22 et E28 à propos de l'écriture des codes d'erreur), soit parce que la page mémoire correspondante a été effacée (voir les explications 25 données ci-dessous en référence à la figure 5). Le microprocesseur 2 procède alors dans ce cas à l'incrémentation de la variable n (étape E10). La variable n représente donc le nombre d'octets lus dans la zone d'écriture sécuritaire Z qui correspondent à un code d'erreur (chaque code d'erreur étant indicatif d'une anomalie détectée depuis la mise en service de 30 l'entité électronique 1, lors d'une phase antérieure de fonctionnement de cette entité électronique 1). Le microprocesseur 2 détermine alors à l'étape E12 si la variable n (i.e. le nombre de codes d'erreur lus en zone d'écriture sécuritaire Z) atteint (suite à l'incrémentation de l'étape E10) un seuil prédéterminé S. 3045862 8 Dans l'affirmative (flèche P à l'étape E12), le microprocesseur 2 met en oeuvre à l'étape E14 une fonction de protection, par exemple en bloquant le fonctionnement de l'entité électronique 1 et/ou en effaçant certaines données de la mémoire non-volatile 6. On remarque qu'en pratique, le blocage du 5 fonctionnement de l'entité électronique 1 est par exemple réalisé par le microprocesseur 2 en exécutant une boucle sans fin. Dans la négative (flèche N à l'étape E12), le fonctionnement boucle à l'étape E6 pour lecture de l'emplacement suivant dans la zone d'écriture sécuritaire Z. 10 Comme indiqué ci-dessus, dès lors qu'un octet lu dans la zone d'écriture sécuritaire Z (avant atteinte du seuil S) vaut la valeur d'initialisation I, le microprocesseur 2 vérifie à l'étape E8 que la variable v est nulle et le fonctionnement normal de l'entité électronique 1 se poursuit à l'étape E15 décrite à présent. 15 Le microprocesseur 2 reçoit à l'étape E15 des données d via l'interface de communication 8 en provenance de l'autre entité électronique à laquelle l'entité électronique 1 est connectée (voir l'étape E2 ci-dessus). Le microprocesseur 2 procède alors à l'étape E16 au traitement des données reçues d. Un tel traitement est par exemple l'application aux données d 20 d'un algorithme cryptographique utilisant une clé cryptographique mémorisée dans la mémoire non-volatile 6. On désigne par r les données obtenues par le traitement de l'étape E16 : r = F(d), où F est la fonction mise en oeuvre par le traitement de l'étape E16. 25 On prévoit ici en outre de réitérer à l'étape E18 le traitement effectué à l'étape E16 pour s'assurer que ce traitement a été réalisé sans anomalie. Autrement dit, le microprocesseur effectue à l'étape E18 un traitement identique à celui effectué à l'étape E16 (ici l'application aux données d de l'algorithme cryptographique susmentionné utilisant la clé cryptographique 30 précitée). On désigne par r' les données obtenues par le traitement de l'étape E18 : r' = F(d). En fonctionnement normal, les données r et les données r' sont identiques ; ce n'est pas le cas en revanche si une anomalie s'est produite au 3045862 9 cours de l'étape E16 ou de l'étape E18 (anomalie qui peut être générée par une attaque par faute). On teste ainsi à l'étape E20 si les données r et les données r' sont identiques. 5 On remarque qu'en variante, la réitération du traitement de l'étape E16 (étape E18) pourrait être remplacée par l'application aux données r du traitement inverse de celui effectué à l'étape E16 ; les données d' ainsi obtenues (d' = F-1(r)) sont dans ce cas comparées aux données d (en remplacement du test de l'étape E20) pour vérification du fonctionnement normal. 10 S'il est déterminé à l'étape E20 que les données r et les données r' sont identiques (flèche P), le procédé se poursuit ensuite à l'étape E26 décrite plus bas. S'il est déterminée à l'étape E20 que les données r et les données r' ne sont pas identiques (ce qui est le cas si une anomalie s'est produit au cours de 15 l'étape E16 ou de l'étape E18), le microprocesseur 2 commande l'écriture, dans l'emplacement Z[n] de la zone d'écriture sécuritaire Z désigné par la variable n, d'une valeur égale à un premier code d'erreur ERR1 (représentatif d'un premier type d'erreur) combiné avec la valeur d'initialisation I par une opération de "ou exclusif' ou XOR (étape E22) : Z[n] = ERR1 XOR I. 20 Le microprocesseur 2 incrémente alors à l'étape E24 la variable n (qui représente le nombre d'anomalies détectées), ce qui implique en outre que la variable n désigne l'octet suivant dans la zone d'écriture sécuritaire Z. Le procédé se poursuit à l'étape E26 à laquelle le microprocesseur 2 détermine si une attaque a été détectée par le détecteur d'attaque 10. 25 Dans la négative (flèche N), le procédé se poursuit à l'étape E32 décrite plus bas. Dans l'affirmative (flèche P), le microprocesseur 2 commande l'écriture, dans l'emplacement Z[N] de la zone d'écriture sécuritaire Z désigné par la variable n, d'une valeur égale à un second code d'erreur ERR2 (représentatif d'un second 30 type d'erreur) combiné avec la valeur d'initialisation I par une opération de "ou exclusif' ou XOR (étape E28) : Z[n] = ERR2 XOR I. Le microprocesseur 2 incrémente alors la variable n (étape E30). Les remarques faites ci-dessus à propos de l'étape E24 s'appliquent également ici. On remarque que, dans certains modes de réalisation, on peut prévoir de 3045862 10 comparer la variable n au seuil prédéterminé S après incrémentation à l'étape E24 et à l'étape E30, et de mettre en oeuvre une fonction de protection (comme décrit ci-dessus à l'étape E14) si la variable n atteint le seuil S. Lorsqu'une telle fonction de protection n'est pas exécutée, le procédé se 5 poursuit à l'étape E32 par l'émission, via l'interface de communication 8 et à destination de l'autre entité électronique, du résultat r obtenu à l'étape E16. Ceci met fin au traitement de la donnée d par l'entité électronique 1. La figure 4 représente l'état de la zone d'écriture sécuritaire Z après détection d'une anomalie. 10 On considère dans cet exemple qu'une seule anomalie a été détectée depuis la mise en service de l'entité électronique 1, avec un code d'erreur ERR associé égal à OxEE (en hexadécimal). Ainsi, lors d'un précédent passage à l'étape E22 ou E28, le microprocesseur 2 a commandé l'écriture, à l'emplacement Z[0] (premier 15 emplacement, à gauche en figure 4) de la zone sécuritaire Z, de la valeur : ERR XOR I = OxEE XOR 0x55 = OxBB. Les autres emplacements de la zone d'écriture sécuritaire Z sont en revanche inchangés depuis leur pré-initialisation à la valeur de de pré-initialisation I (ici 0x55). 20 Lorsque l'entité électronique 1 s'initialise (étape E2) avec une zone d'écriture sécuritaire Z comme monté en figure 4, la variable v est non-nulle lors du premier passage l'étape E8 et la variable n est donc incrémenté à 1 à l'étape E10. En revanche, lors du second passage à l'étape E8, la variable v est nulle (le second octet Z[1] de la zone d'écriture sécuritaire Z étant égal à la valeur 25 d'initialisation I) et le procédé se poursuit donc normalement aux étapes E15 et suivantes. La figure 5 représente l'état de la zone d'écriture sécuritaire Z après effacement de la page mémoire contenant cette zone Z, par exemple en cas de coupure de l'alimentation (provoquée dans certains cas par un attaquant, par 30 exemple par arrachement de l'entité électronique 1 d'un lecteur) au cours d'un processus d'effacement et ré-écriture de cette page mémoire. Comme visible en figure 5, tous les octets de la zone d'écriture sécuritaire Z ont alors la valeur d'effacement (ici la valeur nulle 0x00). Dans un tel cas, suite à une initialisation de l'entité électronique 1 à 3045862 11 l'étape E2, la variable v est non-nulle à chaque passage à l'étape E8. En effet, du fait que la valeur de pré-initialisation I est distincte de la valeur d'effacement (lue dans chaque octet de la zone Z dans le cas présent), la variable v calculée à l'étape E6 n'est jamais nulle. 5 Par conséquent, la variable n est systématiquement incrémentée après chaque lecture d'un octet Z[n] dans la zone d'écriture sécuritaire Z, jusqu'à atteindre le seuil S, ce qui entraîne la mise en oeuvre de la fonction de protection à l'étape E14. Dans les exemples décrits ci-dessus, les données (telles que les codes 10 d'erreur ERR1, ERR2) sont combinées avec la valeur de pré-initialisation I au moyen d'un "ou exclusif' (ou XOR, ou encore somme booléenne) avant écriture dans la zone sécuritaire Z (étapes E22 et E28) ; de façon symétrique, après lecture dans la zone sécuritaire Z, les données lues sont combinées avec la valeur de pré-initialisation I au moyen d'un "ou exclusif', ce qui permet de retrouver la 15 valeur initiale de la donnée (par exemple ERR1 ou ERR2). En variante, on pourrait utiliser une autre opération de combinaison des données et de la valeur de pré-initialisation. Si on écrit de manière générale G1(X) l'opération utilisée pour combiner une donnée X et la valeur de pré-initialisation I avant écriture (i.e, la valeur G1(X) 20 est écrite dans la zone d'écriture sécuritaire), on combine la valeur lue Y au moyen de l'opération inverse : l'opération G1-1(Y) permet de retrouver la donnée X. On peut ainsi utiliser en variante des exemples décrits ci-dessus : G1(X) = X + I mod 256 et G1-1(Y) = Y - I mod 256, où mod désigne l'opérateur modulo. 25 (On remarque que dans l'exemple décrit ci-dessus, G1(X) = X XOR I et G11(Y) = Y XOR I.) REVENDICATIONS1. Procédé d'écriture dans une mémoire non-volatile (6) d'une entité électronique (1), comprenant les étapes suivantes : - détection (E20 ; E26) d'une anomalie de fonctionnement de l'entité électronique (1) ; - en conséquence de ladite détection, écriture (E22 ; E28), à un emplacement (Z[n]) d'une zone (Z) de la mémoire non-volatile (6), d'une donnée indicative de ladite détection d'anomalie, caractérisé en ce que, préalablement à l'étape de détection, l'emplacement (Z[n]) est initialisé avec une valeur (0x55 ; I) distincte d'une valeur d'effacement (0x00) de la mémoire non-volatile (6). 2. Procédé d'écriture selon la revendication 1, dans lequel la donnée indicative est obtenue par combinaison d'un code d'erreur (ERR1 ; ERR2) et de ladite valeur distincte (I). 3. Procédé d'écriture selon la revendication 2, dans lequel la combinaison est réalisée au moyen d'une opération de "ou exclusif'. 4. Procédé d'écriture selon l'une des revendications 1 à 3, dans lequel l'emplacement (Z[n]) est initialisé à ladite valeur distincte (0x55 ; I) avant la mise en service de l'entité électronique (1). 5. Procédé d'écriture selon l'une des revendications 1 à 4, comprenant les étapes suivantes : - réception (E15) d'une donnée (d) par une interface de communication (8) ; - traitement (E16) de la donnée (d) reçue. 6. Procédé d'écriture selon la revendication 5, dans lequel le traitement (E16) utilise une clé cryptographique mémorisée dans la mémoire non-volatile (6). 7. Procédé d'écriture selon la revendication 5 ou 6, comprenant une étape de vérification (E20) d'un résultat (r) obtenu par ledit traitement (E16), ladite détection d'anomalie résultant d'un échec à l'étape de vérification (E20). 8. Procédé d'écriture selon l'une des revendications 1 à 6, dans lequel l'anomalie est détectée au moyen d'un détecteur d'attaque (10). 9. Procédé de lecture dans une mémoire non-volatile (6) d'une entité électronique (1), comprenant les étapes suivantes : - lecture (E6) d'une zone (Z) de la mémoire non-volatile (6) destinée à 3045862 13 mémoriser au moins une donnée indicative de détection d'anomalie ; - mise en oeuvre d'une fonction de protection (E14) si aucune donnée lue ne vaut une valeur donnée (I) distincte d'une valeur d'effacement (0x00) de la mémoire non-volatile (6). 5 10. Procédé de lecture selon la revendication 9, comprenant une étape de réception d'une donnée (d) par une interface de communication (8), dans lequel l'étape de lecture de ladite zone comprend la lecture (E6) d'un octet Z[n] de ladite zone Z et dans lequel un traitement (E16) de la donnée (d) est effectué si l'octet lu Z[n] vaut ladite valeur donnée (I). 10 11. Procédé de lecture selon la revendication 9 ou 10, comprenant une étape de combinaison (E6) d'un octet lu (Z[n]) dans ladite zone (Z) et de ladite valeur donnée (I). 12. Procédé de lecture selon la revendication 11, dans lequel la combinaison est réalisée au moyen d'une opération de "ou exclusif'. 15 13. Procédé mis en oeuvre dans une entité électronique (1) comprenant une mémoire non-volatile (6), comprenant les étapes suivantes : - initialisation d'un emplacement (Z[n]) d'une zone (Z) de la mémoire non-volatile (6) avec une valeur (I) distincte d'une valeur d'effacement (0x00) de la mémoire non-volatile (6) ; 20 - au cours d'une phase de fonctionnement postérieure à ladite initialisation, détection (E20 ; E26) d'une anomalie de fonctionnement de l'entité électronique (1) ; - en conséquence de ladite détection, écriture (E22 ; E28), dans ledit emplacement (Z[n]), d'une donnée indicative de ladite détection d'anomalie ; 25 - suite à un démarrage ultérieur du fonctionnement de l'entité électronique (1), lecture de ladite zone (Z) ; - mise en oeuvre d'une fonction de protection (E14) si aucune donnée lue dans ladite zone (Z) ne vaut ladite valeur distincte (I).