Je vous ai présenté, il y a quelques semaines, un article introductif à la technologie NFC dans lequel je décris les trois modes de communications possibles pour un équipement NFC :

  • le mode lecteur-encodeur,
  • le mode pair à pair
  • et enfin le mode émulation carte.

Nous allons nous intéresser ici à ce dernier mode.

Pour rappel, les services de dématérialisation de cartes sans contact sur mobile NFC reposent sur le mode Emulation Carte.

C’est le mode sur lequel les attentes sont les plus fortes en termes de revenus potentiels pour les fournisseurs de services ce qui explique en grande partie le retard en terme de déploiement de ce mode.

L’écosystème complexe et les enjeux économiques importants ne sont pas les seules raisons des difficultés que rencontrent les fournisseurs de services dans le déploiement de leurs services ; la sécurité et plus précisément la gestion de la sécurité est un sujet central ! C’est d’ailleurs l’une des problématiques majeures de la dématérialisation de cartes sans contact sur mobile.

Pour l’émulation de cartes sans contact sur mobile NFC, l’exigence en termes de sécurité est au moins équivalente à celles des cartes sans contact émulées.

En effet, lorsqu’un service de paiement ou de gestion de droit est proposé à des clients ou à des usagers, il se doit d’être complètement sécurisé en particulier dans le cas d’une application bancaire ou de transport.

Le Secure Element et l’avant HCE

Pour assurer la sécurité de ce type de services, un composant électronique – le Secure Element (SE) – est dédié à la sécurité des services d’émulation de cartes sans contact. C’est en quelque sorte l’équivalent de la puce (visible ou non) qui se trouve sur les cartes sans contact.
Il peut y avoir plusieurs SE dans un même équipement et la sécurité de plusieurs services peut être gérée dans un même SE.

Le SE est une puce sécurisée pour le stockage des applications et/ou des données sensibles. Elle combine un espace mémoire sécurisé pour l’hébergement des données personnelles, clés de sécurité et toutes autres informations sensibles, des mécanismes cryptographiques, et des interfaces de communication ; le tout géré par un système d’exploitation (exemple : JAVACARD). Ces interfaces de communication permettent notamment la communication avec le contrôleur NFC.

Émulation Carte avec un Secure Element
Émulation Carte avec un Secure Element

A l’instar d’une puce de carte SIM, de carte bancaire ou de carte de transport, l’élément sécurisé héberge une ou plusieurs applications sécurisées dites « Cardlet ».

A titre d’illustration : lorsqu’un utilisateur se sert d’un service de paiement sans contact sur mobile (émulation d’une carte bancaire), l’application peut se décomposer en deux parties. La première est une application mobile servant d’interface graphique pour l’utilisateur, semblable à n’importe quelle application mobile. La seconde est une application sécurisée « Cardlet » hébergée dans le Secure Element. La première fait appel à la seconde pour garantir la sécurité des transactions.

Ces applications sécurisées peuvent provenir de différents fournisseurs de services et fonctionner sur le même élément sécurisé de manière complètement étanche. Ainsi un fournisseur de services peut gérer son application sécurisée sans avoir accès aux autres applications hébergées sur ce SE. La gestion de ces applications peut se faire à distance via notamment le réseau mobile.

La grande complexité du mode émulation carte réside dans le fait que le fournisseur de services n’est plus l’émetteur et\ou le propriétaire du support qui héberge ses services.
Ainsi, votre banquier n’est pas propriétaire du téléphone mobile NFC sur lequel vous utilisez son service de paiement sans contact.
Il est donc amené à gérer la sécurité de son service sur un support qui ne lui appartient pas et qui, de plus, est susceptible d’héberger les applications d’autres fournisseurs de services.

SIM-Centric et Device-Centric

Vous l’avez compris, le Secure Element est le nerf de la guerre : l’entité qui contrôle cet élément est en quelque sorte le dépositaire de tous les services qu’embarque votre mobile NFC. Et bien sûr, ce n’est pas gratuit.
C’est même une source de revenus assurés : le propriétaire du Secure Element facture aux fournisseurs de services, l’hébergement et la gestion du cycle de vie de leurs applications.

