Brevet FR2897705A1 — publié le 20070824

MISE A JOUR D'UNE CARTE A PUCE Domaine de l'invention La présente invention concerne de façon générale les circuits électroniques et plus particulièrement les circuits contenus dans des cartes à puce. Un exemple d'application de la présente invention concerne les cartes bancaires dont l'application principale est d'être utilisée comme moyen de paiement. Dans cette application, l'invention concerne plus particulièrement les cartes à puce dites EMV (Europay MasterCard Visa) dont le fonctionnement est normalisé. Exposé de l'art antérieur La figure 1 représente de façon très schématique un exemple de carte à puce 1 (CARD) du type auquel s'applique la présente invention. Une puce 10 de circuit intégré est encartée dans la carte 1 en matière plastique et est reliée à des contacts métalliques 3 pour communication avec un terminal (par exemple, un lecteur de carte) non représenté en figure 1. La carte peut également ou à la place être pourvue d'un système de communication sans contact que ce soit pour l'application ban- cafre ou pour d'autres applications. La figure 2 représente, de façon très schématique et sous forme de blocs, des constituants d'un circuit intégré 10 d'une carte à puce 1 de la figure 1. Le circuit ou la puce 10 comporte une unité centrale de traitement 11 (CPU), un ou plu-sieurs éléments 12 de mémorisation non volatile (NVM), un ou plusieurs éléments 13 de stockage volatil (par exemple, de type RAM ou registres). Les différents constituants de la puce 10 communiquent entre eux et avec un dispositif 14 d'entrée/sortie (I/O) relié aux contacts 3, par un ou plusieurs bus 15 de données, d'adresses et de commandes. Le plus souvent, la puce 10 comporte d'autres fonctions 16 (FCT), par exemple, des circuits de calculs cryptographiques. La présente invention concerne plus particulièrement la mise à jour du circuit électronique 10 au cours de la vie du produit par modification de programmes et/ou de paramètres contenus en mémoire non volatile 12. Ces mises à jour sont le plus souvent décidées par l'émetteur de la carte. Dans l'exemple d'application aux cartes bancaires, il peut s'agir de bloquer la carte (par exemple, suite à une utilisation frauduleuse), d'un blocage/déblocage du code PIN, de modifier les plafonds de transactions autorisées, de modifier le contenu de fichiers accessibles par le terminal, etc. Il peut également s'agir de mettre à jour d'autres applications supportées par la carte qui n'ont pas de lien avec le secteur bancaire (par exemple, des droits d'accès à des transports publics, à des contenus multimédia, etc.). La figure 3 illustre, de façon très schématique et sous forme de blocs, les constituants d'un système participant à la mise à jour d'informations sur une carte à puce. La carte 1 est introduite dans un terminal 20 dont un circuit de commande 21 (CTRL) met en oeuvre des procédures d'authentification de la carte. Le terminal 20 (TERMINAL) communique (canal 25), le cas échéant par l'intermédiaire de l'établissement bancaire du destinataire des paiements (ACQUIRER) avec un opérateur 22 (INT NETW) qui, dans l'exemple des cartes bancaires, peut être le réseau Visa. L'opérateur 22 sert d'intermédiaire à la communication jusqu'à l'émetteur (bloc 23, ISSUER), c'est-à-dire l'établissement bancaire ayant fourni la carte et chargé de valider l'authentification de la carte et d'autoriser certaines transactions. Dans cet exemple, l'authentification de la carte s'effectue non seulement entre le terminal et la carte par un processus d'authentification ne requérant pas de communication entre le terminal et l'émetteur de la carte (Off line), mais également selon un processus dit en ligne (On line) pour des besoins d'autorisation de transaction. La figure 4 illustre de façon très schématique un exemple classique de mise à jour d'un circuit électronique d'une carte à puce CARD par téléchargement depuis l'émetteur ISSUER de la carte d'un programme SCRIPT de mise à jour. Une telle mise à jour profite d'une communication entre la carte et l'émetteur à des fins d'autorisation de transaction pour faire passer des programmes de mise à jour. La carte et le terminal commencent par s'authentifier mutuellement AUTHENT. Cette phase concerne notamment l'authentification du porteur de la carte par vérification du code secret (pin code) saisi par celui-ci sur un clavier non représenté du terminal. Le terminal envoie alors à l'émetteur de la carte (l'établissement bancaire titulaire du compte du porteur) une demande d'autorisation (AUTHOR ?). Cette demande transite le plus souvent par l'opérateur supportant les transactions bancaires INTNETW et par l'établissement bancaire du destinataire du paiement ACQUIRER. L'émetteur ISSUER accorde ou non (Y/N) au terminal d'autoriser la transaction en utilisant les mêmes supports de communication. Dans l'exemple d'un besoin de mise à jour, un programme SCRIPT est transmis en même temps que l'autorisation. Ce programme lorsqu'il arrive sur le terminal est transmis à la carte pour y être exécuté. Un problème des mécanismes classiques du type de celui illustré par la figure 4 est la limitation en termes d'informations (donc de taille des programmes) pouvant être transmises. En particulier, dans l'exemple d'application aux cartes EMV, la taille du programme est en pratique limitée à 32 octets par le canal de communication utilisé entre le terminal et les établissements bancaires, dans lequel le champ disponible imposé par l'opérateur (Visa ou autre) est de taille limitée. Chaque programme est composé d'une ou plusieurs commandes dites APDU (Application Protocol Data Unit). En raison de la faible capacité du canal, il n'est en pratique possible de ne transmettre qu'une à deux commandes, ce qui limite le programme susceptible d'être transmis à une ou deux instructions. Avec de telles limitations, les émetteurs ne peuvent généralement exécuter que des changements d'état dans la carte (blocage de carte, libération du code pin, etc.) mais ne peuvent pas mettre à jour des données plus importantes (plusieurs montants maximum de transaction), etc. En pratique, cela conduit à ne permettre des mises à 15 jour importantes que dans des terminaux du réseau de l'émetteur afin de ne pas transiter par l'opérateur. Le problème de capacité du canal de communication vient de l'opérateur du réseau et non des deux éléments devant échanger l'information de mise à jour (la carte et l'émetteur de 20 celle-ci). Bien entendu, si la carte pouvait être directement retournée physiquement à l'émetteur pour mise à jour, cela ne poserait aucun problème. Résumé de l'invention La présente invention vise à pallier tout ou partie 25 des inconvénients des mécanismes de mise à jour de données sur une carte à puce bancaire dans les systèmes EMV connus. Plus généralement, l'invention vise à permettre une mise à jour d'informations dans un circuit intégré en utilisant un canal de communication de faible capacité. 30 L'invention vise également à proposer une solution compatible avec les sécurités requises dans le secteur bancaire. Pour atteindre tout ou partie de ces objets ainsi que d'autres, la présente invention prévoit un procédé de mise à jour d'informations contenues dans un circuit électronique par 35 un système distant, en utilisant un canal de communication de capacité inférieure au volume des informations de mise à jour, comportant au moins une étape d'envoi au circuit électronique d'une commande d'exécution d'un programme de mise à jour, ladite commande comportant des éléments d'identification du programme de mise à jour parmi un ensemble de programmes préchargés dans une mémoire non volatile du circuit électronique. Selon un mode de mise en oeuvre, la présente invention est appliquée à la mise à jour d'informations dans une carte bancaire de type EMV. Selon un mode de mise en oeuvre de la présente inven- tion, ladite commande identifie un programme de mise à jour et une application concernée parmi plusieurs applications supportées par le circuit électronique. L'invention prévoit également un système de mise à jour d'informations dans un circuit électronique par un équipement distant au moyen d'un canal de communication de capacité inférieure au volume des informations à mettre à jour. Selon un mode de réalisation de la présente invention, le circuit électronique est contenu dans une carte à puce bancaire répondant à la norme EMV. L'invention prévoit également une carte à puce comportant un circuit électronique dont une mémoire non volatile contient des programmes de mise à jour de la carte, exécutables à réception d'une commande provenant de l'émetteur de la carte. Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 décrite précédemment représente un exemple de carte à puce du type auquel s'applique la présente invention ; la figure 2 décrite précédemment représente, de façon 35 très schématique et sous forme de blocs, un exemple de puce de circuit intégré équipant une carte du type auquel s'applique la présente invention ; la figure 3 décrite précédemment illustre, de façon très schématique et sous forme de blocs, un exemple classique de 5 système de mise à jour d'une carte bancaire ; la figure 4 décrite précédemment illustre, de façon très schématique, les échanges entre les constituants du système de la figure 3 ; la figure 5 représente, de façon partielle et schéma-10 tique, des constituants d'un système de mise à jour selon un mode de réalisation de la présente invention ; et la figure 6 illustre, par une vue à rapprocher de la figure 4, un mode de mise en oeuvre du procédé de mise à jour d'informations sur une carte à puce selon la présente invention. 15 De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls les étapes et éléments qui sont utiles à la compréhension de l'invention ont été représentés aux figures et seront décrits par la suite. En particulier, les programmes de mise à jour 20 n'ont pas été détaillés, l'invention étant compatible avec tout code d'opératoire classique de mise à jour d'une carte à puce. De plus, les mécanismes de communication des données et leurs éventuels codages et décodages n'ont pas non plus été détaillés, l'invention étant là encore compatible avec les mécanismes 25 classiques. Description détaillée La présente invention sera décrite en relation avec un exemple d'application aux cartes bancaires de type EMV. Elle s'applique toutefois plus généralement à tout système de mise à 30 jour d'un circuit électronique au moyen d'un support de communication dont la capacité en terme de volume d'informations transmis ne permet pas de transmettre les informations de mise à jour complètes. La présente invention tire son origine d'une nouvelle 35 analyse des mises à jour susceptibles d'être effectuées dans les circuits intégrés des cartes à puce. L'inventeur s'est aperçu que ces mises à jour peuvent, dans la plupart des cas, être définies à l'avance. Dans l'exemple d'application aux cartes bancaires, les établissements bancaires définissent des catégories de risques clients auxquels ils associent des configurations particulières. Ces configurations incluent, par exemple, le montant maximal d'une transaction financière, le montant accumulé maximal des transactions sur une période donnée (généralement 1 mois), etc. Le nombre de configurations possible est alors limité (typiquement moins d'une vingtaine). Il est donc possible, pour l'émetteur de la carte, d'enregistrer lors de la personnalisation ou de la fabrication de la carte, les différents programmes de mise à jour possibles en mémoire non volatile. Par la suite, les programmes étant déjà contenus sur la carte, il suffit d'envoyer une commande de sélection d'un des programmes et d'exécution de celui-ci, le cas échéant avec des paramètres dans une quantité compatible avec la capacité de transmission restant disponible. La figure 5 représente, partiellement et sous forme de blocs, une carte 1 selon un mode de réalisation de la présente invention. Dans ce mode de réalisation, la mémoire non volatile 12 de la carte contient plusieurs programmes de mise à jour (SCRIPT S1, ..., SCRIPT Si) qui sont enregistrés lors d'une phase de personnalisation par l'émetteur 23 (ISSUER) de la carte. Le support de communication 30 peut être n'importe quel support classique utilisé pour les personnalisations des cartes. Ce support est généralement différent de celui (25, figure 3) utilisé pour les transactions et ne présente pas les mêmes contraintes en terme de bande passante disponible du canal. La figure 6 illustre, par une vue à rapprocher de la figure 4, un mode de mise en oeuvre du procédé de mise à jour selon la présente invention. Comme précédemment, une authentification AUTHENT du porteur est effectuée entre la carte CARD et le terminal 35 (TERMINAL). Une fois la carte authentifiée, le terminal demande à l'émetteur (ISSUER) de la carte une autorisation de transaction (AUTHOR ?). Cette demande d'autorisation transite, par exemple, par un opérateur INT NETW (typiquement le réseau Visa ou Mastercard) et, le plus souvent, par l'établissement bancaire du destinataire du paiement (ACQUIRER) requérant l'autorisation. Dans le cas où l'émetteur souhaite mettre à jour des informations dans la carte, il adjoint à son autorisation (Y/N) envoyée en retour au terminal, une commande (PLAY Si) d'exécution d'un programme contenu dans la carte. Le terminal transmet cette commande d'exécution à la carte qui peut alors se mettre à jour d'elle-même. L'envoi d'une commande interprétable par la carte pour sélectionner et exécuter un programme qu'elle contient est compatible avec la capacité limitée de transfert d'informations sur des commandes supportées par l'opérateur, notamment dans l'exemple de l'application EMV. A titre d'exemple, un format connu sous la dénomination APDU (Application Protocol Data Unit) et utilisé dans les systèmes EMV convient. Le fait de préenregistrer les programmes de mise à jour côté carte est sans lien avec la sécurité des programmes de mise à jour eux-mêmes. En effet, les communications par le réseau EMV, notamment dans le format APDU, sont sécurisées. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, les mécanismes de mise à jour peuvent concerner d'autres applications contenues dans le circuit électronique y compris pour les cartes bancaires. Dans ce cas, il suffit que des programmes de mise à jour particuliers de ces applications soient enregistrés dans la carte lors de sa personnalisation ou du chargement initial de ces applications. Par la suite, elles deviennent alors susceptibles d'être mise à jour par le même mécanisme que celui décrit en relation avec l'application EMV. La commande de sélection comprenant, de préférence, en plus d'une information permettant de sélectionner le programme, une information permettant d'identifier l'application dans la carte. De plus, la mise en oeuvre pratique de l'invention à partir de la description fonctionnelle ci-dessus est à la portée de l'homme du métier en utilisant des outils en eux-mêmes classiques. C'est le cas notamment de la programmation d'une commande interprétable par le circuit devant exécuter la mise à jour en fonction de l'application et comprenant les paramètres requis en fonction des informations déjà présentes dans le circuit. REVENDICATIONS 1. Procédé de mise à jour d'informations contenues dans un circuit électronique (10) par un système (23) distant, en utilisant un canal de communication (25) de capacité inférieure au volume des informations de mise à jour, caractérisé en ce qu'il comporte au moins une étape d'envoi au circuit électronique d'une commande (PLAY Si) d'exécution d'un programme de mise à jour (SCRIPT Si), ladite commande comportant des éléments d'identification du programme de mise à jour parmi un ensemble de programmes préchargés dans une mémoire non volatile (12) du circuit électronique. 2. Procédé selon la revendication 1, appliqué à la mise à jour d'informations dans une carte bancaire de type EMV. 3. Procédé selon la revendication 1, dans lequel ladite commande (PLAY Si) identifie un programme de mise à jour (SCRIPT Si) et une application concernée parmi plusieurs applications supportées par le circuit électronique. 4. Système de mise à jour d'informations dans un circuit électronique (10) par un équipement distant (23) au moyen d'un canal de communication (25) de capacité inférieure au volume des informations à mettre à jour, caractérisé en ce qu'il comporte des moyens pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 3. 5. Système selon la revendication 4, dans lequel le circuit électronique (10) est contenu dans une carte à puce ban-25 cafre (1) répondant à la norme EMV. 6. Carte à puce (1) comportant un circuit électronique (10) dont une mémoire non volatile (152) contient des programmes de mise à jour de la carte, exécutables à réception d'une commande provenant de l'émetteur de la carte.