Brevet FR2894709A1 — publié le 20070615

Titre de l'invention Détecteur de destruction anormale de secteur mémoire. Arrière-plan de l'invention La présente invention se rapporte au domaine général de la protection des mémoires non volatiles et des accès à ces mémoires. Les principales fonctions d'une mémoire non volatile sont de garantir le stockage de données dans le temps, l'intégrité des données stockées ainsi que l'utilisation de ces données. Les mémoires non volatiles proposent généralement un stockage dans des secteurs de mémoire, un secteur étant la plus petite entité accessible en écriture ou en lecture. En général, un logiciel dédié à la gestion des secteurs de mémoire est mis en oeuvre pour allouer ces secteurs. C'est en l'occurrence le cas pour la technologie de mémoire non volatile connue sous le nom de technologie Flash où un tel logiciel est dénommé FTL pour Flash Translation Layer en anglais. L'utilisation de mémoire non volatile, par exemple de type Flash, est connue dans l'industrie des cartes à puces. Ainsi, des mémoires de technologie Flash sont ainsi intégrées sur le circuit intégré de la carte et sont utilisées pour stocker du code et des données permanentes. De telles mémoires sont généralement de petite taille, quelques centaines de kilobytes. Elles présentent un bon niveau de sécurité puisqu'elles bénéficient des dispositifs de sécurité implémentés sur de tels circuits. En effet, il est connu de protéger un circuit intégré en intégrant des dispositifs de sécurité, entre autres sous la forme de détecteurs aptes à détecter des anomalies au niveau du fonctionnement du circuit intégré, par exemple, une anomalie de fréquence ou de tension de fonctionnement, ou encore aptes à détecter des anomalies dans l'environnement du circuit intégré, par exemple des détecteurs de lumière. La détection de telles anomalies peut être le signe qu'une attaque est en train d'être effectuée sur le circuit intégré. De tels détecteurs sont donc reliés au microprocesseur du circuit intégré afin de déclencher d'éventuelles actions pour contrer, limiter ou empêcher une attaque, notamment des contre-mesures telles que connues de l'homme du métier. Cependant, il peut arriver que de telles mémoires soient implémentées sur des zones où peu de détecteurs ont été intégré ou qu'elles soient attaquées d'une manière spécifique à laquelle les détecteurs précédemment évoqués ne seraient pas sensibles. Il peut aussi arriver que, afin d'obtenir une carte à capacité de stockage accrue, une mémoire additionnelle non volatile soit implémentée hors d'une zone protégée du circuit intégré. Une telle implémentation est avantageuse, par exemple pour stocker des programmes propriétaires qui peuvent ensuite être téléchargés et exécutés à partir de la mémoire de programme du microprocesseur. Dans ces cas, il reste cependant nécessaire de garantir à l'utilisateur la confidentialité et l'intégrité des données stockées, en particulier s'il s'agit de données de sécurité. Objet et résumé de l'invention La présente invention a donc pour but principal de proposer un nouveau type de dispositif de sécurité permettant de détecter une attaque au niveau d'une mémoire non volatile, notamment dans les cas précédents. La présente invention concerne ainsi un circuit intégré incluant au moins un microprocesseur relié à au moins une mémoire non volatile accessible par secteurs, caractérisé en ce qu'il comprend un détecteur pour révéler le dépassement d'un nombre seuil de secteurs défectueux dans ladite mémoire non volatile. L'invention propose ainsi un nouveau type de détecteurs pour détecter, spécifiquement, une détérioration de la mémoire qui peut signer une attaque du circuit intégré dans lequel la mémoire est intégrée ou de la mémoire non volatile lorsque celle-ci est une mémoire additionnelle. On entend par secteur un ensemble de bytes. Ce terme peut donc notamment désigner une page, un bloc, une cellule. En effet, une perturbation des paramètres de fonctionnement ou de l'environnement de fonctionnement de la mémoire entraîne en général un plus grand nombre de secteurs défectueux que le taux normal d'usure classiquement mesuré par le fabricant de manière statistique. Le taux normal d'usure est généralement accessible à l'utilisateur dans des fiches techniques pour chaque type de mémoire. Par exemple, une mémoire Flash de 128 mégabytes garantie 5 ans contiendra physiquement plus que 128 mégabytes, par exemple 140 mégabytes car le fabricant sait qu'en 5 ans, un taux d'utilisation moyen va générer 12 mégabytes de secteurs défectueux. L'invention donne à la mémoire non volatile une plus grande résistance à des dégradations des paramètres de fonctionnement de la mémoire, par exemple des brusques variations de l'alimentation en courant, et à des perturbations de l'environnement, par exemple un bombardement de photons, de particules ou une perturbation par rayonnement électromagnétique. En effet, de telles perturbations engendrent une usure prématurée de la mémoire que l'invention rend détectable. De manière générale, l'invention permet donc de détecter des attaques, de type connu ou non à ce jour, engendrant une détérioration des capacités de la mémoire. Notamment, l'invention permet de détecter les attaques par tir laser qui permettent de forcer le changement de la valeur des bits enregistrés mais, qui, parallèlement, peuvent endommager anormalement les secteurs de mémoire. L'invention met en oeuvre un contrôle physique des secteurs de mémoire en vu de détecter des destructions anormales, signatures d'une attaque. Le détecteur selon l'invention permet ensuite que soit déclenchée une action parmi celles mises à la disposition de l'homme du métier, notamment le déclenchement d'un redémarrage du composant, une mise à jour d'une information qui sera ensuite remontée au système ou à l'utilisateur, l'effacement de toutes les données en mémoire, l'interruption des accès de lecture et d'écriture etc. Dans un mode de réalisation, le circuit intégré incluant des moyens de détection apte à détecter un secteur défectueux dans la mémoire non volatile, il inclut en outre un registre dit d'usure incrémenté à chaque détection d'un secteur défectueux par les moyens de détection. Avantageusement, les moyens de détection utilisent le fonctionnement d'un logiciel de gestion de la mémoire non volatile. Les mémoires non volatiles requièrent en effet une gestion fine des secteurs de mémoire qui peuvent se révéler défectueux au cours du temps à cause d'un phénomène d'usure. Les secteurs défectueux ne peuvent alors plus être écrits ou lus. En général, un logiciel de gestion de la mémoire alloue les secteurs et les marque en secteurs défectueux quand ils sont détectés tels. La détection d'un secteur défectueux ne se fait que lorsqu'un accès à ce secteur défectueux est requis. Ce logiciel est installé dans le microprocesseur qui se sert de la mémoire non volatile pour stocker et lire des données. Dans le cas où il s'agit d'une mémoire Flash, il s'agit de la FTL, précédemment évoquée. Aussi cette réalisation est particulièrement avantageuse car elle exploite une fonction bien connue de tels logiciels qui est de lister les secteurs défectueux qui ne peuvent plus être accédés en lecture ni en écriture. L'invention est ainsi adaptable à nombre de logiciels de gestion de mémoire, en particulier de mémoire Flash. Pratiquement, il est possible d'inclure les moyens de détection dans le logiciel de gestion lui-même ou, indirectement, d'aller consulter une liste de secteurs défectueux tenue par le logiciel de gestion. Cependant, selon cette réalisation, on ne connaît un secteur défectueux que lorsqu'il a été demandé un accès en lecture ou en écriture sur ce secteur. On ne peut donc pas accéder en temps réel au nombre de secteurs défectueux. Dans un mode de réalisation, les moyens de détection incluent des moyens pour réaliser un balayage de la mémoire non volatile à la recherche de secteurs défectueux. De tels moyens pour balayer la mémoire non volatile permettent d'obtenir, à la fin du balayage, un nombre de secteurs défectueux actualisé. Dans un souci d'économie de ressource, le balayage peut être réalisé selon un schéma d'échantillonnage de la mémoire. Par exemple, seulement un secteur sur trois secteurs physiquement voisins est scanné. En fonction des ressources disponibles dans l'application concernée, notamment en temps d'alimentation, le balayage peut être réalisé périodiquement et/ou à l'occurrence d'au moins un évènement particulier, par exemple, la mise sous tension du circuit ou encore l'absence d'activité du processeur. Dans ce dernier cas, on utilise ainsi le temps perdu par le processeur pour mettre à jour le nombre de secteurs défectueux. Selon une caractéristique particulière de l'invention, le registre d'usure est implémenté sur une autre mémoire que la mémoire non volatile qui est sous contrôle du détecteur. Cela permet notamment d'implémenter les moyens de l'invention 5 dans une mémoire qui est différemment sensible aux mêmes perturbations. Selon une autre caractéristique particulière de l'invention, un contrôle d'intégrité est réalisé au moins sur le registre d'usure. Selon une caractéristique avantageuse, les moyens de détection 10 sont tels que des opérations nécessaires à la révélation du dépassement du nombre seuil sont réalisées une pluralité de fois. Dans une mise en oeuvre, le nombre seuil est calculé à partir d'un nombre maximum de secteurs défectueux fourni par le fabricant de mémoire. 15 Le détecteur détecte alors si le nombre de secteurs défectueux devient anormal en dépassant une limite. Cependant, dans le cas où une attaque ne détériore qu'une partie des secteurs, aucun dépassement ne sera détecté tant que le nombre seuil ne sera pas dépassé. Aussi, la révélation de l'attaque peut être tardive. 20 Dans une variante de mise en oeuvre de l'invention, le circuit intégré incluant en outre des moyens pour évaluer l'utilisation de la mémoire non volatile, le détecteur révèle le dépassement d'un nombre seuil de secteurs défectueux par rapport à l'utilisation évaluée. Une telle variante tient compte de l'usure normale de la mémoire et 25 permet de la comparer à une usure observée. Quand l'usure observée est anormale, par exemple plus importante que l'usure normale, on peut ainsi conclure à une attaque selon les principes de l'invention. Dans un mode de réalisation de cette variante, le registre d'usure permet d'enregistrer un historique du nombre de secteurs défectueux et le 30 détecteur révèle le dépassement d'un nombre seuil de secteurs défectueux, différentiel et défini pour une quantité prédéfinie d'utilisations. La quantité d'utilisation peut être telle que des utilisations successives sont contrôlées ou être telles que le contrôle est réalisé après une pluralité d'utilisations prédéfinie, par exemple dix utilisations. On parle 35 de quantité d'utilisations car, comme on verra dans la suite, il peut s'agir d'un nombre d'utilisation ou d'un nombre pondéré d'utilisations. Lorsque des moyens de balayage de la mémoire ;sont implémentés selon l'invention, le balayage de la mémoire est avantageusement déclenché à chaque période d'une quantité prédéfinie d'utilisations. Avantageusement, le circuit intégré comprend un registre dit d'utilisation incrémenté à chaque utilisation en écriture ou en lecture de la mémoire non volatile. L'incrémentation du registre d'utilisation peut être pondérée en fonction du type d'utilisation, par exemple écriture ou lecture. En effet, les processus d'usure peuvent être différents selon la technologie de mémoire. Notamment, les mémoires de technologie Flash s'usent en écriture et en lecture alors que d'autres types de mémoire non volatile ne s'useront qu'en écriture. Ces deux types d'utilisations, lecture et écriture, n'engendrent donc pas les mêmes statistiques d'usure. Avantageusement, le détecteur est apte à révéler le dépassement d'un nombre seuil de secteurs défectueux dans une portion géométrique de la mémoire non volatile. Dans ce cas, le nombre seuil de secteurs défectueux est défini par rapport à une taille de la portion géométrique de la mémoire non volatile et l'invention fonctionne alors en exploitant la proximité géométrique des secteurs défectueux. On détecte alors un petit nombre d'erreur qui, sur une mémoire neuve, ne serait pas révélateur mais qui, corrélé à la proximité géométrique, permet de révéler une attaque de type tir laser . On note ici qu'il existe plusieurs mises en oeuvre fonctionnant selon le même principe. Notamment on peut envisager d'évaluer la proximité des secteurs défectueux entre eux afin de révéler le dépassement d'un nombre seuil de secteurs défectueux pour une proximité donnée qui définit alors intrinsèquement une portion géométrique de la mémoire. En pratique, une information sur la proximité géométrique des secteurs défectueux est extraite, par exemple, des données d'un logiciel de gestion de la mémoire. Selon une implémentation, le détecteur déclenche une modification dans un registre dit de contrôle destiné à être lu par le microprocesseur en vu de déclencher des actions. Il est connu d'utiliser un tel registre lu périodiquement ou lors de la mise sous tension pour déclencher des actions qui peuvent notamment être des contre-mesures. Un tel registre inclut par exemple plusieurs bits, chacun correspondant à un détecteur auquel le registre est relié et dont il reçoit des ordres de passage à 1 du bit correspondant quand une anomalie est détectée par le détecteur. Dans un autre mode de réalisation, le détecteur déclenche des actions au sein du microprocesseur. L'invention concerne aussi un procédé de détection d'attaque d'une mémoire non volatile accessible par secteurs au sein d'un circuit intégré à microprocesseur. Ce procédé comprend les étapes de détermination du nombre de secteurs défectueux de la mémoire, comparaison du nombre de secteurs défectueux avec un nombre seuil, révélation du dépassement d'un nombre seuil de secteurs défectueux dans ladite mémoire non volatile, signe d'une attaque. Un tel procédé peut être implémenté à l'aide de moyens matériels et/ou logiciels. Ainsi, les différentes étapes du procédé peuvent être déterminées par des instructions de programmes d'ordinateurs. Un détecteur selon l'invention peut ainsi être implémenté partiellement ou entièrement sous forme logicielle. Un tel détecteur en est d'autant moins coûteux. 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 dans un circuit intégré, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes du procédé. 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. 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 un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 est une représentation schématique d'une carte à puce dans laquelle l'invention est avantageusement mise en oeuvre, - la figure 2 est une représentation schématique d'une première réalisation d'un circuit intégré selon l'invention, - la figure 3 est un organigramme illustrant le fonctionnement des moyens de détection de secteurs défectueux d'une mémoire non volatile selon l'invention, - la figure 4 est une représentation schématique d'une seconde 5 réalisation d'un circuit intégré selon l'invention, - la figure 5 est un organigramme illustrant le fonctionnement d'un détecteur selon l'invention, - la figure 6 est une représentation schématique d'une variante de réalisation d'un circuit intégré selon l'invention. 10 Description détaillée d'un mode de réalisation La figure 1 représente schématiquement une carte à puce 10 munie d'un circuit intégré comprenant une zone sécurisée 11, où est intégré un microprocesseur 12, et une mémoire non volatile 14, généralement 15 implémentée dans une zone non sécurisée 13. Bien que l'illustration proposée sur la figure 1 représente la mémoire non volatile 14 à l'extérieur d'une zone sécurisée 11, on a vu que l'invention peut également être mise en oeuvre pour une mémoire implémentée dans une zone sécurisée 11. En effet, l'invention permettra 20 alors par exemple de détecter des attaques non détectées par les dispositifs de sécurité intégrés à la zone sécurisée 11 ou de faire une double détection par des dispositifs différents de sécurité. La gestion de la mémoire non volatile 14 est classiquement réalisée à l'aide d'un logiciel de gestion 15. Ce logiciel de gestion 15 peut être 25 implémenté sur la zone sécurisée 11, ainsi que représenté, ou à l'extérieur de cette zone 11. Dans le cas où la mémoire non volatile 14 est une mémoire Flash, le logiciel de gestion 15 (Fil pour Flash Translation Layer en anglais) réalise classiquement une traduction dans un format compatible Flash des 30 instructions du microprocesseur. En général, la zone sécurisée 11 est protégée notamment grâce à des détecteurs de sécurité aptes à détecter des conditions anormales de fonctionnement ou d'environnement. Il peut s'agir de détecteurs de fréquence surveillant la fréquence de l'horloge fournie au circuit, de 35 tension détectant une anomalie de la tension d'alimentation, de lumière détectant si le boîtier du circuit intégré est ouvert, de température, de passivation etc. De tels détecteurs ne sont cependant pas communément implémentés dans les mémoires non volatiles 14 destinées à être additionnelles. Il s'ensuit que ces mémoires 14 ne sont pas sécurisées par les détecteurs traditionnels. La figure 2 décrit un circuit intégré selon l'invention. Ce circuit intégré comprend une zone sécurisée 11 et une mémoire non volatile 14 hors de cette zone sécurisée. La zone sécurisée 11 comprend, outre un microprocesseur 12, une mémoire non volatile ROM 21 et une mémoire volatile RAM 22. Selon l'invention, un détecteur 20 apte à révéler le dépassement d'un nombre seuil de secteurs défectueux dans la mémoire non volatile 14 est intégré au circuit. Le détecteur 20 est préférentiellement intégré dans la zone sécurisée 11, par exemple dans une mémoire interne du microprocesseur 12 qui pilote le logiciel de gestion 15 de la mémoire 14. Comme représenté sur la figure 2, il peut également être intégré à l'extérieur de la zone sécurisée 11, par exemple au niveau du logiciel de gestion 15 de la mémoire 14. Le fonctionnement d'un tel détecteur peut par exemple être déclenché à la mise sous tension ou à chaque demande d'écriture ou de lecture ou encore à chaque demande d'effacement de secteur de mémoire. Selon une première réalisation illustrée sur la figure 2, le logiciel de gestion 15, ici représenté à l'extérieur de la zone sécurisée 11, inclut des moyens de détection des secteurs défectueux de la mémoire non volatile 14 et le détecteur 20 est relié à ce logiciel de gestion 15 afin de connaître le nombre de secteurs défectueux dans la mémoire 14. Les logiciels de gestion de mémoire Flash comprennent par exemple des moyens de détection qui contrôlent, sous forme d'une routine lancée à chaque demande d'écriture ou de lecture, l'intégrité des secteurs désignés par le logiciel de gestion pour stocker les données en écriture ou pour lire des données. Dans le cas où le fonctionnement d'un secteur contrôlé est défectueux, le secteur en question est mis sur une liste de secteurs défectueux et/ou rayé de la liste des secteurs accessibles. Il est possible selon l'invention d'utiliser de tels moyens de détection, par ailleurs connus, pour déclencher une incrémentation d'un registre dit d'usure 23 à chaque détection d'un nouveau secteur défectueux. On note qu'il est aussi possible d'utiliser le logiciel de gestion 15 de mémoire pour connaître une localisation géométrique des secteurs défectueux. Cette localisation est utile quand le détecteur est apte à révéler le dépassement d'un nombre seuil de secteurs défectueux en tenant compte de la proximité de ces secteurs défectueux. La figure 3 décrit le fonctionnement des moyens; de détection de secteurs défectueux d'une mémoire non volatile selon l'invention en combinaison avec un registre d'usure 23 dans le cadre du mode de réalisation de la figure 2. Au cours d'une première étape, le logiciel de gestion 15 reçoit une instruction A0. Cette instruction AO est par exemple, l'écriture ou la lecture de données D dans la mémoire 14. Au cours d'une étape Al, le logiciel de gestion 15 traduit cette instruction en un format compatible AO[D,Sec] avec le format de la mémoire 14 pour une écriture ou une lecture des données D dans un secteur Sec. Une étape A2 d'exécution d'une routine de contrôle du secteur Sec est alors réalisée. Dans le cas où le secteur est détecté opérationnel (cas 0), l'instruction d'écriture ou de lecture AO[D,Sec] est réalisée dans une étape A3. Dans le cas où le secteur est détecté défectueux (cas N), l'information est envoyée vers le logiciel de gestion pour une étape de mise à jour A4. Cette étape de mise à jour peut consister à modifier l'image virtuelle de la mémoire contenue dans le logiciel de gestion, par exemple, la FTL. Dans ce cas, le secteur défectueux est mis sur une liste noire et ne sera plus utilisé pour les attributions d'adresse de stockage par la FTL dans l'étape Al. En parallèle de la communication de la détection de secteur défectueux vers le logiciel de gestion, le registre d'usure 23 est incrémenté dans une étape A2'. Les commandes pour cette incrémentation suivent avantageusement, dans la routine de contrôle effectuée avant toute écriture ou lecture, celles correspondant à la communication de la détection d'un secteur défectueux à l'étape A2. Le registre d'usure 23 peut être physiquement implanté au niveau du logiciel de gestion 15 de la mémoire 14, par exemple, au niveau de la FIL. Il peut alors s'agir d'un registre 23 du type de celui utilisé pour des tests et dans lequel est répertorié en sortie d'usine le nombre de secteurs défectueux de la mémoire non volatile, à la différence près que son contenu est modifiable et accessible. Le registre d'usure 23 peut aussi, ainsi que représenté, être implanté au niveau d'une entité particulière qui définit le détecteur 20. On peut aussi envisager qu'une pluralité de registres d'usure 23 soit implémentée à plusieurs endroits du circuit intégré assurant la redondance des données servant au détecteur 20. Avantageusement, le circuit intégré comprend aussi des moyens pour évaluer l'utilisation de la mémoire non volatile 14. Il peut s'agir de mettre en oeuvre un registre d'usure 23 capable, outre le fait d'enregistrer une incrémentation du nombre de secteurs défectueux quand un tel secteur est détecté dans l'étape A2, d'enregistrer un historique du nombre de secteurs défectueux pour au moins deux utilisations correspondant à l'étape A3. Cette mise en oeuvre est représentée par une ligne de points sur la figure 3. Cette ligne de points illustre l'enregistrement du nombre de secteurs défectueux même quand aucun de ces secteurs n'a été détecté lors d'une utilisation de la mémoire 14. Le détecteur 20, questionnant le registre 23, observera alors une différence entre deux nombres de secteurs défectueux. C'est cette différence qui sera alors comparée à un nombre seuil d'usure. Il est alors possible, en mémorisant le nombre de secteurs défectueux pour deux ou un plus grand nombre d'utilisations successives, de détecter quand le nombre de secteurs défectueux augmente à chaque utilisation de la mémoire. Cela permet en particulier de voir que la mémoire est en train d'être endommagée. Il est avantageux ici de prévoir un nombre seuil faible. L'évaluation de l'utilisation peut aussi être mise en oeuvre, ainsi qu'illustré en pointillés sur la figure 3, en déclenchant l'incrémentation d'un registre dit d'utilisation 24 à chaque opération d'écriture ou de lecture. Les commandes correspondant à une telle incrérnentation suivent avantageusement celles correspondant à la détection du bon fonctionnement d'un secteur à l'étape A2 (cas O) dans la routine de contrôle. Ces commandes peuvent aussi suivre une demande d'écriture ou de lecture, par exemple, lors de l'étape Al indépendamment de la routine de contrôle. On peut aussi envisager de pondérer I'incrémentation du registre 24 en fonction de la nature de l'instruction, écriture ou lecture par exemple. En effet, dans certains types de mémoire, l'écriture peut plus user la mémoire que la lecture. Par conséquent, dans la mesure où la valeur inscrite dans le registre d'utilisation 24 va être utilisée selon l'invention pour quantifier une usure normale par rapport à une usure anormale, il est donc judicieux de tenir compte de cette différence d'usure dans l'incrémentation du registre d'utilisation 24. D'une manière similaire à celle présentée pour le registre d'usure 23, un tel registre d'utilisation 24 peut être physiquement implémenté en divers endroits du circuit intégré notamment au niveau de la FTL 15 ou au niveau d'une entité qui définit le détecteur 20. Dans le cas où un registre 24 permettant le décompte des utilisations est mis en oeuvre, il est possible de déclencher le fonctionnement du détecteur 20 périodiquement par rapport à une quantité d'utilisations. On peut envisager par exemple, comme c'est parfois le cas pour les cartes de crédit pour les autorisations de retrait, de ne lancer un contrôle de la mémoire que toutes les dix utilisations, ou toutes les dix utilisations en écriture ou encore toutes les cent utilisations en lecture. La fréquence du déclenchement peut être modulées selon la taille de la mémoire, l'application visée et les ressources disponibles. En utilisant un tel registre d'utilisation 24, on peut aussi aisément ne déclencher un enregistrement du nombre de secteurs défectueux que toutes les dix écritures par exemple et ainsi réaliser un contrôle différentiel toutes les dix utilisations. Cette mise en oeuvre permet de ne pas conserver une valeur absolue du nombre de secteurs défectueux et, par exemple, de remettre à zéro le registre d'usure à chaque dix utilisations. L'implémentation en est rendue plus légère. En outre, la réalisation d'un contrôle différentiel permet de révéler, selon les principes de l'invention, une éventuelle diminution du nombre de secteurs défectueux signant un comportement anormal, par exemple du à la présence d'un programme cheval de Troie , et ainsi de déclencher des actions. De ce qui précède, on constate que, dans le cadre de l'invention, la structure et le fonctionnement du registre d'usure 23 peuvent varier ainsi que la politique de déclenchement du détecteur 20. Un autre mode de réalisation de l'invention peut consister à déclencher régulièrement ou ponctuellement un balayage de la mémoire non volatile 14. Un exemple de réalisation est schématiquement illustré sur la figure 4 où l'entité définissant le détecteur 20 est reliée directement à la mémoire 14 afin de réaliser un balayage de la mémoire 14 à la recherche de secteurs défectueux. Pour réaliser ce balayage, il est envisageable d'utiliser un simple contrôle d'intégrité, par exemple de type ECC, pour Error CodeCorrection en anglais, des données présentes dans un secteur, I'incrémentation du registre d'usure étant déclenchée quand les données ne sont pas intègres. Le balayage peut être exhaustif ou être réalisé selon un échantillonnage en vérifiant aléatoirement ou de manière prévisible un échantillon des secteurs de la mémoire 14 à chaque balayage effectué. La fréquence de déclenchement et de réalisation du balayage peut être variable est en fonction des ressources du circuit intégré, de la fréquence de son alimentation etc. En particulier, un tel balayage peut être réalisé périodiquement dans le temps quand une gestion du temps est prévue en relation avec le circuit intégré. On peut envisager une telle mise en oeuvre, par exemple, dans un circuit intégré de carte SIM où l'alimentation est continue et où des plages de temps et de ressources de traitement de données sont disponibles régulièrement. Il est aussi possible d'envisager de réaliser un balayage à chaque demande d'écriture ou de lecture de la mémoire 14. Une telle mise en oeuvre, assez lourde en terme de ressources de traitement, peut concerner des applications particulières. En utilisant un registre d'utilisation 24, il est aussi possible de déclencher un balayage après un certain nombre d'utilisations, par exemple toutes les cent utilisations. L'avantage de cette mise en oeuvre est de connaître précisément, après le balayage, les secteurs défectueux au moment où ce balayage a été effectué. Ce n'est pas nécessairement le cas quand on exploite le fonctionnement du logiciel de gestion 15 de la mémoire 14 qui, généralement, ne met à jour un secteur Sec défectueux que quand le secteur Sec concerné est sollicité en écriture ou en lecture et est détecté défectueux à ce moment. Des secteurs défectueux non sollicités peuvent ainsi passer inaperçus. Cependant, il n'est pas aisément envisageable de réaliser un tel balayage sur un circuit intégré de carte de crédit où les périodes d'alimentation sont rares et courtes. On préférera alors l'exploitation du fonctionnement du logiciel de gestion 15. Pour des mises en oeuvre de l'invention dans des circuits intégrés où l'utilisation est intermédiaire entre les deux exemples précédents, il est possible que le détecteur 20 déclenche un balayage de la mémoire 14 à chaque mise sous tension du circuit intégré. La figure 5 précise le fonctionnement du détecteur 20 dont la fonction est de révéler le dépassement d'un nombre seuil de secteurs défectueux. Le détecteur 20 comprend au moins des moyens pour lire le registre d'usure 23 dans une étape B11 et des moyens pour comparer la valeur du registre 23 à un nombre seuil S dans une étape B13. Le déclenchement de ces moyens de lecture B11 et de comparaison B13 correspondent au déclenchement du détecteur 20 et on a vu précédemment qu'il peut être réalisé périodiquement quand une gestion du temps est prévue en relation avec le circuit intégré, à la mise sous tension du circuit intégré, dans le cadre d'une routine d'initialisation ou de contrôle etc. De manière générale, le fonctionnement du détecteur 20 selon l'invention peut être déclenché par tout évènement ou procédé connu de l'homme du métier pour déclencher le fonctionnement d'un détecteur. On comprend qu'il est équivalent que le registre d'usure 23 soit implémenté au niveau du logiciel de gestion 15 ou d'une entité définissant le détecteur 20 à partir du moment où il est accessible à la lecture par le détecteur 20 qui comprend les moyens de comparaison B13. On a vu que le registre d'usure 23 peut être tel qu'il puisse enregistrer un historique du nombre de secteurs défectueux sur plusieurs utilisations. Dans ce cas les moyens de comparaison B13 pourront comparer les nombres de secteurs défectueux à deux utilisations simultanée ou séparées par un certain nombre d'utilisations ou encore comparer l'évolution sur, par exemple, dix utilisations de la différence entre les nombres de secteurs défectueux observés lors de deux utilisations successives. Dans le cas d'une attaque, il se peut en effet que cette différence de nombre de secteurs défectueux d'une utilisation à la suivante soit régulière ou augmente. L'utilisation d'un registre d'utilisation 24 est illustrée en pointillés sur la figure 5. Elle consiste à lire le registre 24 pour connaître une donnée sur l'utilisation correspondant à la valeur lue dans le registre d'usure 23. Alors les moyens de comparaison comparent la valeur du registre d'usure 23[24] fonction de la valeur du registre 24 à un seuil S[24] également fonction de la valeur du registre 24. Lorsque la valeur du registre 23 est inférieure au seuil S (cas N), le 20 détecteur est mis en attente B10. Lorsque la valeur du registre 23 est supérieure au seuil S (cas 0), le détecteur 20 révèle le dépassement du seuil. Cette révélation B14 peut consister à signaler ce dépassement directement au microprocesseur 12 qui déclenche alors des actions, notamment des contre-mesures. 25 Quand le fonctionnement est indirect, par exemple, quand le fonctionnement du détecteur 20 est déclenché à une mise sous tension du circuit intégré indépendamment des programmes exécutés par le microprocesseur 12, cette révélation peut consister à incrémenter un registre de contrôle. 30 La figure 6 décrit un circuit intégré où l'implémentation d'un registre de contrôle 60 est réalisée. Ce registre de contrôle 60 est relié au moins au détecteur 20, mais plus généralement à une pluralité de détecteurs qui chacun peuvent modifier la valeur d'un bit. Ce registre de contrôle 60 est lu par le microprocesseur 12 régulièrement ou lors 35 d'évènements particuliers. La fréquence de la lecture de ce registre de contrôle 60 et son déclenchement peut varier et n'est pas du ressort direct de l'invention. Outre les modes de réalisation illustratifs présentés, on remarque enfin que des mises en oeuvre diverses peuvent être réalisées selon les 5 principes de l'invention définis dans les revendications suivantes. REVENDICATIONS 1. Circuit intégré incluant au moins un microprocesseur [12] relié à au moins une mémoire non volatile [14] accessible par secteurs, caractérisé en ce qu'il comprend un détecteur [20] pour révéler le dépassement d'un nombre seuil de secteurs défectueux dans ladite mémoire non volatile [14]. 2. Circuit intégré selon la revendication 1, caractérisé en ce que le circuit intégré incluant des moyens de détection apte à détecter un secteur défectueux dans la mémoire non volatile [14], il inclut en outre un registre dit d'usure [23] incrémenté à chaque détection d'un secteur défectueux par les moyens de détection. 3. Circuit intégré selon la revendication 2, caractérisé en ce que les moyens de détection utilisent le fonctionnement d'un logiciel de gestion [15] de la mémoire non volatile [14]. 4. Circuit intégré selon la revendication 2, caractérisé en ce que les moyens de détection incluent des moyens pour réaliser un balayage de la mémoire non volatile à la recherche de secteurs défectueux. 5. Circuit intégré selon la revendication 4, caractérisé en ce que le 25 balayage est réalisé selon un schéma d'échantillonnage de la mémoire [14]. 6. Circuit intégré selon l'une des revendications 4 et 5, caractérisé en ce que le balayage est réalisé périodiquement et/ou à l'occurrence d'au 30 moins un évènement particulier. 7. Circuit intégré selon l'une des revendications 2 à 6, caractérisé en ce qu'au moins le registre d'usure [23] est implémenté sur une autre mémoire que la mémoire non volatile [14] qui est sous contrôle du 35 détecteur [20]. 8. Circuit intégré selon l'une des revendications 2 à 7, caractérisé en ce qu'un contrôle d'intégrité est réalisé au moins sur le registre d'usure [23]. 9. Circuit intégré selon l'une des revendications :1 à 8, caractérisé en ce que les opérations nécessaires à la révélation du dépassement du nombre seuil sont réalisées une pluralité de fois. 10. Circuit intégré selon l'une des revendications précédentes, caractérisé en ce que le nombre seuil est calculé à partir d'un nombre maximum de secteurs défectueux fourni par le fabricant de mémoire. 11. Circuit intégré selon l'une des revendications précédentes, caractérisé en ce que le circuit intégré incluant en outre des moyens pour évaluer l'utilisation de la mémoire non volatile [14], le détecteur [20] révèle le dépassement d'un nombre seuil de secteurs défectueux par rapport à l'utilisation évaluée. 12. Circuit intégré selon les revendications 2 et :11, caractérisé en ce que, le registre d'usure [23] permet d'enregistrer un historique du nombre de secteurs défectueux et le détecteur [20] révèle le dépassement d'un nombre seuil de secteurs défectueux, différentiel et défini pour une quantité prédéfinie d'utilisations. 13. Circuit intégré selon les revendications 4 et 1.1, le balayage de la mémoire [14] étant déclenché après une quantité prédéfinie d'utilisations. 14. Circuit intégré selon la revendication 11, caractérisé en ce qu'il inclut un registre dit d'utilisation [24] incrémenté à chaque utilisation en écriture et/ou en lecture de la mémoire non volatile [14]. 15. Circuit intégré selon la revendication 14, caractérisé en ce que I'incrémentation du registre d'utilisation [24] est pondérée en fonction du type d'utilisation. 16. Circuit intégré selon l'une des revendications précédentes, caractérisé en ce que le détecteur [20] est apte à révéler le dépassement d'un nombre seuil de secteurs défectueux dans une portion géométrique de la mémoire non volatile [14]. 17. Circuit intégré selon l'une des revendications précédentes, caractérisé en ce que le détecteur [20] déclenche une modification dans un registre dit de contrôle [60]destiné à être lu par le microprocesseur [12] en vu de déclencher des actions. 10 18. Circuit intégré selon l'une des revendications 1 à 16, caractérisé en ce que le détecteur [20] déclenche des actions au sein du microprocesseur [12]. 15 19. Procédé de détection d'attaque d'une mémoire non volatile [14] accessible par secteurs au sein d'un circuit intégré à microprocesseur [12], caractérisé en ce qu'il comprend les étapes de : - détermination du nombre de secteurs défectueux de la mémoire non volatile [14], 20 - comparaison du nombre de secteurs défectueux avec un nombre seuil, -révélation du dépassement d'un nombre seuil de secteurs défectueux dans ladite mémoire non volatile [14]. 25 20. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de détection d'attaque selon la revendication 19 lorsque ledit programme est exécuté par un circuit intégré. 30