Brevet FR2906952A1 — publié le 20080411

PROCEDE D'AUTHENTIFICATION MUTUELLE ENTRE UNE INTERFACE DE COMMUNICATION ET UN PROCESSEUR HOTE D'UN CHIPSET NFC La présente invention concerne un procédé d'authentification dans un système ou chipset NFC (Near Field Communication) comprenant un circuit d'interface NFC assurant l'émission et la réception de données sans contact. La présente invention concerne notamment l'authentification d'un processeur sécurisé du chipset par un composant NFC du chipset. On entend par composant NFC un contrôleur (microcontrôleur) connecté à un circuit d'interface NFC. La technologie NFC est actuellement développée par un consortium industriel regroupé sous le nom de Forum NFC (http://www.nfc-forum.org). La technologie NFC est dérivée de la technologie RFID (Radio Frequency Identification) et utilise des composants NFC présentant plusieurs modes de fonctionnement, à savoir un mode "lecteur" (Reader Mode), un mode "émulation de carte", et un mode "device " (appelé également mode "device-to-device" soit "dispositif à dispositif"). Dans le mode "lecteur", le composant NFC fonctionne comme un lecteur RFID conventionnel pour accéder en lecture ou écriture à une puce RFID (carte à puce ou étiquette sans contact). Il émet un champ magnétique, envoie des données par modulation de l'amplitude du champ magnétique et reçoit des données par modulation de charge et couplage inductif. Dans le mode "émulation", décrit par le brevet EP 1 327 222 au nom de la demanderesse, le composant NFC fonctionne de façon passive à la manière d'un transpondeur pour dialoguer avec un autre lecteur et être vu par l'autre lecteur comme une puce RFID. Le composant n'émet pas de champ magnétique, reçoit des données en démodulant un champ magnétique émis par l'autre lecteur et émet des données par modulation de l'impédance de son circuit d'antenne (modulation de charge). Dans le mode "device", le 2906952 2 composant doit s'apparier avec un autre composant NFC se trouvant dans le même mode de fonctionnement, et chaque composant NFC se place alternativement dans un état passif (sans émission de champ) pour recevoir des données et dans 5 un état actif (avec émission de champ) pour émettre des données. En sus de ces trois modes de fonctionnement (d'autres modes de fonctionnement pourraient être imaginés dans le futur), un composant NEC peut mettre en œuvre plusieurs 10 protocoles de communication sans contact et est par exemple capable d'échanger des données suivant le protocole ISO 14443-A, le protocole ISO 14443-B, le protocole ISO 15693, etc.. Chaque protocole définit une fréquence d'émission du champ magnétique, une méthode de modulation de l'amplitude 15 du champ magnétique pour émettre des données en mode actif, et une méthode de modulation de charge par couplage inductif pour émettre des données en mode passif. Un composant NFC est donc un dispositif multimode et multiprotocole. La demanderesse commercialise par exemple un composant NFC sous 20 la désignation "MicroRead". En raison de ses capacités de communication étendues, un composant NFC est destiné à être intégré dans des dispositifs portatifs tels des téléphones portables ou des PDA (Assistant Numérique Personnel). On est donc amené à 25 réaliser un chipset NFC du type représenté en figure 1, c'est à dire un ensemble de puces comprenant un composant NFC (référencé "NFCRl") et au moins un premier processeur hôte HP1. On entend par "processeur hôte" tout circuit intégré comprenant un microprocesseur ou un microcontrôleur 30 et qui est connecté à un port du composant NFC. Dans de nombreuses applications, le chipset NFC comprend également un second processeur hôte HP2, et parfois un troisième. Le premier processeur hôte HP1 est le processeur principal du dispositif dans lequel le composant NFC est embarqué, tandis que le second processeur hôte HP2 est un 2906952 3 circuit sécurisé. Le processeur hôte HP1 est généralement un processeur non sécurisé, par exemple le circuit de bande de base d'un téléphone mobile ("baseband" ou circuit de radiotéléphonie). Le processeur hôte HP2 est par exemple une 5 carte SIM (c'est-à-dire le microcontrôleur présent dans une carte SIM). Les ressources du composant NFC sont donc mises à la disposition des processeurs HP1, HP2 pour leur permettre de gérer des applications sans contact. De telles applications sont illustrées sur la figure 2 qui représente 10 un téléphone mobile 30 équipé du chipset NFC de la figure 1. On distingue : 1) des applications de type API : le composant NFC du téléphone mobile 30 est en mode lecteur pour lire ou écrire un circuit intégré sans contact CLCT. Le téléphone mobile 15 est dans ce cas utilisé comme un lecteur RFID. Ce type d'application peut être gratuit et consister par exemple dans la lecture de données publicitaires insérées dans un affichage publicitaire d'une aubette. L'application peut aussi être payante et consister par exemple dans la lecture 20 d'informations réservées à des abonnés. Le programme de l'application API est de préférence détenu et exécuté par le processeur HP1 si le service est gratuit ou sera de préférence détenu et exécuté par le processeur HP2 s'il est payant car il nécessite une identification de l'abonné. 25 Ainsi, comme illustré en figure 1, une application API peut être prise en charge par le processeur HP1 ou le processeur HP2. 2) des applications de type AP2 : le composant NFC du téléphone 30 est en mode émulation de carte pour être lu par 30 des lecteurs RD conventionnels dans des applications de paiement ou de contrôle d'accès payant (machine de paiement, entrée de métro, etc.). Le téléphone mobile 30 est alors utilisé comme une carte à puce. Le programme de l'application AP2 est de préférence détenu et exécuté par le 2906952 4 processeur sécurisé HP2, comme représenté en figure 1, car l'accès au service nécessite une identification de l'abonné. 3) des applications de type AP3 : le composant NFC du téléphone 30 est en mode "device" et dialogue avec un autre 5 dispositif, par exemple un lecteur embarqué dans un autre téléphone mobile 31 ou dans un ordinateur 32. Ce type d'application est généralement gratuit et permet de transférer des paquets de données d'un dispositif à l'autre (transfert de fichiers en point à point notamment). Le 10 programme de l'application AP3 est de préférence détenu et exécuté par le processeur non sécurisé HP1, comme illustré en figure 1, qui dispose d'une puissance de calcul supérieure au processeur sécurisé HP2 si celui-ci est un processeur de carte SIM . 15 La figure 3 représente schématiquement l'architecture du composant NFC. Le composant comprend un circuit d'interface CLINT pour l'émission/réception de données sans contact, équipé d'un circuit d'antenne ACT, des interfaces de communication filaires INT1, INT2 reliées au circuit 20 d'interface CLINT, et un contrôleur NFCC. L'interface INT1 est connectée au processeur hôte HP1, et l'interface INT2 connectée au processeur hôte HP2. L'ensemble de ces composants forme un chipset NFC. Ainsi, la réalisation d'un chipset NFC nécessite 25 l'établissement de canaux de communication entre chacun des processeurs hôtes HP1, HP2 et le composant NFC pour permettre aux processeurs hôtes d'émettre des données via le canal de transmission de données sans contact et pour acheminer les flux de données entrantes (données reçues via 30 le canal de transmission de données sans contact) vers chacun des processeurs hôtes. Toutefois, dans certaines applications par exemple du type AP2 présenté plus haut, l'un des processeurs hôtes est sécurisé. Il est donc préférable que le canal de 35 communication entre le processeur hôte sécurisé et le 2906952 5 composant NFC soit lui-même sécurisé notamment pour éviter que des données secrètes transmises via un canal de transmission sans contact puisse être interceptées ou modifiées, ou encore émulées par un dispositif non autorisé. 5 Or l'établissement d'un tel canal de transmission sécurisé nécessite généralement une authentification du processeur hôte par le composant NFC, et donc le partage d'une donnée secrète commune ou la connaissance respective de données secrètes complémentaires. 10 Généralement, le fabricant d'un chipset NFC est distinct du fabricant de processeurs hôtes sécurisés et de l'opérateur qui personnalise chaque processeur hôte sécurisé. En outre, un chipset NFC peut être amené à être connecté à différents processeurs sécurisés 15 interchangeables. Le contrôleur NFC ne peut donc pas être personnalisé pour mémoriser une donnée secrète d'un processeur hôte sécurisé particulier. Un objectif que vise l'invention est de permettre au composant NFC d'un chipset NFC d'authentifier un processeur 20 sécurisé afin de pouvoir établir entre eux un canal de transmission sécurisé. Cet objectif est atteint par la prévision d'un procédé d'authentification entre un processeur hôte sécurisé et un contrôleur d'un système NFC, le contrôleur étant connecté à 25 un circuit d'interface NFC assurant l'émission et la réception de données sans contact, le procédé comprenant des étapes de connexion du processeur hôte au contrôleur, et de vérification qu'il existe une relation prédéfinie entre une première donnée secrète mémorisée par le processeur hôte et 30 une seconde donnée secrète mémorisée par le contrôleur. Selon un mode de réalisation de l'invention, le procédé comprend des étapes préalables de transmission au contrôleur de la seconde donnée secrète, et de mémorisation de celle-ci par le contrôleur. 2906952 6 Selon un mode de réalisation de l'invention, le contrôleur authentifie le processeur hôte en vérifiant la relation entre les première et seconde données secrètes. Selon un mode de réalisation de l'invention, le 5 processeur hôte authentifie le contrôleur en vérifiant la relation entre les première et seconde données secrètes. Selon un mode de réalisation de l'invention, le procédé comprend une étape de transmission au processeur hôte par le contrôleur d'une clé de session si 10 l'authentification du processeur hôte par le contrôleur a réussi, la clé de session étant utilisée ensuite pour chiffrer les données échangées entre le processeur hôte et le contrôleur. Selon un mode de réalisation de l'invention, le 15 procédé comprend des étapes au cours desquelles : le processeur hôte émet à destination du contrôleur une requête d'authentification, le contrôleur répond à la requête en fournissant un nombre aléatoire, 20 le processeur hôte chiffre le nombre aléatoire reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la première donnée secrète qu'il mémorise, et transmet le résultat du chiffrement au contrôleur, le contrôleur vérifie le résultat du chiffrement reçu à 25 l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la seconde donnée secrète qu'il mémorise, l'authentification du processeur hôte ayant réussi si la vérification a été effectuée avec succès. Selon un mode de réalisation de l'invention, les 30 première et seconde données secrètes sont identiques. Selon un mode de réalisation de l'invention, la première donnée secrète est une clé publique de chiffrement et la seconde donnée secrète est une clé privée de chiffrement liée à la première donnée secrète par une 35 relation de cryptographie asymétrique. Selon un mode de réalisation de l'invention, le procédé comprend des étapes préalables de fourniture du 2906952 7 processeur hôte associé d'une manière détachable à un composant sans contact mémorisant la seconde donnée secrète à transmettre au contrôleur, et de connexion du processeur hôte au contrôleur, la seconde donnée secrète étant 5 transmise au contrôleur par le composant sans contact. Selon un mode de réalisation de l'invention, le processeur hôte est un circuit intégré d'une carte SIM à détacher d'une carte intégrant un composant sans contact mémorisant la seconde donnée secrète à transmettre sans 10 contact au contrôleur, et le système NFC est un téléphone mobile comprenant un autre processeur hôte connecté au contrôleur. Selon un mode de réalisation de l'invention, la transmission au contrôleur de la seconde donnée secrète est 15 effectuée par une saisie optique d'un code optique qui est traduit puis transmis au contrôleur. Selon un mode de réalisation de l'invention, la transmission au contrôleur de la seconde donnée secrète est effectuée par une saisie sur un clavier de la valeur de la 20 donnée secrète qui est transmise au contrôleur. L'invention concerne également un système comprenant un contrôleur connecté à un circuit d'interface d'émission/ réception de données sans contact de type NFC, et des moyens de connexion du contrôleur à un processeur hôte, le 25 contrôleur étant configuré pour vérifier qu'il existe une relation prédéfinie entre une première donnée secrète mémorisée par le processeur hôte et une seconde donnée secrète mémorisée par le contrôleur. Selon un mode de réalisation de l'invention, le 30 contrôleur est configuré pour recevoir et mémoriser la seconde donnée secrète à l'initialisation du système. Selon un mode de réalisation de l'invention, le contrôleur est configuré pour authentifier le processeur hôte en vérifiant la relation entre les première et seconde 35 données secrètes. Selon un mode de réalisation de l'invention, le processeur hôte est configuré pour authentifier le 2906952 8 contrôleur en vérifiant la relation entre les première et seconde données secrètes. Selon un mode de réalisation de l'invention, le contrôleur est configuré pour transmettre au processeur hôte 5 une clé de session si l'authentification du processeur hôte par le contrôleur a réussi, la clé de session étant utilisée ensuite pour chiffrer les données échangées entre le processeur hôte et le contrôleur. Selon un mode de réalisation de l'invention : 10 ù le processeur hôte est configuré pour émettre à destination du contrôleur une requête d'authentification, ù le contrôleur est configuré pour répondre à la requête en fournissant un nombre aléatoire, ù le processeur hôte est configuré pour chiffrer le nombre 15 aléatoire reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la première donnée secrète qu'il mémorise, et pour transmettre le résultat du chiffrement au contrôleur, et ù le contrôleur est configuré pour vérifier le résultat reçu 20 du chiffrement à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la seconde donnée secrète qu'il mémorise, l'authentification du processeur hôte ayant réussi si la vérification a été effectuée avec succès. 25 Selon un mode de réalisation de l'invention, le processeur hôte est associé d'une manière détachable à un composant sans contact mémorisant la seconde donnée secrète à transmettre sans contact au contrôleur. Selon un mode de réalisation de l'invention, le 30 processeur hôte est un circuit intégré d'une carte SIM à détacher d'une carte à puce intégrant un composant sans contact mémorisant la seconde donnée secrète à transmettre sans contact au contrôleur, et le système NFC est un téléphone mobile comprenant un autre processeur hôte 35 connecté au contrôleur. Selon un mode de réalisation de l'invention, la transmission au contrôleur de la seconde donnée secrète est 2906952 9 effectuée par une saisie optique d'un code optique qui est traduit puis transmis au contrôleur. Selon un mode de réalisation de l'invention, la transmission au contrôleur de la seconde donnée secrète est 5 effectuée par une saisie sur un clavier de la valeur de la donnée secrète qui est transmise au contrôleur. L'invention concerne également une carte à puce comprenant : ù une carte à circuit intégré détachable de la carte à puce 10 et intégrant un processeur sécurisé mémorisant une première donnée secrète, et ù un composant sans contact couplé à un circuit d'interface NFC assurant l'émission et la réception de données sans contact, et mémorisant une seconde donnée secrète à 15 transmettre sans contact, la seconde donnée secrète étant liée à la première donnée secrète par une relation prédéfinie. Selon un mode de réalisation de l'invention, le processeur sécurisé est configuré pour authentifier un 20 contrôleur en vérifiant la relation entre les première et seconde données secrètes. Selon un mode de réalisation de l'invention, le processeur sécurisé est configuré pour recevoir une clé de session s'il a été authentifié par un contrôleur, la clé de 25 session étant utilisée ensuite pour chiffrer les données échangées entre le processeur hôte et le contrôleur. Selon un mode de réalisation de l'invention, le processeur sécurisé est configuré pour : ù émettre à destination du contrôleur une requête 30 d'authentification, ù recevoir un nombre aléatoire, ù chiffrer le nombre aléatoire reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la première donnée secrète, et transmettre le résultat du 35 chiffrement. 2906952 10 Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante du procédé de l'invention, faite à titre non limitatif en relation avec 5 les figures jointes parmi lesquelles : - la figure 1 précédemment décrite représente sous forme de bloc une architecture classique de chipset NFC, et des circuits sans contact avec lesquels le chipset NFC peut dialoguer, 10 - la figure 2 précédemment décrite illustre diverses applications d'un chipset NFC intégré dans un téléphone mobile, - la figure 3 précédemment décrite représente sous forme de bloc l'architecture classique d'un composant NFC présent 15 dans le chipset NFC de la figure 1, - les figures 4A à 4C représentent un chipset NFC susceptible de recevoir un processeur hôte sécurisé interchangeable détaché d'une carte équipée d'un composant NFC, selon l'invention, 20 - la figure 5 représente une séquence d'authentification exécutée par un composant NFC du chipset NFC et un processeur hôte sécurisé, - la figure 6 représente un exemple d'architecture matérielle d'un composant NFC présent dans le chipset NFC 25 des figures 4A à 4C, et - la figure 7 représente un exemple d'architecture logicielle du composant NFC de la figure 6. Les figures 4A à 4C illustrent de façon schématique la mise en oeuvre du procédé d'authentification selon 30 l'invention. Le procédé est mis en oeuvre dans un chipset NFC comprenant un composant NFC référencé "NFCR2", un premier processeur hôte HP1, et des moyens de connexion Cl pour le composant NFCR2 à un second processeur hôte HP2. Le composant NFCR2 comprend les mêmes organes que le composant 35 NFCR1 décrit plus haut, notamment un contrôleur NFCC et une 2906952 11 interface d'émission/réception de données sans contact CLINT équipée d'un circuit d'antenne ACT. Les moyens de connexion Cl comprennent par exemple des plages de contact prévues pour coopérer avec des plages de 5 contact formées sur le processeur hôte. Alternativement, le processeur hôte est couplé à un circuit d'interface de communication sans contact pour communiquer avec le contrôleur NFCC. Sur la figure 4A, le chipset NFC ne comporte pas 10 encore de second processeur hôte, celui-ci étant intégré d'une manière détachable dans une carte à puce 1. Selon un mode de réalisation de l'invention, la carte à puce 1 dans laquelle est intégrée le processeur hôte HP2 comprend un composant sans contact CLC comportant des 15 organes analogues à ceux du composant NFCR1 décrit plus haut. Ainsi, le composant CLC comprend notamment un contrôleur NFCC et une interface d'émission/réception de données sans contact CLINT équipée d'un circuit d'antenne ACT1, mais pas d'interfaces de communication filaires INT1, 20 INT2. Le processeur HP2 est détachable de la carte à puce 1 pour pouvoir être inséré dans le chipset où il est connecté au composant NFCR2 par les moyens de connexion Cl. Le processeur HP2 et le composant CLC ont été préalablement personnalisés et mémorisent ainsi chacun une 25 donnée secrète K1, K2. Les données secrètes K1, K2 mémorisées respectivement par le processeur HP2 et le composant NFCR2 sont liées entre elles par une relation qu'il est possible de vérifier. Cette relation peut être simplement une relation d'égalité ou toute autre relation, 30 telle qu'une fonction cryptographique. Ainsi, la donnée K1 mémorisée par le processeur hôte peut être une clé privée et la donnée K2 mémorisée par le composant NFCR2 une clé publique d'une paire de clés de chiffrement asymétrique. Le processeur hôte HP1 est par exemple le processeur 35 principal du chipset dans lequel le composant NFCR2 est 2906952 12 embarqué. Le composant NFCR2 et le processeur HP2 comprennent chacun un processeur sécurisé, c'est-à-dire comprenant les circuits classiques de cryptographie et d'authentification des processeurs sécurisés. Le processeur 5 HP1 n'est pas sécurisé. Le chipset peut également comprendre un troisième processeur hôte HP3. Par exemple, le chipset est constitué par un téléphone mobile, le processeur HP1 étant le processeur principal du téléphone, le processeur HP2 étant une puce d'une carte SIM, 10 et le processeur HP3 est une puce de carte bancaire. Le processeur HP2 est détaché de la carte 1 dans laquelle le composant CLC est intégré, et inséré dans le chipset où il est connecté au composant NFCR2 comme illustré par les figures 4A et 4B. Parallèlement, le composant NFCR2 15 est en mode lecteur à l'initialisation du chipset, et cherche à lire un composant NFC en mode passif. Lorsque le composant CLC est placé à proximité du chipset, le composant NFCR2 active le composant CLC qui lui fournit la donnée secrète K2. La donnée K2 est mémorisée par le composant 20 NFCR2 dans une mémoire non volatile par exemple du type EEPROM (figure 4C). Lorsque le processeur hôte HP2 est connecté au composant NFCR2 et à chaque initialisation du chipset, il déclenche une séquence d'authentification. La figure 5 25 représente différentes étapes d'une telle séquence d'authentification exécutée par le processeur hôte sécurisé HP2 et le contrôleur NFCC du composant NFCR2. Au cours d'une première étape S1, le processeur HP2 émet une requête d'authentification à destination du 30 contrôleur NFCC. A l'étape suivante S2, le contrôleur NFCC répond à la requête en fournissant un nombre aléatoire "Rnd Nb" et des informations "NFC Info." relatives au composant NFC (par exemple un numéro de série, une date de fabrication, ou encore un numéro de version de logiciel). A 35 l'étape suivante S3, le processeur HP2 utilise la donnée secrète K1 comme clé de chiffrement pour chiffrer le nombre aléatoire reçu, et éventuellement les autres informations 2906952 13 reçues, et transmet les données chiffrées au contrôleur NFCC. A l'étape suivante S4, le contrôleur NFCC déchiffre les données reçues à l'aide de la donnée secrète K2 utilisée 5 comme clé de chiffrement. Si les données déchiffrées correspondent aux données émises à l'étape S2, les données secrètes K1, K2 sont bien liées par une relation prédéfinie, et le contrôleur NFCC considère que le processeur HP2 est authentifié. Si tel est le cas, le contrôleur NFCC transmet 10 au processeur HP2 un message lui notifiant qu'il a été authentifié et contenant une clé de session SK. La clé de session SK est par exemple un nombre aléatoire. Si le déchiffrement des informations chiffrées reçues à l'aide de la donnée K2 ne fournit pas les informations 15 qu'il a transmises au processeur HP2, le contrôleur NFCC considère que le processeur HP2 n'est pas authentifié, et refuse toute autre communication avec ce dernier. Si le processeur HP2 a été authentifié, le contrôleur NFCC et le processeur HP2 peuvent échanger des informations 20 telles que des informations de configuration et de gestion, sous une forme chiffrée utilisant la clé de session SK comme clé de chiffrement symétrique (étapes S5 et S6). Par exemple, une table de routage mémorisée dans la mémoire non volatile du contrôleur NFCC peut ainsi être transférée dans 25 le processeur HP2 en vue d'être utilisée dans un autre chipset NFC (par exemple un autre téléphone mobile). Alternativement, les informations mémorisées dans la mémoire non volatile du contrôleur NFCC peuvent être transférées dans le composant CLC également en vue d'être utilisées dans 30 un autre chipset NFC. Les informations transmises à l'étape S2 peuvent également être chiffrées à l'aide de la donnée secrète K2 par le contrôleur NFCC, le résultat du chiffrement étant transmis avec les informations non chiffrées. Le processeur 35 HP2 peut alors déchiffrer à l'aide de la donnée secrète K1 le résultat du chiffrement et vérifier l'identité entre les 2906952 14 informations reçues et le résultat du déchiffrement. De cette manière, le processeur HP2 peut vérifier que le contrôleur NFCC dispose de la donnée secrète K2 correspondant à la donnée secrète K1, et ainsi authentifier 5 le contrôleur NFCC. Si le processeur hôte HP2 n'authentifie pas le contrôleur NFC, il refuse de communiquer avec ce dernier. Si le processeur HP2 installé dans le chipset NFC est remplacé par un nouveau processeur hôte, le nouveau 10 processeur hôte ne disposera pas de la clé de session SK et donc ne pourra pas communiquer avec le contrôleur NFCC, à moins de disposer du composant CLC correspondant au nouveau processeur hôte et de lancer l'exécution de la procédure d'authentification décrite plus haut en référence à la 15 figure 5, en déclenchant l'initialisation du chipset NFC. Exemple d'architecture matérielle et logicielle du composant NFCR2 permettant de mettre en oeuvre le procédé selon l'invention La figure 6 représente un exemple d'architecture 20 matérielle du composant NFCR2 illustré par les figures 4A à 4C. Le composant NFCR2 comprend : - le contrôleur NFCC et l'interface CLINT déjà décrits, - un plan mémoire comprenant une mémoire programme MEM1 de type ROM (mémoire morte), une mémoire de données MEM2 de 25 type RAM (mémoire vive), et une mémoire effaçable et programmable électriquement MEM3 de type EEPROM permettant d'enregistrer la donnée secrète K2 et la clé de session SK, - un circuit d'authentification et de correction d'erreur AUTHCT comprenant des algorithmes DES (Data Encryption 30 Standard) et ECC (Elliptic Curve Cryptography), ou d'autres algorithmes de cryptographie, - un port de connexion INT1 de type UART (Universal Asynchronous Receiving Transmitting), auquel le processeur hôte HP1 est ici connecté, 2906952 15 - un port de connexion INT2 de type ISO7816 auquel le processeur hôte HP2 est ici connecté (le processeur HP2 étant supposé ici être une carte SIM), - un port de connexion INT3 de type SWP (Single Wire 5 Protocol) permettant de connecter le processeur hôte HP3, - un bus de données DTB et un bus d'adresse ADB reliant le plan mémoire, le contrôleur NFCC, l'interface CLINT et les ports INT1, INT2, INT3, et - un bus de contrôle CTB permettant au contrôleur NFCC de 10 contrôler et d'accéder à ces divers éléments en lecture et/ou écriture. L'interface CLINT et les ports INT1, INT2, INT3 comportent chacun un tampon d'entrée BUF1 à entrée parallèle et un tampon de sortie BUF2 à sortie parallèle accessible en 15 écriture, respectivement en lecture, via le bus de données et le bus d'adresse. L'échange de données formant les commandes de routage ou les trames de données entre les processeurs hôtes HP1, HP2, HP3 et le contrôleur NFCC ou l'interface CLINT s'effectue ainsi par blocs de données de 20 la taille des tampon BUF1, BUF2, et est cadencé par le contrôleur NFCC. La figure 7 représente un exemple d'architecture logicielle ducomposant NFCR2 et des processeurs hôtes HP1, HP2. Cette architecture logicielle comprend, pour le 25 composant NFC et les processeurs hôte du système, plusieurs couches logicielles allant du niveau le plus bas (couche liaison de données) au niveau le plus haut (couche application). La représentation qui est faite de ces couches logicielles en figure 9 est simplifiée par rapport à 30 l'architecture logicielle réelle d'un système NFC selon l'invention mais est suffisante pour l'homme de l'art souhaitant réaliser l'invention de la manière proposée ici. Chaque processeur hôte HP1, HP2 comprend au moins quatre couches logicielles, dans un ordre de niveau 35 croissant : 2906952 16 - une couche de plus bas niveau HWML (Hardware Management Layer) qui gère le fonctionnement des éléments matériels (hardware) permettant aux processeurs hôtes d'échanger des données avec le contrôleur NFCC. Il s'agit par exemple de la 5 couche de gestion de l'interface UART pour le processeur HP1 et de la couche de gestion de l'interface ISO7816 pour le processeur HP2. - une couche INTPL (Interface Protocol Layer) qui gère le protocole des ports de communication INT1, INT1, INT3. Il 10 s'agit par exemple de la couche de gestion du protocole UART pour le processeur HP1 et de la couche de gestion du protocole ISO7816 pour le processeur HP2. - une couche HCIL (HCI Layer) qui gère le protocole HCI selon l'invention, c'est-à-dire qui gère la création d'un 15 canal de communication. Cette couche repose sur les couches INTPL et HWML qui sont quasi transparentes pour elle. - une couche APL (Application Layer) de haut niveau qui gère les applications RFID telles que celles représentées en figure 2 (lecture d'une carte à puce ou d'une étiquette 20 électronique, émulation d'une carte à puce, dialogue en mode "device-to-device" avec un processeur externe pour échanger des fichiers, etc..). Cette couche peut comprendre plusieurs programmes application, chacun étant sécurisé ou non (selon les ressources internes du processeur) et chacun utilisant 25 un type de protocole et un mode de fonctionnement de l'interface CLINT. Ainsi, cette couche de haut niveau repose sur les couches HWML, INTPL et la couche HCIL, qui sont quasi transparentes pour elle. De façon sensiblement similaire, le contrôleur NFCC 30 comporte les couches logicielles suivantes : - deux couches HWML1 et INTPL du même type que les couches HWML et INTPL présentes dans les processeurs hôtes. Dans un souci de simplification du schéma, ces couches sont représentées dans le processeur NFCC mais sont en réalité 35 localisées dans les ports INT1 et INT2, qui sont considérés 2906952 17 comme faisant partie du contrôleur, ainsi que les bus ADB, DTB, CTB. En effet le traitement des protocoles UART et 7816 est assuré ici dans les ports INT1, INT2, qui mettent à la disposition du contrôleur leurs tampons d'entrée et de 5 sortie BUF1, BUF2 via les bus ADB, DTB, CTB. - une autre couche de bas niveau HWML2 qui permet au contrôleur d'écrire les tampons BUF1 et de lire les tampons BUF2, via les bus ADB, DTB, CTB, en décomposant les trames de données ou les commandes en blocs de données de même 10 taille que les tampons. - une couche HCI-ADMIN-L ou couche d'administration du protocole HCI, qui dialogue avec les couches HCIL des processeurs hôtes HP1, HP2 en tant qu'administrateur du routage. 15 - une couche CLINTCL (Contactless Interface Control Layer) qui gère l'interface CLINT et qui indique à cette dernière le mode dans lequel elle doit se placer et le protocole à utiliser pour émettre des données dans un canal de communication sans contact. Cette couche contrôle également 20 l'interface CLINT en mode réception de données sans contact et lui demande cycliquement d'effectuer un balayage des modes (mode lecteur, mode émulation et mode "device") et, dans chaque mode, de rechercher des données entrantes. Cela signifie que l'interface CLINT émet à intervalles réguliers 25 un champ magnétique pour interroger d'éventuelles cartes ou étiquettes sans contact (ou autres objets portatifs fonctionnant sans contact) qui pourraient être présentes dans son champ d'interrogation. L'interface CLINT se place également à intervalles réguliers dans un mode d'écoute 30 (mode "émulation") pour détecter si un lecteur en mode actif envoie des messages d'interrogation. - une couche optionnelle APL qui peut gérer elle-même des applications, à l'instar des processeurs hôtes. En effet, bien que cela n'ait pas été décrit jusqu'à présent pour 35 rester dans l'objet de l'invention, des applications peuvent 2906952 18 également être prises en charge par le composant NFC lui-même. Enfin, l'interface CLINT comporte les couches logicielles suivantes : 5 - du côté du contrôleur NFCC, une couche de bas niveau HWML équivalente à la couche HWML2 du contrôleur NFCC, pour gérer les tampons de données BUF1, BUF2 via les bus ADB, DTB, CTB. une couche HCIL (comme indiqué ci-dessus) qui rend l'interface CLINT compatible avec le protocole HCI. 10 - du coté du circuit d'antenne ACT, des couches CLPTL (Contactless Protocol Layer) et MCL (Mode Control Layer) qui assurent le contrôle ou le traitement des signaux électriques appliqués au circuit d'antenne ACT ou reçus par celui-ci. 15 Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation. Ainsi l'invention n'est pas limitée à un chipset NFC comportant plusieurs processeurs hôtes et un composant NFC. Elle couvre également le contrôle de 20 l'exécution d'applications dans un système ayant un seul processeur hôte et un composant NFC. D'autre part, l'invention n'est pas limitée à la procédure d'authentification décrite en référence à la figure 5. D'autres procédures peuvent être mises en œuvre 25 pour vérifier que le processeur hôte HP2 et le composant NFCR2 possèdent des données secrètes liées entre elles par une relation prédéfinie. De plus, la transmission de la donnée secrète K2 au composant NFCR2 peut être effectuée d'autres manières que 30 par une liaison sans contact. Ainsi, la transmission de la donnée secrète K2 peut être effectuée par une saisie optique d'un code optique (par exemple un code à barres) ou par une saisie sur un clavier, la donnée secrète K2 saisie figurant sur la carte d'où est détachée la carte SIM (processeur hôte 35 HP2). Le processeur hôte HP1 qui est connecté au capteur 2906952 19 d'image ou au clavier et au contrôleur NFCC, assure alors la transmission de la donnée secrète K2 saisie vers le contrôleur NFC. Dans le cas du code optique, le processeur HP1 assure également la traduction du code optique pour 5 obtenir la donnée secrète K2. Ces variantes sont parfaitement adaptées à l'architecture actuelle des téléphones mobiles qui possèdent un clavier et généralement un capteur d'image. 10 REVENDICATIONS 1. Procédé d'authentification entre un processeur hôte (HP2) sécurisé et un contrôleur (NFCC) d'un système NEC (CHIPSET), le contrôleur étant connecté à un circuit d'interface NFC (CLINT) assurant l'émission et la réception de données sans contact, le procédé comprenant des étapes de connexion du processeur hôte au contrôleur, et de vérification qu'il existe une relation prédéfinie entre une première donnée secrète (Kl) mémorisée par le processeur hôte et une seconde donnée secrète (K2) mémorisée par le contrôleur, caractérisé en ce qu'il comprend des étapes préalables de transmission au contrôleur (NFCC) de la seconde donnée secrète (K2), et de mémorisation de celle-ci par le contrôleur. 2. Procédé selon la revendication 1, dans lequel le contrôleur (NFCC) authentifie le processeur hôte (HP2) en vérifiant la relation entre les première et seconde données secrètes (Kl, K2). 3. Procédé selon la revendication 1 ou 2, dans lequel le processeur hôte (HP2) authentifie le contrôleur (NFCC) en vérifiant la relation entre les première et seconde données secrètes (Kl, K2). 25 4. Procédé selon l'une des revendications 1 à 3, comprenant une étape de transmission au processeur hôte (HP2) par le contrôleur (NFCC) d'une clé de session (SK) si l'authentification du processeur hôte par le 30 contrôleur a réussi, la clé de session étant utilisée ensuite pour chiffrer les données échangées entre le processeur hôte et le contrôleur. 5. Procédé selon l'une des revendications 1 à 4, 35 comprenant des étapes au cours desquelles : 2906952 21 ù le processeur hôte (HP2) émet à destination du contrôleur (NFCC) une requête d'authentification ("Auth. Req."), ù le contrôleur répond à la requête en fournissant un 5 nombre aléatoire ("Rnd Nb"), ù le processeur hôte chiffre le nombre aléatoire reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la première donnée secrète (Kl) qu'il mémorise, et transmet le résultat du chiffrement 10 au contrôleur, ù le contrôleur vérifie le résultat du chiffrement reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la seconde donnée secrète (K2) qu'il mémorise, l'authentification du processeur hôte ayant 15 réussi si la vérification a été effectuée avec succès. 6. Procédé selon l'une des revendications 1 à 5, dans lequel les première et seconde données secrètes (K1, K2) sont identiques. 20 7. Procédé selon l'une des revendications 1 à 5, dans lequel la première donnée secrète (K1) est une clé publique de chiffrement et la seconde donnée secrète (K2) est une clé privée de chiffrement liée à la première donnée secrète par une relation de cryptographie asymétrique. 8. Procédé selon l'une des revendications 1 à 7, comprenant des étapes préalables de fourniture du processeur hôte (HP2) associé d'une manière détachable à un composant sans contact (CLC) mémorisant la seconde donnée secrète (K2) à transmettre au contrôleur (NFCC), et de connexion du processeur hôte (HP2) au contrôleur (NFCC), la seconde donnée secrète étant transmise au contrôleur par le composant sans contact. 2906952 22 9. Procédé selon la revendication 8, dans lequel le processeur hôte (HP2) est un circuit intégré d'une carte SIM à détacher d'une carte intégrant un composant sans contact (CLC) mémorisant la seconde donnée secrète (K2) à 5 transmettre sans contact au contrôleur (NFCC), et le système NFC (CHIPSET) est un téléphone mobile comprenant un autre processeur hôte (HP1) connecté au contrôleur (NFCC). 10 10. Procédé selon l'une des revendications 1 à 7, dans lequel la transmission au contrôleur (NFCC) de la seconde donnée secrète (K2) est effectuée par une saisie optique d'un code optique qui est traduit puis transmis au contrôleur (NFCC). 15 11. Procédé selon l'une des revendications 1 à 7, dans lequel la transmission au contrôleur (NFCC) de la seconde donnée secrète (K2) est effectuée par une saisie sur un clavier de la valeur de la donnée secrète qui est 20 transmise au contrôleur (NFCC). 12. Système (CHIPSET) comprenant un contrôleur (NFCC) connecté à un circuit d'interface d'émission/ réception de données sans contact (CLINT) de type NFC, et 25 des moyens de connexion (Cl) du contrôleur à un processeur hôte (HP2), le contrôleur étant configuré pour vérifier qu'il existe une relation prédéfinie entre une première donnée secrète (Kl) mémorisée par le processeur hôte et une seconde donnée secrète (K2) mémorisée par le 30 contrôleur, caractérisé en ce que le contrôleur (NFCC) est configuré pour recevoir et mémoriser la seconde donnée secrète (K2) à l'initialisation du système. 35 13. Système selon la revendication 12, dans lequel le contrôleur (NFCC) est configuré pour authentifier le 2906952 23 processeur hôte (HP2) en vérifiant la relation entre les première et seconde données secrètes (K1, K2). 14. Système selon la revendication 12 ou 13, dans 5 lequel le processeur hôte (HP2) est configuré pour authentifier le contrôleur (NFCC) en vérifiant la relation entre les première et seconde données secrètes (K1, K2). 10 15. Système selon l'une des revendications 12 à 14, dans lequel le contrôleur (NFCC) est configuré pour transmettre au processeur hôte (HP2) une clé de session (SK) si l'authentification du processeur hôte par le contrôleur a réussi, la clé de session étant utilisée 15 ensuite pour chiffrer les données échangées entre le processeur hôte et le contrôleur. 16. Système selon l'une des revendications 12 à 15, dans lequel : 20 ù le processeur hôte (HP2) est configuré pour émettre à destination du contrôleur (NFCC) une requête d'authentification ("Auth. Req."), ù le contrôleur est configuré pour répondre à la requête en fournissant un nombre aléatoire ("Rnd Nb"), 25 ù le processeur hôte est configuré pour chiffrer le nombre aléatoire reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la première donnée secrète (K1) qu'il mémorise, et pour transmettre le résultat du chiffrement au contrôleur, 30 et ù le contrôleur est configuré pour vérifier le résultat reçu du chiffrement à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la seconde donnée secrète (K2) qu'il mémorise, 35 l'authentification du processeur hôte ayant réussi si la vérification a été effectuée avec succès. 2906952 24 17. Système selon l'une des revendications 12 à 16, dans lequel les première et seconde données secrètes (K1, K2) sont identiques. 5 18. Système selon l'une des revendications 12 à 16, dans lequel la première donnée secrète (K1) est une clé publique et la seconde donnée secrète (K2) est une clé privée liée à la première donnée secrète par une relation de cryptographie asymétrique. 10 19. Système selon l'une des revendications 12 à 18, dans lequel le processeur hôte (HP2) est associé d'une manière détachable à un composant sans contact (CLC) mémorisant la seconde donnée secrète (K2) à transmettre 15 sans contact au contrôleur (NFCC). 20. Système selon la revendication 19, dans lequel le processeur hôte (HP2) est un circuit intégré d'une carte SIM à détacher d'une carte à puce intégrant un 20 composant sans contact (CLC) mémorisant la seconde donnée secrète (K2) à transmettre sans contact au contrôleur (NFCC), et le système NFC (CHIPSET) est un téléphone mobile comprenant un autre processeur hôte (HP1) connecté au contrôleur (NFCC). 25 21. Système selon l'une des revendications 12 à 18, dans lequel la transmission au contrôleur (NFCC) de la seconde donnée secrète (K2) est effectuée par une saisie optique d'un code optique qui est traduit puis transmis 30 au contrôleur (NFCC). 22. Système selon l'une des revendications 12 à 18, dans lequel la transmission au contrôleur (NFCC) de la seconde donnée secrète (K2) est effectuée par une saisie 35 sur un clavier de la valeur de la donnée secrète qui est transmise au contrôleur (NFCC). 2906952 25 23. Carte à puce comprenant : ù une carte à circuit intégré détachable de la carte à puce et intégrant un processeur sécurisé (HP2) mémorisant une première donnée secrète (Kl), et 5 ù un composant sans contact (CLC) couplé à un circuit d'interface NFC assurant l'émission et la réception de données sans contact, et mémorisant une seconde donnée secrète (K2) à transmettre sans contact, la seconde donnée secrète étant liée à la première donnée secrète 10 par une relation prédéfinie. 24. Carte à puce selon la revendication 23, dans laquelle le processeur sécurisé (HP2) est configuré pour authentifier un contrôleur (NFCC) en vérifiant la 15 relation entre les première et seconde données secrètes (K1, K2). 25. Carte à puce selon la revendication 23 ou 24, dans laquelle le processeur sécurisé (HP2) est configuré 20 pour recevoir une clé de session (SK) s'il a été authentifié par un contrôleur (NFCC), la clé de session étant utilisée ensuite pour chiffrer les données échangées entre le processeur hôte et le contrôleur. 25 26. Carte à puce selon l'une des revendications 23 à 25, dans laquelle le processeur sécurisé (HP2) est configuré pour : ù émettre à destination du contrôleur (NFCC) une requête d'authentification ("Auth. Req."), 30 ù recevoir un nombre aléatoire ("Rnd Nb"), ù chiffrer le nombre aléatoire reçu à l'aide d'une fonction cryptographique utilisant comme clé de chiffrement la première donnée secrète (K1), et transmettre le résultat du chiffrement. 35 2906952 26 27. Carte à puce selon l'une des revendications 23 à 26, dans laquelle les première et seconde données secrètes (Kl, K2) sont identiques. 5 28. Carte à puce selon l'une des revendications 23 à 26, dans laquelle la première donnée secrète (Kl) est une clé publique et la seconde donnée secrète (K2) est une clé privée liée à la première donnée secrète par une relation de cryptographie asymétrique. 10