FR3029722A1 - METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER - Google Patents

METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER Download PDF

Info

Publication number
FR3029722A1
FR3029722A1 FR1461886A FR1461886A FR3029722A1 FR 3029722 A1 FR3029722 A1 FR 3029722A1 FR 1461886 A FR1461886 A FR 1461886A FR 1461886 A FR1461886 A FR 1461886A FR 3029722 A1 FR3029722 A1 FR 3029722A1
Authority
FR
France
Prior art keywords
challenge
terminal
ach
cryptogram
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1461886A
Other languages
French (fr)
Other versions
FR3029722B1 (en
Inventor
Jean-Marc Desprez
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1461886A priority Critical patent/FR3029722B1/en
Publication of FR3029722A1 publication Critical patent/FR3029722A1/en
Application granted granted Critical
Publication of FR3029722B1 publication Critical patent/FR3029722B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

L'invention concerne un procédé d'émission conditionnelle de données d'un serveur à un terminal (T), comprenant les étapes suivantes : - génération d'un défi par un processeur (P) du terminal (T) ; - transmission du défi à un environnement d'exécution sécurisé (C) hébergé par le terminal (T) ; - génération d'un cryptogramme dans l'environnement d'exécution sécurisé (C) par application au défi d'un algorithme cryptographique ; - émission par le terminal (T) du défi et du cryptogramme à destination du serveur (S) via un réseau de télécommunication (I, R) ; - vérification, au niveau du serveur (S), de la concordance du cryptogramme et du défi en vue de l'authentification du terminal (T) ; - lorsque ladite concordance est vérifiée à l'étape de vérification, lancement d'un mécanisme de préparation de données et envoi des données préparées à destination du terminal (T) via ledit réseau de télécommunication (I, R). Un terminal et un ensemble serveur associés sont également proposés.The invention relates to a method of conditional data transmission from a server to a terminal (T), comprising the following steps: - generating a challenge by a processor (P) of the terminal (T); transmitting the challenge to a secure execution environment (C) hosted by the terminal (T); - Generation of a cryptogram in the secure execution environment (C) by application to the challenge of a cryptographic algorithm; - transmission by the terminal (T) challenge and cryptogram to the server (S) via a telecommunications network (I, R); - verification, at the server (S), of the concordance of the cryptogram and the challenge for the authentication of the terminal (T); - When said match is verified at the verification step, starting a data preparation mechanism and sending the prepared data to the terminal (T) via said telecommunications network (I, R). An associated terminal and server set are also provided.

Description

1 DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne l'authentification d'un terminal par un serveur et la préparation de données destinées au terminal par le serveur. Elle concerne plus particulièrement un procédé d'émission conditionnelle de données d'un serveur à un terminal, ainsi qu'un terminal et un ensemble serveur associés. L'invention s'applique particulièrement avantageusement dans le cas où le terminal héberge un environnement d'exécution sécurisé, par exemple un environnement d'exécution de confiance ou un module sécurisé tel qu'une carte à microcircuit. ARRIERE-PLAN TECHNOLOGIQUE Le document WO 2014/086 652 décrit un procédé d'authentification d'un 15 élément sécurisé par un serveur dans lequel un agent est exécuté dans un environnement distinct de l'élément sécurisé. Selon ce document, l'agent transmet à l'élément sécurisé un défi fourni par le serveur et reçoit en retour un mot de passe à usage unique calculé par l'élément sécurisé d'après le défi et des données secrètes mémorisées dans 20 l'élément sécurisé. OBJET DE L'INVENTION Dans ce contexte, la présente invention propose un procédé d'émission conditionnelle de données d'un serveur à un terminal, comprenant les étapes suivantes : 25 - génération d'un défi par un processeur du terminal ; - transmission du défi à un environnement d'exécution sécurisé hébergé par le terminal ; - génération d'un cryptogramme dans l'environnement d'exécution sécurisé par application au défi d'un algorithme cryptographique ; 30 - émission par le terminal du défi et du cryptogramme à destination du serveur via un réseau de télécommunication ; - vérification, au niveau du serveur, de la concordance du cryptogramme et du défi en vue de l'authentification du terminal ; - lorsque ladite concordance est vérifiée à l'étape de vérification (et dans 3029722 2 ce cas seulement), lancement d'un mécanisme de préparation de données et envoi des données préparées à destination du terminal via ledit réseau de télécommunication. Le terminal peut ainsi préparer les données d'authentification constituées 5 par le cryptogramme de sa propre initiative, sans nécessiter un échange préalable avec le serveur. De son côté, le serveur ne lance le mécanisme de préparation des données (par exemple des commandes destinées au processeur du terminal) que lorsque le terminal est authentifié par vérification de la concordance du 10 cryptogramme et du défi, c'est-à-dire par vérification que le cryptogramme est bien le résultat de l'application au défi de l'algorithme cryptographique précité, ce qui permet d'éviter une préparation inutile des données lorsque le terminal n'est pas authentifié. La transmission du défi à l'environnement d'exécution sécurisé est par exemple réalisée au moyen d'une commande INITIALIZE UPDATE définie dans la spécification GlobalPlatform relative au protocole SCP03 (pour "Secure Channel Protocol 03") ou au moyen d'une commande INITIALIZE UPDATE définie dans la spécification GlobalPlatform relative au protocole SCP02 (pour "Secure Channel Protocol 02"). L'exécution de cette commande par l'environnement d'exécution sécurisé peut alors mettre en oeuvre l'étape précitée de génération du cryptogramme. On utilise ainsi des fonctionnalités usuellement présentes dans un tel environnement d'exécution sécurisé, sans avoir à installer un logiciel dédié dans cet environnement sécurisé. D'autres caractéristiques optionnelles (et donc non limitatives) de l'invention sont les suivantes : - les étapes de génération du défi, de transmission du défi et d'émission du défi et du cryptogramme sont mises en oeuvre du fait de l'exécution d'une application par le processeur ; - le défi est généré par tirage aléatoire ; - l'algorithme cryptographique utilise une clé secrète mémorisée dans l'environnement d'exécution sécurisé ; - l'environnement d'exécution sécurisé est réalisé par un module sécurisé ; - le procédé comprend une étape de transmission du cryptogramme 3029722 3 généré du module sécurisé au processeur (avant émission du défi et du cryptogramme par le terminal) ; - l'environnement d'exécution sécurisé est réalisé par un environnement d'exécution de confiance ; 5 - le terminal est conçu pour fonctionner sélectivement dans un environnement d'exécution polyvalent ou dans ledit environnement d'exécution de confiance ; - l'application précitée est exécutée dans l'environnement d'exécution polyvalent ; 10 - l'étape de vérification est mise en oeuvre par un module matériel de sécurité associé au serveur ; - le procédé comprend une étape de comparaison, au niveau du serveur, du défi reçu et de défis préalablement reçus et mémorisés au niveau du serveur, le mécanisme de préparation de données étant lancé seulement si le défi reçu est 15 différent de chacun des défis préalablement reçus, ce qui permet de vérifier comme expliqué plus loin que le défi reçu n'est pas le rejeu d'un défi précédent ; - ladite préparation de données est une génération d'un script ; - le script généré est un script de personnalisation ou un script de gestion de carte ; 20 - le procédé comprend une étape de chiffrement du script au moyen d'un algorithme cryptographique de chiffrement utilisant une clé de chiffrement obtenue en utilisant le défi ; - les étapes de génération du cryptogramme et de vérification de la concordance sont conformes à un protocole de type SCP02 ou SCP03.TECHNICAL FIELD TO WHICH THE INVENTION RELATES The present invention relates to the authentication of a terminal by a server and the preparation of data intended for the terminal by the server. It relates more particularly to a method of conditional data transmission from a server to a terminal, and a terminal and an associated server set. The invention applies particularly advantageously in the case where the terminal hosts a secure execution environment, for example a trusted execution environment or a secure module such as a microcircuit card. BACKGROUND ART WO 2014/086652 discloses a method of authenticating a secure element by a server in which an agent is executed in an environment separate from the secure element. According to this document, the agent transmits to the secure element a challenge provided by the server and receives in return a one-time password calculated by the secure element according to the challenge and secret data stored in the server. secure element. OBJECT OF THE INVENTION In this context, the present invention proposes a method of conditional data transmission from a server to a terminal, comprising the following steps: - generating a challenge by a terminal processor; - transmitting the challenge to a secure execution environment hosted by the terminal; - Generating a cryptogram in the application-safe execution environment to the challenge of a cryptographic algorithm; 30 - transmission by the terminal challenge and cryptogram to the server via a telecommunications network; - verification, at the server level, of the concordance of the cryptogram and the challenge for the authentication of the terminal; when said match is verified at the verification step (and in this case only), launching a data preparation mechanism and sending the prepared data to the terminal via said telecommunications network. The terminal can thus prepare the authentication data constituted by the cryptogram on its own initiative, without requiring a prior exchange with the server. For its part, the server does not launch the data preparation mechanism (for example commands for the terminal processor) until the terminal is authenticated by verifying the concordance of the cryptogram and the challenge, that is to say by verifying that the cryptogram is the result of the application to the challenge of the aforementioned cryptographic algorithm, which avoids unnecessary data preparation when the terminal is not authenticated. The transmission of the challenge to the secure execution environment is for example carried out by means of an INITIALIZE UPDATE command defined in the GlobalPlatform specification relating to the SCP03 protocol (for "Secure Channel Protocol 03") or by means of an INITIALIZE command. UPDATE defined in the GlobalPlatform specification for SCP02 protocol (for "Secure Channel Protocol 02"). The execution of this command by the secure execution environment can then implement the aforementioned step of generating the cryptogram. We thus use the features usually present in such a secure execution environment, without having to install a dedicated software in this secure environment. Other optional (and therefore non-limiting) features of the invention are as follows: the steps of generating the challenge, transmitting the challenge and transmitting the challenge and the cryptogram are implemented because of the execution an application by the processor; - the challenge is generated by random draw; the cryptographic algorithm uses a secret key stored in the secure execution environment; - the secure execution environment is realized by a secure module; the method comprises a step of transmitting the cryptogram generated from the secure module to the processor (before the challenge and the cryptogram are transmitted by the terminal); - the secure execution environment is realized by a trusted execution environment; The terminal is designed to operate selectively in a multi-purpose execution environment or in said trusted execution environment; the aforementioned application is executed in the multipurpose execution environment; The verification step is implemented by a hardware security module associated with the server; the method comprises a step of comparing, at the server level, the challenge received and challenges previously received and stored at the server level, the data preparation mechanism being launched only if the challenge received is different from each of the challenges beforehand received, which makes it possible to verify as explained below that the challenge received is not the replay of a previous challenge; said data preparation is a generation of a script; the generated script is a personalization script or a card management script; The method comprises a step of encrypting the script by means of an encryption cryptographic algorithm using an encryption key obtained by using the challenge; the steps of generating the cryptogram and checking the concordance are in accordance with a protocol of the SCP02 or SCP03 type.

25 L'invention propose également un terminal comprenant un processeur et des moyens de mise en oeuvre d'un environnement d'exécution sécurisé conçu pour générer un cryptogramme par application d'un algorithme cryptographique à un défi, caractérisé en ce qu'une mémoire associée au processeur mémorise une application conçue pour générer le défi, pour transmettre le défi à l'environnement 30 d'exécution sécurisé, pour recevoir le cryptogramme en provenance de l'environnement d'exécution sécurisé et pour émettre le défi et le cryptogramme à destination d'un serveur via un réseau de télécommunication, lorsque l'application est exécutée par le processeur. L'invention propose aussi un ensemble serveur comprenant des moyens 3029722 4 de réception d'un défi et d'un cryptogramme en provenance d'un terminal via un réseau de télécommunication ; des moyens de vérification de la concordance du cryptogramme et du défi en vue de l'authentification du terminal ; et des moyens, activés seulement en cas de vérification de la concordance par les moyens de 5 vérification, pour lancer un mécanisme de préparation de données et envoyer les données préparées à destination du terminal via ledit réseau de télécommunication. On propose en outre un système comprenant un terminal tel qu'exposé ci-dessus et un ensemble serveur comme il vient d'être indiqué.The invention also proposes a terminal comprising a processor and means for implementing a secure execution environment designed to generate a cryptogram by applying a cryptographic algorithm to a challenge, characterized in that an associated memory the processor stores an application designed to generate the challenge, to convey the challenge to the secure execution environment, to receive the cryptogram from the secure execution environment, and to issue the challenge and cryptogram to the secure execution environment. a server via a telecommunication network, when the application is executed by the processor. The invention also proposes a server assembly comprising means for receiving a challenge and a cryptogram from a terminal via a telecommunications network; means for checking the concordance of the cryptogram and the challenge for the authentication of the terminal; and means, activated only in case of verification of concordance by the verification means, to initiate a data preparation mechanism and send the prepared data to the terminal via said telecommunication network. In addition, a system comprising a terminal as described above and a server set as just indicated is proposed.

10 DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. Sur les dessins annexés : 15 - la figure 1 représente un exemple de système dans lequel peut être mise en oeuvre l'invention ; - la figure 2 représente un procédé conforme à l'invention mis en oeuvre au sein du système de la figure 1. La figure 1 représente schématiquement les éléments principaux d'un 20 système dans lequel peut être mise en oeuvre l'invention. Un tel système comprend un terminal T connecté, au moyen d'une infrastructure de réseau R, à un réseau public I, tel que le réseau Internet. Le terminal T est ici un terminal mobile (tel qu'un téléphone cellulaire) et l'infrastructure de réseau R est donc ici une infrastructure de réseau mobile.DETAILED DESCRIPTION OF AN EXEMPLARY EMBODIMENT The following description with reference to the accompanying drawings, given as non-limiting examples, will make it clear what the invention consists of and how it can be achieved. In the accompanying drawings: FIG. 1 represents an example of a system in which the invention can be implemented; FIG. 2 represents a method according to the invention implemented within the system of FIG. 1. FIG. 1 schematically represents the main elements of a system in which the invention can be implemented. Such a system comprises a terminal T connected, by means of a network infrastructure R, to a public network I, such as the Internet network. The terminal T is here a mobile terminal (such as a cellular phone) and the network infrastructure R is here a mobile network infrastructure.

