PROCÉDÉ DE DEBLOCAGE D'UNE APPLICATION VERROUILLEE PAR NUMERO D'IDENTIFICATION PERSONNEL
L'invention concerne les applications sécurisées par un numéro d'identification personnel, communément appelé PIN code ou NIP.
Une carte UICC (carte à puce définie matériellement dans la norme ISO 7816- X) de type SIM (Pour Subscriber Identity Module en langue anglaise) ou USIM (pour Universal Subscriber Module en langue anglaise) mémorise classiquement des informations personnelles et des applications. La plupart des cartes USIM ne fournissent un accès aux informations ou aux applications que lorsque l'utilisateur a saisi un numéro d'identification personnelle (NIP) de la carte à puce. Un compteur formé dans une mémoire non volatile de la carte UICC mémorise le nombre de saisies erronées du NIP de la carte à puce et le nombre maximal autorisé. Le mode de saisie du NIP de la carte à puce est bloqué, et avec elle, la carte, lorsque le nombre de saisies erronées égale le nombre maximal autorisé. La réinitialisation du compteur est effectuée soit lorsqu'un NIP de la carte à puce valide est saisi avant le blocage, soit lorsqu'un code de déblocage de NIP (PUK - PIN Unblock Key) est saisi après le blocage. La saisie du PUK après un blocage débloque la carte UICC.
En pratique, un utilisateur n'utilise que très rarement le code PUK associé au code NIP de la carte à puce. Ainsi, lorsque sa carte UICC se bloque, il ne dispose en général pas du code PUK, par exemple parce qu'il ne l'a pas mémorisé ou parce qu'il a égaré le certificat mentionnant le PUK. La plupart des opérateurs téléphoniques ont mis en place des plates-formes téléphoniques destinées à fournir un code PUK à l'utilisateur de la carte UICC. L'utilisateur ne dispose souvent pas du numéro d'appel de la plate- forme de son opérateur. En outre, ces plates-formes sont coûteuses et requièrent des moyens d'identification de l'utilisateur pour ne pas fournir un PUK à un fraudeur.
Les cartes UICC (et les appareils numériques de façon générale) présentent un nombre croissant d'applications sécurisées par un numéro d'identification personnel d'application (nommé par la suite NIP d'application) et parfois développées par une autre société que l'opérateur de téléphonie délivrant la carte UICC. Chacune de ces applications pouvant présenter un NIP d'application et un code PUK propres, l'utilisateur ne dispose en pratique pas de l'ensemble de ces données en cas de besoin. Les plates-formes téléphoniques sont alors plus complexes à organiser, chaque société devant mémoriser une base de données pour les codes PUK de son application.
L'utilisateur doit en outre identifier quelle plate-forme contacter pour débloquer la carte UICC. Pour ces différentes raisons, un grand nombre d'applications n'est pas verrouillé par un NIP d'application.
L'invention vise à résoudre un ou plusieurs de ces inconvénients. L'invention porte ainsi sur un procédé de sécurisation d'applications d'une carte à puce disposée dans un appareil numérique, comprenant les étapes de:
-comptage des saisies erronées d'un numéro d'identification personnel d'une application de la carte à puce ; -lorsque le nombre de saisies erronées atteint un seuil, blocage de l'application ou de la carte à puce ;
-réinitialisation du comptage des saisies erronées et déblocage de la carte à puce ou de l'application lorsque le numéro d'identification personnel de la carte à puce est saisi. Selon une variante, la carte à puce utilisée est une carte à puce du type UICC munie d'une application SIM ou USIM fournie par un opérateur téléphonique et l'appareil numérique est un appareil de téléphonie mobile.
Selon encore une variante, la carte à puce commande l'émission d'une alerte à une autorité de contrôle lorsque le nombre de saisies erronées atteint un seuil prédéterminé.
Selon une autre variante, la carte à puce utilisée est une carte à puce du type carte bancaire fournie par un opérateur téléphonique.
Selon encore une autre variante, la carte à puce commande l'extinction de l'appareil numérique suite au blocage. On peut en outre prévoir que le procédé ne comprend aucune étape de saisie d'un code de déblocage du numéro d'identification personnel de l'application.
Selon une variante, la réinitialisation du comptage et le déblocage sont effectués lorsque le numéro d'identification personnel de la carte à puce est saisi après une réinitialisation de la carte à puce. L'invention porte encore sur une carte à puce comprenant :
-un numéro d'identification personnel de la carte à puce dont la saisie est nécessaire pour accéder à tout ou partie de la carte ;
-une application associée à un numéro d'identification personnel d'application distinct dans son implémentation du numéro d'identification personnel de la carte;
-un compteur du nombre de saisies erronées du numéro d'identification personnel de l'application; -un module de traitement bloquant la carte ou l'application lorsque le nombre de saisies erronées atteint un seuil prédéterminé et requérant la saisie valide du numéro d'identification personnel de la carte pour débloquer la carte ou l'application et réinitialiser le compteur.
Selon une variante, la carte est du type UICC avec application SIM, USIM et fournie par un opérateur téléphonique.
Selon encore une variante, la carte est susceptible de transmettre une commande d'émission d'une alerte à un appareil numérique hôte lorsque le nombre de saisies erronées atteint un seuil prédéterminé.
Selon une autre variante, la carte est susceptible de transmettre une commande d'extinction d'un appareil numérique hôte lorsque le nombre de saisies erronées atteint un seuil prédéterminé.
D'autres caractéristiques et avantages de l'invention ressortiront clairement de la description qui en est faite ci-après, à titre indicatif et nullement limitatif, en référence aux dessins annexés, dans lesquels :
-la figure 1 représente différentes étapes de mise en œuvre d'un procédé selon l'invention, dans son application à un appareil de téléphonie mobile ;
-la figure 2 illustre le fonctionnement d'une machine d'état utilisée par une application, mettant en œuvre l'invention.
L'invention propose de munir une application d'une carte à puce d'un numéro d'identification personnel d'application et de compter les saisies erronées de ce numéro d'identification. Lorsque le nombre de saisies erronées atteint un seuil prédéterminé, l'application ou la carte à puce est bloquée. Le comptage des saisies erronées est réinitialisé et l'application ou la carte est débloquée lorsque la carte est réinitialisée et que le bon numéro d'identification personnel de la carte à puce est saisi. Le NIP de la carte à puce est donc utilisé comme code de déblocage pour des applications sécurisées.
Les applications sécurisées par un NIP d'application présentent donc un niveau de sécurité élevé sans nécessiter un accroissement des données de déblocage à mémoriser. Les applications sont par exemple des applications respectant les spécifications STK et délivrant des commandes à l'appareil logeant la carte à puce. La figure 1 représente différentes étapes d'un exemple de procédé selon l'invention. La carte à puce de l'exemple est une carte USIM connectée à un combiné de téléphonie mobile hôte.
A l'étape 101, un utilisateur a préalablement saisi le NIP de la carte USIM et a donc eu accès à un certain nombre d'informations et de fonctionnalités de cette carte, notamment l'accès au réseau téléphonique mobile. A l'étape 101, l'utilisateur a souhaité utiliser une application sécurisée de la carte à puce. Le combiné requiert la saisie du NIP de cette application.
A l'étape 102, l'application se bloque : la carte à puce a préalablement compté le nombre de saisies erronées du NIP de l'application et a déterminé que ce nombre avait atteint un seuil prédéterminé. Le seuil pourra prendre une valeur de 3, valeur usuelle pour le test d'un code NIP de carte USIM. Le blocage peut prendre plusieurs formes : l'accès aux informations de la carte à puce est restreint ou interdit, l'application souhaitée ou d'autres sont interdites ou une nouvelle saisie du NIP de l'application est bloquée. A l'étape 103, la carte à puce commande avantageusement au combiné de transmettre une alerte à une autorité de contrôle. L'alerte est par exemple transmise sous la forme d'un SMS. L'alerte peut être effectuée à chaque blocage ou après avoir compté un nombre prédéterminé de blocages. L'alerte peut définir l'application sécurisée qui a donné lieu au blocage, un identifiant du combiné ou toute autre information utile pour une autorité de contrôle. L'autorité de contrôle est par exemple l'instance qui a intégré l'application sécurisée dans la carte à puce. La carte à puce peut contenir différents numéros d'appel d'autorités de contrôle associés à des applications sécurisées respectives. Ainsi, chaque autorité de contrôle pourra gérer les problèmes de fraude liés à ses applications. A l'étape 104, l'utilisateur est contraint d'éteindre le combiné en vue de saisir le
NIP de la carte à puce. Cette étape permet de faire perdre du temps à un éventuel fraudeur connaissant le NIP de la carte à puce et souhaitant trouver le NIP de
l'application par tâtonnement. Une autre solution consiste à commander l'extinction du combiné par l'application de la carte à puce..
A l'étape 105, le combiné requiert la saisie du NIP de la carte à puce, noté CAP NIP à la figure 1. Si l'utilisateur saisit le bon NIP de la carte à puce, l'application est débloquée et le comptage des saisies erronées est réinitialisé. Ainsi, le test des NIP d'application par tâtonnement suppose de connaître le NIP de la carte à puce, ce qui réduit les risques de fraude pour une application. De plus, si un fraudeur récupère un combiné et une carte à puce dont le NIP de carte à puce a préalablement été saisi par l'utilisateur légitime (par exemple suite au vol d'un combiné allumé), le test du NIP de l'application sécurise encore l'application : le fraudeur aura à un moment donné à saisir le NIP d'une application et suite au blocage de celle-ci, il devra alors saisir le NIP de la carte à puce qui n'avait jusqu'alors pas été requis. On peut également prévoir que la transmission d'une alerte optionnelle soit réalisée au stade de la saisie du NIP de la carte à puce, par exemple suite à un blocage du code NIP de l'application. La figure 2 illustre le fonctionnement d'une machine d'état utilisée par une application pour gérer la gestion de son NIP. Les indications placées sur les flèches correspondent aux conditions de passage d'un état à un autre. Les opérations réalisées dans chaque état sont détaillées dans chaque rectangle associé.
L'état 201 correspond à un état d'initialisation de la carte à puce ou de déblocage de l'application. Le drapeau CHV.OK est initialisé à 0. Ce drapeau sert à déterminer si le NIP de la carte à puce a été valablement saisi. Le drapeau NIP.OK est initialisé à 0. Ce drapeau sert à déterminer si le NIP d'une application donnée a été valablement saisi. Le compteur RTC est initialisé à 0. Ce compteur identifie le nombre de saisies du NIP d'application. L'état 202 correspond à un état de test du NIP d'application saisi par un utilisateur. Le drapeau Reset est mis à 0. Ce drapeau sert à indiquer qu'il y a eu ou non réinitialisation de l'application. La fonction validNIP() effectue la demande de NIP à l'utilisateur et renvoie une valeur indiquant si la saisie du NIP d'application est valide ou non. Un NIP d'application valide conduit à une valeur de 1 alors qu'un NIP d'application invalide conduit à une valeur de 0 de cette fonction. Le résultat de la fonction validNIP() est alors placé dans le drapeau NIP.OK. Le compteur RTC est incrémenté.
L'état 203 correspond à un état de saisie du NIP de la carte à puce afin de réaliser le déblocage de l'application. L'état 203 est obtenu lorsque les conditions cumulatives suivantes sont remplies :
-lorsque le compteur RTC atteint le seuil RTCMax, signifiant qu'un NIP d'application erroné a été saisi un nombre RTCMax de fois ;
-lorsque le drapeau NIP.OK a une valeur nulle, signifiant qu'un NIP d'application erroné vient d'être saisi.
Durant l'état 203, une saisie du NIP de la carte à puce est requise. La fonction getCHV() effectue la demande de NIP de la carte à puce à l'utilisateur et renvoie une valeur indiquant si la saisie du NIP de la carte à puce est valide ou non. Si le NIP de carte à puce saisi est valide, la fonction getCHV() prend une valeur de 1, sinon la fonction getCHV() prend une valeur de 0. Le résultat de la fonction getCHV() est alors placé dans le drapeau CHV.OK. Le drapeau RTC prend une valeur de 0.
De l'état 203, on repasse en état 202 lorsque les conditions cumulatives suivantes sont remplies :
-lorsque le drapeau CHV.OK a une valeur 1
- et lorsque le drapeau reset a une valeur 1, ce qui indique que la carte à puce est réinitialisée.
L'état 204 indique l'état dans lequel l'application est fonctionnelle, en cas de saisie valide du NIP d'application. Ainsi, l'état 204 n'est obtenu que lorsque le drapeau NIP.OK prend la valeur 1. Le compteur RTC est alors réinitialisé, la fonction 'ApplicationQ' exécute l'application. Le drapeau PinOK prend alors la valeur 0.