Brevet FR2852777A1 — publié le 20040924

La présente invention concerne un procédé de protection d'un terminal de télécommunication. Elle concerne également un équipement comprenant un terminal de télécommunication protégé par la mise en oeuvre du procédé. On entend par terminal de télécommunication tout téléphone portable ou mobile ou assistant personnel associé à un composant personnel, matériel ou logiciel qui comprend des données nécessaires à l'accès à un 10 service par un utilisateur. Dans le cas du GSM, il s'agit d'une carte à circuit(s) intégré(s) dite carte à puce et classiquement appelée carte SIM (Subscriber Identity Module) ou (U)SIM, délivrée au moment de l'acquisition d'un téléphone mobile à un abonné. Le terminal mobile d'un abonné est équipé d'une unité fonctionnelle dite " lecteur de carte à puce " lui permettant des communications avec la carte SIM. Ce lecteur comprend une interface homme-machine pour permettre des échanges entre l'utilisateur et la carte 20 à travers le terminal. Cette unité fonctionnelle du terminal comprend en outre une unité de traitement reliée à des moyens de mémorisation d'informations pour son fonctionnement: programmes et données. Le terminal possède en outre des 25 moyens de communications avec le ou les réseaux de télécommunication. Des problèmes se posent avec l'accroissement du marché de la téléphonie mobile. En effet: 1) Un appareil de l'art antérieur contient des mémoires librement accessibles en lecture et en écriture et les données sensibles de l'utilisateur et GEM1404 le savoir faire de l'opérateur sont facilement accessibles en cas de vol. 2) Un appareil de l'art antérieur est compatible avec une utilisation par d'autres réseaux d'opérateurs en changeant son composant personnel. 3) Un appareil est souvent fourni à bas prix par un opérateur de téléphonie à un nouvel abonné. En contre partie, il limite les utilisations pendant une période donnée. Une solution existe aujourd'hui dans le domaine GSM pour répondre à ces deux derniers problèmes. Cette solution est appelée mécanisme de verrouillage ou encore SIM Lock et a été définie par 1'ETSI. Elle permet de limiter les inconvénients liés au vol d'un 15 téléphone portable. Le principe est de verrouiller le téléphone à certains accès particuliers afin d'éviter qu'un voleur ne puisse s'en servir librement en cas de vol et que l'utilisateur s'en serve sur des réseaux concurrents. Le mécanisme "SIMLock" peut avoir 3 types d'effets: -il verrouille un appareil pour le réseau d'un opérateur particulier; -il verrouille un appareil à des services 25 particuliers d'un opérateur donné ; -il verrouille un appareil sur une carte SIM donnée. Le "SIMLock" d'un appareil est réalisé par un indicateur ou "flag" au sein de l'appareil qui indique 30 que l'appareil est dans un état verrouillé. Lors de l'allumage d'un téléphone verrouillé, ce dernier récupère le numéro IMSI de la carte (numéro d'identification de la carte) et vérifie sa concordance avec les conditions de verrouillage. GEMJ404 Le déverrouillage d'un téléphone est possible à l'aide d'un code secret, calculé par un algorithme secret en possession de l'opérateur, en fonction du code IMEI qui est le numéro de série unique d'un téléphone, enregistré dans la mémoire RAM. Les appareils de l'art antérieur présentent les inconvénients suivants: les données confidentielles ne sont pas protégées et tout le monde peut y accéder; - le "SIMLock" existant n'est pas efficace pour les raisons suivantes: -l'algorithme secret de déverrouillage étant largement répandu dans de nombreux points de vente, il est très difficile d'éviter les fuites et il devient 15 public. Comme le code IMEI du téléphone n'est pas dans une mémoire protégée du téléphone, il est aussi accessible un voleur peut donc relativement facilement calculer le code de déverrouillage du téléphone; -la mémoire du téléphone n'est pas protégée et un fraudeur peut réussir à modifier directement le "flag" de verrouillage sans calculer le code de déverrouillage. Il peut aussi remplacer le numéro IMEI par un autre IMEI dont il connaît le code de 25 déverrouillage associé. Le problème que l'on cherche à résoudre concerne la protection des terminaux contre les utilisations frauduleuses, notamment en cas de vol. Un premier sous problème concerne la protection des 30 données. Un deuxième sous problème consiste à augmenter la sécurité apportée par le mécanisme de verrouillage de l'état de l'art antérieur afin de limiter ses utilisations frauduleuses. GEM1404 L'invention a pour objet un procédé de protection d'un terminal de télécommunication comprenant un composant personnel nécessaire à l'accès réseau de télécommunication, de type carte à puce, le terminal 5 comprenant une unité de traitement, au moins une mémoire de fonctionnement contenant les informations nécessaires au fonctionnement du terminal à savoir un programme de fonctionnement du terminal, et des données nécessaires à ce programme principalement caractérisé 10 en ce qu'il consiste: a) à chiffrer le contenu de la mémoire de fonctionnement du terminal de télécommunication, à partir d'une clé K prédéterminée nécessaire au déchiffrement, b) à permettre le déchiffrement par le terminal après: - démarrage de ce dernier au moyen d'un programme de démarrage enregistré dans une mémoire sécurisée (21) et, - calcul par ce dernier de la clé servant au déchiffrement. Selon une autre caractéristique, le déchiffrement se fait à la volée par une unité de calcul qui déchiffre par blocs les informations de la mémoire de 25 fonctionnement, stocke les blocs déchiffrés dans un registre, l'unité de traitement utilisant ces blocs déchiffrés pour travailler Selon une autre caractéristique, l'utilisation du terminal peut être verrouillée à l'aide d'un verrou 30 stocké dans la mémoire de fonctionnement. Avantageusement, la clé de déchiffrement est fonction d'une information caractéristique du terminal, comme le numéro d'un composant matériel stocké dans la mémoire OTP dudit composant. GEMJ404 Selon une autre caractéristique, la clé de déchiffrement est notamment fonction d'une information caractéristique de la carte à puce, cette information étant enregistrée dans une mémoire de la carte à puce de manière non modifiable. Un autre objet de la présente invention concerne un terminal de télécommunication comprenant un composant personnel nécessaire à l'accès réseau de télécommunication de type carte à puce; première unité 10 de traitement, une mémoire de fonctionnement contenant les informations nécessaires au fonctionnement du terminal à savoir un programme de fonctionnement du terminal et des données nécessaires à ce programme principalement caractérisé en ce que le contenu de la 15 mémoire de fonctionnement est chiffré, en ce que le terminal comprend en outre une mémoire de programme contenant un programme de démarrage permettant de lancer le calcul de la clé K nécessaire au déchiffrement. Selon une autre caractéristique, le terminal comprend une deuxième unité de traitement dédiée au déchiffrement à la volée de la mémoire de fonctionnement, et un registre pour stocker par blocs les informations déchiffrées à la volée, l'unité de 25 traitement utilisant ces blocs déchiffrés pour travailler. Selon une autre caractéristique, le terminal comprend un composant matériel non modifiable contenant une donnée caractéristique du terminal, cette donnée 30 étant utilisée dans le calcul de la clé K. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante, donnée à titre d'exemple non limitatif et en 35 regard des dessins annexés sur lesquels GEMJ404 - la figure 1, représente un schéma d'un terminal de télécommunication de type téléphone mobile associé à une carte à puce, apte à mettre en oeuvre le procédé selon un premier mode de réalisation, - la figure 2, représente un schéma d'un terminal de télécommunication correspondant à un deuxième mode de fonctionnement. L'équipement illustré sur les figures 1 et 2 10 correspond à un terminal de télécommunication T associé à une carte à puce C de type carte SIM. Le terminal est dans l'exemple de la description qui est donnée dans la suite, un téléphone mobile T. Mais l'invention s'applique bien sur à tout appareil 15 assurant une fonction de téléphone mobile, il peut s'agir d'un assistant personnel. La carte à puce C associée, comprend de façon connue, des mémoires contenant des programmes d'application et au moins une information caractéristique telle que le numéro IMSI. Le téléphone T comporte de façon connue: - Un processeur spécialisé 10 permettant d'émettre et de recevoir des appels téléphoniques, ce processeur étant relié à une antenne 11, à un microphone 12 et à 25 un haut-parleur 13 du téléphone, - une première unité de traitement 20 apte à assurer les échanges avec la carte à puce C, - une mémoire 23 programmable et effaçable électriquement (mémoire Flash). La carte à puce C associée à un téléphone est destinée à être insérée dans le téléphone. L'unité de traitement 20 peut dialoguer avec la carte C pour la vérification du code d'identification de l'utilisateur (code PIN) et pour le pilotage par la carte des 35 différents programmes d'application résidents. GEMJ404 Selon l'invention le terminal comporte en outre - une deuxième unité de traitement 30 dédiée au chiffrement/déchiffrement. Cette unité comporte un algorithme de déchiffrement à la volée comprenant un algorithme de calcul et un calcul de clé. - un registre 24; - une mémoire 21 de programme à lecture seule de type ROM, - une mémoire 22 protégée associée à un composant 10 (matériel: unité de traitement ou mémoire) . Cette mémoire 22 est par exemple une mémoire programmable une seule fois (one time programmable, mémoire OTP du composant), Les programmes nécessaires au fonctionnement du 15 terminal et les données caractéristiques du téléphone, sont enregistrés dans la mémoire 23 et ont été chiffrés avant enregistrement. Cette mémoire est dite mémoire de fonctionnement du terminal. Elle comporte le programme source de fonctionnement, le système d'exploitation, 20 l'indicateur du verrou SIMLOCK, le code IMEI, le vérifieur du code de déblocage du verrou SIMLOCK et par exemple le répertoire de l'utilisateur. L'ensemble des informations enregistrées dans cette mémoire 23 ne sont pas accessibles sans le programme de 25 déchiffrement et la clé K qui a été utilisée pour ce chiffrement. Le fonctionnement du terminal est soumis au calcul de la clé K. En outre l'accès aux informations stockées dans la mémoire du terminal est impossible sans la 30 connaissance de cette clé K, ces informations sont ainsi protégées contre toute falsification. Seul le terminal lui-même peut procéder au déchiffrement du contenu de la mémoire à condition qu'il soit apte à calculer la clé ayant servi au 35 chiffrement. GEM1404 Un premier niveau de protection correspondant à un premier mode de réalisation illustré par le schéma de la figure 1, consiste à choisir une clé K fonction d'une information non modifiable caractérisant de façon 5 unique le terminal. On prendra de préférence un numéro de série NS d'un composant matériel (processeur, mémoire) stocké dans la mémoire 22 programmable une seule fois associée au composant, comme donnée caractéristique pour générer la clé K. Ce premier niveau de protection permet de protéger la mémoire 23 contre toute lecture de son contenu et également contre toute modification de son contenu. Les informations contenues dans la mémoire 22 du téléphone restent secrètes et infalsifiables. Dans l'exemple qui vient d'être donné, après calcul de la clé K, le terminal peut fonctionner avec toute carte SIM, à condition bien sûr que le verrou SIMLOCK ne soit pas présent dans la mémoire 23. Toutefois, ses données ne sont jamais accessibles en clair, ce qui 20 résout le premier sous problème technique et apporte un premier degré de sécurité. Un niveau supérieur de protection correspondant au deuxième mode de réalisation illustré par la figure 2, est proposé dans l'exemple qui suit. Ce mode peut même 25 permettre de s'abstenir de prévoir le verrou SIMLOCK. On choisit, dans ce cas, une clé K fonction non seulement d'une information non modifiable caractérisant de façon unique le terminal, mais aussi d'une clé secrète Kcarte associée à la carte SIM lors 30 de la fabrication de la carte afin d'assurer sa sécurité. On peut utiliser le numéro IMSI par exemple. Ainsi, le fonctionnement du téléphone sera verrouillé sans la connaissance de cette clé K liée à la carte SIM résidente. Le téléphone ne pourra pas être 35 déverrouillé si la carte SIM a été changée. GEMJ404 Pour permettre à un téléphone mobile de fonctionner, un programme de démarrage BOOT est enregistré dans la mémoire à lecture seule 21. L'unité de traitement 20 réalisée par un microprocesseur 5 démarre à partir de ce programme dès que le terminal est mis sous tension et que l'utilisateur a entré son code secret. Le programme de démarrage permet de lancer l'exécution du calcul de la clé K. Lorsque la clé est 10 calculée, celle-ci est utilisée pour l'opération de déchiffrement réalisée par l'unité de calcul dédiée 30. Le déchiffrement se fait à la volée. L'unité 30 déchiffre par bloc les informations de la mémoire 23 à la demande du microprocesseur 20. Chaque bloc peut, par 15 exemple être constitué d'un mot logique. Le microprocesseur stocke provisoirement les blocs déchiffrés en dehors de la mémoire 23, et plus précisément dans le registre 24, pour les exploiter. Le contenu de la mémoire 23 reste toujours chiffré. 20 Le microprocesseur utilise le contenu du registre 24 pour travailler. Dans le cas o la clé de déchiffrement est dérivée des deux composantes à savoir la clé Kcarte et le numéro de série NS stocké en mémoire 22, le téléphone 25 ne pourra pas fonctionner avec une autre carte SIM. L'utilisateur conserve toutefois la possibilité d'effectuer un déblocage volontaire de son téléphone. Dans ce cas, les données de la mémoire 23 sont déchiffrées puis rechiffrées à la volée avec une 30 nouvelle clé. Cette opération est bien sûr réversible. On note que l'invention s'applique à tout appareil de télécommunication comportant un composant personnel, de type carte SIM d'un téléphone mobile. GEMJ404 REVENDICATIONS 1. Procédé de protection d'un terminal de télécommunication comprenant un composant personnel nécessaire à l'accès réseau de télécommunication, de type carte à puce, le terminal comprenant une unité de 5 traitement, au moins une mémoire de fonctionnement contenant les informations nécessaires au fonctionnement du terminal à savoir un programme de fonctionnement du terminal, et des données nécessaires à ce programme, caractérisé en ce qu'il consiste: a) à chiffrer le contenu de la mémoire de fonctionnement du terminal de télécommunication, à partir d'une clé K prédéterminée nécessaire au déchiffrement, b) à permettre le déchiffrement par le terminal 15 après: - démarrage de ce dernier au moyen d'un programme de démarrage enregistré dans une mémoire sécurisée (21) et, - calcul par ce dernier de la clé servant au 20 déchiffrement. 2. Procédé de protection d'un terminal mobile, selon la revendication 1, caractérisé en ce que le déchiffrement se fait à la volée par une unité de 25 calcul (30) qui déchiffre par blocs les informations de la mémoire de fonctionnement, stocke les blocs déchiffrés dans un registre, l'unité de traitement utilisant ces blocs déchiffrés pour travailler 3. Procédé de protection d'un terminal mobile, selon l'une des revendications précédentes, caractérisé GEMJ404 en ce que l'utilisation du terminal peut être verrouillée à l'aide d'un verrou stocké dans la mémoire de fonctionnement. 4. Procédé de protection d'un terminal mobile, selon l'une quelconque des revendications précédentes, caractérisé en ce que la clé de déchiffrement est fonction d'une information caractéristique du terminal, comme le numéro d'un composant matériel stocké dans la 10 mémoire OTP dudit composant. 5. Procédé de protection d'un terminal mobile selon l'une quelconque des revendications précédentes, caractérisé en ce que la clé de déchiffrement est 15 notamment fonction d'une information caractéristique de la carte à puce, cette information étant enregistrée dans une mémoire de la carte à puce de manière non modifiable. 6. Terminal de télécommunication comprenant un composant personnel nécessaire à l'accès réseau de télécommunication de type carte à puce; première unité de traitement, une mémoire de fonctionnement contenant les informations nécessaires au fonctionnement du 25 terminal à savoir un programme de fonctionnement du terminal et des données nécessaires à ce programme, caractérisé en ce que le contenu de la mémoire de fonctionnement (23) est chiffré, en ce que le terminal comprend en outre une mémoire de programme (21) 30 contenant un programme de démarrage permettant de lancer le calcul de la clé K nécessaire au déchiffrement. 7. Terminal de télécommunication, caractérisé en ce 35 qu'il comprend une deuxième unité de traitement (30) GEMJ404 l dédiée au déchiffrement à la volée de la mémoire de fonctionnement, et un registre (24) pour stocker par blocs les informations déchiffrées à la volée, l'unité de traitement utilisant ces blocs déchiffrés pour travailler. 8. Terminal de télécommunication selon la revendication 6 ou 7, caractérisé en ce qu'il comprend un composant (22) matériel non modifiable contenant une 10 donnée caractéristique du terminal, cette donnée étant utilisée dans le calcul de la clé K. GEMJ404