25 Le terminal T comprend ici un processeur P (par exemple un microprocesseur) capable d'exécuter des instructions de programme d'ordinateur (mémorisées dans une mémoire non-représentée associée au processeur P) afin de mettre en oeuvre un procédé tel que celui décrit ci-dessous dans le cadre de la figure 2.The terminal T here comprises a processor P (for example a microprocessor) capable of executing computer program instructions (stored in a non-represented memory associated with the processor P) in order to implement a method such as that described. below in the context of Figure 2.

30 Le terminal T reçoit par ailleurs dans un lecteur dédié (non représenté) une carte à microcircuit C. Le lecteur est connecté au processeur P de manière à permettre un échange de données entre la carte à microcircuit C et le processeur P, comme schématiquement représenté par un trait plein en figure 1. La carte à microcircuit C comprend un microprocesseur et une mémoire 3029722 5 (par exemple une mémoire non-volatile réinscriptible). La mémoire mémorise des instructions de programme d'ordinateur qui, lorsqu'elles sont exécutées par le microprocesseur de la carte à microcircuit C permettent la mise en oeuvre de procédés par la carte à microcircuit C, notamment le procédé décrit ci-dessous en 5 référence à la figure 2. La mémoire mémorise également des clés cryptographiques secrètes utilisées comme décrit dans la suite, notamment une première clé statique K-MAC et une seconde clé statique K-ENC. La carte à microcircuit C est ici de type UICC (pour "Universal Integrated 10 Circuit Card'). En variante, il pourrait s'agir d'un autre type de module sécurisé, par exemple un élément sécurisé intégré (ou eSE pour "embedded Secure Element"). La carte à microcircuit C définit un environnement d'exécution sécurisé, avec par exemple un niveau de sécurité conforme aux critères communs EAL 15 (pour "Evaluation Assurance Lever), correspondant à la norme ISO 15408, avec un niveau compris entre 2 et 7, ou à la norme FIPS (pour "Federal Information Processing Standard') 140-2. Dans l'exemple de la figure 1, le terminal T comprend ainsi le processeur P, qui définit un environnement d'exécution à visée générale, et la carte à 20 microcircuit C (avec son propre microprocesseur), qui définit un environnement d'exécution sécurisé. En variante, le terminal T pourrait n'inclure qu'un seul processeur P sur lequel s'exécute sélectivement un système d'exploitation polyvalent (ou "Rich OS") afin de faire fonctionner le terminal T dans un environnement d'exécution 25 polyvalent (ou REE pour "Rich Execution Environment"), ou un système d'exploitation de confiance (ou "Trusted OS") afin de faire fonctionner le terminal T dans un environnement d'exécution de confiance (ou TEE pour "Trusted Execution Environment"). Un tel environnement d'exécution de confiance forme un environnement d'exécution sécurisé (utilisable en lieu et place de la carte à 30 microcircuit C), avec par exemple un niveau de sécurité tel que défini ci-dessus. Le terminal T comprend par ailleurs un module de communication (non représenté) afin d'établir une communication avec l'infrastructure de réseau R (ici avec une station de base de cette infrastructure), ce qui permet au terminal T (et précisément en pratique au processeur P) d'échanger des données avec d'autres 3029722 6 dispositifs électroniques ou ordinateurs connectés sur le réseau public I, notamment comme expliqué plus loin avec un serveur S connecté sur le réseau public I. Un module matériel de sécurité M (ou HSM pour "Hardware Security 5 Module") est relié, ici connecté via un réseau local L, au serveur S. Par ailleurs, un ordinateur de préparation de données D est également connecté sur ce réseau local L. Le module matériel de sécurité M mémorise notamment des données secrètes associées à des cartes à microcircuit utilisées dans des terminaux, en 10 particulier, en association avec un identifiant ID de la carte à microcircuit C, des données secrètes associées à la carte à microcircuit C, telles que la première clé statique K-MAC et la seconde clé statique K-ENC. La figure 2 représente un procédé conforme à l'invention, mis en oeuvre ici au sein du système de la figure 1.The terminal T also receives in a dedicated reader (not shown) a microcircuit card C. The reader is connected to the processor P so as to allow data exchange between the microcircuit card C and the processor P, as shown schematically by a solid line in FIG. 1. The microcircuit card C comprises a microprocessor and a memory 3029722 5 (for example a rewritable non-volatile memory). The memory stores computer program instructions which, when executed by the microprocessor of the microcircuit card C, allow the implementation of methods by the microcircuit card C, in particular the method described below in reference. FIG. 2. The memory also stores secret cryptographic keys used as described hereinafter, in particular a first K-MAC static key and a second K-ENC static key. The microcircuit card C is here of UICC type (for "Universal Integrated Circuit Circuit") Alternatively, it could be another type of secure module, for example an integrated secure element (or eSE for "embedded Secure Element ") The microcircuit card C defines a secure execution environment, for example with a security level in accordance with the common criteria EAL 15 (for" Evaluation Assurance Lever "), corresponding to the ISO 15408 standard, with a level understood 2 to 7, or the Federal Information Processing Standard (FIPS) 140-2 In the example of FIG. 1, the terminal T thus comprises the processor P, which defines an execution environment with a view to general, and the microcircuit card C (with its own microprocessor), which defines a secure execution environment Alternatively, the terminal T could include only one processor P on which selectively executes a control system. 'exploitation polyva to operate the terminal T in a versatile execution environment (or REE for "Rich Execution Environment"), or a trusted operating system (or "Trusted OS") in order to to operate the terminal T in a trusted execution environment (or TEE for "Trusted Execution Environment"). Such a trusted execution environment forms a secure execution environment (usable in place of the microcircuit card C), with for example a security level as defined above. The terminal T further comprises a communication module (not shown) in order to establish a communication with the network infrastructure R (here with a base station of this infrastructure), which allows the terminal T (and precisely in practice the processor P) to exchange data with other electronic devices or computers connected to the public network I, in particular as explained below with a server S connected to the public network I. A security hardware module M (or HSM for "Hardware Security 5 Module") is connected, here connected via a local network L, to the server S. Moreover, a data preparation computer D is also connected to this local network L. The security hardware module M stores in particular secret data associated with microcircuit cards used in terminals, in particular, in association with an identifier ID of the microcircuit card C, data secret cards associated with the microcircuit card C, such as the first static key K-MAC and the second static key K-ENC. FIG. 2 represents a method according to the invention, implemented here within the system of FIG. 1.

15 Le procédé représenté en figure 2 débute par une étape optionnelle E0 de transmission du serveur S au processeur P d'une instruction de lancement du processus d'authentification décrit ci-après. Cette étape E0 n'est toutefois pas nécessairement mise en oeuvre. En effet, le processeur P peut initier le procédé décrit ci-après (à partir de l'étape E2) 20 sur la base d'un autre évènement, par exemple l'expiration d'un compteur (au sein du terminal T), une action donnée de l'utilisateur (telle que le lancement d'une application particulière au moyen d'une interface homme-machine, non représentée, du terminal T), un appel du procédé par une autre application exécutée par le processeur P.The method shown in FIG. 2 begins with an optional step E0 of transmission from the server S to the processor P of an instruction to start the authentication process described hereinafter. This step E0, however, is not necessarily implemented. Indeed, the processor P can initiate the method described hereinafter (from step E2) on the basis of another event, for example the expiration of a counter (within the terminal T), a given action of the user (such as launching a particular application by means of a man-machine interface, not shown, of the terminal T), a call of the method by another application executed by the processor P.

