FR2949877A1 - Procede de verification de l'integrite de donnees inscrites dans une memoire - Google Patents

Procede de verification de l'integrite de donnees inscrites dans une memoire Download PDF

Info

Publication number
FR2949877A1
FR2949877A1 FR0956197A FR0956197A FR2949877A1 FR 2949877 A1 FR2949877 A1 FR 2949877A1 FR 0956197 A FR0956197 A FR 0956197A FR 0956197 A FR0956197 A FR 0956197A FR 2949877 A1 FR2949877 A1 FR 2949877A1
Authority
FR
France
Prior art keywords
cvi
data
value
integrity
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
FR0956197A
Other languages
English (en)
Other versions
FR2949877B1 (fr
Inventor
Olivier Granet
Patrick Soquet
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.)
Viaccess SAS
Original Assignee
Viaccess SAS
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 Viaccess SAS filed Critical Viaccess SAS
Priority to FR0956197A priority Critical patent/FR2949877B1/fr
Publication of FR2949877A1 publication Critical patent/FR2949877A1/fr
Application granted granted Critical
Publication of FR2949877B1 publication Critical patent/FR2949877B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de vérification de l'intégrité de données numériques à inscrire dans une mémoire comportant les étapes suivantes . - pour chaque donnée, calculer une empreinte numérique en fonction des octets de ladite donnée, - appliquer une opération mathématique commutative, par exemple un XOR à l'ensemble des empreintes obtenues pour calculer un code de vérification d'intégrité CVI, - comparer la valeur du CVI calculée à une valeur de référence mémorisée à l'extérieur de ladite mémoire, - appliquer une contremesure si la valeur du CVI calculée est différente de la valeur de référence.

Description

