Brevet FR2818426A1 — publié le 20020621

DISPOSITIF ET PROCEDE DE SECURISATION DE ZONES DE DONNEES DANS UNE CARTE A PUCE. La présente invention concerne un dispositif de sécurisation de zones de données d'une mémoire d'un composant électronique, ledit composant étant apte à modifier lesdites zones de données. Il concerne également un procédé de sécurisation relatif à un tel dispositif. L'invention trouve une application particulièrement avantageuse dans les domaines des cartes à mémoire électroniques. D'une manière générale, les cartes à mémoire électronique précitées utilisent des mémoires du type EEPROM ou flash EPROM qui ont le double avantage d'être non volatiles et électriquement effaçables, donc réinscriptibles. Toutefois, dans certaines applications, il arrive que ces mémoires soient corrompues en raison, notamment, d'une interruption accidentelle de l'alimentation électrique en cours d'opération, entraînant la perte de zones de données antérieures sans inscription de nouvelles données dans lesdites zones de données. Ce dernier risque est particulièrement important dans les applications, telles que les cartes à mémoire électronique, où ladite mémoire est embarquée dans un objet dépendant d'une source d'alimentation extérieure dont il peut être séparé à tout moment par arrachement volontaire ou non. Le demandeur s'est posé le problème de sécuriser des zones de données d'une mémoire d'un composant électronique, ledit composant étant apte à modifier lesdites zones de données, de façon à éviter toute perte de données. La présente invention apporte justement une solution à ce problème. La présente invention porte tout d'abord sur un dispositif de sécurisation de zones de données d'une mémoire d'un composant électronique, ledit composant étant apte à modifier lesdites zones de données et comportant une mémoire de sauvegarde de zones de données comprenant : - des premiers moyens de référence de zones de données à sécuriser, - des seconds moyens de sauvegarde d'informations sur lesdites zones de données. La présente invention a également pour objet un procédé de sécurisation de zones de données d'une mémoire d'un composant électronique, ledit composant étant apte à modifier lesdites zones de données, caractérisé en ce qu'il comporte les étapes de : - (a) dans une phase de personnalisation, définir une mémoire unique de sauvegarde, comprenant des premiers moyens de référence de zones de données à sécuriser et des seconds moyens de sauvegarde d'informations sur lesdites zones de données, - (b) dans une phase d'utilisation, à chaque initialisation du composant : - vérifier les premiers moyens de référence sur une première zone de données, - en cas de vérification positive, calculer une donnée d'intégrité sur les premiers moyens de référence et sur les seconds moyens de sauvegarde d'informations associés, - comparer la donnée d'intégrité calculée avec la donnée d'intégrité dans les seconds moyens de sauvegarde d'informations, - si les valeurs sont équivalentes, transférer la zone de données de la mémoire de sauvegarde dans la mémoire réinscriptible, - réitérer les étapes de la phase (b) avec la zone de données suivante, - invalider la mémoire de sauvegarde. Ainsi, comme on le verra en détail plus loin, le dispositif de l'invention permet, grâce au seconds moyens de sauvegarde des informations desdites zones de données, de recouvrer un ensemble de zones de données indissociables, et grâce aux premiers moyens de référence de zones de données à sécuriser, de consommer moins de temps lors d'écritures en mémoire. La description qui va suivre en regard des dessins annexés, donnée à titre d'exemple non limitatif, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. La figure 1 est une représentation schématique de zones mémoire d'un composant électronique sécurisé au moyen du dispositif selon l'invention. La figure 2 est un organigramme représentant les principales étapes du procédé selon l'invention. Sur la figure 1 sont représentées de manière schématique des zones mémoire d'un composant électronique appartenant, par exemple, à un porte-monnaie électronique destiné à effectuer des transactions financières avec un terminal prévu à cet effet. Le composant électronique est ici une carte à circuit intégré couramment appelée carte à puce. Le composant électronique comprend une mémoire réinscriptible EEPROM, qui d'ailleurs pourrait être tout aussi bien une mémoire flash EPROM, dans laquelle doit être inscrite de manière sécurisée deux zones de données Zl et Z2 susceptibles d'être modifiées au cours de l'opération réalisée par le composant électronique. Une zone de données Zn comprend une ou plusieurs données et se trouve à une adresse initiale ADRn dans la mémoire réinscriptible EEPROM. Cette dernière est découpée en zones mémoire appelées pages EEPROM. Une zone de données peut se trouver dans une page ou dans deux pages mémoire. On notera que lorsqu'on modifie des données chevauchant deux pages, il est nécessaire de faire deux écritures en mémoire, une pour chaque page mémoire. Dans le cas d'une transaction financière, la première zone de donnée Zl comprend par exemple le montant de la transaction, la deuxième zone de donnée Z2 le numéro de la transaction effectuée. Dans une phase de personnalisation de la carte à puce, ie avant une phase d'utilisation, on définit une mémoire de sauvegarde M de zones de données Zn (n > =l) comprenant : - des premiers moyens de référence Min de zones de données Zn à sécuriser, - des seconds moyens de sauvegarde d'informations M2n sur lesdites zones de données Zn. La mémoire de sauvegarde M est une mémoire réinscriptible non volatile. Préférentiellement, la mémoire de sauvegarde M comprend au moins une donnée de vérification d'intégrité CRCn associée à chaque zone de données Zn sécurisée et les seconds moyens de sauvegarde M2n comprennent une adresse initiale ADRn et une longueur Ln associées à chaque zone de données. Le composant comprend également une mémoire volatile RAM. Ladite mémoire RAM est utilisée comme mémoire tampon. Dans une phase d'utilisation de la carte, à chaque écriture sécurisée requise, lorsqu'on veut par exemple modifier la valeur du montant de la transaction, on prépare dans la mémoire tampon RAM les zones de données à sécuriser de la manière suivante : Dans une première étape El, dans la mémoire volatile RAM on référence la première zone Zl, par exemple au moyen d'un numéro. On attribue la valeur un à ce numéro. On transfère dans cette mémoire tampon RAM des informations sur ladite première zone mémoire Zl, telles que son adresse initiale ADRI et sa longueur LI, ainsi que ladite première zone ZI de données. De plus, on calcule grâce à un algorithme de vérification d'intégrité, une donnée d'intégrité CRC1 sur l'ensemble des données précédentes, donnée d'intégrité CRC1 stockée également dans la mémoire tampon. Dans une seconde étape E2, on inscrit l'ensemble du contenu de la mémoire tampon RAM dans la mémoire de sauvegarde M. Ainsi, le numéro de la première zone Zl est transféré dans les premiers moyens de référence Mil, l'adresse ADR1, la longueur LI et la donnée d'intégrité CRU 1 dans les seconds moyens de sauvegarde d'informations M21, et enfin les données de la zone ZI de données. Préférentiellement, la mémoire de sauvegarde M débute en frontière d'une page de la mémoire réinscriptible EEPROM et ainsi ne chevauche pas deux pages. Dans ce cas, grâce à ce système et aux premiers moyens de référence, une seule écriture est nécessaire dans la mémoire de sauvegarde M pour l'ensemble des zones de données Zn à sécuriser. On évite ainsi d'effectuer deux écritures ou plus en mémoire réinscriptible EEPROM lorsqu'on écrit dans ladite mémoire de sauvegarde M. Dans une troisième étape E3, on écrit la nouvelle valeur VI du montant de la transaction de la première zone Zl dans la première mémoire réinscriptible EEPROM à son adresse initiale ADR1. On réitère les première, seconde et troisième étapes El, E2 et E3 autant de fois qu'il est nécéssaire sécuriser d'autres zones de données qui seront indissociables de la première zone Zl. Ainsi, on fait de même avec la deuxième zone Z2 de données comme on peut le voir sur la figure 1. Une zone de données est indissociable d'une autre zone si ses données sont associées ie dépendantes des données de l'autre zone. Par exemple, un numéro d'une transaction effectuée est associé au montant de la même transaction. On remarquera que des zones de données indissociables ne sont pas obligatoirement consécutives dans la mémoire réinscriptible EEPROM. Dans le cas où l'écriture de la première zone Zl de données et de ses zones de données associées se sont bien passées, on invalide la mémoire de sauvegarde M en invalidant les premiers moyens de définition Mll de la première zone Zl de données, soit en mettant le numéro à la valeur zéro par exemple. A chaque initialisation de la carte à puce, on effectue les étapes suivantes, comme le montre la figure 2 : - on vérifie les premiers moyens de référence MIn, n= 1 de la première zone de données Zn. Si ceux-ci sont invalidés, soit l'écriture des zones de données à modifier s'est bien passée, soit il n'y a plus de zones de données à recouvrer. Dans le cas contraire, il y a eu une coupure d'alimentation signe d'une fraude possible, et il faut recouvrer les zones de données qui pourraient avoir été perdues. - en cas de vérification positive, ie lorsque les moyens de référence Min ne sont pas invalidés, on calcule une donnée d'intégrité CRCpn sur les premiers moyens de référence Min et sur les seconds moyens de sauvegarde d'informations M2n associés à ladite zone de données Zn, - on compare la donnée d'intégrité CRCpn calculée avec la donnée d'intégrité CRCn dans les seconds moyens de sauvegarde d'informations M21, - si les valeurs sont équivalentes alors on transfert la première zone Zl de données de la mémoire de sauvegarde M dans la mémoire réinscriptible EEPROM, à l'adresse initiale ADR1 qui est inscrite dans les seconds moyens de sauvegarde d'informations M21. Dans le cas contraire, la mémoire de sauvegarde M a subi une altération. Aussi, si les valeurs sont différentes, soit on invalide la carte en la rendant"muette" : elle ne peut plus être utilisée, soit on renvoie un message d'erreur. On réitère les étapes décrites précédemment lors de la phase d'initialisation avec la zone de données suivante Un+1, soit dans notre exemple avec la deuxième zone Z2 de données, etc... jusqu'à la fin des zones de données Zn se trouvant dans la mémoire de sauvegarde M. La fin des zones de données est définie lorsque les nièmes premiers moyens de définition Min sont invalidés ie losqu'ils ont comme valeur zéro ou FF en hexadécimal par exemple. Lorsqu'on a recouvré l'ensemble des zones de données Zn en les transférant de la mémoire de sauvegarde M dans la mémoire réinscriptible EEPROM, on invalide la mémoire de sauvegarde M en invalidant les premiers moyens de définition M 11 de la première zone de données Zl. Ainsi, les zones de données sont sécurisées, il n'y a aucune perte de données et grâce à l'invention, on recouvre un ensemble de zones de données Zn indissociables. On garantit ainsi une cohérence sur les zones de données stockées dans la mémoire réinscriprible EEPROM. De plus, avantageusement, grâce à l'invention exposée, on réduit ainsi le nombre d'écritures en mémoire réinscriptible EEPROM. D'une part, on augmente la durée de vie de la mémoire réinscriptible, et, d'autre part, on augmente les performances de la carte à circuit intégré en diminuant le temps global d'écriture en mémoire réinscriptible EEPROM. REVENDICATIONS 1-Dispositif de sécurisation de zones de données (Zn, n > = 1) d'une mémoire (EEPROM) d'un composant électronique, ledit composant étant apte à modifier lesdites zones de données, caractérisé en ce qu'il comporte une mémoire unique de sauvegarde (M) de zones de données (Zn) comprenant : - des premiers moyens de référence (Min) de zones de données à sécuriser, - des seconds moyens de sauvegarde d'informations (M2n) sur lesdites zones de données. 2-Dispositif selon la revendication 1, caractérisé en ce que les seconds moyens de sauvegarde (M2n) comprennent une adresse initiale (ADRn) et une longueur (Ln) associées à chaque zone de données. 3-Dispositif selon la revendication 1, caractérisé en ce que la mémoire de sauvegarde (M) comprend au moins une donnée de vérification d'intégrité (CRCn) associée à chaque Zone de données (Zn). 4-Procédé de sécurisation de zones de données (Zn, n > = 1) d'une mémoire d'un composant électronique, ledit composant étant apte à modifier lesdites zones de données, caractérisé en ce qu'il comporte les étapes de : - (a) dans une phase de personnalisation, définir une mémoire unique de sauvegarde (M), comprenant des premiers moyens de référence (M In) de zones de données (Zn) à sécuriser et des seconds moyens de sauvegarde d'informations (M2n) sur lesdites zones de données (Zn), - (b) dans une phase d'utilisation, à chaque initialisation du composant : - vérifier les premiers moyens de référence (Min) sur une première zone de données (Zn, n > =l), - en cas de vérification positive, calculer une donnée d'intégrité (CRCpn) sur les premiers moyens de référence (Mln) et sur les seconds moyens de sauvegarde d'informations (M2n) associés, - comparer la donnée d'intégrité (CRCpn) calculée avec une donnée d'intégrité (CRCn) dans les seconds moyens de sauvegarde d'informations (M2n), - si les valeurs sont équivalentes, transférer la zone de données (Zn) de la mémoire de sauvegarde (M) dans la mémoire réinscriptible (EEPROM), - réitérer les étapes de la phase (b) avec la zone de données suivante (zen+1), - invalider la mémoire de sauvegarde (M). 5-Procédé de sécurisation selon la revendication 4 caractérisé en ce qu'il comporte en outre les étapes de, à chaque écriture sécurisée requise : - référencer la première zone (Zn) dans une mémoire tampon (RAM) et y transférer les informations sur ladite première zone mémoire (Zn) ainsi que ladite première zone (Zn) de données, - calculer une donnée d'intégrité (CRCn) sur l'ensemble des données précédentes, donnée d'intégrité (CRCn) stockée également dans la mémoire tampon (RAM), - inscrire l'ensemble du contenu de la mémoire tampon (RAM) dans la mémoire de sauvegarde (M), - réitérer les étapes précédentes sur d'autres zones de données indissociables de la première zone (Zn).