25 Comme déjà indiqué plus haut, le procédé mis en oeuvre par le processeur P comme décrit ci-après est réalisé du fait de l'exécution des instructions d'une application (ou programme d'ordinateur) par le processeur P. Dans la variante mentionnée ci-dessus où un environnement d'exécution de confiance est utilisé (au moyen d'un système d'exploitation de confiance exécuté 30 par le processeur P), cette application est exécutée dans le cadre du fonctionnement dans l'environnement d'exécution polyvalent. Le processeur P génère à l'étape E2 un défi ACH, par exemple par tirage aléatoire. On dénommera dans la suite "défi de l'application" ce défi ACH, du fait qu'il est généré par l'application exécutée par le processeur P du terminal T pour 3029722 7 mettre en oeuvre notamment l'étape E2. Le processeur P émet alors à l'étape E4 une instruction de début de processus d'authentification, accompagnée du défi de l'application ACH, à destination de la carte à microcircuit C.As already indicated above, the method implemented by the processor P as described below is carried out because of the execution of the instructions of an application (or computer program) by the processor P. In the variant mentioned above where a trusted execution environment is used (by means of a trusted operating system run by the processor P), this application is executed as part of the operation in the runtime environment versatile. The processor P generates in step E2 an ACH challenge, for example by random draw. Hereinafter called "application challenge" this ACH challenge, because it is generated by the application executed by the processor P T terminal for 3029722 7 implement particular step E2. The processor P then emits at step E4 an instruction of beginning of the authentication process, accompanied by the challenge of the application ACH, to the microcircuit card C.

5 Cette instruction de début de processus d'authentification est ici une commande INITIALIZE UPDATE définie dans la spécification GlobalPlatform relative au protocole SCP03 (pour "Secure Channel Protocol 03") ou, en variante, une commande INITIALIZE UPDATE définie dans la spécification GlobalPlatform relative au protocole SCP02 (pour "Secure Channel Protocol 02"). Dans les deux 10 cas, le défi de l'application ACH généré à l'étape E2 est utilisé en lieu et place du défi d'hôte ("Host Challenge") dans la commande INITALIZE UPDATE. On remarque que l'instruction de début de processus d'authentification est générée par le processeur P (du fait de l'exécution de l'application), et ne correspond donc pas à la simple transmission d'une telle instruction reçue de 15 l'extérieur. La carte à microcircuit C détermine à l'étape E6 un cryptogramme de carte CAC et un défi de carte CCH. Ces éléments sont ici déterminés conformément à ce que prévoit la spécification SCP03 précitée ou, dans la variante déjà envisagée, la spécification SCP02. Dans chaque cas, le défi d'hôte 20 ("host challenge") est toutefois remplacé par le défi de l'application ACH. Le défi de carte CCH est par exemple déterminé par tirage aléatoire. En variante, il pourrait être déterminé de manière pseudo-aléatoire, comme décrit dans la spécification relative au protocole SCP03 (ou SCP02 le cas échéant). Le cryptogramme de carte CAC est déterminé par application au défi de 25 l'application ACH (reçu à l'étape E4) d'une fonction cryptographique (ici de cryptographie symétrique) utilisant une clé secrète, par exemple une clé de session (correspondant à la clé S-MAC dans le protocole SCP03) dérivée à partir de la première clé statique K-MAC mémorisée (comme indiqué ci-dessus) dans la mémoire non-volatile de la carte à microcircuit C.This authentication process start instruction is here an INITIALIZE UPDATE command defined in the GlobalPlatform specification for the SCP03 protocol (for "Secure Channel Protocol 03") or, alternatively, an INITIALIZE UPDATE command defined in the GlobalPlatform specification relating to the SCP02 protocol (for "Secure Channel Protocol 02"). In both cases, the challenge of the ACH application generated in step E2 is used instead of the host challenge ("Host Challenge") in the INITALIZE UPDATE command. Note that the start of authentication process instruction is generated by the processor P (due to the execution of the application), and therefore does not correspond to the simple transmission of such an instruction received from the user. 'outside. The microcircuit card C determines in step E6 a CAC card cryptogram and a CCH card challenge. These elements are here determined in accordance with the specification SCP03 mentioned above or, in the variant already envisaged, the specification SCP02. In each case, the challenge of host 20 ("host challenge") is, however, replaced by the challenge of the ACH application. The CCH card challenge is for example determined by random draw. Alternatively, it could be determined pseudo-randomly, as described in the protocol specification SCP03 (or SCP02 if applicable). The CAC card cryptogram is determined by applying to the challenge of the ACH application (received in step E4) a cryptographic function (here of symmetric cryptography) using a secret key, for example a session key (corresponding to the S-MAC key in the SCP03 protocol) derived from the first stored K-MAC static key (as indicated above) in the non-volatile memory of the microcircuit card C.

30 Le défi de carte CCH peut éventuellement être utilisé lors de la détermination du cryptogramme de carte CAC, par exemple par concaténation avec le défi de l'application ACH avant application de la fonction cryptographique comme indiqué ci-dessus. La carte à microcircuit C peut alors envoyer à l'étape E8 le 3029722 8 cryptogramme de carte CAC et le défi de carte CCH (en tant que réponse à la commande INITIALIZE UPDATE). Dans certains cas (par exemple dans le cas du mode prédictif du protocole SCP03, ou dans tous les cas de la variante déjà envisagée où le 5 protocole SCP02 est utilisé), la valeur d'un compteur est également transmise de la carte à microcircuit C au processeur P lors de l'étape E8. Le processeur P émet alors à l'étape E10 (du fait de l'exécution par le processeur P de l'application déjà mentionnée) une demande de connexion au serveur S, par exemple sous forme d'une demande de connexion sécurisée de 10 type TLS (pour "Transport Layer Security"). Le serveur S répond à cette demande, ici en acceptant l'établissement d'une connexion sécurisée entre le serveur S et le terminal T (étape E12). Le terminal T émet ensuite à l'étape E14 les données suivantes à destination du serveur S, ici via la connexion sécurisée établie aux étapes E10 et 15 E12 et par exemple au moyen d'une commande HTTP POST : - l'identifiant ID de l'environnement d'exécution sécurisé (ici de la carte à microcircuit C) ; - le défi de l'application ACH généré à l'étape E2 ; - le cryptogramme de carte CAC déterminé à l'étape E6 ; 20 - le défi de carte CCH déterminé à l'étape E6 ; - optionnellement, la valeur du compteur utilisée, comme indiqué ci-dessus, dans le cas du mode prédictif du protocole SCP03 ou dans le cas de la variante où le protocole SCP02 est utilisé. Le serveur S transfère ces données au module matériel de sécurité M à 25 l'étape E16 afin que celui-ci vérifie que le cryptogramme de carte CAC généré à l'étape E6 correspond bien à celui normalement associé au défi de l'application ACH par application de la fonction cryptographique utilisant la clé secrète dérivée à partir de la première clé statique K-MAC mémorisée dans la carte à microcircuit C, ce qui permet d'authentifier la carte à microcircuit C.The CCH card challenge may possibly be used in determining the CAC card cryptogram, for example by concatenating with the challenge of the ACH application prior to application of the cryptographic function as indicated above. The microcircuit card C can then send to step E8 the card cryptogram CAC and the card challenge CCH (as a response to the command INITIALIZE UPDATE). In some cases (for example in the case of the predictive mode of the SCP03 protocol, or in all cases of the variant already envisaged where the SCP02 protocol is used), the value of a counter is also transmitted from the microcircuit card C to the processor P during step E8. The processor P then emits at step E10 (due to the execution by the processor P of the application already mentioned) a connection request to the server S, for example in the form of a secure connection request of the type TLS (for "Transport Layer Security"). The server S responds to this request, here by accepting the establishment of a secure connection between the server S and the terminal T (step E12). The terminal T then sends in step E14 the following data to the server S, here via the secure connection established in steps E10 and E12 and for example by means of an HTTP POST command: the identifier ID of the secure execution environment (here of the microcircuit card C); the challenge of the ACH application generated in step E2; the CAC card cryptogram determined in step E6; The CCH card challenge determined in step E6; optionally, the value of the counter used, as indicated above, in the case of the predictive mode of the SCP03 protocol or in the case of the variant where the SCP02 protocol is used. The server S transfers these data to the security hardware module M in the step E16 so that it verifies that the CAC card cryptogram generated in the step E6 corresponds to that normally associated with the challenge of the ACH application by application of the cryptographic function using the secret key derived from the first K-MAC static key stored in the microcircuit card C, thereby authenticating the microcircuit card C.

30 On remarque que le défi utilisé ici n'a pas été généré côté serveur et qu'il n'est donc pas possible de s'assurer côté serveur que le défi est bien aléatoire et que la réponse ne provient pas d'un rejeu d'une réponse antérieure. Pour remédier à cela, le serveur S peut mémoriser par exemple tous les défis précédemment utilisés et n'authentifier la carte à microcircuit C qu'en présence 3029722 9 d'un nouveau défi (c'est-à-dire un défi différent de chacun des défis antérieurs mémorisés). En pratique, pour effectuer la vérification précitée, au cours de l'étape E18, le module matériel de sécurité M lit, par exemple dans une unité de stockage 5 de ce module M, la première clé statique K-MAC associée à l'identifiant ID de la carte à microcircuit C, dérive la clé de session S-MAC (selon le même processus que ci-dessus à l'étape E6) et applique la fonction cryptographique précitée au défi de l'application ACH, en utilisant la clé de session dérivée S-MAC, ce qui permet d'obtenir le cryptogramme CAC* attendu, normalement associé au défi de 10 l'application ACH. On remarque que l'application de la fonction cryptographique est réalisée conformément à ce que prévoit le protocole SCP03 (ou, dans la variante déjà envisagée, le protocole SCP02), en utilisant le défi de l'application ACH en lieu et place du défi d'hôte ("host challenge"), et utilise donc non seulement le défi de 15 l'application ACH, mais ici en outre le défi de la carte CCH et éventuellement la valeur du compteur. Le module matériel de sécurité M peut ainsi déterminer si le cryptogramme de carte CAC reçu à l'étape E16 est bien identique au cryptogramme attendu CAC*, calculé à l'étape E18.30 Note that the challenge used here was not generated server side and it is not possible to ensure server side that the challenge is very random and that the answer does not come from a replay an earlier answer. To remedy this, the server S can memorize for example all the previously used challenges and only authenticate the microcircuit card C in the presence of a new challenge (that is to say a challenge different from each one). previous challenges memorized). In practice, to perform the aforementioned verification, during step E18, the security hardware module M reads, for example in a storage unit 5 of this module M, the first static key K-MAC associated with the identifier ID of the microcircuit card C, derives the session key S-MAC (according to the same process as above in step E6) and applies the cryptographic function mentioned above to the challenge of the application ACH, using the key of S-MAC derived session, which provides the expected CAC * cryptogram, normally associated with the challenge of the ACH application. It is noted that the application of the cryptographic function is carried out in accordance with the SCP03 protocol (or, in the variant already envisaged, the SCP02 protocol), using the challenge of the ACH application instead of the challenge. host ("host challenge"), and therefore not only uses the challenge of the ACH application, but here also the challenge of the CCH card and possibly the value of the counter. The security hardware module M can thus determine whether the CAC card cryptogram received in step E16 is identical to the expected cryptogram CAC * calculated in step E18.

20 Le module matériel de sécurité M renvoie au serveur S une information représentative du résultat de la vérification (étape E20). Si la vérification a été un échec (c'est-à-dire lorsque le cryptogramme de carte CAC calculé à l'étape E16 par la carte à microcircuit C est différent du cryptogramme attendu CAC*), le serveur S met par exemple en oeuvre un 25 traitement d'erreur (non représenté), par exemple en mettant fin à la connexion avec le terminal T. Si la vérification s'est correctement effectuée, le processus se poursuit comme décrit ci-dessous par la préparation d'un script à exécuter par le microprocesseur de la carte à microcircuit C. On remarque que cette préparation 30 de script n'est ainsi réalisée qu'après authentification de la carte à microcircuit C, ce qui permet d'éviter une préparation inutile de script dans les cas où la carte à microcircuit C ne peut finalement pas s'authentifier. Dans certaines applications, on pourrait utiliser le cryptogramme de carte CAC, associé éventuellement avec le défi d'application ACH, comme mot de 3029722 10 passe à usage unique (ou OTP pour "one-time password') puisque ces éléments sont connus au niveau du serveur S (précisément dans le module matériel de sécurité M associé au serveur S) et au niveau du terminal T (précisément dans la carte à microcircuit C).The security hardware module M sends back to the server S information representative of the result of the verification (step E20). If the verification was a failure (that is to say when the CAC card cryptogram calculated in step E16 by the microcircuit card C is different from the expected cryptogram CAC *), the server S implements for example an error processing (not shown), for example by terminating the connection with the terminal T. If the verification was successful, the process continues as described below by preparing a script to to execute by the microprocessor of the microcircuit card C. It will be noted that this script preparation is thus performed only after authentication of the microcircuit card C, which makes it possible to avoid unnecessary script preparation in cases where the microcircuit card C can not finally be authenticated. In some applications, it would be possible to use the CAC card cryptogram, possibly associated with the ACH application challenge, as a 3029722 word for one-time password (or OTP) since these elements are known at the same time. server S (precisely in the security hardware module M associated with the server S) and at the terminal T (precisely in the microcircuit card C).

5 Ainsi, le cryptogramme CAC pourrait par exemple être utilisé en tant que clé secrète partagée dans le cadre du protocole SSL (en lieu et place de la clé éphémère de Diffie-Hellman), ou de même dans le cadre du protocole TLS, ou encore dans les en-têtes HTTPS. On remarque que ces éléments sont obtenus par l'utilisation de la 10 commande INITIALIZE UPDATE, usuellement disponible dans l'environnement d'exécution sécurisé (ici la carte à microcircuit C), sans qu'il soit nécessaire d'installer une application dédiée dans cet environnement (application couramment dénommée "cardief' dans le cas d'une carte à microcircuit ou "trustler dans le cas d'un environnement d'exécution de confiance).Thus, the CAC cryptogram could for example be used as a shared secret key in the context of the SSL protocol (instead of the ephemeral key of Diffie-Hellman), or likewise in the context of the TLS protocol, or in HTTPS headers. Note that these elements are obtained by the use of the command INITIALIZE UPDATE, usually available in the secure execution environment (here the microcircuit card C), without the need to install a dedicated application in this environment (application commonly referred to as "cardief" in the case of a microcircuit card or "trustler in the case of a trusted execution environment).

15 Par ailleurs, les secrets utilisés sont contenus dans l'environnement d'exécution sécurisé, et non dans l'application installée et exécutée par le processeur P pour mettre en oeuvre le procédé effectué par ce processeur P, comme indiqué ci-dessus, ce qui est préférable du fait que cette application n'est pas exécutée dans un environnement d'exécution sécurisé.Furthermore, the secrets used are contained in the secure execution environment, and not in the application installed and executed by the processor P to implement the method performed by this processor P, as indicated above, this which is preferable because this application is not running in a secure runtime environment.

20 Dans le cas de la figure 2, la préparation du script est déclenchée par l'émission, par le serveur S, d'une demande de script à destination de l'ordinateur de préparation de données D (étape E22), en annexant à cette demande l'identifiant ID de la carte à microcircuit C ainsi qu'éventuellement la valeur du compteur.In the case of FIG. 2, the preparation of the script is triggered by the sending, by the server S, of a script request to the data preparation computer D (step E22), by appending to this request the identifier ID of the microcircuit card C and possibly the value of the counter.

25 L'ordinateur de préparation de données D peut ainsi déterminer, sur la base de l'identifiant ID, quels traitements doivent être lancés au sein de la carte à microcircuit C (par exemple afin de mettre à jour certaines parties de la mémoire non-volatile réinscriptible de la carte à microcircuit C) et génère sur cette base à l'étape E24 un script destiné à la carte à microcircuit C, c'est-à-dire une liste de 30 commandes (ici de type APDU) destinées à la carte à microcircuit C. L'ordinateur de préparation de données D transmet alors à l'étape E26 le script généré au module matériel de sécurité M en vue de son chiffrement (en annexant par exemple l'identifiant ID de la carte à microcircuit C et éventuellement la valeur du compteur).The data preparation computer D can thus determine, on the basis of the identifier ID, which processes are to be started within the microcircuit card C (for example in order to update certain parts of the non-volatile memory. rewritable volatile microcircuit card C) and generates on this basis in step E24 a script for the microcircuit card C, that is to say a list of 30 commands (here of type APDU) for the microcircuit card C. The data preparation computer D then transmits in step E26 the script generated to the security hardware module M for encryption purposes (for example by attaching the identifier ID of the microcircuit card C and possibly the counter value).

3029722 11 Le module matériel de sécurité M procède alors à l'étape E28 au chiffrement de chacune des commandes du script (sauf la commande initiale INITIALIZE UPDATE comme expliqué ci-après), par exemple au moyen d'un algorithme cryptographique de chiffrement symétrique utilisant une clé de 5 chiffrement (clé de session S-ENC définie dans le protocole SCP03) dérivée ici (conformément à ce que prévoit le protocole SCP03 ou, en variante, le protocole SCP02) sur la base de la seconde clé statique K-ENC associée à la carte à microcircuit C, du défi de l'application ACH et du défi de la carte CCH reçus à l'étape E18, et éventuellement de la valeur du compteur.The security hardware module M then proceeds to step E28 at the encryption of each of the script's commands (except the initial INITIALIZE UPDATE command as explained hereinafter), for example by means of a symmetric cryptographic encryption algorithm using an encryption key (S-ENC session key defined in the SCP03 protocol) derived herein (as provided by the SCP03 protocol or, alternatively, the SCP02 protocol) based on the associated second K-ENC static key to the microcircuit card C, the challenge of the ACH application and the challenge of the CCH card received in step E18, and possibly the value of the counter.

10 On remarque que le module matériel de sécurité M détermine les données à utiliser dans cette étape (clé statique, défi de l'application ACH, défi de la carte CCH, valeur du compteur) sur la base de l'identifiant ID de la carte à microcircuit C reçu à l'étape E26 (la seconde clé statique K-ENC étant comme déjà indiqué préenregistrée dans le module matériel de sécurité M en association 15 avec l'identifiant ID, tandis que les défis ACH, CCH et la valeur du compteur ont été reçus avec cet identifiant ID à l'étape E16 et donc mémorisés à ce moment en association avec l'identifiant ID). Le module matériel de sécurité M renvoie le script chiffré à l'ordinateur de préparation de données D à l'étape E30, qui transmet ce script chiffré au 20 serveur S à l'étape E32. Le serveur S peut ainsi envoyer à l'étape E34 le script chiffré au processeur P, par exemple au sein d'une réponse HTTP à la commande POST émise à l'étape E14 par l'application exécutée sur le processeur P. Le processeur P reçoit ainsi le script chiffré et envoie, une à une, les 25 commandes chiffrées formant ce script à la carte à microcircuit C. Le processeur P envoie ainsi une première commande à l'étape E36, par exemple une commande INITIALIZE UPDATE (telle que définie dans les spécifications précitées). On propose en effet ici d'envoyer à nouveau une commande INITIALIZE UPDATE à la carte à microcircuit C de manière à assurer 30 une initiation correcte du protocole concerné (ici SCP03) car le canal logique mis en place à l'étape E4 peut avoir été interrompu lors de la mise en oeuvre de l'étape E36. Selon une variante envisageable, cette première commande INITIALIZE UPDATE pourrait toutefois être omise. La commande INITIALIZE UPDATE est accompagnée d'un défi d'hôte 3029722 12 HCH' (introduit par exemple dans le script lors de sa génération à l'étape E24). La carte à microcircuit C exécute à l'étape E38 la commande reçue à l'étape E36, ici en mettant en oeuvre un traitement du même type que celui effectué à l'étape E6, ce qui permet d'obtenir un nouveau défi de carte CCH' et un 5 nouveau cryptogramme de carte CAC'. Le processeur P reçoit à l'étape E39 le résultat du traitement effectué à l'étape E38 (ici le nouveau défi de carte CCH' et le nouveau cryptogramme de carte CAC') et émet donc à l'étape E40 la commande suivante (ici la seconde commande) à destination de la carte à microcircuit C, ici une commande 10 EXTERNAL AUTHENTICATE. Une telle commande est accompagnée d'un cryptogramme de l'hôte ("host cryptogram") qui permet à la carte à microcircuit C d'authentifier l'émetteur du script. (On remarque qu'un tel cryptogramme de l'hôte peut être préparé à l'avance en utilisant certains modes de fonctionnement du protocole SCP03, notamment la génération du défi de carte en mode pseudo- 15 aléatoire.) La carte à microcircuit C reçoit la seconde commande, la déchiffre et procède au traitement demandé à l'étape E42, ici en vérifiant le cryptogramme de l'hôte afin d'authentifier l'émetteur du script. Si l'authentification est réussie (comme envisagé en figure 2), la carte à 20 microcircuit C renvoie à l'étape E43 un résultat positif au processeur P et attend la suite des commandes. Le processeur P envoie la troisième commande (ici une commande APDU) à la carte à microcircuit C à l'étape E44. La carte à microcircuit C déchiffre cette troisième commande (et vérifie 25 en outre également un code d'authentification de message pour garantir l'intégrité), puis l'exécute afin d'effectuer le traitement correspondant à l'étape E46 et d'envoyer le résultat de l'exécution au processeur P à l'étape E47. Le processeur P procède ainsi pour toutes les commandes successives jusqu'à la dernière commande : le processeur P envoie la dernière commande (ici 30 une commande APDU) à la carte à microcircuit C à l'étape E48 ; la carte à microcircuit C reçoit et déchiffre cette dernière commande, puis l'exécute afin d'effectuer le traitement correspondant à l'étape E50 et d'envoyer le résultat de l'exécution au processeur P à l'étape E51. Le processeur P envoie à l'étape E52 l'ensemble des résultats des 3029722 13 commandes successives (résultats respectivement reçus de la carte à microcircuit C aux étapes E39, E43, E47 et E51 comme indiqué ci-dessus) au serveur S, par exemple dans une requête HTTP POST. Le serveur S transmet ces données (résultats) à l'ordinateur de 5 préparation de données D. L'ordinateur de préparation de données D peut alors préparer et émettre un nouveau script, lorsque cela est nécessaire pour l'application concernée, selon des étapes similaires aux étapes E24 à E32 décrites ci-dessus. Dans le cas de la figure 2, il n'y a pas de nouveau script à émettre et 10 l'ordinateur de préparation de données D émet à l'étape E56 une réponse indiquant que le traitement est terminé (par exemple une réponse sans donnée annexée) à destination du serveur S. Le serveur S répond alors à l'étape E58 au processeur P avec une indication du même type, par exemple une réponse HTTP comportant le code 15 "204, signifiant que la requête précédemment émise (ici la requête HTTP POST de l'étape E52) a été traitée mais n'a généré aucune donnée en réponse. Le processeur P met alors fin à l'étape E60 à la connexion sécurisée initiée lors des étapes E10 et E12.It should be noted that the security hardware module M determines the data to be used in this step (static key, challenge of the ACH application, challenge of the CCH card, value of the counter) on the basis of the identifier ID of the card with microcircuit C received in step E26 (the second static key K-ENC being as already indicated pre-recorded in the security hardware module M in association with the identifier ID, while the challenges ACH, CCH and the value of the counter were received with this identifier ID in step E16 and thus stored at that time in association with the identifier ID). The security hardware module M returns the encrypted script to the data preparation computer D in step E30, which transmits this encrypted script to the server S in step E32. The server S can thus send to step E34 the script encrypted to the processor P, for example within an HTTP response to the POST command issued in step E14 by the application executed on the processor P. The processor P thus receives the encrypted script and sends, one by one, the encrypted commands forming this script to the microcircuit card C. The processor P sends a first command in step E36, for example an INITIALIZE UPDATE command (as defined in the above specifications). It is proposed here to send again an INITIALIZE UPDATE command to the microcircuit card C so as to ensure proper initiation of the protocol concerned (here SCP03) because the logical channel set up in step E4 may have been interrupted during the implementation of step E36. According to one conceivable variant, this first INITIALIZE UPDATE command could however be omitted. The command INITIALIZE UPDATE is accompanied by a host challenge 3029722 12 HCH '(introduced for example in the script during its generation in step E24). The microcircuit card C executes in step E38 the command received in step E36, here by implementing a processing of the same type as that performed in step E6, which makes it possible to obtain a new card challenge. CCH 'and a new CAC card cryptogram'. The processor P receives in step E39 the result of the processing performed in step E38 (here the new card challenge CCH 'and the new card cryptogram CAC') and thus emits at step E40 the following command (here the second command) to the microcircuit card C, here an EXTERNAL AUTHENTICATE command. Such a command is accompanied by a cryptogram of the host ("host cryptogram") which allows the microcircuit card C to authenticate the sender of the script. (Note that such a cryptogram of the host may be prepared in advance using certain modes of operation of the SCP03 protocol, including the generation of the card challenge in pseudo-random mode.) The microcircuit card C receives the second command, decrypts it and proceeds to the processing requested in step E42, here by verifying the cryptogram of the host in order to authenticate the issuer of the script. If the authentication is successful (as envisaged in FIG. 2), the microcircuit card C returns to step E43 a positive result to the processor P and waits for further commands. The processor P sends the third command (here an APDU command) to the microcircuit card C in step E44. The microcircuit card C decrypts this third command (and furthermore also checks a message authentication code to guarantee integrity), then executes it to perform the processing corresponding to the step E46 and send the result of the execution at the processor P in step E47. The processor P thus proceeds for all successive commands until the last command: the processor P sends the last command (here an APDU command) to the microcircuit card C in step E48; the microcircuit card C receives and decrypts the latter command, then executes it to perform the processing corresponding to the step E50 and to send the result of the execution to the processor P in the step E51. The processor P sends in step E52 all the results of the successive commands (results respectively received from the microcircuit card C in steps E39, E43, E47 and E51 as indicated above) to the server S, for example in an HTTP POST request. The server S transmits this data (results) to the data preparation computer D. The data preparation computer D can then prepare and issue a new script, when necessary for the application concerned, according to steps similar to steps E24 to E32 described above. In the case of FIG. 2, there is no new script to be transmitted and the data preparation computer D emits in step E56 a response indicating that the processing is finished (for example a response without data annexed) to the server S. The server S then responds to the step E58 to the processor P with an indication of the same type, for example an HTTP response comprising the code "204, meaning that the previously transmitted request (here the request HTTP POST of step E52) was processed but did not generate any data in response, the processor P then terminates step E60 at the secure connection initiated during steps E10 and E12.

Claims (16)

REVENDICATIONS1. Procédé d'émission conditionnelle de données d'un serveur (S) à un terminal (T), comprenant les étapes suivantes : - génération (E2) d'un défi (ACH) par un processeur (P) du terminal (T) ; - transmission (E4) du défi (ACH) à un environnement d'exécution sécurisé (C) hébergé par le terminal (T) ; - génération (E6) d'un cryptogramme (CAC) dans l'environnement 10 d'exécution sécurisé (C) par application au défi (ACH) d'un algorithme cryptographique ; - émission (E14) par le terminal (T) du défi (ACH) et du cryptogramme (CAC) à destination du serveur (S) via un réseau de télécommunication (I, R) ; - vérification (E18), au niveau du serveur (S), de la concordance du 15 cryptogramme (CAC) et du défi (ACH) en vue de l'authentification du terminal (T) ; - lorsque ladite concordance est vérifiée à l'étape de vérification (E18), lancement (E22) d'un mécanisme de préparation de données et envoi (E34) des données préparées à destination du terminal (T) via ledit réseau de télécommunication (I, R). 20REVENDICATIONS1. A method of conditional data transmission from a server (S) to a terminal (T), comprising the following steps: - generation (E2) of a challenge (ACH) by a processor (P) of the terminal (T); - challenge transmission (E4) (ACH) to a secure execution environment (C) hosted by the terminal (T); generation (E6) of a cryptogram (CAC) in the secure execution environment (C) by challenge application (ACH) of a cryptographic algorithm; - transmission (E14) by the terminal (T) challenge (ACH) and cryptogram (CAC) to the server (S) via a telecommunications network (I, R); checking (E18), at the server (S) level, the concurrency of the cryptogram (CAC) and the challenge (ACH) with a view to the authentication of the terminal (T); when said match is verified at the checking step (E18), starting (E22) of a data preparation mechanism and sending (E34) of the data prepared to the terminal (T) via said telecommunications network (I , R). 20 2. Procédé d'émission conditionnelle selon la revendication 1, dans lequel les étapes de génération (E2) du défi (ACH), de transmission (E4) du défi (ACH) et d'émission (E14) du défi (ACH) et du cryptogramme (CAC) sont mises en oeuvre du fait de l'exécution d'une application par le processeur (P).The conditional transmission method according to claim 1, wherein the steps of generating (E2) challenge (ACH), challenge transmission (E4) (ACH) and challenge (E14) (ACH) and cryptogram (CAC) are implemented because of the execution of an application by the processor (P). 3. Procédé d'émission conditionnelle selon la revendication 1 ou 2, dans 25 lequel le défi (ACH) est généré par tirage aléatoire.3. The conditional transmission method according to claim 1 or 2, wherein the challenge (ACH) is generated by random draw. 4. Procédé d'émission conditionnelle selon l'une des revendications 1 à 3, dans lequel l'algorithme cryptographique utilise une clé secrète mémorisée dans l'environnement d'exécution sécurisé (C).4. conditional transmission method according to one of claims 1 to 3, wherein the cryptographic algorithm uses a secret key stored in the secure execution environment (C). 5. Procédé d'émission conditionnelle selon l'une des revendications 1 à 30 4, dans lequel l'environnement d'exécution sécurisé est réalisé par un module sécurisé (C) ou par un environnement d'exécution de confiance.5. conditional transmission method according to one of claims 1 to 4, wherein the secure execution environment is performed by a secure module (C) or by a trusted execution environment. 6. Procédé d'émission conditionnelle selon la revendication 5, dans lequel l'environnement d'exécution sécurisé est réalisé par ledit module sécurisé, le procédé comprenant une étape de transmission (E8) du cryptogramme généré 3029722 15 (CAC) du module sécurisé (C) au processeur (P).The conditional transmission method according to claim 5, wherein the secure execution environment is performed by said secure module, the method comprising a step of transmitting (E8) the generated cryptogram 3029722 (CAC) of the secure module ( C) to the processor (P). 7. Procédé d'émission conditionnelle selon la revendication 5, dans lequel le terminal est conçu pour fonctionner sélectivement dans un environnement d'exécution polyvalent ou dans ledit environnement d'exécution de 5 confiance.The conditional transmission method according to claim 5, wherein the terminal is adapted to operate selectively in a multi-purpose execution environment or in said trusted execution environment. 8. Procédé d'émission conditionnelle selon l'une des revendications 1 à 7, dans lequel l'étape de vérification (E18) est mise en oeuvre par un module matériel de sécurité (M) associé au serveur (S).8. Conditional transmission method according to one of claims 1 to 7, wherein the verification step (E18) is implemented by a security hardware module (M) associated with the server (S). 9. Procédé d'émission conditionnelle selon l'une des revendications 1 à 8, comprenant une étape de comparaison, au niveau du serveur (S), du défi reçu (ACH) et de défis préalablement reçus et mémorisés au niveau du serveur, et dans lequel le mécanisme de préparation des données est lancé seulement si le défi reçu est différent de chacun des défis préalablement reçus.9. conditional transmission method according to one of claims 1 to 8, comprising a step of comparison, at the server (S), the challenge received (ACH) and challenges previously received and stored at the server, and in which the data preparation mechanism is launched only if the challenge received is different from each of the previously received challenges. 10. Procédé d'émission conditionnelle selon l'une des revendications 1 à 9, dans lequel ladite préparation des données est une génération d'un script.The conditional transmission method according to one of claims 1 to 9, wherein said data preparation is a generation of a script. 11. Procédé d'émission conditionnelle selon la revendication 10, dans lequel le script généré est un script de personnalisation ou un script de gestion de carte.The conditional transmission method according to claim 10, wherein the generated script is a personalization script or a card management script. 12. Procédé d'émission conditionnelle selon la revendication 10 ou 11, 20 comprenant une étape de chiffrement (E28) du script au moyen d'un algorithme cryptographique de chiffrement utilisant une clé de chiffrement obtenue en utilisant le défi (ACH).The conditional transmission method according to claim 10 or 11, comprising an encryption step (E28) of the script using an encryption cryptographic algorithm using an encryption key obtained using the challenge (ACH). 13. Procédé d'émission conditionnelle selon l'une des revendications 1 à 12, dans lequel les étapes de génération du cryptogramme et de vérification de la 25 concordance sont conformes à un protocole de type SCP02 ou SCP03.13. The conditional transmission method according to one of claims 1 to 12, wherein the cryptogram generation and concordance checking steps are in accordance with a SCP02 or SCP03 type protocol. 14. Procédé d'émission conditionnelle selon l'une des revendications 1 à 13, dans lequel l'étape de transmission du défi est réalisée par une commande de type INITIALIZE UPDATE.14. Conditional transmission method according to one of claims 1 to 13, wherein the challenge transmission step is performed by a command type INITIALIZE UPDATE. 15. Terminal (T) comprenant un processeur (P) et des moyens (C) de 30 mise en oeuvre d'un environnement d'exécution sécurisé conçu pour générer un cryptogramme (CAC) par application d'un algorithme cryptographique à un défi (ACH), caractérisé en ce qu'une mémoire associée au processeur mémorise une application conçue pour générer le défi (ACH), pour transmettre le défi (ACH) 3029722 16 à l'environnement d'exécution sécurisé, pour recevoir le cryptogramme (CAC) en provenance de l'environnement d'exécution sécurisé et pour émettre le défi (ACH) et le cryptogramme (CAC) à destination d'un serveur (S) via un réseau de télécommunication (I, R), lorsque l'application est exécutée par le processeur (P). 515. Terminal (T) comprising a processor (P) and means (C) for implementing a secure execution environment designed to generate a cryptogram (CAC) by applying a cryptographic algorithm to a challenge ( ACH), characterized in that a memory associated with the processor stores an application designed to generate the challenge (ACH), to transmit the challenge (ACH) 3029722 16 to the secure execution environment, to receive the cryptogram (CAC) from the secure execution environment and to issue the challenge (ACH) and the cryptogram (CAC) to a server (S) via a telecommunication network (I, R), when the application is executed by the processor (P). 5 16. Ensemble serveur comprenant : - des moyens de réception (S) d'un défi (ACH) et d'un cryptogramme (CAC) en provenance d'un terminal (T) via un réseau de télécommunication (I, R) ; - des moyens de vérification (M) de la concordance du cryptogramme (CAC) et du défi (ACH) en vue de l'authentification du terminal (T) ; 10 - des moyens, activés seulement en cas de vérification de la concordance par les moyens de vérification, pour lancer (E22) un mécanisme de préparation de données et envoyer les données préparées à destination du terminal (T) via ledit réseau de télécommunication (I, R). 1516. A server assembly comprising: - receiving means (S) of a challenge (ACH) and a cryptogram (CAC) from a terminal (T) via a telecommunications network (I, R); means (C) for checking the concordance of the cryptogram (CAC) and the challenge (ACH) for the authentication of the terminal (T); Means, activated only in case of verification of the concordance by the verification means, to start (E22) a data preparation mechanism and send the prepared data to the terminal (T) via said telecommunication network (I); , R). 15
FR1461886A 2014-12-03 2014-12-03 METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER Active FR3029722B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1461886A FR3029722B1 (en) 2014-12-03 2014-12-03 METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1461886A FR3029722B1 (en) 2014-12-03 2014-12-03 METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER

Publications (2)

Publication Number Publication Date
FR3029722A1 true FR3029722A1 (en) 2016-06-10
FR3029722B1 FR3029722B1 (en) 2016-12-30

Family

ID=53059180

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1461886A Active FR3029722B1 (en) 2014-12-03 2014-12-03 METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER

Country Status (1)

Country Link
FR (1) FR3029722B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120233685A1 (en) * 2011-03-09 2012-09-13 Qualcomm Incorporated Method for authentication of a remote station using a secure element
US20130013928A1 (en) * 2011-07-05 2013-01-10 Microsoft Corporation Secure Credential Unlock Using Trusted Execution Environments
EP2755364A1 (en) * 2013-01-11 2014-07-16 ST-Ericsson SA Authentication systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120233685A1 (en) * 2011-03-09 2012-09-13 Qualcomm Incorporated Method for authentication of a remote station using a secure element
US20130013928A1 (en) * 2011-07-05 2013-01-10 Microsoft Corporation Secure Credential Unlock Using Trusted Execution Environments
EP2755364A1 (en) * 2013-01-11 2014-07-16 ST-Ericsson SA Authentication systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BRYAN PARNO ET AL: "Secure Sensor Network Routing: A Clean-Slate Approach*", PROCEEDINGS OF THE 2006 ACM CONEXT CONFERENCE ON , CONEXT '06, 1 January 2006 (2006-01-01), New York, New York, USA, XP055218155, ISBN: 978-1-59-593456-7, DOI: 10.1145/1368436.1368452 *
PIER FRANCESCO CORTESE ET AL: "Efficient and practical authentication of PUF-based RFID tags in supply chains", RFID-TECHNOLOGY AND APPLICATIONS (RFID-TA), 2010 IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 17 June 2010 (2010-06-17), pages 182 - 188, XP031718597, ISBN: 978-1-4244-6698-6 *

Also Published As

Publication number Publication date
FR3029722B1 (en) 2016-12-30

Similar Documents

Publication Publication Date Title
EP3152860B1 (en) Method for the authentication of a first electronic entity by a second electronic entity, and electronic entity implementing such a method
EP3010175B1 (en) Replay of a batch of secure commands in a secure channel
FR2926938A1 (en) METHOD OF AUTHENTICATING AND SIGNING A USER TO AN APPLICATION SERVICE USING A MOBILE PHONE AS A SECOND FACTOR IN COMPLEMENT AND INDEPENDENTLY OF A FIRST FACTOR
EP2166728A1 (en) Verfahren zum Austausch von Daten, beispielsweise von kryptographischen Schlüsseln, zwischen einem Informationssystem und einer elektronischen Einheit, wie beispielsweise einer Mikrochip-Karte
FR2989799A1 (en) METHOD FOR TRANSFERRING A DEVICE TO ANOTHER RIGHTS OF ACCESS TO A SERVICE
EP3308564B1 (en) Procédé de chargement d'une clé virtuelle et terminal utilisateur associé
EP3032799A1 (en) Method for authenticating a user, corresponding server, communication terminal and programs
EP3375133B1 (en) Method for securing and authenticating a telecommunication
FR3030828A1 (en) METHOD FOR SECURING CONTACTLESS TRANSACTIONS
EP3857413A1 (en) Method for processing a transaction, device, system and corresponding program
EP3343967B1 (en) Methods performed by a device in a network, and associated electronic entity
EP2772869A1 (en) Method and system for cryptographic processing using sensitive data
EP3154284A1 (en) Pairing method in a peripheral device and in a communication terminal, corresponding devices and program
FR3029722A1 (en) METHOD FOR CONDITIONALLY TRANSMITTING DATA FROM A SERVER TO A TERMINAL, TERMINAL AND ASSOCIATED SERVER
EP3314596B1 (en) Method for controlling a functionality of a vehicle by means of a user terminal
FR3076014A1 (en) INTEGRITY CONTROL OF AN ELECTRONIC DEVICE
EP3231152B1 (en) Dynamic data encryption method, and associated method for controlling decryption rights
EP2159763A1 (en) System and method for delivering a good or a service to a user
FR2887717A1 (en) METHOD OF CREATING AN ECLATE TERMINAL BETWEEN A BASE TERMINAL AND SERIES-CONNECTED EQUIPMENT
EP3743871A1 (en) Secure system for transactions between terminals
FR3025631A1 (en) SECURE SELECTION OF AN APPLICATION IN A CHIP OR EQUIVALENT CARD
WO2016034812A1 (en) Securing of encryption keys for transactions on a device lacking a secure module
WO2021099199A1 (en) Method and system for provision or secure replacement of a secret in at least one portable communication device
EP1262860A1 (en) System and method for user authentication
EP3899765A1 (en) Reinitialization of an application secret by way of the terminal

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160610

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 6

CA Change of address

Effective date: 20200826

CJ Change in legal form

Effective date: 20200826

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10