PROCÉDÉ DE VÉRIFICATION DE L'INTÉGRITÉ DE DONNÉES INSCRITES DANS UNE MÉMOIRE
DESCRIPTION DOMAINE TECHNIQUE L'invention se situe dans le domaine des télécommunications et concerne plus spécifiquement un procédé de vérification de l'intégrité de données numériques à inscrire dans une mémoire associée à une première carte à puce. L'invention vise plus précisément une amélioration de la sécurité et de la fiabilité du procédé de production des cartes à puce pour la télévision à péage. ÉTAT DE LA TECHNIQUE ANTÉRIEURE Les cartes à puce sont de plus en plus utilisées pour stocker des données numériques d'identification et d'authentification. C'est le cas notamment des cartes bancaires, des cartes de contrôle d'accès à des locaux sécurisés ou encore des cartes à puce utilisées comme processeur de sécurité pour contrôler l'accès à des contenus embrouillés distribuées par un opérateur à des abonnés munis de droits d'accès. Les informations d'identification et d'authentification sont inscrites dans les mémoires de ces cartes à puce lors de la phase de production. Ces informations comportent, notamment, des données relatives aux services fournis, aux clefs de déchiffrement des contenus embrouillés, aux droits de l'abonné, et aux données de diversification permettant de rendre chaque carte unique. Après l'inscription de ces informations, il est nécessaire de vérifier si les données ont été correctement inscrites dans les cartes. Une première solution connue pour effectuer cette vérification consiste à effectuer un test fonctionnel de la carte utilisant les données qui y sont inscrites. Une deuxième solution connue consiste à effectuer une vérification statique de l'intégrité du contenu stocké dans la mémoire par CRC, par signature ou MAC (pour Message Authentication Code en anglais). Le contenu de la mémoire est constitué d'au moins un segment de mémoire. Un inconvénient de ces solutions provient du fait que leur mise en oeuvre dépend de la manière dont les données sont inscrites dans la mémoire de la carte (chiffré ou non, transcodé...) et de l'ordre d'inscription de ces données. En effet, dans les techniques de l'art antérieur, l'ordre d'inscription des données dans la carte est figé en cohérence avec le pré-calcul du code de vérification des données (du CRC par exemple). Cela suppose donc la connaissance a priori du processus de production et de l'ordre des commandes qui peut varier d'une version de chaîne de production à l'autre pour des questions d'optimisation par exemple. Un but de l'invention est de permettre une vérification des données inscrites dans la mémoire d'une carte à puce indépendamment de l'ordre d'inscription desdites données et indépendamment de la représentation mémoire de ces données.
EXPOSÉ DE L'INVENTION A cet effet, l'invention préconise un procédé de vérification de l'intégrité de données numériques à inscrire dans une mémoire associée à une première carte à puce comportant les étapes suivantes : pour chaque donnée, calculer une empreinte numérique en fonction des octets de ladite donnée, appliquer une opération mathématique commutative, par exemple un générateur XOR à l'ensemble des empreintes obtenues pour calculer un CVI (pour code de vérification d'intégrité) de ladite première carte à puce ; - comparer la valeur du CVI calculée à une valeur de référence préalablement calculée à partir desdites données par une deuxième carte à puce ou tout autre dispositif de calcul et mémorisée à l'extérieur de ladite mémoire ; - appliquer une contremesure si la valeur du CVI calculée est différente de la valeur de référence. Préférentiellement, le calcul d'empreinte est réalisé par application d'un algorithme de vérification d'intégrité sur les octets de chacune desdites données. Ledit algorithme de vérification d'intégrité est soit une fonction de contrôle de redondance cyclique ou CRC, soit une fonction de calcul d'un condensat par une fonction de Hachage, soit une fonction de Contrôle d'accès au support ou MAC ou soit une fonction de calcul d'une signature asymétrique. Dans une première variante de réalisation, le procédé selon l'invention comporte en outre une étape consistant à calculer un Hash des résultats de ladite opération mathématique commutative. Dans une autre variante de réalisation, le procédé selon l'invention comporte en outre une étape consistant à chiffrer les résultats de ladite opération mathématique commutative. Le code de vérification d'intégrité CVI peut présenter une valeur fixe calculée à partir de données datées, 15 données 20 BRÈVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre, prise à titre d'exemple non limitatif, en 25 référence aux figures annexées dans lesquelles : - la figure 1 représente un organigramme général illustrant les étapes nécessaires au calcul de CVI selon l'invention, - la figure 2 représente schématiquement un 30 organigramme illustrant la vérification d'un CVI selon l'invention. de personnalisation non diversifiées et non ou une valeur variable calculée à partir de de personnalisation diversifiées et non datées. Dans les deux cas, le calcul du code de vérification d'intégrité CVI est effectué, à la volée, au fur et à mesure des inscriptions successives desdites données dans la mémoire de la carte à puce.
EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS La description qui va suivre concerne une mise en oeuvre du procédé selon l'invention pour personnaliser des cartes à puce destinées à être utilisées dans un système de contrôle d'accès à des contenus embrouillés distribué par un opérateur à des abonnés équipés d'un récepteur et d'une carte à puce assurant la fonction de processeur de sécurité.
L'opérateur comporte un générateur de messages de contrôle d'accès EMM (Entitlement management message) et ECM (Entitlement Control message), et au moins un terminal émetteur. En fonctionnement, le terminal émetteur, agencé en tête du réseau, transmet un contenu numérique à des récepteurs d'abonnés connectés audit réseau. Le contenu numérique est préalablement embrouillé par un mot de contrôle CW. Ce dernier est chiffré par une clé secrète et est transmis aux terminaux récepteurs dans des messages ECM. L'opérateur transmet aux cartes les messages EMM comportant, notamment, la clé secrète et des informations relatives aux services auxquels peuvent accéder les abonnés et aux droits associés à ces services. Ces informations sont inscrites dans les cartes à puces. Préalablement à l'inscription desdites informations dans la mémoire d'une première carte à puce, appelée carte fille, un code de vérification d'intégrité CVI est pré-calculé à partir des données à inscrire par une deuxième carte, différente de la première carte, appelée carte mère.
Au fur et à mesure de l'inscription desdites informations dans la mémoire de la carte fille, celle-ci calcule à la volée un CVI à partir des octets constituant lesdites informations.
Le CVI pré-calculé par la carte mère est ensuite fourni à la carte fille qui le compare au CVI calculé à la volée par cette dernière. Si le CVI calculé à la volée par la carte fille est différent du CVI pré-calculé par la carte mère, la carte fille applique une contre mesure sécuritaire préalablement programmée. Les étapes de calcul du CVI par la carte mère sont illustrées par la figure 1. Ces étapes sont exécutées lors de la configuration des cartes filles en phase de production. L'étape 2 consiste à sélectionner un lot de cartes filles à configurer. L'étape 4 consiste à initialiser la procédure de calcul du CVI associée à la configuration programmée dans la carte mère par l'opérateur. Cette procédure est réalisée par un module logiciel de calcul installé dans la carte mère et permet de calculer un CVI fixe ou un CVI variable selon le type de paramètres choisis par l'opérateur.
Le CVI fixe sera calculé sur des données de personnalisation non diversifiées et non datées telles que par exemple les valeurs des identifiants de zone service, la présence de clés, la valeur des droits à inscrire dans la mémoire de la carte.
Le CVI variable sera calculé sur des données de personnalisation, non datées, diversifiées pour chaque carte fille et pour un opérateur donné telles que par exemple l'adresse unique de la carte fille, la valeur des clés, la valeur des zones FAC... A l'étape 6, le générateur d'EEM génère un EMM de personnalisation qui va être transmis par l'émetteur aux cartes filles. L'étape 8 consiste à indiquer à la carte fille les références des clés qu'elle va utiliser pour effectuer le calcul de message EMM de personnalisation.
L'étape 10 consiste à initialiser le calcul du message EMM. Les étapes 12, 14 et 16 consistent respectivement à sélectionner la clé secrète à transférer dans le message EMM, à calculer le message EMM et à chiffrer les données sensibles à transmettre dans ce message EMM. L'étape 18 est un test pour vérifier que la construction du message EMM est terminée ou non. Si la construction du message EMM n'est pas terminée, la procédure de calcul est reprise à partir de l'étape 12. Si la construction du message EMM est terminée, la carte mère lit le message EMM généré. A l'étape 22, un test est exécuté pour vérifier que la lecture du message EMM est terminée ou non. Si l'étape de lecture du message EMM n'est pas terminée, elle est reprise à partir de l'étape 20. Si l'étape de lecture du message EMM est terminée, à l'étape 24, un test est exécuté pour vérifier que le calcul du CVI est terminé ou non.
Si le calcul du CVI n'est pas terminé, la procédure est reprise à partir de l'étape 6. Si le calcul du CVI est terminé, la valeur calculée est lue par la carte mère à l'étape 26.
Le calcul du CVI est alors arrêté à l'étape 28. La figure 2 illustre les étapes de la vérification du CVI par une carte fille en phase de personnalisation. Cette vérification est effectuée par module logiciel de vérification de CVI installé dans la mémoire EEPROM (Electrically-Erasable Programmable Read-Only Memory) de chaque carte fille. La vérification de CVI est activée par une commande APDU (Application Data Protocol) d'activation exécutée par ledit module logiciel de vérification. Ainsi, lorsqu'une carte fille reçoit cette commande APDU, le module logiciel de vérification de CVI calcule un CVI fixe ou un CVI variable selon les paramètres de calcul choisis.
Les différentes étapes de cette procédure sont illustrées par la figure 2 dans laquelle, à l'étape 30, on sélectionne une carte fille à personnaliser. A l'étape 32, la carte fille sélectionnée reçoit une commande APDU (Application Data Protocol). Si la commande APDU = Lock UTIL , le procédé se poursuit par l'étape 38 au cours de laquelle la carte fille reçoit (flèche 33) une APDU = Ecriture du Lock Util mettant la carte fille dans un état phase UTIL accepté dans lequel la carte fille est débloquée.
Si la commande APDU = Activation du module logiciel en EEPROM avec traitement CVI , le procédé se poursuit par l'étape 40 consistant à calculer un CVI dans la carte fille par ledit module logiciel après réinitialisation interne des calculs avec remise à zéro et réinitialisation des variables ayant servi à des calculs précédents. Si la commande APDU est à la fois différente de Lock UTIL et de Activation du 10 module logiciel en EEPROM avec traitement CVI , aucun calcul de CVI n'est effectué. Cependant l'APDU est traitée en fonction de son contenu à l'étape 41. A l'étape 42, la carte fille se met en attente d'une commande APDU. Si la carte fille reçoit une commande APDU = EMM personnalisation , le procédé se poursuit par l'étape 44 de calcul de CVI à partir des données contenues dans l'EMM de personnalisation puis retourne à l'étape 42. Si la carte fille reçoit une commande APDU à la fois différente de Lock UTIL et de EMM personnalisation , aucun calcul de CVI n'est effectué. Cependant l'APDU est traitée en fonction de son contenu à l'étape 43. 25 Si la carte fille reçoit une commande APDU Lock UTIL , le procédé se poursuit par l'étape 46 de vérification de CVI. A l'étape 46, le CVI calculé par la carte fille est comparé au CVI pré-calculé et préalablement 30 transmis à la carte fille (flèche 33). 15 20 Si ledit CVI calculé par la carte fille est identique au CVI pré-calculé et préalablement transmis à la carte fille (flèche 33), le procédé se poursuit par l'étape 38.
Sinon, le procédé se poursuit par l'étape 48 au cours de laquelle le passage à la phase UTIL est accepté mais la carte reste bloquée jusqu'à l'identification de l'émetteur.

Claims (11)

  1. REVENDICATIONS1. Procédé de vérification de l'intégrité de données numériques à inscrire dans une mémoire comportant les étapes suivantes : pour chaque donnée, calculer une empreinte numérique en fonction des octets de ladite donnée, - appliquer une opération mathématique commutative à l'ensemble des empreintes obtenues pour calculer un code de vérification d'intégrité CVI, - comparer la valeur du CVI calculée à une valeur de référence mémorisée à l'extérieur de ladite mémoire, - appliquer une contremesure si la valeur du CVI calculée est différente de la valeur de référence.
  2. 2. Procédé selon la revendication 1, dans lequel ladite valeur de référence est un CVI préalablement calculé à partir desdites données.
  3. 3. Procédé selon la revendication 1, dans lequel le calcul d'empreinte est réalisé par application d'un algorithme de vérification d'intégrité sur les octets de chacune desdites données.
  4. 4. Procédé selon la revendication 3, dans lequel l'algorithme de vérification d'intégrité est soit un CRC, soit un Hash, soit un MAC ou soit une signature asymétrique.
  5. 5. Procédé selon la revendication 1, comportant en outre une étape consistant à calculer un Hash des résultats de ladite opération mathématique commutative.
  6. 6. Procédé selon la revendication 1, comportant en outre une étape consistant à chiffrer les résultats de ladite opération mathématique commutative.
  7. 7. Procédé selon l'une des revendications 5 ou 6, caractérisé en ce que ladite opération mathématique commutative est un opérateur XOR.
  8. 8. Procédé selon la revendication 6, dans lequel ladite mémoire est une mémoire non volatile d'une carte à mémoire.
  9. 9. Procédé selon la revendication 6, dans 20 lequel ledit code de vérification d'intégrité CVI a une valeur fixe calculée à partir de données de personnalisation non diversifiées et non datées
  10. 10. Procédé selon la revendication 1, dans 25 lequel ledit code de vérification d'intégrité CVI présente une valeur variable calculée à partir de données de personnalisation diversifiées et non datées.
  11. 11. Procédé selon la revendication 1, dans 30 lequel le calcul du code de vérification d'intégrité 15CVI est effectué au fur et à mesure des inscriptions successives desdites données dans la mémoire.
FR0956197A 2009-09-10 2009-09-10 Procede de verification de l'integrite de donnees inscrites dans une memoire Active FR2949877B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0956197A FR2949877B1 (fr) 2009-09-10 2009-09-10 Procede de verification de l'integrite de donnees inscrites dans une memoire

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0956197A FR2949877B1 (fr) 2009-09-10 2009-09-10 Procede de verification de l'integrite de donnees inscrites dans une memoire

Publications (2)

Publication Number Publication Date
FR2949877A1 true FR2949877A1 (fr) 2011-03-11
FR2949877B1 FR2949877B1 (fr) 2017-09-15

Family

ID=41694769

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0956197A Active FR2949877B1 (fr) 2009-09-10 2009-09-10 Procede de verification de l'integrite de donnees inscrites dans une memoire

Country Status (1)

Country Link
FR (1) FR2949877B1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005942A (en) * 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
WO2005119606A1 (fr) * 2004-05-28 2005-12-15 International Business Machines Corporation Systeme de transfert de donnees au moyen d'une carte intelligente et methodes pour assurer la securite du stockage et de la transmission
WO2007087432A2 (fr) * 2006-01-24 2007-08-02 Stepnexus, Inc. Procédé et système de personalisation de cartes à puce recourant à la cryptographie asymétrique
WO2007105120A1 (fr) * 2006-03-14 2007-09-20 Nxp B.V. Carte à puce configurable automatiquement et procédé de configuration d'une telle carte

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005942A (en) * 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
WO2005119606A1 (fr) * 2004-05-28 2005-12-15 International Business Machines Corporation Systeme de transfert de donnees au moyen d'une carte intelligente et methodes pour assurer la securite du stockage et de la transmission
WO2007087432A2 (fr) * 2006-01-24 2007-08-02 Stepnexus, Inc. Procédé et système de personalisation de cartes à puce recourant à la cryptographie asymétrique
WO2007105120A1 (fr) * 2006-03-14 2007-09-20 Nxp B.V. Carte à puce configurable automatiquement et procédé de configuration d'une telle carte

Also Published As

Publication number Publication date
FR2949877B1 (fr) 2017-09-15

Similar Documents

Publication Publication Date Title
EP1570648B1 (fr) Méthode de sécurisation des mises à jour de logiciels
EP0426541B1 (fr) Procédé de protection contre l'utilisation frauduleuse de cartes à microprocesseur, et dispositif de mise en oeuvre
FR2497617A1 (fr) Procede et dispositif de securite pour communication tripartie de donnees confidentielles
FR2922396A1 (fr) Procede d'authentification biometrique, programme d'ordinateur, serveur d'authentification, terminal et objet portatif correspondants
EP2494489A1 (fr) Procédé et agent client pour contrôler l'utilisation d'un contenu protégé
FR2854303A1 (fr) Procede de securisation d'un terminal mobile et applications de procede, l'execution d'applications necessitant un niveau de securite eleve
EP1549011A1 (fr) Procédé et système de communication entre un terminal et au moins un équipment communicant
EP3241137B1 (fr) Procede mis en oeuvre dans un document d'identite et document d'identite associe
EP1627362A1 (fr) Methode de generation d'une cle de securite
EP3033857B1 (fr) Authentification de code binaire
EP1055203B1 (fr) Protocole de controle d'acces entre une cle et une serrure electronique
EP1494460A1 (fr) Procédé et dispositif d'authentification de données numériques par module d'extension d'authentification
FR2699300A1 (fr) Procédé d'authentification d'un ensemble informatique par un autre ensemble informatique.
EP1266359B1 (fr) Procede d'identification biometrique, dispositif electronique portatif et dispositif electronique d'acquisition de donnees biometriques pour sa mise en oeuvre
FR2925729A1 (fr) Procede et systeme pour generer des donnees biometriques stables
EP1436792B1 (fr) Protocole d'authentification a verification d'integrite de memoire
FR2949877A1 (fr) Procede de verification de l'integrite de donnees inscrites dans une memoire
EP1142193A1 (fr) Procede de chargement securise de donnees entre des modules de securite
WO2012093215A1 (fr) Dispositif et procede de tracage
WO2004084525A2 (fr) Procede de protection d’un terminal de telecommunication de type telephone mobile
EP3842970B1 (fr) Procédé de vérification du mot de passe d'un dongle, programme d'ordinateur, dongle et terminal utilisateur associés
FR2913551A1 (fr) Methode d'authentification mutuelle et recurrente sur internet.
WO2001005085A2 (fr) Procede et dispositif de securisation de l'acces et des transferts de donnees
EP2356608A1 (fr) Procede et dispositif de diagnostic de la premiere reception d'un identifiant, procede de detection, support d'enregistrement et programme d'ordinateur pour ce procede
FR2856815A1 (fr) Procede d'authentification de donnees contenues dans un objet a memoire

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9