Brevet FR2896060A1 — publié le 20070713

CLÉ ÉLECTRONIQUE GÉNÉRIQUE MUNIE D'UNE CARTE À PUCE PERSONNALISÉE La présente invention se rapporte à un dispositif portable électronique tel qu'une clé électronique, comprenant, dans un même boîtier, une puce intelligente stockant une application, une interface avec un utilisateur et un microcontrôleur pilotant cette interface et la puce. Dans l'industrie informatique, la clé électronique se réfère à un dispositif matériel portable qui peut être connecté à un ordinateur et agir, par exemple, comme clé d'authentification pour une partie logicielle. On connaît l'utilisation de telles clés électroniques, communément appelées token ou dongle, pour diverses applications : la génération d'un mot de passe à utilisation unique (One Time Password ou OTP) lors d'une authentification réseau dans un système informatique, la gestion des droits sur l'utilisation d'un logiciel, la signature et le chiffrement de documents électroniques, l'authentification d'abonnés sur un système de téléphonie mobile par le protocole EAP-SIM (Extensible Authentication Protocol Method for GSM Subscriber Identity), la sécurisation et le chiffrement du transport de l'information au sein de réseaux informatiques (TLS : Transport Layer Security). De telles clés électroniques peuvent être utilisées de façon autonome (stand alone) et/ou connectées à une machine hôte par une interface de type USB (Bus série universel - Universal Serial Bus), par exemple. Ce type de clé électronique est connu, par exemple, des brevet et demande de brevet US 2005 / 0109841 (Ryan et al.) et US 5 937 068 (Audebert) dans lesquelles une première partie ( smart fob et persona/ computer ) assimilable au microcontrôleur pilote une carte à puce et réalise directement des traitements (incrémentation de compteurs, opération de concaténation) pour la mise en oeuvre dans l'application visée par la clé. D'une façon générale, les clés électroniques de l'art antérieur se reposent sur le pilotage de la puce sécurisée par le microcontrôleur au travers d'un microprogramme approprié. A titre d'exemple, la figure 1 illustre le fonctionnement d'une clé électronique autonome équipée d'un bouton d'allumage et de sélection et d'un écran pour la génération d'un mot de passe à usage unique. Successivement, l'utilisateur active (10) la clé électronique en appuyant sur le bouton puis le microprogramme demande l'affichage (12) à l'écran d'un menu de l'application proposant plusieurs choix à l'utilisateur. Le choix de l'utilisateur par le bouton de sélection est détecté (14) permettant l'exécution de l'application choisie (16). Dans le cas d'une demande de mot de passe à usage unique, le microcontrôleur alimente la puce intelligente (18), émet une requête à la puce intelligente avec les paramètres utiles à la génération du mot de passe (20), puis la puce intelligente génère un mot de passe OTP (22) qu'elle transmet au microcontrôleur (24). Ce dernier met la puce intelligente hors tension (26), affiche le mot de passe OTP reçu sur l'écran de la clé (28) pendant une durée définie puis la clé électronique s'éteint (30). Dans ces clés électroniques, le programme applicatif embarqué dans la puce intelligente réalise des traitements pour la génération de données utiles à l'utilisateur. Le fonctionnement décrit précédemment nécessite également un microprogramme qui puisse gérer, outre les interfaces de la clé (écran, bouton de sélection, ...), le déroulement de l'application de la puce intelligente. Cette dernière application est spécifique à l'utilisation visée par la clé de telle sorte que le microprogramme l'est également. Ainsi des clés électroniques proposant des fonctionnalités différentes nécessitent le développement d'applications principales de puce intelligente différentes ainsi que de programmes de pilotage associés différents. Le développement de microprogrammes de pilotage est contraignant d'autant que le développement de programmes pour les puces intelligentes est maîtrisé tant au niveau du codage (Java, C++, ...) qu'au niveau du processus (conception, développement, validation) ou de l'industrialisation (test et initialisation, personnalisation) et que l'environnement des microprogrammes est confidentiel, seulement connu de spécialistes. Un deuxième inconvénient relatif au besoin de disposer d'un microprogramme et d'une application principale spécifiques concerne la nécessité de prévoir des phases de tests et de validation multipliées engendrant des surcoûts et la réquisition d'équipes. Cet inconvénient est illustré par la figure 2 montrant différentes étapes du processus d'élaboration d'une clé électronique personnalisée. À la conception de la clé, un microprogramme dédié à l'application visée est développé (42) et nécessite des tests de validation différents selon que l'application visée soit la n 1 (44a), la n 2 (44b) ou la n 3 (44c). Ensuite, la puce intelligente est personnalisée avec l'application principale souhaitée (46) et des tests de validation sont menés (48a, 48b, 48c). Il s'en suit que des tests pour valider l'interopérabilité et l'intégration du microprogramme et de l'application principale sont effectués (50a, 50b, 50c), ces tests variant en fonction de l'application visée. Ensuite, lors de la production physique des clés consistant en l'assemblage des différents composants de la clé, le microprogramme est chargé en mémoire pour le microcontrôleur, généralement lors d'une étape très en amont de la production de la clé (52), Un troisième inconvénient des clés électroniques de l'art antérieur concerne l'augmentation importante des coûts de production lorsque la quantité de clés à produire est accrue et/ou que de nouvelles applications des clés sont mises en oeuvre. Ces solutions de l'art antérieur ne tirent pas profit au mieux des possibilités de mutualisation des coûts au niveau de la production des clés et de l'achat des composants. Comme mentionné précédemment, les clés sont spécialisées à une étape très en amont de la production ce qui entraîne une production spécifique pour chacune des applications, une gestion spécifique de stocks par application, etc. On connaît une solution partielle à cet inconvénient comme illustré en figure 2. Cette solution repose sur le chargement du microprogramme spécifique dans une mémoire du microcontrôleur pendant l'opération de personnalisation, permettant de la sorte d'utiliser une clé électronique générique avant personnalisation pour différentes utilisations visées. Néanmoins, cette solution partielle requiert une clé électronique disposant d'une interface informatique avec un équipement tiers afin de réaliser la personnalisation du microcontrôleur. Ainsi cette solution n'est pas applicable aux clés électroniques autonomes. Un autre inconvénient de ces clés électroniques concerne la mémoire sur laquelle est chargé le microprogramme spécifique. En effet, du fait de l'étape (52) précédemment décrite, cette mémoire est nécessairement du type personnalisable (EEPROM - mémoire morte effaçable et programmable électriquement, Flash, ...) engendrant un surcoût par rapport aux mémoires mortes de même capacité, par exemple mémoire ROM (mémoire à lecture seule - Read-Only Memory). En outre, ces mémoires personnalisables nécessitent un câblage plus important puisqu'il faut connecter plus de plages du composant mémoire au microcontrôleur. De plus, il convient de noter que cette mémoire est rarement sécurisée, contrairement à celle de la puce intelligente, ce qui rend toute l'application sensible aux attaques de piratage. La présente invention vise à résoudre au moins l'un de ces inconvénients en proposant une solution dans laquelle le microprogramme (microcontrôleur) reste générique quelle que soit l'application visée et seule la puce intelligente est personnalisée, la puce intelligente pilotant dès lors le microcontrôleur pour la mise en oeuvre de l'application souhaitée. Dans ce dessein, le microprogramme propose à l'application principale de la puce intelligente un ensemble de fonctions standard relatives aux fonctionnalités basiques de la clé électronique. L'application principale de la puce intelligente met en oeuvre l'application souhaitée en s'appuyant sur ces fonctions standards. Il en résulte ainsi une spécialisation réduite de la clé électronique, un développement du microprogramme aisé et indépendant de l'application de la puce intelligente. L'application principale, par exemple un générateur de mots de passe à usage unique, est stockée et exécutée par le seul composant de puce intelligente, par exemple une carte à puce. Le microcontrôleur est utilisé pour initialiser l'exécution de l'application principale et pour fournir à cette application les fonctions basiques de la clé électronique telles que l'affichage, la gestion des interfaces de sélection avec l'utilisateur, la gestion de l'horloge, ... La présente invention permet ainsi de rationaliser et de diminuer le coût de production des clés électroniques : une seule clé électronique générique est nécessaire pour différentes applications, seule la puce intelligente est personnalisée. En outre, elle permet de diminuer les coûts de développement puisque, désormais, seule l'application principale et des tests associés sont nécessaires. Cette application principale doit néanmoins assurer la gestion de la clé électronique puisqu'elle pilote désormais le dispositif. Cette contrainte concernant les développements est compensée par le fait que les développements d'application carte à puce sont maintenant grandement maîtrisés. Un autre avantage que procure la présente invention réside dans la possibilité de modifier dynamiquement la puce intelligente et d'offrir ainsi la possibilité de corriger un bogue ou de proposer de nouvelles fonctionnalités à partir de la même clé. À cet effet, la présente invention a tout d'abord pour objet un dispositif portable électronique, tel une clé électronique, comprenant un boîtier, lequel boîtier comprend une puce intelligente, une application stockée dans la puce intelligente, au moins une interface avec un utilisateur et un microcontrôleur pilotant ladite puce intelligente et ladite interface, ledit microcontrôleur étant agencé pour exécuter des fonctions primitives de ladite clé électronique pour l'exploitation de ladite interface et ladite puce intelligente étant agencée pour exécuter ladite application, cette dernière étant agencée pour générer des appels aux fonctions primitives afin de communiquer avec l'utilisateur par ladite interface. L'interface avec l'utilisateur permet à l'application de fournir des informations (mot de passe, par exemple) ou de récupérer des données de la part de l'utilisateur (sélection d'un menu parmi une liste, validation d'une action, ...). Une telle interface concerne, notamment et de façon non exhaustive, un écran d'affichage (mot de passe, liste de menus, instruction de validation, ...), un bouton marche/arrêt utilisé pour les clés électroniques autonomes, un bouton de sélection permettant de naviguer parmi différents items d'un menu, un bouton de validation permettant de valider une sélection ou les données affichées, ... Une puce intelligente est à entendre au sens d'un circuit intégré disposant de ressources de traitement autonomes leur procurant une grande sécurité : microprocesseur, mémoires, ... Ces puces intelligentes sont utilisées pour la confection de cartes à puce. Dans la présente invention, la puce intelligente peut être sous la forme d'un module de carte à puce connecté à un lecteur de carte à puce, soit directement soudé au circuit électrique supportant le microcontrôleur, soit sous une forme amovible utilisant un connecteur spécialisé. L'utilisation d'un lecteur de carte à puce peut être nécessaire si le microcontrôleur le demande. Les fonctions primitives concernent l'ensemble des fonctions génériques/basiques de la clé électronique. Il s'agit donc des fonctionnalités proposées par la clé électronique générique indépendamment de l'application visée qui est stockée dans la puce sécurisée. Il s'agit notamment des fonctions de pilotage de l'écran pour l'affichage, de gestion de l'horloge, d'initialisation du microcontrôleur, de pilotage d'une éventuelle interface de communication (USB, MMC ù carte multimédia) avec un équipement tiers, de l'envoi d'instructions ou commandes à la puce intelligente, L'application dans la puce est spécifique à l'utilisation souhaitée, par exemple des calculs d'OTP, des calculs cryptographiques, ...DTD: Par ailleurs, la relation entre la puce intelligente et le microcontrôleur est du type maître-esclave, ladite puce intelligente fournissant audit microcontrôleur des instructions d'exécution comprenant lesdits appels aux fonctions primitives et éventuellement des appels aux fonctions de la puce intelligente elle- même. Pour optimiser les coûts de développement, il peut être opportun de réutiliser des applications validées et certifiées à l'intérieur de la puce intelligente et de venir compléter cette application initiale par une ou plusieurs applications complémentaires apportant les fonctions additionnelles en vue de l'utilisation souhaitée de la clé. Les applications sont alors amenées à communiquer entre elles au travers des appels à des fonctions de la puce elle-même. Puisque seule l'application dans la puce est personnalisée en fonction de l'utilisation souhaitée, c'est cette application qui peut piloter l'enchaînement des étapes de traitement. Ainsi, la puce devient le maître du dispositif à l'opposé des clés électroniques de l'art antérieur. Le microcontrôleur initie, quant à lui, l'exécution de l'application principale par la puce sécurisée au moyen du pilotage de l'alimentation de cette puce et au moyen d'une requête générique dont l'interprétation en tant que requête d'initialisation aura été intégrée aux fonctions de la puce. C'est pourquoi, le microcontrôleur est apte à interroger, lors de son initialisation et par un pilotage standard, ladite puce pour recevoir lesdites instructions d'exécution. Le pilotage du microcontrôleur par la puce est alors réalisé par l'envoi de messages comprenant les instructions de pilotage du microcontrôleur, ces instructions étant au format d'une syntaxe interprétable par le microcontrôleur et comprennent des appels aux fonctions primitives et éventuellement des appels aux fonctions de la puce intelligente permettant ainsi une interaction avec l'utilisateur. Par ailleurs, lorsque la puce transmet au microcontrôleur une pluralité d'instructions que ce dernier doit exécuter, il est souhaitable de mémoriser ces instructions et de les exécuter au fur et à mesure. Dans ce mode de réalisation, ledit boîtier de la clé électronique comprend, en outre, une mémoire connectée audit microcontrôleur, et ledit microcontrôleur est agencé pour mémoriser, dans ladite mémoire, lesdites instructions comprenant les appels aux fonctions primitives. Selon un mode de réalisation, ladite interface est un écran d'affichage et elle comprend, en outre, une interface de sélection avec l'utilisateur. Par ailleurs, la clé électronique peut être utilisée pour des applications en mode connecté avec un système hôte, tel un ordinateur personnel. À cet effet, la clé électronique comprend, en outre, une interface de communication avec un équipement électronique tiers et ledit microcontrôleur est agencé pour transférer des données émises par ledit équipement tiers à ladite puce et des données émises par la puce audit équipement tiers. Le rôle joué par le microcontrôleur dans les échanges entre la puce et l'équipement tiers consiste en un relais transmettant les données émises par l'un à l'autre composant. Cette interface de communication peut être un port USB ou USB2, une interface MMC, une interface de communication sans fil telle que Bluetooth ou IRDA (communication par infrarouge - InfraRed Data Association) ou RFID (identification radiofréquence) selon ISO 14443 ou RFID selon ISO 15693 par exemple. Par ailleurs, les clés électroniques de l'art antérieur ne peuvent pas être testées tant qu'elles n'ont pas été personnalisées. On prévoit alors que ladite application est un programme générique de test des fonctions primitives dudit microcontrôleur, ce programme étant présent dans la clé électronique générique avant personnalisation. Ce programme de test peut être exécuté pendant les étapes de production de la clé générique afin de valider le fonctionnement générique de cette clé. Particulièrement, ladite puce comprend une deuxième application apte à générer des appels aux fonctions primitives et à effectuer des traitements algorithmiques, et des moyens agencés pour désactiver ledit programme générique de test. Par les moyens de désactivation, la deuxième application, c'est-à-dire l'application principale visée par la clé électronique, prend le pas sur l'application test. Désormais, l'initialisation lancée par le microcontrôleur lancera l'application principale. Dans un mode de réalisation, ladite application est un programme de génération de mots de passe à utilisation unique. L'invention a également pour objet l'application de la clé électronique à la génération et la transmission de données d'authentification à usage unique. On entend par transmission, le fait de communiquer les données d'authentification à un équipement tiers via des moyens de communication appropriés (tels que cités précédemment) ou à l'utilisateur par le biais de l'écran d'affichage. L'invention a également pour objet un procédé de fabrication d'un dispositif portable électronique personnalisé, tel une clé électronique, comprenant : • une étape de fabrication d'un dispositif portable générique comprenant un boîtier, ce dernier comprenant une puce intelligente, une application stockée dans la puce intelligente, au moins une interface avec un utilisateur et un microcontrôleur pilotant ladite puce intelligente et ladite interface, ledit microcontrôleur étant agencé pour exécuter des fonctions primitives dudit dispositif portable électronique pour l'exploitation de ladite interface et ladite puce intelligente étant agencée pour exécuter ladite application, cette dernière étant apte à générer des appels aux fonctions primitives pour communiquer avec l'utilisateur par ladite interface, • une étape de personnalisation de ladite puce intelligente par l'enregistrement d'une deuxième application apte à générer des appels aux fonctions primitives. Selon un mode de réalisation, ladite application stockée dans la puce de la clé générique est un programme générique de test générant des appels aux fonctions primitives et le procédé comprend, suite à ladite étape de fabrication, une étape de test de ladite clé électronique consistant en l'exécution du programme générique de test. L'invention a également pour objet un procédé d'exploitation d'un dispositif portable électronique, par exemple une clé électronique, tel que décrit précédemment, le procédé comprenant un ou plusieurs échanges définis par : • une étape d'envoi d'une requête à ladite puce intelligente par ledit microcontrôleur pour l'obtention d'instructions à exécuter, • à réception de ladite requête, une étape de transmission d'un script comprenant au moins une instruction appelant lesdites fonctions primitives par ladite puce intelligente à destination dudit microcontrôleur, • une étape d'exécution dudit script par ledit microcontrôleur. La requête peut être une requête d'initialisation au démarrage de la clé pour lancer l'application principale de la puce ou bien un résultat (entrée de l'utilisateur) auquel cas la transmission du résultat à la puce constitue une requête implicite en ce que ce message sous-entend que le microcontrôleur attend la prochaine instruction à exécuter. Selon un mode de réalisation, le procédé comprend, en outre, une étape d'enregistrement dudit script dans une mémoire, l'enregistrement étant réalisé par le microcontrôleur à la réception du script, et ladite étape d'exécution du script consiste en la lecture de chaque instruction du script en mémoire et l'exécution de l'instruction après lecture. Selon une alternative, le procédé comprend, en outre, une pluralité d'envois de requêtes par le microcontrôleur à ladite puce intelligente et, en réponse à chacun desdits envois, une étape de réception, par ledit microcontrôleur, d'au moins une instruction émise par la puce intelligente et d'exécution de ladite instruction par le microcontrôleur. Ici, les requêtes peuvent être des requêtes types se caractérisant par le fait qu'elles sont indépendantes de l'application en mémoire de la puce intelligente, puisqu'elles visent à obtenir les instructions spécifiques d'une application à partir du microcontrôleur générique. Ces requêtes peuvent également comprendre des données spécifiques à l'application du dispositif portable, auquel cas, ces données sont fournies par l'utilisateur au moyen de l'interface (par exemple choix d'un item dans un menu) et transmises à la puce sans modification ni interprétation de la part du microcontrôleur (puisque ce dernier n'est pas spécifique à l'application visée). Selon une alternative visant à optimiser la consommation électrique de la puce intelligente, notamment pour des clés électroniques autonomes, le procédé comprend, lors de l'exécution d'un script ou d'une instruction, une étape préalable d'alimentation de la puce intelligente par le microcontrôleur et une étape ultérieure, après au moins un échange avec la puce intelligente, de mise hors tension de la puce intelligente par le microcontrôleur. Les informations pour l'exécution de ces deux étapes préalable et ultérieure peuvent être indiquées dans le script lui-même ou l'instruction elle-même. L'invention sera également mieux comprise à l'aide des dessins, dans lesquels : - la figure 1 illustre le fonctionnement d'une clé électronique autonome de l'art antérieur équipée d'un bouton d'allumage et de sélection, et d'un écran pour la génération d'un mot de passe à usage unique ; - la figure 2 illustre un exemple de processus d'élaboration d'une clé électronique personnalisée de l'art antérieur ; - la figure 3 représente un exemple d'architecture d'une clé électronique selon la présente invention. - la figure 4 illustre un fonctionnement d'une clé électronique selon la présente invention ; - la figure 5 illustre un autre exemple de fonctionnement d'une clé électronique selon la présente invention, ce fonctionnement pouvant être cumulatif de celui illustré par la figure 3 au sein d'une même clé électronique ; et - la figure 6 représente un exemple de processus de fabrication d'une clé électronique personnalisée selon la présente invention. En référence à la figure 3, une clé électronique 100 utilisée 10 pour la génération de mots de passe à usage unique OTP selon la présente invention comprend : • un microcontrôleur 110 équipé d'une mémoire morte ROM 112 comprenant le microprogramme d'exécution du microcontrôleur et d'une mémoire inscriptible RAM 114 pour le stockage temporaire 15 de données pendant le fonctionnement de la clé, • la puce intelligente sécurisée 124 éventuellement connectée via un composant d'interface carte à puce 122 au microcontrôleur. La puce sécurisée est du type intelligente comprenant un microprocesseur, de la mémoire vive et morte et 20 des moyens de communication avec le microcontrôleur 110 via le composant d'interface 122. La puce comprend dans sa mémoire morte un programme applicatif 126 (ou application principale) dédié à l'application souhaitée de la clé électronique (la génération de mots de passe à usage unique), ce programme 25 mettant à disposition différents processus ou fonctions à exécuter (ci-après, certains de ces processus sont notés S00, S10, ...). Une alternative pour un tel module de puce 120 est proposée par le brevet US6763399 dans lequel une la puce intelligente est reliée directement au microcontrôleur par l'intermédiaire du 30 protocole spécifique ISO7816-3, • un écran d'affichage 130 pour afficher des données ou informations à l'utilisateur et connecté au microcontrôleur, • un ou plusieurs boutons marche/arrêt et/ou de sélection 140 permettant à l'utilisateur soit de mettre sous tension la clé électronique 100 soit de sélectionner et valider des choix proposés par la clé électronique par l'intermédiaire de l'écran d'affichage 130. Le ou les boutons sont connectés au microcontrôleur, ce dernier exploitant les actions appliquées aux boutons, et • une interface de connexion 150 avec un équipement tiers, typiquement un ordinateur personnel PC avec lequel la clé électronique communiquera pour la génération d'un mot de passe à usage unique pour l'utilisateur. Cette interface de communication est connectée au microcontrôleur. Le microprogramme du microcontrôleur fournit des fonctions basiques ou primitives agissant sur les composants génériques de la clé 100, parmi lesquelles : • Menu : cette fonction assure le défilement d'un menu et permet la sélection d'un item selon une temporisation paramétrable ou propre à la clé électronique, par exemple 2 secondes. • Display : cette fonction assure l'affiche d'une chaîne de caractères en assurant le défilement si elle dépasse les capacités de l'écran. • Save : permet de sauver en mémoire RAM 114 les instructions suivantes avant exécution. • UWait : cette fonction demande à la clé électronique d'attendre sans possibilité d'interruption. • Wait : cette fonction demande à la clé électronique d'attendre mais, sur évènement bouton 140, passe à l'instruction suivante. • Power Off : cette fonction met la clé hors tension Application à la génération d'un mot de passe en mode autonome La génération d'un mot de passe à usage unique à l'utilisateur requiert plusieurs étapes comme illustrées par la figure 4: 200 : l'utilisateur de la clé 100 allume cette dernière en appuyant sur le bouton 140. Cet appui alimente en énergie et réveille le microcontrôleur 110, 202 : à son réveil, le microcontrôleur met sous tension la puce intelligente 124, 204 : le microcontrôleur exécute une instruction générique consistant à émettre une requête de processus S00 à la puce. Cette instruction générique peut être codée directement dans le code exécutable du microprogramme ou stocké à un emplacement spécifique de la mémoire morte 112 auquel le microprocesseur accède par défaut. Eventuellement, cette instruction est stockée sur un serveur distant accessible par des moyens de communication paramétrés de façon appropriée. Cette requête de processus S00 invite la puce 124 à exécuter le processus S00 du programme applicatif 126. 206 : à réception de la requête S00, la puce 124 exécute ce processus S00, lequel permet de transmettre au microcontrôleur un script d'exécution comprenant les instructions que le microcontrôleur doit exécuter. Ce script est stocké à un emplacement spécifique de la mémoire de la puce 124 ou directement dans le programme applicatif 126. Le script est une chaîne de caractères comprenant des appels aux fonctions primitives disponibles sur le microcontrôleur : "Menu: OTP (S10), Counter (Si 1), Token ID (S12)", où les valeurs S10, S11 et S12 correspondent à des identifiants de processus utilisés par la puce intelligente pour prendre en compte le choix de l'utilisateur. Dans un mode de réalisation, la requête S00 émise par le microcontrôleur correspond au signal de mise sous tension (alimentation électrique) de lapuce intelligente. Cette dernière est paramétrée pour répondre lors de son initialisation (ATR - Answer To Reset) en envoyant une séquence ATR comprenant des octets prédéfinis dits historiques qui contiennent le script. 208 : à réception du script, le microcontrôleur stocke le script en mémoire RAM 114. Ce stockage temporaire est d'autant plus utile que le script transmis comprend plusieurs instructions d'exécution. Soit le stockage est automatique par le microcontrôleur, soit celui-ci peut être forcé par la puce 124 en ajoutant en début de script la fonction primitive Save qui permet au microcontrôleur de sauvegarder la suite des instructions en mémoire RAM 114. 210 : le microcontrôleur met le module de carte à puce 120 hors tension d'alimentation. 212 : le microprogramme exécute l'instruction "Menu: OTP (S10), Counter (S11), Token ID (S12)" et affiche par conséquent à l'écran 130 le premier item du menu, à savoir OTP , pendant la temporisation paramétrée de 2 secondes. 214 : l'utilisateur qui souhaite générer un mot de passe OTP valide le choix en relevant, par exemple, le bouton 140 qu'il maintient appuyé depuis l'étape 200 au moment ou OTP est affiché à l'écran. Le microprogramme interprète l'entrée de l'utilisateur (validation) en passant aux étapes suivantes. 216 : le microcontrôleur alimente de nouveau le module 120. 218 : le microcontrôleur émet une requête d'exécution du processus S10 à l'attention de la puce 124. 220 : la puce intelligente exécute le processus S10, c'est-à-dire les opérations de génération du mot de passe à usage unique et transmet le script "Display gX36Jz; UWait 30s; Power Off" au microcontrôleur. 222 : ce dernier mémorise le script en mémoire 114, d'autant plus qu'il y a dans celui-ci trois instructions (Display, UWait et Power Off) à exécuter les unes après les autres. 224 : le microcontrôleur met la puce intelligente hors tension. 226 : ensuite le microcontrôleur exécute le script, c'est-à-dire la première instruction Display gX36Jz et affiche donc le mot de passe généré gX36Jz sur l'écran 130. 228 : le microcontrôleur exécute ensuite UWait 30s en maintenant l'affichage pendant 30s sans qu'aucune intervention de l'utilisateur ne puisse modifier le comportement de la clé. 230 : au terme des 30s, l'instruction suivante Power Off est exécutée par le microcontrôleur provoquant l'extinction de la clé. Il peut être envisagé que la puce ne transmette qu'une seule instruction à la fois, de telle sorte que le microcontrôleur interroge la carte après chaque instruction exécutée, ce qui permet une exécution dynamique basée sur des décisions prises par la carte. Toujours en référence à la figure 4, dans le cas où l'utilisateur souhaite récupérer le numéro d'identification de la clé électronique, l'affichage de l'item 1 du menu lors de l'étape 212 se termine au bout de la temporisation de 2 secondes. Le microcontrôleur affiche (232) alors l'item 2 du menu Counter pendant la temporisation, l'utilisateur pouvant à tout moment relâcher le bouton 140 pour entrer dans le menu et provoquer l'exécution du processus S11 par la puce intelligente. Si l'utilisateur n'intervient pas dans le délai de la temporisation, l'item 3 Token ID s'affiche alors (234) puis, de façon similaire à ce qui a été décrit précédemment : 236 : l'utilisateur relâche le bouton 140 pour valider son choix Token ID , 238 : le microcontrôleur alimente la carte à puce, 240 : le microcontrôleur émet une requête d'exécution du processus S12 à l'attention de la puce 124. 242 : la puce intelligente exécute le processus S12, c'est-à-dire la récupération et transmission du numéro de série de la clé électronique. Il transmet alors le script "Display N123456; Wait 10s; Power Off" au microcontrôleur. 244 : ce dernier mémorise le script en mémoire 114, 246 : le microcontrôleur met la puce intelligente hors tension. 248 : ensuite le microcontrôleur exécute le script, c'est-à-dire la première instruction Display N123456 et affiche donc l'identifiant N123456 de la clé sur l'écran 130. 250 : le microcontrôleur exécute ensuite Wait 10s en maintenant l'affichage pendant 10s. Si l'utilisateur presse le bouton 140, le microcontrôleur procède instantanément à l'exécution de l'instruction suivante, à savoir éteindre la clé. 252 : au terme des 10s ou en cas d'intervention de l'utilisateur, l'instruction suivante Power Off est exécutée par le microcontrôleur provoquant l'extinction de la clé. La figure 5 illustre un autre mode d'utilisation de la clé interagissant avec un équipement tiers PC pour la fourniture d'un OTP. 300 : l'utilisateur connecte la clé 100 à l'équipement tiers par l'intermédiaire d'un port USB et l'interface 150. La clé est alors automatiquement alimentée par l'interface USB. 302 : le PC émet une demande d'OTP via le port USB 304 : le microcontrôleur alimente alors le module de carte à puce 120, puis 306 : le microcontrôleur transmet la requête OTP au module 120, correspondant à un processus à exécuter par la puce 124. 308 : la puce intelligente émet une requête d'affichage Display pour inviter l'utilisateur à valider l'envoi d'un mot de passe, 310 : l'utilisateur valide la commande par l'appui du bouton 140, 312 : l'appui est transmis par le microcontrôleur à la carte à puce, 314 : la puce 124 génère alors un mot de passe OTP et le transmet au microcontrôleur, puis 316 : ce dernier transmet l'OTP au PC. 318 : le microcontrôleur met le module de carte à puce hors tension d'alimentation. La figure 6 illustre les différentes étapes réalisées par l'entreprise qui souhaite personnaliser une clé électronique de la présente invention en fonction de l'application souhaitée. A l'étape 400, l'entreprise réceptionne les clés électroniques génériques. L'invention permet de disposer d'une seule clé générique avec le même microprogramme quelles que soient l'utilisation visée et la personnalisation apportée permettant de réduire les coûts de production engendrés par l'augmentation des volumes et/ou la diversification des applications, et de faciliter la gestion des stocks de clés. Le microprogramme pilotant le microcontrôleur est installé en mémoire ROM 112 par le fondeur des composants. Les coûts de fabrication à l'unité sont ainsi réduits puisque la mémoire ROM est peu coûteuse. La clé électronique dans sa version générique comprend un programme de test 128 stocké en mémoire de la puce sécurisée. Ce programme test est générique et permet, lorsqu'il est exécuté par la puce 124 de tester les fonctionnalités disponibles au microcontrôleur 110. 402 : pour tester la clé, l'utilisateur allume la clé. Le microcontrôleur transmet alors la requête S00 à la puce, ce processus S00 étant associé dans la puce au programme test. Ce dernier émet alors un script de test, par exemple, Display Essail ; UWait 10s ; Display Essai2 ; Wait 5s ; Display 5 ; UWait l s ; Display 4 ; UWait 1 s ; Display 3 ; UWait 1 s ; Display 2 ; UWait 1 s ; Display 1 ; UWait l s ; Display Extinction ; UWait l s ; Power Off . L'utilisateur valide alors le bon fonctionnement de la clé en s'assurant qu'elle affiche Essail pendant 10s, puis Essai2 pendant 5s et ensuite décompte de 5 à 0 jusqu'à l'extinction de la clé. Le script de test fait, idéalement, au moins un appel à chacune des fonctions primitives du microcontrôleur. Une telle phase de test peut être réalisée à plusieurs niveaux de la chaîne de production. 404 : lorsque le test est positif, l'entreprise personnalise la clé électronique en fonction de l'application visée. Cette étape de personnalisation consiste à charger l'application principale 126 (ou un ensemble de processus à exécuter) dans la puce 124. Ce chargement peut être réalisé via l'interface de communication USB 150 mais également en plaçant la puce 124 dans un autre lecteur de carte à puce directement relié à un équipement informatique de programmation. Le chargement de cette application principale 126 inhibe l'application de test 128, par exemple par la modification, en mémoire de carte à puce, d'un registre associé au processus S00 qui pointe désormais sur l'adresse mémoire de l'application 126 nouvelle chargée. 406 et 408 : après personnalisation, des tests portant sur l'application spécifique et son interopérabilité avec l'ensemble de la clé sont réalisés tenant compte de cette spécificité. La présence de l'interface 150 permet d'envisager, sans surcoût notable, la modification du comportement de la clé électronique a posteriori (correction de bogue, optimisation des applications, ...). REVENDICATIONS 1. Dispositif portable électronique comprenant un boîtier, lequel boîtier comprend une puce intelligente, une application stockée dans la puce intelligente, au moins une interface avec un utilisateur et un microcontrôleur pilotant ladite puce intelligente et ladite interface, ledit microcontrôleur étant agencé pour exécuter des fonctions primitives de ladite clé électronique pour l'exploitation de ladite interface et ladite puce intelligente étant agencée pour exécuter ladite application, caractérisé en ce que ladite application est agencée pour générer des appels aux fonctions primitives afin de communiquer avec l'utilisateur par ladite interface. 2. Dispositif portable électronique selon la revendication précédente, caractérisée en ce que la relation entre la puce intelligente et le microcontrôleur est du type maître-esclave, ladite puce intelligente fournissant audit microcontrôleur des instructions d'exécution comprenant lesdits appels aux fonctions primitives. 3. Dispositif portable électronique selon la revendication précédente, caractérisée en ce que le microcontrôleur est apte à interroger, lors de son initialisation et par un pilotage standard, ladite puce intelligente pour recevoir lesdites instructions d'exécution. 4. Dispositif portable électronique selon la revendication 2 ou 3, caractérisée en ce que ledit boîtier de la clé électronique comprend, en outre, une mémoire connectée audit microcontrôleur, et en ce que ledit microcontrôleur est agencé pour mémoriser, dans ladite mémoire, lesdites instructions comprenant les appels aux fonctions primitives. 5. Dispositif portable électronique selon l'une des revendications précédentes, caractérisé en ce que ladite interface est un écran d'affichage et en ce qu'il comprend, en outre, une interface de sélection avec l'utilisateur. 6. Dispositif portable électronique selon l'une des revendications précédentes, caractérisé en ce qu'il comprend, en outre, une interface de communication avec un équipement électronique tiers et en ce que ledit microcontrôleur est agencé pour transférer des données émises par ledit équipement tiers à ladite puce intelligente et des données émises par la puce intelligente audit équipement tiers. 7. Dispositif portable électronique selon la revendication précédente, caractérisé en ce que ladite interface de communication comprend l'une parmi une interface USB, une interface USB2, une interface Bluetooth, une interface IRDA, une interface RFID et une interface MMC. 8. Dispositif portable électronique selon l'une des revendications précédentes, caractérisée en ce que ladite application est un programme générique de test des fonctions primitives dudit microcontrôleur. 9. Dispositif portable électronique selon la revendication précédente, caractérisée en ce que ladite puce intelligente comprend une deuxième application apte à générer des appels aux fonctions primitives et à effectuer des traitements algorithmiques, et des moyens agencés pour désactiver ledit programme générique de test. 10. Dispositif portable électronique selon l'une des revendications 1 à 7, caractérisée en ce que ladite application est un programme de génération de mots de passe à utilisation unique. 11. Application du dispositif portable électronique selon l'une quelconque des revendications précédentes à la génération et la transmission de données d'authentification à usage unique. 12. Procédé de fabrication d'un dispositif portable électronique personnalisé, tel une clé électronique, comprenant : • une étape de fabrication d'un dispositif portable électronique générique comprenant un boîtier, ce dernier comprenant une puce intelligente, une application stockée dans la puce intelligente, au moins une interface avec un utilisateur et un microcontrôleur pilotant ladite puce intelligente et ladite interface, ledit microcontrôleur étant agencé pour exécuter des fonctions primitives dudit dispositif portable électronique pour l'exploitation de ladite interface et ladite puce intelligente étant agencée pour exécuter ladite application, cette dernière étant apte à générer des appels aux fonctions primitives pour communiquer avec l'utilisateur par ladite interface, • une étape de personnalisation de ladite puce intelligente par l'enregistrement d'une deuxième application apte à générer des appels aux fonctions primitives. 13. Procédé selon la revendication précédente, caractérisé en ce que ladite application stockée dans la puce du dispositif portable générique est un programme générique de test générant des appels aux fonctions primitives et en ce que le procédé comprend, suite à ladite étape de fabrication, une étape de test dudit dispositif portable électronique consistant en l'exécution du programme générique de test. 14. Procédé d'exploitation d'un dispositif portable électronique selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend au moins une phase d'échange consistant en : • une étape d'envoi d'une requête à ladite puce intelligente par ledit microcontrôleur pour l'obtention d'instructions à exécuter, • à réception de ladite requête, une étape de transmission d'un script comprenant au moins une instruction appelant lesdites fonctions primitives par ladite puce intelligente à destination dudit microcontrôleur, • une étape d'exécution dudit script par ledit microcontrôleur. 15. Procédé d'exploitation selon la revendication précédente, caractérisé en ce qu'il comprend, en outre, une étape d'enregistrement dudit script dans une mémoire, l'enregistrement étant réalisé par le microcontrôleur à la réception du script, et en ce que ladite étape d'exécution du script consiste en la lecture de chaque instruction du script en mémoire et l'exécution de l'instruction après lecture. 16. Procédé d'exploitation selon la revendication 14, caractérisé en ce qu'il comprend, en outre, une pluralité d'envois de requêtes par le microcontrôleur à ladite puce intelligente et, en réponse à chacun desdits envois, une étape de réception, par ledit microcontrôleur, d'au moins une instruction émise par la puce intelligente et d'exécution de ladite instruction par le microcontrôleur. 17. Procédé d'exploitation selon l'une des revendications 14 à 16, caractérisé en ce qu'il comprend, lors de l'exécution d'un script ou d'une instruction, une étape préalable d'alimentation de la puce intelligente par le microcontrôleur et une étape ultérieure,après au moins un échange avec la puce intelligente, de mise hors tension de la puce intelligente par le microcontrôleur.