PROTECTION CONTRE LES PERTURBATIONS D'UN TERMINAL DE LECTURE DE CARTE A PUCE SANS CONTACT
L'invention porte sur les communications radiofréquences entre un terminal de lecture sans contact et une carte à puce. L'invention vise plus précisément à réduire l'influence des perturbations électromagnétiques sur les communications faisant appel à un protocole par bloc entre le terminal et une carte.
Le standard ISO 14443 définit notamment un protocole de communication radiofréquences de proximité entre une carte sans contact et un terminal de lecture.
La communication comprend plusieurs phases successives. Lors d'une première phase, l'interface radiofréquence du terminal est allumée et réinitialisée. Le terminal émet avec une porteuse à 13,56 MHz. Les cartes situées dans le rayon d'émission redressent la porteuse émise pour alimenter leurs circuits. Lors d'une deuxième phase, appelée phase d'anticollision, le terminal détermine la présence d'une ou plusieurs cartes dans son rayon d'émission. Le terminal détermine les caractéristiques de ces cartes et en sélectionne certaines. Le terminal échange des paramètres qui lui permettront de communiquer correctement avec les cartes sélectionnées. Les paramètres échangés sont par exemple la taille des trames transmises depuis ou vers le terminal de lecture. Ces deux phases sont définies notamment dans le standard ISO 14443-3.
Selon le standard ISO 14443, les échanges entre un terminal et une carte sont effectués au moyen de blocs 1 dont la structure est détaillée en référence à la figure 1. Chaque bloc comprend un entête, un corps encapsulé contenant des données Info et un épilogue contenant des bits de détection d'erreur EDC. L'entête comprend un champ PCB dont la structure définit soit un I-Bloc, soit un R-Bloc, soit un S-Bloc. L'entête comprend également un champ CID contenant un identifiant de la carte attribué par le terminal lors de la réinitialisation.
Les I-Blocs sont utilisés pour la transmission d'informations de la couche applicative. Des I-Blocs sont notamment transmis par le terminal pour commander l'exécution de tâches par la carte à puce. Les R-Blocs sont principalement utilisés pour la transmission de données de contrôle concernant la couche de transport. Les S-Blocs sont principalement utilisés pour la transmission"• de commandes non applicatives, notamment la désélection d'une carte par un terminal ou bien une requête de temps de la carte au terminal pour traiter une commande.
Lorsque les informations de la couche applicative sont trop volumineuses pour être transmises de la carte vers le terminal dans un unique I-Bloc, elles sont transmises dans plusieurs I-Blocs par un mécanisme de chaînage illustré à la figure 2. Les informations 2 de la carte sont transmises dans des I-blocs 11, 12, 13 dans la couche de transport. Avant de transmettre chaque nouvel I-Bloc, la carte attend un R-Bloc du terminal contenant un accusé de réception du précédent
I-Bloc. Les R-Bloc 14 et 15 sont donc envoyés par le terminal à réception des I-Blocs 11 et 12.
Lorsqu'un I-Bloc n'est pas reçu de façon satisfaisante par le terminal (notamment lorsque la vérification avec les bits de détection d'erreur signale une erreur) , celui-ci renvoie un R-Bloc signalant une non-réception. La carte émet à nouveau le I-Bloc. Ce fonctionnement est illustré par le diagramme de la figure 3. Le bloc I-Bloc 2 n'étant pas reçu correctement, le terminal émet le R-Bloc R-NOK. La carte émet alors une nouvelle fois I-Bloc2.
Lorsqu'un I-Bloc n'est pas reçu de façon satisfaisante par la carte, celle-ci reste muette afin de ne pas encombrer le canal de communication radiofréquences. Après une certaine durée sans émission de la carte, le terminal transmet à nouveau le I-Bloc, jusqu'à ce qu'il reçoive un I-Bloc provenant de la carte. Ce fonctionnement est illustré par la diagramme de la figure 4. le I-BlocO n'étant *' pas reçu correctement par la carte, la carte reste muette. Au bout d'une certaine durée sans réponse de la carte, le terminal émet à nouveau I-BlocO. I-BlocO étant correctement reçu par la carte, celle-ci émet une réponse I-Blocl.
Du fait de capacités de traitement parfois limitées, les cartes à puce nécessitent souvent un temps important pour exécuter certaines commandes. Pour ne pas recevoir de blocs durant cette période d'exécution et ne pas être désélectionnée du fait de son absence d'émission, la carte émet un S-bloc de type
S (WTX) vers le terminal en requérant une durée pendant laquelle le terminal n'émettra pas vers elle.
Pendant la durée définie par le S (WTX) ou dans le cas général d'attente d'un I-Bloc, l'interface radiofréquence du terminal reste active pour traiter tout bloc transmis par la carte. Le terminal interprète parfois par erreur des perturbations électromagnétiques comme un début de bloc provenant de la carte. Le terminal détecte une transmission de bloc erronée et requiert alors la répétition d'un bloc qui n'a jamais été émis par la carte. La carte ne répondant pas, le terminal la désélectionne ou interrompt la communication. Un temps considérable est ainsi perdu du fait de cette perturbation, en particulier lors d'une désélection de la carte.
Pour pallier à ces inconvénients, des contraintes importantes sont imposées aux cartes à puce pour que leur rayonnement soit réduit au minimum en dehors des phases d'émission de blocs. Ces contraintes impliquent un surcoût conséquent pour la carte à puce.
Il existe donc un besoin pour procédé de transmission radiofréquences par blocs entre un terminal et une carte à puce, ce procédé comprenant une étape préalable durant laquelle le terminal transmet un bloc de commande d'exécution d'une tâche à la carte à puce, le procédé comprenant ensuite les étapes suivantes :
-la carte à puce transmet au terminal un bloc requérant un passage en mode bridé et lance l'exécution de la tâche et ;
-le terminal reçoit le bloc et passe dans un mode bridé dans lequel il ne traite pas certains types de blocs associés à la carte à puce.
Selon une variante, le terminal transmet à la carte à puce un bloc de confirmation de passage en mode bridé.
Selon encore une variante, le terminal est maintenu en mode bridé jusqu'à réception d'un bloc associé à la carte à puce requérant la révocation du mode bridé. Le terminal en mode bridé peut alors ne pas traiter les blocs associés à la carte à puce autres que des blocs de révocation de mode bridé.
On peut également prévoir que le terminal transmet à la carte à puce un bloc de confirmation de révocation du mode bridé.
Selon une variante, le terminal est maintenu en mode bridé jusqu'à expiration d'une durée prédéterminée.
On peut alors prévoir que : -la carte à puce détermine un besoin de prolongation du mode bridé ;
-la carte à puce transmet un bloc requérant la prolongation de la durée prédéterminée ;
-le terminal est maintenu en mode bridé jusqu'à expiration de la durée prolongée.
Selon une variante , le terminal en mode bridé ne traite pas les blocs associés à la carte à puce autres que des blocs de requête de prolongation.
Selon encore une variante, le terminal en mode bridé ne traite pas les blocs associés à la carte à
puce autres que des blocs de requête de prolongation ou des blocs de révocation de mode bridé.
La transmission peut être conforme au standard ISO
14443. Les blocs de requête, et le cas échéant les blocs de confirmation, sont alors des blocs du type S-
Bloc identifiés spécifiquement par les troisième et quatrième bits de leur champ PCB.
Selon une variante, la carte à puce détecte une erreur de transmission d'un bloc émis par le terminal et émet systématiquement un bloc requérant un passage en mode bridé lorsqu'elle lance l'exécution d'une tâche.
L'invention porte également sur un terminal de communication apte à passer en mode bridé lors de la réception d'un bloc de requête émis par une carte à puce selon un des procédés définis ci-dessus.
L'invention porte encore sur une carte à puce apte à émettre un bloc de requête défini dans les procédés ci-dessus. w
L'invention sera mieux comprise à la lecture de la description qui suit, accompagnée des dessins annexés qui représentent :
-Figure 1, différentes structures de blocs de données transmis sur la couche transport ;
-Figure 2, un mode classique de chaînage de données transmises de la carte vers le terminal ;
-Figure 3, le fonctionnement classique en cas de problème de réception par le terminal ; -Figure 4, le fonctionnement classique en cas de problème de réception par la carte ;
-Figure 5, un chronogramme des événements de la carte et du terminal dans une mise en œuvre de l'invention ;
-Figure 6, une structure d'un exemple de S-Bloc selon l'invention.
L'invention propose d'émettre un bloc de passage en mode bridé depuis la carte à puce, lors de certains lancements d'exécution de tâches par celle-ci. Le terminal passe alors en mode bridé et ne traite pas certains types de blocs associés à cette carte à puce.
Ainsi, en mode bridé, la probabilité que le terminal interprète des perturbations aléatoires comme un bloc devant être traité est infime. On élimine ainsi le temps perdu par une détection erronée d'un bloc.
En mode bridé, le terminal pourra bien entendu continuer à traiter normalement les blocs reçus provenant d'autres cartes à puce.
La figure 5 illustre un chronogramme d'un exemple de procédé selon l'invention. Lors de l'étape 51, le terminal émet un bloc, par exemple un I-Bloc comprenant une commande applicative destinée à être exécutée par la carte. A l'étape 52, lors de la réception de ce bloc ou lors du lancement de l'exécution de la commande, la carte à puce émet un S-Bloc requérant un passage en mode bridé vers le terminal. Le terminal reçoit ce S- Bloc.
A l'étape 53, le terminal a reçu et traité le S- Bloc émis par la carte à puce et émet un S-Bloc de
confirmation de passage en mode bridé. La carte à puce est ainsi informée de la prise en compte de sa requête.
Dans le mode bridé, le terminal ne traite pas certains blocs associés à la carte à puce. On désignera par bloc associé à la carte tout signal (y compris un bruit de fond) dans lequel le terminal reconnaît ou croît reconnaître un identifiant de la carte à puce. En mode bridé, le terminal peut notamment prévoir de ne pas traiter les I-Blocs ou certains S-Blocs associés à la carte à puce. Ainsi, si le terminal reçoit des blocs de ce type dans lesquels il reconnaît l'identifiant de la carte à puce, ces blocs ne sont pas pris en compte. Les perturbations n'ont donc qu'une probabilité infime de conduire à un traitement de la part du terminal. L'homme du métier saura mettre en œuvre une telle exclusion de traitement de façon appropriée. Le passage en mode bridé peut s'effectuer soit après la réception du S-Bloc de la carte, soit après l'émission du S-Bloc de confirmation.
Depuis le mode bridé, différents passages en mode normal sont envisagés.
Selon l'exemple de la figure 5, le terminal est maintenu en mode bridé jusqu'à la révocation de ce mode par la carte à puce. La carte à puce pourra donc poursuivre l'exécution des tâches souhaitées et ne communiquer avec le terminal que lorsque cette exécution sera terminée. Ainsi, à l'étape 54, la carte à puce transmet un S-Bloc requérant le passage en mode normal du terminal. Le terminal est prévu pour traiter ce type de bloc en mode bridé. Après avoir traité ce
bloc, le terminal repasse en mode normal. A l'étape 55, le terminal transmet à la carte un S-Bloc confirmant la révocation du mode bridé. La carte est ainsi informée que le terminal peut à nouveau traiter d'autres types de blocs.
En variante, le terminal peut repasser en mode normal à l'expiration d'une durée prédéterminée ou définie dans le S-Bloc requérant le passage en mode bridé. Lorsque la carte à puce a terminé l'exécution avant l'expiration de cette durée, elle peut transmettre un bloc de révocation au terminal. Le repassage en mode normal peut ainsi être effectué sans attendre l'expiration de la durée fixée. La carte à puce peut également déterminer qu'une durée supplémentaire est nécessaire pour l'exécution. La carte à puce transmet alors un bloc requérant la prolongation de cette durée. De tels blocs peuvent être transmis autant de fois que nécessaire pour que la carte puisse terminer l'exécution. De tels blocs peuvent être des S-Blocs identiques aux S-Blocs requérant un passage en mode bridé.
Dans ce cas, on peut prévoir un mode bridé avec un traitement des blocs associés à la carte limité aux blocs de révocation et aux blocs de prolongation.
Selon une autre variante, on prévoit que la durée de maintien en mode bridé soit uniquement fixée par une durée définie dans un bloc de passage en mode bridé ou dans un bloc de prolongation. On limite ainsi les différents types de blocs que le terminal traitera en
mode bridé. En l'absence de blocs de prolongation, le terminal peut même ne traiter aucun bloc associé à la carte durant le mode bridé.
La figure 6 illustre des exemples de nouveaux S- Blocs qui peuvent être mis en œuvre pour des transmissions au standard ISO 14443. Les S-Blocs requérant un passage en mode bridé, une prolongation de durée, fournissant une confirmation de prise en compte ou requérant une révocation de mode bridé peuvent notamment être identifiés par l'état des troisième et quatrième bits 61 de leur champ PCB. On pourrait également distinguer un bloc de passage en mode bridé et un bloc de révocation en utilisant un bit 62 RFU (Reserved For Use en langue anglaise) du champ d'informations.
Plusieurs stratégies de passage en mode bridé peuvent être envisagées. On peut notamment prévoir qu'à chaque erreur de transmission de bloc détectée, la carte à puce émet ensuite systématiquement un bloc requérant un passage en mode bridé dès qu'elle lance l'exécution d'une tâche. On peut également prévoir que la carte attende un nombre prédéfini d'erreurs de transmission pour émettre de telles requêtes systématiques. La carte peut également déterminer qu'une erreur de transmission de bloc n'a pas eu lieu depuis une durée prédéterminée ; elle n'émettra alors plus de façon systématique de telles requêtes à chaque lancement d'exécution d'une tâche.
Bien que les exemples détaillés correspondent à un procédé de transmission au standard ISO 14443, on peut également appliquer cette invention à toute transmission radiofréquence par blocs entre un terminal et une carte à puce.