Brevet FR2792479A1 — publié le 20001020

! PROCEDE DE CHARGEMENT SECURISE DE DONNEES ENTRE DES MODULES DE SECURITE La présente invention concerne un procédé de chargement sécurisé d'au moins une donnée secrète à partir d'un premier module de sécurité vers un ou plusieurs deuxièmes modules de sécurité, ledit premier module comportant des données secrètes, ledit deuxième module comportant une mémoire non volatile, ladite mémoire comprenant au moins un fichier comportant des données secrètes. L'invention trouve une application particulièrement avantageuse dans le domaine de la téléphonie. Dans le domaine de la téléphonie, il existe des systèmes d'administration de terminaux qui comportent un premier module de sécurité embarqué dans un serveur d'administration et des deuxièmes modules de sécurité généralement embarqués dans les terminaux précités. Les terminaux sont des publiphones ou des concentrateurs de publiphones. Un concentrateur est relié audit serveur et gèrent plusieurs publiphones. Il est composé d'un ordinateur. Un deuxième module de sécurité garantit la validité d'une carte utilisateur introduite dans un publiphone, notamment grâce à une authentification de ladite carte. A cet effet, ledit deuxième module comprend dans sa mémoire non volatile des données secrètes permettant de garantir ladite validité des cartes utilisateurs. Les systèmes d'administration de terminaux ainsi que les données secrètes sont gérés par des opérateurs de téléphonie. Les données secrètes se trouvent dans un fichier du deuxième module de sécurité du terminal. Afin de diminuer les risques de fraude consistant à espionner un réseau de communication reliant le serveur et les terminaux et ainsi à découvrir lesdites données secrètes, chaque opérateur est amené à modifier régulièrement dans le deuxième module de sécurité du terminal tout ou partie des données secrètes qu'il gère, à partir de 2 données secrètes du premier module de sécurité du serveur d'administration. De la même façon, afin de prendre en compte de nouvelles cartes utilisateurs, on met à jour ou on ajoute de nouvelles données secrètes dans ledit terminal.5 Un procédé connu de la technique comprend les étapes selon lesquelles: - on chiffre les données secrètes se trouvant dans le serveur d'administration qui doivent être transmises au deuxième module de sécurité du terminal, le terminal se connecte au serveur d'administration lorsqu'aucune conversation n'est en cours, - les données secrètes sont transmises du premier module de sécurité dudit serveur au deuxième module de sécurité du terminal. Lorsqu'un nombre important de données secrètes, gérées par ledit opérateur, doit être transmis au deuxième module de sécurité, le procédé est effectué plusieurs fois, ce qui permet de charger plusieurs données secrètes de façon séquentielle. Bien que ce procédé permette un chargement de données secrètes entre un premier et deuxième modules de sécurité, lorsque le deuxième module de sécurité est mis hors-tension dans le terminal, par exemple pour des raisons d'économie d'énergie, le chargement séquentiel peut être brisé. Par suite, le deuxième module comprend un ensemble non cohérent de données secrètes gérées par l'opérateur et utilisées dans le terminal, ledit ensemble comprenant d'anciennes et de nouvelles données secrètes. Le deuxième module de sécurité ne fonctionne plus avec ledit ensemble de données secrètes et le terminal ne peut plus fonctionner avec les cartes utilisateurs correspondantes auxdites données secrètes. Aussi, un problème technique à résoudre par l'objet de la présente invention est de proposer un procédé de chargement sécurisé d'au moins une donnée secrète à partir d'un premier module de sécurité vers un ou plusieurs deuxièmes modules de sécurité, ledit premier module comportant des données secrètes, ledit deuxième module comportant une mémoire non volatile, ladite mémoire comprenant au moins un fichier comportant des données secrètes, qui permettrait de garantir une cohérence entre les données secrètes gérées par un même opérateur et utilisées par un deuxième module de sécurité, même après une mise hors- tension de ce dernier, et d'obtenir ainsi une utilisation optimum du terminal associé. Une solution au problème technique posé se caractérise, selon l'invention, en ce que ledit procédé de chargement comporte les étapes selon lesquelles: - on chiffre au moins une donnée secrète du premier module, on envoie au deuxième module la donnée secrète chiffrée, - on déchiffre dans le deuxième module la donnée secrète chiffrée, - on enregistre dans le deuxième module ladite donnée secrète déchiffrée, ledit enregistrement se faisant dans un emplacement mémoire de la mémoire non volatile, - on active la donnée secrète. Ainsi, comme on le verra en détail plus loin, le procédé de chargement de l'invention permet, grâce à l'étape d'activation, de différer l'utilisation d'une ou plusieurs données secrètes, et ce, le temps d'enregistrement de toutes les données secrètes utiles. La description qui va suivre au 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 un schéma montrant un premier module de sécurité et plusieurs deuxièmes modules de sécurité. La figure 2 est un schéma montrant un échange de données entre le premier module et un deuxième module de la figure 1. La figure 3 est un schéma montrant un deuxième échange de données entre le premier module et le deuxième module de la figure 2. La figure 4 est un schéma montrant un deuxième module de la figure 1. Sur la figure 1 est représenté un premier module S de sécurité et plusieurs deuxièmes modules SAM de sécurité. Le premier module S est intégré dans un serveur SERV d'administration de terminaux et comprend des données secrètes DATA. Les deuxièmes modules SAM sont intégrés dans lesdits terminaux T. Chaque deuxième module SAM comprend une mémoire MEM non volatile. La mémoire MEM non volatile comprend au moins un fichier EF comportant des données secrètes DATA. Lesdites données secrètes DATA d'un fichier EF sont utilisées dans le terminal T par le deuxième module SAM de sécurité. Dans un premier mode de réalisation, le premier module S de sécurité du serveur SERV d'administration est une base de données sécurisée comportant des données secrètes DATA. Dans un second mode de réalisation, ledit module S de sécurité est, soit, une carte à puce comportant un corps de carte dans lequel est incorporé un dispositif à circuit intégré, soit, ledit dispositif lui-même. Ledit dispositif est un module électronique comportant une puce à circuit intégrée ou la puce elle- même. Le deuxième module SAM de sécurité du terminal T est, soit, une carte à puce, soit, un dispositif à circuit intégré. Afin de modifier une donnée secrète DATA du deuxième module SAM, on charge une donnée secrète DATA à partir du premier module S de sécurité. La phase de chargement comprend plusieurs étapes décrites ci-après. Dans une première étape, dans le serveur SERV d'administration, on chiffre au moins une donnée secrète DATA du premier module S, ladite donnée secrète DATA devant être transmise dans le deuxième module SAM. Le chiffrement comprend une étape de cryptage utilisant5 un algorithme ALGO de cryptage se trouvant généralement dans le premier module S dans le cas o celui-ci est une carte à puce, et, dans ce cas, ledit chiffrement s'effectue dans ledit premier module, comme le montre la figure 2. Le chiffrement peut également comprendre, d'une part, une étape de signature de la donnée secrète DATA permettant de vérifier l'authenticité de ladite donnée DATA, et, d'autre part, une étape de certification de la donnée secrète DATA permettant de vérifier son intégrité. Le chiffrement et le déchiffrement peuvent également être fonction d'une donnée aléatoire RAND générée dans le deuxième module SAM et enregistrée dans la mémoire MEM non volatile du deuxième module SAM de sécurité (non représenté). Ladite donnée aléatoire RAND est envoyée au premier module S de sécurité afin de diversifier de façon parfaite les données secrètes DATA transmises. Le fait que la donnée aléatoire soit enregistrée dans la mémoire MEM non volatile permet, après une mise hors-tension du deuxième module SAM, d'une part, de toujours pouvoir déchiffrer les données secrètes DATA dans ledit deuxième module SAM, le déchiffrement dépendant de ladite donnée aléatoire RAND, et, d'autre part, de pouvoir continuer le chargement d'un même lot de données secrètes. Dans une deuxième étape, on envoie au deuxième module SAM la donnée secrète chiffrée DATAC. L'envoi peut se faire, soit, au moyen d'un réseau de télécommunications hertzien, soit, au moyen de tout autre réseau de communications de type connu. Dans une troisième étape, on déchiffre dans le deuxième module SAM la donnée secrète chiffrée DATAC. Le déchiffrement se fait à partir d'un algorithme ALGOP de décryptage inverse de l'algorithme ALGO utilisé pour le cryptage, ledit algorithme ALGOP de décryptage se trouvant avantageusement dans le deuxième module SAM. Dans une quatrième étape, on enregistre dans le deuxième module SAM ladite donnée secrète DATA déchiffrée, ledit enregistrement se faisant dans un emplacement mémoire M de la mémoire MEM non volatile. Afin de choisir l'emplacement mémoire M dans lequel on veut enregistrer la donnée secrète DATA, préalablement à l'envoi de la donnée secrète DATA, on sélectionne l'emplacement mémoire M qui convient. Enfin, dans une dernière étape, on active ladite donnée secrète DATA. Comme le deuxième module SAM peut comporter plusieurs fichiers EF comportant des données secrètes DATA, préalablement à l'activation de la donnée secrète DATA dans le deuxième module SAM, on sélectionne dans ledit deuxième module SAM un fichier EF comportant des données secrètes DATA. Comme le montre la figure 3, l'activation de la donnée secrète DATA est un transfert de ladite donnée secrète de l'emplacement mémoire M vers le fichier EF du deuxième module SAM. Ladite activation se fait au moyen d'une première commande ACTIVATE envoyée à partir du terminal T au deuxième module SAM de sécurité. De même, l'envoi, le déchiffrement et l'enregistrement de la donnée secrète DATA dans le deuxième module SAM se fait au moyen d'une deuxième commande LOAD envoyée à partir du terminal T au deuxième module SAM de sécurité (non représenté). Préalablement à chaque commande, on envoie, à partir du serveur SERV, un ordre ORD au terminal afin de déclencher une mise en oeuvre de ladite commande. Un deuxième module SAM de sécurité gère communément différents types de cartes utilisateurs et comporte par suite plusieurs données secrètes DATA associées à chaque type de cartes utilisateurs, un type de carte correspondant communément à un opérateur donné, fournisseur desdites cartes. Préférentiellement, l'ensemble des données secrètes DATA gérées par un opérateur se trouve dans un fichier EF du deuxième module de sécurité SAM. Comme le montre l'exemple de la figure 4, le deuxième module SAM gère trois types de cartes différents et comporte par suite trois fichiers EF. Afin de garder une bonne cohérence entre les données secrètes DATA d'un fichier EF, on modifie tout ou partie des données secrètes DATA associées à un type de cartes, lorsque, par exemple, une desdites données secrètes DATA est obsolète ou a été frauduleusement modifiée. Aussi, dans le cas o l'on modifie plusieurs données secrètes DATA, selon le procédé de la présente invention, les étapes sont mises en oeuvre sur une pluralité de données secrètes DATA, l'étape d'activation étant mise en oeuvre lorsque la totalité de la pluralité desdites données secrètes DATA d'un fichier EF a été enregistrée. Ainsi, dans le premier module S du serveur SERV d'administration, suivant l'opérateur, on sélectionne les données secrètes DATA à transmettre et on chiffre lesdites données secrètes. Par la suite, suivant la capacité du réseau de communications utilisé, on envoie les données secrètes chiffrées DATAC, une à une ou par bloc de données dans le deuxième module SAM de sécurité, on les déchiffre et on les enregistre dans l'emplacement mémoire M de la mémoire MEM non volatile comme décrit précédemment dans la quatrième étape. Lesdites données secrètes DATA ne sont pas encore utilisées par le deuxième module SAM. Afin de simplifier la gestion des données secrètes DATA correspondant à différents opérateurs, un emplacement mémoire M est associé à un fichier EF comportant des données secrètes DATA. Ainsi, suivant l'exemple de la figure 4, le deuxième module SAM comporte trois emplacements mémoires M1, M2 et M3 associés respectivement aux trois fichiers EF1, EF2 et EF3. Dans un mode de réalisation avantageux, un fichier EF du deuxième module de sécurité comporte un emplacement mémoire M. Ainsi les fichiers EF1, EF2 et EF3 comprennent chacun respectivement, d'une part, une zone mémoire Z1, Z2 et Z3 comportant des données secrètes DATA utilisées lors du fonctionnement du terminal T, et, d'autre part un emplacement mémoire M 1, M2 et M3, comportant des données secrètes DATA qui ne sont pas encore utilisées. Dans ce cas, la sélection de l'emplacement mémoire M se fait au moyen du fichier EF associé, par exemple, par un identifiant de fichier. Afin de choisir les données secrètes DATA à modifier dans le deuxième module SAM, on sélectionne au préalable un fichier EF dans ledit deuxième module SAM, ledit fichier correspondant auxdites données secrètes concernées. Par la suite, l'activation se fait préférentiellement lorsque le terminal T est peu utilisé, par exemple la nuit, afin de ne pas gêner les utilisateurs. A ce moment le terminal est indisponible à toute utilisation. Avantageusement, l'activation se fait lorsque les données secrètes DATA de l'ensemble des terminaux T ont été transmises, afin que toutes les données soient activées en même temps dans chaque terminal T. Après l'activation des données, lesdites données secrètes DATA transmises à partir du serveur SERV d'administration peuvent être utilisées dans le terminal T. Ainsi, grâce au procédé de la présente invention, même après que le deuxième module SAM est mis hors-tension et que l'ensemble des données secrètes DATA à transmettre et correspondant à un opérateur donné n'a pas encore été transmis, le terminal T comprenant le deuxième module SAM fonctionne toujours avec les cartes dudit opérateur. En effet, toutes les données secrètes DATA gérées par ledit opérateur, comprises dans le fichier EF associé et utilisées par ledit deuxième module SAM, demeurent cohérentes entre elles 9 puisqu'aucune n'est modifiée avant ladite étape d'activation de la présente invention. Bien entendu, l'invention n'est nullement limitée au domaine de la téléphonie, elle peut s'étendre à d'autres domaines dans lesquels est mis en oeuvre un système d'échange de données entre un module centralisé disposant de données secrètes et des modules délocalisés aptes à recevoir lesdites données secrètes. REVENDICATIONS 1 - Procédé de chargement sécurisé d'au moins une donnée secrète (DATA) à partir d'un premier module (S) de sécurité vers un ou plusieurs deuxièmes modules (SAM) de sécurité, ledit premier module (S) comportant des données secrètes (DATA), ledit deuxième module (SAM) comportant une mémoire (MEM) non volatile, ladite mémoire comprenant au moins un fichier (EF) comportant des données secrètes (DATA), caractérisé en ce qu'il comporte les étapes selon lesquelles: - on chiffre au moins une donnée secrète (DATA) du premier module (S), - on envoie au deuxième module (SAM) la donnée secrète chiffrée (DATAC), - on déchiffre dans le deuxième module (SAM) la donnée secrète chiffrée (DATAC), - on enregistre dans le deuxième module (SAM) ladite donnée secrète (DATA) déchiffrée, ledit enregistrement se faisant dans un emplacement mémoire (M) de la mémoire (MEM) non volatile, - on active la donnée secrète (DATA). 2 - Procédé selon l'une des revendications précédentes, caractérisé en ce que ladite activation se fait au moyen d'une première commande (ACTIVATE). 3 - Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte en outre une étape supplémentaire selon laquelle: - préalablement à l'activation de la donnée secrète (DATA) dans le deuxième module (SAM), on sélectionne dans ledit deuxième Il module (SAM) un fichier (EF) comportant des données secrètes (DATA). 4 - Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un emplacement mémoire (M) est associé à un fichier (EF) comportant des données secrètes (DATA). - Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un fichier (EF) du deuxième module (SAM) de sécurité comporte un emplacement mémoire (M). 6 - Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte en outre une étape supplémentaire selon laquelle: - préalablement à l'envoi de la donnée secrète (DATA), on sélectionne l'emplacement mémoire (M). 7 - Procédé selon l'une des revendications précédentes, ]5 caractérisé en ce que l'envoi, le déchiffrement et l'enregistrement de la donnée secrète (DATA) dans le deuxième module (SAM) se fait au moyen d'une deuxième commande (LOAD). 8 - Procédé selon l'une des revendications précédentes, caractérisé en ce que les étapes sont mises en oeuvre sur une pluralité de données secrètes (DATA), l'étape d'activation étant mise en oeuvre lorsque la totalité de la pluralité desdites données secrètes (DATA) d'un fichier (EF) a été enregistrée.