Brevet FR2981239A1 — publié le 20130412

PROCEDE DE TELECHARGEMENT SECURISE DE CLES D'ACCES AU MOYEN D'UN DISPOSITIF MOBILE Domaine de l'invention La présente invention se rapporte au domaine des télécommunications. La présente invention se rapporte plus particulièrement à un procédé de téléchargement sécurisé de clés d'accès au moyen d'un dispositif mobile. La présente invention concerne une architecture globale permettant de réaliser une gestion des identités ou des codes d'accès dans des cartes RFID, par exemple de type «mifare» (technologie de la société NXP) ou de type IS014443, de façon totalement sécurisée. La présente invention s'appuie sur trois composants principaux : une carte sans contact à interface RFID duale, un dispositif mobile, de préférence de type «smartphone» pouvant intégrer un lecteur NFC («Near Field Communication») et un serveur distant permettant de gérer une authentification TLS («Transport Layer Security») mutuelle. Etat de la technique Les utilisateurs font face à un déploiement croissant de cartes sans contact, que ce soit en tant que cartes de fidélité, cartes de parking, de transport, de chambre d'hôtel, etc. Ces nombreux cas d'utilisation conduisent irrémédiablement à une multiplication de celles-ci dans les effets personnels de leurs porteurs. Une majorité de ces cartes sans contact reposent en fait sur la même technologie : la technologie Mifare ou IS014443. Les cartes Mifare et/ou ISO 14443 sont des cartes sans contact de type NFC («Near Field Communication») que l'on peut globalement distinguer en deux sous-catégories : les cartes de type Mifare standard et les cartes de type Mifare ou IS014443 à microcontrôleurs dédiées. - Les cartes Mifare standard sont essentiellement des composants de stockage d'applications ou de droits d'accès à capacité computationnelle limitée. Elles comportent généralement un ou quatre kilo octets de mémoire de type E2PROM, organisée en 16 ou 40 secteurs composés de 4 blocs de 16 octets chacun. Les accès en lecture ou en écriture à ces blocs (à l'exception du bloc 0) sont contrôlés par une paire de clés que chaque secteur contient individuellement dans son dernier bloc. Le bloc 0 contient l'identité de la carte ainsi que les données du fabricant et ne peut être accédé en écriture. Typiquement, l'utilisation de ces cartes ou composants se fait à l'aide d'opérations en lecture/écriture réalisées sur ces secteurs par des lecteurs ou des serrures d'accès physiques possédant ce type de lecteurs. Ces cartes sont peu coûteuses mais posent un problème de sécurité : leur protocole de sécurité, Crypto_1, n'implémente pas totalement la norme ISO 14443_1-3 et est connu pour avoir été cassé récemment. A l'heure actuelle, on est capable de retrouver les clés contenues dans les secteurs en moins d'une seconde. La nouvelle génération de Mifare utilise un autre protocole cryptographique qui repose sur le hash d'un triple-DES effectué à partir de la paire de clés secrètes associée à chaque secteur. Toutefois, ce nouveau protocole ne garantit pas une sécurité optimale puisqu'en raison de la faible taille du Nash (48 octets), on peut incidemment retrouver la paire de clés associée à un secteur par force brute en 21\48 essais. - Les cartes Mifare à microcontrôleurs dédiés sont, elles, plus performantes et plus sécurisées, mais leur coût est aussi beaucoup plus important, ce qui a tendance à limiter leurs cas d'utilisation industrielle à grande échelle, notamment celles du type parking, transport, chambre 3 0 d'hôtel ou billetterie. La technologie RFID, en particulier NFC, sur laquelle s'appuient les cartes sans contact (par exemple de type Mifare) est un type de communication sans fil à haute fréquence permettant de faire communiquer à courte portée un appareil NFC avec un autre appareil NFC, ou bien avec une puce sans contact de type RFID. La technologie NFC implémente notamment la norme ISO/CEI 14443-1 à 4 définie pour implémenter les cartes sans contact de type RFID à une fréquence de 13.56 MHz; et elle a été principalement développée pour permettre aux téléphones portables d'intégrer deux types de fonctionnalités RFID (par exemple de type NFC) : une fonctionnalité «lecteur de carte RFID» ; et parfois le téléphone intègre également la fonctionnalité «carte RFID». Avec l'émergence des dispositifs mobiles de type objets portables ayant un accès Internet (« terminaux portables »), tels, par exemple, les «Smartphones» ou les tablettes et des applications de type NFC, certaines architectures reposent sur l'utilisation des « terminaux portables » en tant que «carte RFID» à clés à la manière des cartes RFID de type Mifare. Ce canevas pose toutefois deux problèmes majeurs : - Premièrement, à l'heure actuelle tous les « terminaux portables » (Smartphones, tablettes,etc ...) ne contiennent pas l'application RFID / NFC de type «carte RFID» ce qui limite ce type de déploiement. - Deuxièmement, dans le cas de l'utilisation d'un composant RFID pour gérer plusieurs applications, la multiplication des applications propriétaires pouvant accéder en lecture et en écriture au contenu de la «carte RFID» pose la question de la confidentialité et de la gestion de la mémoire et des accès à celle-ci, sachant que les registres de la gestion mémoire d'une carte type Mifare sont partagés par l'ensemble des applications pouvant accéder à la carte. De façon plus spécifique, si l'on considère l'utilisation typique d'une carte Mifare dans un contexte d'accès physique, tel par exemple celui à une chambre d'hôtel, celle-ci s'articule autour de trois composants principaux : un logiciel de programmation, un lecteur appartenant au système d'accès physique (par exemple une serrure d'accès) et la carte Mifare du client. De manière générale, la carte RFID, par exemple de type Mifare, est accédée en écriture par un lecteur dans lequel est exécuté le logiciel de programmation de carte, les droits d'accès sont calculés par ce dernier puis téléchargés sous forme de données dans un secteur de la carte RFID (par exemple de type Mifare) en la cryptant optionnellement à l'aide de la paire de clef du secteur. Lorsque la carte est présentée devant la serrure de contrôle d'accès, celle-ci a été programmée pour fonctionner avec l'application téléchargée dans la carte RFID (typiquement Mifare), la «serrure» accède donc en lecture au secteur qui lui est imparti et valide l'accès si l'application contenue dans la carte correspond à ce que le programme attend. Exposé de l'invention La présente invention vise à proposer un procédé permettant de télécharger de façon sécurisée et à distance des clés d'accès dans une carte sans contact, par exemple mais non exclusivement de type Mifare, au moyen d'un dispositif mobile, par exemple de type «smartphone». A cet effet, la présente invention concerne, dans son acception la plus générale, un procédé de communication mettant en oeuvre un dispositif mobile, une carte sans contact et un serveur distant, caractérisé en ce qu'il comporte les étapes suivantes : - sélection par un utilisateur sur ledit dispositif mobile d'une application dédiée au téléchargement de codes d'accès lorsque ledit utilisateur place ladite carte sans contact à portée dudit dispositif mobile ; - détection d'une puce de ladite carte sans contact par ledit dispositif mobile à l'aide de ladite application sélectionnée par l'utilisateur ; - connexion dudit dispositif mobile à ladite puce de ladite carte sans contact sur une interface sécurisée ; - établissement d'une connexion par ledit dispositif mobile entre ladite puce de ladite carte sans contact et ledit serveur distant ; - authentification de la validité d'une clé de ladite puce de ladite carte sans contact par ledit serveur distant ; - vérification de l'identité dudit serveur distant par ladite puce de ladite carte sans contact ; - ladite application dudit dispositif mobile servant de relais entre ledit serveur distant et une application sécurisée de ladite carte sans contact ; - calcul de blocs cryptographiques par ladite puce de ladite carte sans contact et transfert desdits blocs cryptographiques audit dispositif mobile ; - transmission d'une requête de ladite application dudit dispositif mobile sur une page dudit serveur distant afin de récupérer une clé d'accès pour ladite puce de ladite carte sans contact ; - vérification par ledit serveur distant des droits d'accès liés à ladite carte sans contact ; - en fonction des droits d'accès, construction par ledit serveur distant d'une structure de données chiffrées contenant une clé d'accès et une signature cryptographique ; - transmission par ledit serveur distant audit dispositif mobile d'une réponse contenant ladite structure de données ; - transmission dudit dispositif mobile à ladite carte sans contact de ladite structure de données ; - vérification par ladite puce de ladite carte sans contact de la signature comprise dans ladite structure de données et déchiffrement de la valeur de la clé d'accès à l'aide d'une clé privée ; et - utilisation par ladite puce de ladite carte sans contact de la valeur de la clé d'accès pour une application. Selon un mode de réalisation, ledit dispositif mobile est un téléphone mobile. De préférence, ledit dispositif mobile est un téléphone mobile de type «smartphone». Selon un mode de réalisation, ledit dispositif mobile est une tablette tactile. Avantageusement, ladite carte sans contact est une carte de type RFID («Radio Frequency Identification»). De préférence, la connexion dudit dispositif mobile à ladite puce de ladite carte sans contact sur une interface sécurisée est réalisée en NFC («Near Field Communication»). Avantageusement, ladite interface sécurisée est une interface de type EAP- TLS («Extensible Authentication Protocol / Transport Layer Security»). Selon un mode de réalisation, la transmission d'une requête de ladite application dudit dispositif mobile sur une page dudit serveur distant est réalisée 20 au moyen du protocole SSL («Secure Socket Layer») ou TLS («Transport Layer Security»). Avantageusement, la vérification par ledit serveur distant des droits d'accès liés à ladite carte sans contact est réalisée en récupérant la clé publique de 25 ladite carte sans contact grâce à une connexion SSL («Secure Socket Layer») ou TLS («Transport Layer Security») préalablement établie, et ledit serveur distant fait correspondre ladite clé publique à son équivalent stocké dans une base de données. Selon un mode de réalisation, ladite puce de ladite carte sans contact utilise ensuite une API (interface de programmation ou «Application Programming Interface») de type «Mifare» pour accéder à son interface «Mifare» en écriture et inscrire la valeur de la clé de session dans un des blocs appropriés et réservés à l'application «Mifare». Brève description des dessins On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux Figures dans lesquelles : - la Figure 1 représente les différents composants mis en oeuvre dans le procédé selon la présente invention ; et - la Figure 2 illustre les différentes étapes du procédé selon la présente invention. Description détaillée des modes de réalisation de l'invention La Figure 1 représente les différents composants mis en oeuvre dans le procédé selon la présente invention : une carte sans contact 11 comportant une puce 21 et communiquant avec un dispositif mobile 10 comportant une application 20, ledit dispositif mobile 10 communiquant avec un serveur distant 12. La Figure 2 illustre les différentes étapes du procédé selon la présente invention : sélection par un utilisateur sur ledit dispositif mobile 10 d'une application 20 dédiée au téléchargement de codes d'accès CA1, CA2, ..., CAn lorsque ledit utilisateur place ladite carte sans contact 11 à portée dudit dispositif mobile 10 ; - détection d'une puce 21 de ladite carte sans contact 11 par ledit dispositif mobile 10 à l'aide de ladite application 20 sélectionnée par l'utilisateur ; - connexion dudit dispositif mobile 10 à ladite puce 21 de ladite carte sans contact 11 sur une interface sécurisée 22 ; - établissement d'une connexion par ledit dispositif mobile 10 entre ladite puce 21 de ladite carte sans contact 11 et ledit serveur distant 12 ; - authentification de la validité d'une clé de ladite puce 21 de ladite carte sans contact 11 par ledit serveur distant 12 ; - vérification de l'identité dudit serveur distant 12 par ladite puce 21 de ladite carte sans contact 11 ; - ladite application 20 dudit dispositif mobile 10 servant de relais entre ledit serveur distant 12 et une application sécurisée 23 de ladite carte sans contact 11 ; - calcul de blocs cryptographiques par ladite puce 21 de ladite carte sans contact 11 et transfert desdits blocs cryptographiques audit dispositif mobile 10 ; - transmission d'une requête de ladite application 20 dudit dispositif mobile 10 sur une page dudit serveur distant 12 afin de récupérer une clé d'accès pour ladite puce 21 de ladite carte sans contact 11 ; - vérification par ledit serveur distant 12 des droits d'accès liés à ladite carte sans contact 11 ; - en fonction des droits d'accès, construction par ledit serveur distant 12 d'une structure de données 24 chiffrées contenant une clé d'accès et une signature cryptographique ; - transmission par ledit serveur distant 12 audit dispositif mobile 10 d'une réponse contenant ladite structure de données 24 ; - transmission dudit dispositif mobile 10 à ladite carte sans contact 11 de ladite structure de données 24 ; - vérification par ladite puce 21 de ladite carte sans contact 11 de la signature comprise dans ladite structure de données 24 et déchiffrement de la valeur de la clé d'accès à l'aide d'une clé privée ; et - utilisation par ladite puce 21 de ladite carte sans contact 11 de la valeur de la clé d'accès pour une application. Au sens de la présente invention, on entend par application 20 une application logicielle. Cette application est active mais neutre du point de vue de la sécurité. Elle ne modifie pas les blocs cryptographiques transmis par la puce, mais ne fait que les transférer. Elle joue le rôle d'un relais, au sens propre admis dans le domaine des télécommunications. Par puce, on entend un microcontrôleur avec un ensemble d'applications. Dans la description qui suit, on entend par «SSL/TLS», «RFID» et «NFC» les éléments suivants : SSL/TLS : Secure Socket Layer / Transport Layer Security. Protocole cryptographique standardisé par l'IETF (Internet Engineering Task Force) permettant d'échanger des données de façon sécurisée en garantissant leur intégrité, la confidentialité et la non répudiation de l'échange ainsi que l'authentification des deux terminaux en cas d'authentification mutuelle (par exemple avec le protocole EAP-TLS). Ce protocole peut se découper en deux phases distinctes: la phase d'authentification d'une ou des deux entités communicantes, puis la phase de transmission de données chiffrées. RFID : Radio Frequency Identification. Technologie d'identification sans contact de circuits intégrés intégrant ou connectés à une antenne, reposant sur des tags ou étiquettes, les informations ou données étant transmises par des fréquences radio à induction magnétique initiées par un lecteur approprié puis identifiées et lues par ce dernier. NFC : Near Field Communication. Protocole de communication sans fil à courte portée et faible consommation reposant sur la technologie RFID à la différence près que les échanges d'information entre deux machines NFC peuvent être à double sens alors que dans le cas de RFID seule la puce transmet des informations au lecteur. La technologie, sur laquelle s'appuie la présente invention, repose sur l'idée que les cartes sans contact, notamment les cartes «Mifare», peuvent être programmées par des lecteurs NFCs contenus dans des dispositif mobiles, par exemple de type «smartphone», permettant ainsi aux utilisateurs de télécharger directement leurs droits d'accès spécifiques dans leur carte sans-contact, de préférence Mifare, sans avoir à obtenir de nouveaux droits et de nouvelles cartes par les établissements concernés. Cette architecture repose sur une connexion sécurisée 22, de préférence de type EAP-TLS, via un dispositif mobile 10 de préférence de type «smartphone» NFC entre une puce 21, de préférence à interface RFID duale, d'une carte sans contact 11, et un serveur distant 12 à même de charger une clé d'activation dans la carte 11, clé nécessaire à l'obtention d'un accès spécifique, par exemple l'accès à une chambre d'hôtel. La carte 11, de préférence à interface duale, contient selon un mode de réalisation deux types de technologies correspondant à chacune de ces interfaces : la technologie Mifare, d'une part et la technologie «pile EAP-TLS» embarquée, d'autre part. Dans le mode de réalisation qui est décrit ci-dessous, on considèrera que le dispositif mobile 10 est un «Smartphone», c'est-à-dire un téléphone mobile disposant de fonctionnalités multimédia avancées, et que la carte sans contact 11 est une carte à interface RFID. Toutefois, d'autres dispositifs mobiles et d'autres types de cartes peuvent être mis en oeuvre dans le procédé selon la présente invention. Dans un mode de réalisation, la connexion sécurisée 22 EAP-TLS et le transfert des données dans la carte 11 se déroule suivant le scénario suivant : - L'utilisateur est invité à sélectionner sur son Smartphone 10 une application 20 dédiée au téléchargement de codes d'accès spécifiques CA1, CA2, ..., CAn (typiquement ceux pour l'ouverture d'une chambre d'hôtel), au moment où il place une carte sans contact à interface RFID duale 11 à la portée de celui-ci. - Le Smartphone 11 détecte une puce RFID 21 de ladite carte sans contact à interface RFID duale 11 à l'aide de l'application 20 sélectionnée par l'utilisateur puis se connecte en NFC à la puce RFID 21 sur son interface EAP-TLS 22. - L'application «pile EAP-TLS» est activée pendant que l'application mobile 20 du Smartphone 10 établit une connexion entre la puce RFID 11 et le serveur de clés distant 12. - Durant la première phase de l'authentification EAP-TLS, l'application mobile 20 du Smartphone 10 sert de relais entre le serveur de clés distant 12 et l'application «pile EAP-TLS» en se chargeant de redistribuer les échanges à l'une ou à l'autre des deux entités communicantes. - Durant la phase d'authentification, le serveur de clés distant 12 authentifie la validité de l'identité de la puce RFID 21, et la puce RFID 21 vérifie l'identité du serveur 12. - Une fois cette première phase d'authentification mutuelle réussie, les blocs cryptographiques calculés à l'issue de celle-ci par la puce RFID 21, 2 98123 9 12 sont rapatriés sur le Smartphone 10 qui assurera la deuxième phase du protocole EAP-TLS (i.e. celle d'échange de données cryptées). - L'application mobile 20 du Smartphone 10 envoie une requête (par exemple en http) SSL sur une page (par exemple php) du serveur de 5 clés distant 12 en vue de récupérer une clé d'accès pour la puce RFID 21 - Le serveur de clés distant 12 vérifie quels sont les droits d'accès du porteur de la carte RFID 11 en récupérant la clé publique de celle-ci grâce à la connexion SSL préalablement établie. Il fait correspondre 10 cette clé publique à son équivalent stockée dans une base de donnée et vérifie les crédits ou accès auxquels le porteur de la carte RFID 11 a droit. - En fonction des droits d'accès de l'utilisateur, il construit une structure de donnée 24 définie en tant que «conteneur de clé», ce conteneur 15 comprend la clé d'accès qui sera écrite dans un des blocs d'une application Mifare de la puce RFID 21 et qui est chiffrée par la clé publique du certificat de la «pile EAP-TLS» de la puce RFID 21. Ce conteneur comprend également une signature de ce chiffrement permettant à la puce RFID 21 de vérifier la bonne validité de ce 20 conteneur. - Le serveur distant 12 envoie sa réponse (par exemple http) dans laquelle se trouve le «conteneur de clé», au Smartphone 10 toujours via la connexion SSL préalablement établie. - Le Smartphone 10 rapatrie le «conteneur de clé» sur l'interface de la pile 25 EAP-TLS de la puce RFID 21. - La puce RFID 21 vérifie la signature du «conteneur de clé» et une fois l'opération réussie, elle déchiffre la valeur de la clé d'accès à l'aide de sa propre clé privée. - La puce RFID utilise ensuite une API Mifare pour accéder à son interface 30 Mifare en écriture et inscrire la valeur de la clé de session dans un des blocs appropriés et réservés à l'application Mifare. Ainsi, la présente invention propose une façon sécurisée de télécharger à distance des clés d'accès dans une carte sans contact, de préférence de type «Mifare» via un dispositif mobile, de préférence de type «Smartphone » et pourra être étendu en considérant que la puce à interface duale pourrait être embarquée (sous la forme d'une carte USIM par exemple) dans le Smartphone. L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet. REVENDICATIONS1. Procédé de communication mettant en oeuvre un dispositif mobile (10), une carte sans contact (11) et un serveur distant (12), caractérisé en ce qu'il comporte les étapes suivantes : - sélection par un utilisateur sur ledit dispositif mobile (10) d'une application (20) dédiée au téléchargement de codes d'accès (CA1, CA2, ..., CAR) lorsque ledit utilisateur place ladite carte sans contact (11) à portée dudit dispositif mobile (10) ; - détection d'une puce (21) de ladite carte sans contact (11) par ledit dispositif mobile (10) à l'aide de ladite application (20) sélectionnée par l'utilisateur ; - connexion dudit dispositif mobile (10) à ladite puce (21) de ladite carte sans contact (11) sur une interface sécurisée (22) ; - établissement d'une connexion par ledit dispositif mobile (10) entre ladite puce (21) de ladite carte sans contact (11) et ledit serveur distant (12) ; - authentification de la validité d'une clé de ladite puce (21) de ladite carte sans contact (11) par ledit serveur distant (12) ; - vérification de l'identité dudit serveur distant (12) par ladite puce (21) de ladite carte sans contact (11) ; - ladite application (20) dudit dispositif mobile (10) servant de relais entre ledit serveur distant (12) et une application sécurisée (23) de ladite carte sans contact (11) ; - calcul de blocs cryptographiques par ladite puce (21) de ladite carte sans contact (11) et transfert desdits blocs cryptographiques audit dispositif mobile (10) ; - transmission d'une requête de ladite application (20) dudit dispositif mobile (10) sur une page dudit serveur distant (12) afinde récupérer une clé d'accès pour ladite puce (21) de ladite carte sans contact (11) ; - vérification par ledit serveur distant (12) des droits d'accès liés à ladite carte sans contact (11) ; - en fonction des droits d'accès, construction par ledit serveur distant (12) d'une structure de données (24) chiffrées contenant une clé d'accès et une signature cryptographique; - transmission par ledit serveur distant (12) audit dispositif mobile (10) d'une réponse contenant ladite structure de données (24) ; - transmission dudit dispositif mobile (10) à ladite carte sans contact (11) de ladite structure de données (24) ; - vérification par ladite puce (21) de ladite carte sans contact (11) de la signature comprise dans ladite structure de données (24) et déchiffrement de la valeur de la clé d'accès à l'aide d'une clé privée ; et - utilisation par ladite puce (21) de ladite carte sans contact (11) de la valeur de la clé d'accès pour une application. 2. Procédé de communication selon la revendication 1, caractérisé en ce que ledit dispositif mobile (10) est un téléphone mobile. 3. Procédé de communication selon la revendication 2, caractérisé en ce que ledit dispositif mobile (10) est un téléphone mobile de type «smartphone». 4. Procédé de communication selon la revendication 1, caractérisé en ce que ledit dispositif mobile (10) est une tablette tactile. 5. Procédé de communication selon l'une des revendications 1 à 4, caractérisé en ce que ladite carte sans contact (11) est une carte de type RF ID («Radio Frequency Identification»). 6. Procédé de communication selon l'une quelconque des revendications précédentes, caractérisé en ce que la connexion dudit dispositif mobile (10) à ladite puce (21) de ladite carte sans contact (11) sur une interface sécurisée (22) est réalisée en NFC (fflear Field Communication»). 7. Procédé de communication selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite interface sécurisée (22) est une interface de type EAP-TLS («Extensible Authentication Protocol / Transport Layer Security»). 8. Procédé de communication selon l'une quelconque des revendications précédentes, caractérisé en ce que la transmission d'une requête de ladite application (20) dudit dispositif mobile (10) sur une page dudit serveur distant (12) est réalisée au moyen du protocole SSL («Secure Socket Layer») ou TLS («Transport security Layer»). 9. Procédé de communication selon l'une quelconque des revendications précédentes, caractérisé en ce que la vérification par ledit serveur distant (12) des droits d'accès liés à ladite carte sans contact (11) est réalisée en récupérant la clé publique de ladite carte sans contact (11) grâce à une connexion SSL («Secure Socket Layer») ou TLS («Transport security Layer») préalablement établie, et en ce que ledit serveur distant (12) fait correspondre ladite clé publique à son équivalent stocké dans une base de données. 10.Procédé de communication selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite puce (21) de ladite carte sans contact (11) utilise ensuite une API (interface de programmation ou «Application Programming Interface») de type «Mifare» pour accéder à son interface «Mifare» en écriture et inscrire la valeur de la clé de session dans un des blocs appropriés et réservés à l'application «Mifare».