Les cartes de fidélité, les cartes et les billets de transports, les cartes d’accès aux équipements culturels et sportifs et les cartes bancaires ; toutes susceptibles d’être embarquées sur nos mobiles et gérées au sein d’un élément de sécurité, propriété d’un acteur : c’est une opportunité à ne pas manquer pour les opérateurs de téléphonie mobile.

Parce que d’une part, ils fournissent déjà à leurs clients un élément de sécurité : la carte SIM et d’autre part, ils ont l’expérience de la gestion du cycle de vie des applications embarquées dans la SIM. Enfin, et c’est la principale motivation, comme évoqué précédemment, c’est une opportunité importante de génération de revenus .

Ce modèle – nommée SIM-Centric – est encore aujourd’hui le modèle dominant dans la gestion des rares services NFC d’émulation carte en France.
Ces services d’émulation carte sur le modèle SIM-Centric sont proposés sous la marque cityzi.

Les opérateurs ne sont pas les seuls à convoiter la propriété et la gestion du Secure Element ; les équipementiers (Apple, Samsung, Google) sont aussi dans la course. Plusieurs éléments de sécurité peuvent coexister dans un mobile NFC, et le plus souvent ce dernier embarque nativement un élément de sécurité. Le modèle Device-Centric repose sur l’utilisation de ce SE.

C’est ce qui permet notamment à Apple – depuis l’Iphone 6 – de proposer le service Apple Pay basé sur le mode émulation carte de la technologie NFC. Bien sûr, ce que peut se permettre Apple par la verticalité de son offre n’est pas aussi évident pour les autres équipementiers.
Petite précision : même si l’Iphone 6 embarque bien un composant NFC en mesure de supporter les trois modes, pour le moment le seul usage possible est Apple Pay.

Il est à noter qu’il existe encore un autre modèle, celui-ci basé sur la gestion de la sécurité dans un Secure Element amovible (carte SD, Add-on, …).

Avec HCE, c’est plus facile

Tous ces modèles sont malheureusement réservés aux gros acteurs qui peuvent supporter toute la complexité et les frais inhérents à l’hébergement et à la gestion de leurs services sur un Secure Element.

Mais heureusement depuis la version 4.4 d’Android, une innovation nommée HCE – Host Card Emulation – simplifie grandement l’émulation d’une carte sans contact sur mobile NFC.

La technologie HCE offre tout simplement la possibilité d’émuler logiciellement (d’où le « Host » de Host Card Emulation) des cartes sans contact. Concrètement, les applications de type Cardlet sont gérées directement par le système d’exploitation, comme n’importe quelle autre application mobile ; le Secure Element n’est plus nécessaire.

Émulation Carte avec HCE
Émulation Carte avec HCE

Le développement d’un service d’émulation carte devient – grâce à HCE – accessible à n’importe quel développeur d’application mobile.

Petite parenthèse : il est bon de préciser que Blackberry a proposé une technologie similaire au HCE peu de temps avant Android. Voilà la parenthèse est fermée, nous pouvons revenir au HCE.

Cette technologie se prête particulièrement bien au développement de services de contrôle d’accès, d’auto-partage, de consigne automatique, de service de vie quotidienne (bibliothèque, piscine,..), cartes professionnelles…

Bien sûr, si vous souhaitez développer un service de paiement ou d’accès à des zones sensibles – et c’est tout à fait possible – ce sera plus complexe et il faudra vous appuyer sur un serveur sécurisé et par conséquent disposer d’une connexion internet.

 

Comme le montre la vidéo ci-dessus, il est aussi possible de développer une application HCE sur les téléphones mobiles sous Windows 10.

Élément non négligeable  : contrairement à l’émulation carte de type SIM-Centric qui prévoit un mode permettant à l’utilisateur de continuer à utiliser ses services lorsque son téléphone est éteint (batterie déchargée) ; il est indispensable pour une émulation HCE que le téléphone soit allumé car dans ce cas c’est l’OS qui se charge de l’émulation. Ce qui peut s’avérer très problématique si vous embarquez votre titre de transport et que par malheur vous n’avez plus de batterie au moment du contrôle…

Voilà pour la théorie ; dans le prochain article sur le sujet, nous développerons une application de contrôle d’accès équivalente à celle présentée précédemment dans la vidéo mais pour un téléphone Android.

Comme d’habitude, si des erreurs se sont glissées dans l’article, n’hésitez pas à nous en faire part.

Merci, et à très bientôt sur Frugal Prototype