Brevet FR2765709A1 — publié le 19990108

METHODE DE CHARGEMENT DE DONNEES DANS UNE CARTE A MICROPROCESSEUR La présente invention est relative à une méthode de chargement de données io sécurisées dans une carte à microprocesseur. Dans un système habituel, le chargement ou téléchargement des données dans une carte se fait par les moyens d'une application extérieure et avec une instruction spécifique au système d'exploitation de la carte. Les données chargées par l'application extérieure peuvent inclure, par exemple, des instructions supplémentaires complétant ou même remplaçant tout ou partie du jeu d'instructions du système d'exploitation de la carte normalement stocké dans la mémoire ROM de la carte. Dans tout système utilisant une carte à microprocesseur apte à recevoir des données par téléchargement, le problème de fraude se présente. Il est connu, par exemple, de charger la carte avec un code frauduleux qui cause le déchargement de la mémoire système et/ou applicative de la carte. En regardant les données déchargées le fraudeur peut connaître, par exemple, les clés secrètes contenues dans la carte ou d'autres données normalement inaccessibles au monde extérieur. De plus, certaines instructions de type virus peuvent parasiter les fonctionnalités propres des cartes. Un exemplaire d'un système conventionnel pour protéger une carte contre ce genre de fraude est décrit dans le brevet EP 0325506. Dans ce système, la carte à microprocesseur est programmée avec une clé secrète. Cette clé est également cryptée avec le numéro de fabrication de la carte pour générer un code spécifique à la carte en question. La carte permettra l'introduction de données seulement si elle est présentée avec ce code. La clé est envoyée aux personnes autorisées à programmer la carte qui peuvent lire le numéro de fabrication et générer le code nécessaire pour programmer la carte. Ce système, qui est adapté aux besoins du domaine bancaire possède certains désavantages, notamment en ce qui concerne la manière de gérer la transmission de la clé secrète entre le fabricant et la personne habilitée à programmer la carte. Le système fonctionne seulement si les deux connaissent la valeur de la clé secrète. Il est impératif que cette information reste confidentielle, impliquant un niveau de sécurité assez élevé aux deux sites. Il faut également une voie de transmission sécurisée pour la transmission de la clé entre le fabricant et le programmeur. Comme décrit dans le brevet, cette io voie doit être forcément différente de la voie de transmission de la carte elle- même. Ces problèmes, qui sont moins gênants dans le contexte d'un système bancaire o il y a souvent seulement un fabricant et une entité bancaire fournie avec la clé secrète, deviennent plus importants dans d'autres applications, par exemple, dans le domaine des cartes pour le système santé ou sécurité sociale, o il peut y avoir plusieurs fabricants de cartes. Un des objets de l'invention est de fournir une méthode pour le chargement de données dans une carte qui évite les problèmes associés avec les méthodes conventionnelles. La méthode de la présente invention est caractérisée en ce que les données à charger dans la carte sont encryptées avec une clé secrète appartenant à la personne habilitée à programmer la carte, la carte à microprocesseur étant également fournie d'une clé publique apte à décrypter les données sous leur forme encryptée et dans laquelle la clé secrète et la clé publique appartiennent à un algorithme de cryptage asymétrique. Dans un algorithme de cryptage asymétrique, par exemple l'algorithme RSA, seulement l'identité de la clé secrète doit être gardée confidentielle. La clé publique peut être divulguée sans risque majeur, puisqu'il n'y a aucune possibilité de déterminer la valeur de la clé secrète avec cette information. Sans la clé secrète, un fraudeur ne peut générer un code correctement encrypté. Par conséquent, I'information concernant la clé publique nécessaire pour fabriquer une carte peut être confiée à plusieurs fabricants. Par contre, seule la personne possédant la clé secrète sera capable de générer les données correctement encryptées pour charger dans la carte. De préférence, le format de données est prédéterminé avant l'étape d'encryptage par la personne habilitée, la carte à microprocesseur étant apte à rejeter les données après l'étape de décryptage si elles ne respectent par le format prédéterminé. Par exemple, les données peuvent être formatées suivant une norme standard, telle que la norme ISO 9796, et la carte programmée à rejeter toutes les données sortant de l'étape de décryptage et qui n'ont pas ce format. Dans un mode de réalisation, et pour augmenter la sécurité du système la carte comprend également un verrou logique qui reste ouvert pendant le chargement de données et qui se ferme immédiatement après leur chargement pour interdire la lecture subséquente des données stockées dans la carte. Le verrou logique peut, selon les formes connues, comprendre un fusible métallique ou matrice de décision apte à permettre la lecture seulement si les instructions correctes sont reçues. La méthode de l'invention se prête spécialement au téléchargement de données, par exemple, par un réseau de communication. Même dans le cas d'une interception non autorisée des données, I'identité de la clé secrète restera inviolable. L'invention sera mieux comprise à la lecture de la description qui suit d'un mode de réalisation de l'invention, donné à titre d'exemple illustratif et non limitatif et faisant référence au dessin annexé et sur lequel: La figure 1 montre une méthode de chargement de données par un organisme ou une personne habilitée dans une carte à microprocesseur selon la présente invention. En se référant à la figure 1, la partie gauche de cette figure montre les étapes effectuées par l'organisme ou personne habilité pour générer une "signature" représentant les données dans une forme encryptée. Ces étapes peuvent être effectuées automatiquement par les moyens d'un logiciel sur un ordinateur apte à recevoir les données et générer la signature. Les données 1 sont d'abords traitées 2 suivant une norme standard, par exemple, la norme ISO 9796 pour les mettre dans un format acceptable à la carte. Puis, les données sont encryptées 3 avec une clé secrète KsEc d'un algorithme asymétrique pour générer une signature 4. L'algorithme d'encryptage montré dans ce cas est l'algorithme RSA, mais d'autres algorithmes asymétriques seront connus de l'homme de métier. La signature 4 est alors chargée dans la carte à microprocesseur. Etant données la nature sécurisée de la signature et l'impossibilité de déterminer la clé secrète, la signature peut être envoyée via un réseau de communication (téléphone, radio, etc.) pour télécharger la carte. La signature reçue par la carte est alors traitée 5 par une clé publique KpUB de l'algorithme RSA stocké dans la mémoire ROM 6 de la carte. Les données décryptées par la clé publique sont vérifiées 7 pour leur conformité avec la norme ISO 9796. Si les données sont conformes à ce format, elles sont stockées par la suite dans la mémoire EEPROM 8 de la carte. Toute tentative d'introduction des données sans possession de l'information concernant la valeur de la clé secrète KsEc et le format des données à introduire sera ainsi rejetée. Sans cette information, un fraudeur ne sera capable de générer les données encryptées dans une forme qui sera reconnue par la carte. La carte peut également comprendre un verrou logique apte à s'ouvrir pendant le chargement des données et se fermer après cette étape pour garder secrètes les données chargées dans la carte. Ce verrou, qui n'est pas représenté dans la figure, peut être un fusible, dans le cas o un seul chargement de données est permis, ou peut être réalisé par les moyens d'une matrice de décision dans une façon connue. L'utilisation d'un tel verrou empêche la lecture des données chargées dans la carte, qui peuvent comprendre, par exemple, les informations nécessaires pour reprogrammer la carte. Comme il sera compris, la présente invention permet ainsi le chargement de données dans une carte à microprocesseur sécurisée et sans les désavantages des systèmes connus. En particulier, I'information concernant l'identité de la clé secrète sera détenue seulement par l'organisme responsable pour la programmation des cartes. Des clés publiques peuvent être distribuées Io à plusieurs fabricants de cartes sans aucun risque de compromettre la sécurité globale du système. Cet aspect de l'invention rend le système particulièrement utile dans le domaine de la santé, o les cartes contiennent des informations confidentielles d'un patient. Ces données peuvent être médicales ou administratives. Dans ce cas, la responsabilité de programmer les cartes relèvera le plus souvent d'une seule organisation, tandis que la fabrication des cartes sera confiée à plusieurs sociétés. Pour les mêmes raisons, le fait que la signature contenant les données encryptées pour programmer dans la carte peut être divulguée sur un réseau sans risque rend l'invention particulièrement avantageuse car la programmation des cartes s'effectuera souvent par le téléchargement pour éviter la nécessité de donner aux fabricants les informations à charger dans la carte. REVENDICATIONS 1. Méthode de chargement de données dans une carte à microprocesseur caractérisée en ce que les données à charger dans la carte sont encryptées avec une clé secrète appartenant à la personne habilitée à programmer la carte, la carte à microprocesseur étant également fournie d'une clé publique apte à décrypter les données sous leur forme encryptée et dans laquelle la clé secrète et la clé publique appartiennent à un algorithme de cryptage asymétrique. 2. Méthode de chargement de données dans une carte à microprocesseur selon la revendication 1 et dans laquelle l'algorithme de cryptage est l'algorithme RSA. 3. Méthode de chargement de données dans une carte à microprocesseur selon la revendication 1 ou 2 et dans laquelle le format de données est prédéterminé avant l'étape d'encryptage par la personne habilitée, la carte à microprocesseur étant apte à rejeter les données après l'étape de décryptage si elles ne respectent par le format prédéterminé. 4. Méthode de chargement de données dans une carte à microprocesseur selon la revendication 3 et dans laquelle les données sont formatées suivant la norme ISO 9796. 5. Méthode de chargement de données dans une carte à microprocesseur selon l'une quelconque des revendications 1 à 4 et dans laquelle la carte comprend également un verrou logique qui reste ouvert pendant le chargement de données et qui se ferme immédiatement après le chargement pour interdire la lecture subséquente des données stockées dans la carte. 6. Méthode de chargement de données dans une carte à microprocesseur selon l'une quelconque des revendications 1 à 5 et dans laquelle les données sont téléchargées dans la carte via un réseau de communication.