Brevet FR2812510A1 — publié le 20020201

La présente invention concerne la protection des données d'exploitation d'un terminal de radiotéléphonie cellulaire. Il existe des terminaux dits d'entrée de gamme, pas trop onéreux mais à fonctions téléphoniques limitées, et des terminaux dits haut de gamme, à fonctions téléphoniques évoluées mais plus onéreux. En pratique, il s'agit souvent d'une seule fabrication matérielle et logicielle pour toute la gamme et, en usine, chaque terminal reçoit en mémoire un champ de données d'identification, par exemple appelées IMEI (numéro d'identité internationale d'équipement mobile) dans le cadre des équipements à la norme GSM, qui, selon sa position dans la gamme, inhibe un nombre plus ou moins grand de fonctions haut de gamme. De façon classique, les données d'identification du terminal sont stockées dans une mémoire de paramètres de caractérisation du terminal, par exemple une mémoire du type EEPROM (électriquement effaçable) qui contient aussi des paramètres fonctionnels de verrouillage, associant le terminal à uniquement un réseau déterminé. Il est de ce fait relativement aisé de remplacer la mémoire EEPROM par une autre du même type, mais dont le contenu est une copie du contenu d'une mémoire homologue d'un autre terminal, mais de haut de gamme et/ou non verrouillé pour fonctionner sur un seul réseau. Pour empêcher un tel remplacement, une solution classique consiste à coller la mémoire sur la carte de circuit imprimé qui la porte, afin de provoquer une destruction de cette dernière en cas de tentative de démontage de la mémoire. La présente invention vise à rendre plus difficile une telle falsification des données de caractérisation d'un terminal. A cet effet, l'invention concerne tout d'abord un procédé d'exploitation d'un terminal de téléphonie cellulaire, procédé dans lequel 2 2812510 - on écrit dans une mémoire du terminal des données de caractérisation du terminal et - on relit les données de caractérisation avant d'autoriser les fonctions du terminal, procédé caractérisé par le fait - qu'on écrit dans une mémoire des données d'identification individuelle du terminal, on apparie les données de caractérisation et les données d'identification et - on vérifie l'appariement avant d'autoriser les fonctions du terminal. Ainsi, les données d'identification individuelle du terminal constituent un repère immuable du matériel, repère auquel sont référencées les données de caractérisation. On ne peut donc, par modification de logiciel, ajouter des fonctions complémentaires au matériel constituant le terminal ou modifier son numéro d'identité. Avantageusement, on mémorise les données d'identification dans la mémoire de données de caractérisation, on apparie les données de caractérisation du terminal et les données d'identification en les cryptant ensemble par une fonction de cryptage déterminée et, utilisant une fonction de cryptage à clé publique, on crypte, à titre de données d'identification, un numéro de fabrication de la mémoire et un numéro secret d'identification d'un processeur du terminal. Le cryptage assure ainsi, à partir des numéros des composants, une bonne protection contre toute modification des données. Dans un mode préféré de mise en oeuvre, - on écrit les données de caractérisation en mémoire réinscriptible, - on détecte une mise en service du terminal et - on transfère le contenu de la mémoire réinscriptible dans une mémoire non réinscriptible. Le terminal peut ainsi, en cas d'imprévu, être programmé en usine pour un autre distributeur, par exemple en forçant le niveau électrique d'une 3 2812510 broche de la mémoire non réinscriptible à un niveau logique bloquant le transfert. L'invention concerne aussi un terminal pour la mise en oeuvre du procédé de l'invention, comportant un circuit à la demande comprenant: - une zone de circuit dans laquelle est gravé un numéro de série du circuit, - des moyens de cryptage agencés pour crypter des données de caractérisation du terminal avec le numéro de série et fournir le résultat de cryptage, et - des moyens de vérification agencés pour lire les données et le numéro de série et vérifier leur concordance avec le résultat de cryptage et pour inhiber des moyens d'exploitation du terminal en cas de discordance. L'invention sera mieux comprise à l'aide de la description suivante d'un mode de mise en oeuvre préféré du procédé de l'invention, en référence à la figure unique qui représente fonctionnellement les circuits d'un terminal de radiotéléphonie pour la mise en oeuvre du procédé. Le terminal représenté est destiné au réseau GSM et comporte une unité centrale 1 reliée par un bus 3 à une mémoire 2. Les autres circuits, classiques, d'un tel terminal n'ont pas été représentés, dans un but de clarté. La mémoire 2 est une mémoire morte réinscriptible électriquement, de type FLASH, dont une zone mémoire 20 contient des logiciels de fonctions d'exploitation du terminal. Une zone mémoire 22 est réservée à des données de spécification fonctionnelle du terminal, ici appelées BRID, qui définissent les fonctions autorisées dans celui-ci, comme par exemple le réseau radio autorisé, et constituent des données de bridage par rapport à d'autres fonctions que le terminal serait matériellement apte à exécuter, par exemple les accès à divers autres réseaux de radiotéléphonie cellulaire. Une zone mémoire 23 contient des données IMEI d'identification logique du terminal. Une autre zone mémoire 24 est réservée à un mot de code CHS, de total de vérification, résultant d'un cryptage de données expliqué plus loin. 4 2812510 Dans cet exemple, les zones 22, 23 et 24 appartiennent à une zone 21 de type OTP (One Time Programmable: programmable une seule fois). La mémoire 2 comporte en outre une zone mémoire morte 25 non modifiable, dans laquelle ont été mémorisées des données identifiant individuellement et matériellement la mémoire 2 et donc le terminal. Plus précisément, les données d'identification matérielle sont ici un numéro de fabrication ou de série (numéro dans la série) de la mémoire 2 qui a été no gravé dans celle-ci lors de sa fabrication. Il est donc immuable et spécifique à la mémoire 2, toute substitution par une mémoire de la même série pouvant donc être détectée. L'unité centrale 1 comporte une base de temps 10 rythmant le fonctionnement des divers circuits représentés et en particulier d'un microcontrôleur 11 relié au bus 3. Elle comporte en outre un processeur de signal (DSP) 12 qui traite les signaux des communications téléphoniques (numérisation, mise en paquets et autres), en liaison avec des circuits radio d'émission-réception GSM 13. Il est en outre prévu un bloc 14 de circuits de cryptage et un bloc 15 de circuits de décryptage, ou vérification, des données cryptées. Les blocs 14 et 15 auraient pu être prévus intégrés au microcontrôleur 11 ou encore au processeur de signal 12 sous forme de logiciels utilisant celui-ci en partage de temps. Une mémoire 16 du même genre que la mémoire 2 est aussi prévue et utilisable par les divers circuits, la mémoire 2 servant d'extension à la mémoire 16. Une mémoire ou zone de circuit masquée 19 contient un numéro de série, ou de fabrication, de l'unité centrale 1 et a le même rôle que la zone mémoire 24. Plus précisément, la mémoire 19 est intégrée de façon non apparente, ici dans le microcontrôleur 11, pour fournir un numéro secret d'identification du microcontrôleur 11 et donc de l'unité centrale 1, numéro qui a été gravé sous forme de pistes lors de la fabrication de l'unité centrale 1. Dans cet exemple, l'unité centrale 1 est constituée par un circuit à la demande (ASIC). Le bus 3 s'y prolonge en interne pour relier les divers circuits de l'unité centrale 1. 2812510 Le procédé de l'invention, pour éviter un fonctionnement du terminal avec des données de caractérisation IMEI et/ou BRID modifiées, va maintenant être expliqué. Les données IMEI et BRID sont écrites dans la mémoire 2 par le fabricant du terminal. Le fait de disposer d'une zone OTP 21 à cet effet présente l'avantage d'interdire une modification de ces données dans la mémoire 2, mais n'empêche évidemment pas l'échange de celle-ci par une autre. Pour détecter un tel échange de mémoire 2, on écrit aussi comme expliqué plus haut, dans une mémoire (24, 19), des données d'identification individuelle et matérielle du terminal et on apparie celles- ci et les données de caractérisation IMEI et BRID des zones 22 et 23. Ensuite, lorsqu'un utilisateur veut utiliser les fonctions du terminal, ou certaines d'entre elles, le bloc 15 vérifie l'appariement avant d'autoriser ces fonctions. Dans cet exemple, le bloc de vérification 15 contrôle le DSP 12, et uniquement celui-ci, et bloque ainsi les fonctions radio en cas de résultat négatif de la vérification, mettant en évidence une discordance entre les données IMEI, BRID d'origine et celles présentes. Les autres fonctions, d'exploitation locale, sont toujours autorisées et ne sont donc pas verrouillables par le bloc de vérification 15, afin de permettre les tests du terminal en fin de fabrication, sans données IMEI, BRID définitives. Le contrôle du DSP 12 par le bloc de vérification 15 permet de bloquer efficacement le terminal, d'autant que le bloc de vérification 15 peut, comme évoqué, être intégré dans le DSP 12 et donc y être protégé. On aurait pu, en variante, prévoir de bloquer totalement le terminal par le microcontrôleur 11. L'appariement est effectué par le bloc de cryptage 14 qui lit les données IMEI, BRID des zones 22, 23 (ou les reçoit d'un équipement de programmation par le bus 3) et l'une des mémoires 25 et 19 pour associer les contenus lus et fournir un résultat CHS crypte par une fonction de cryptage déterminée, mémorisée ici dans le bloc de cryptage 14. Le résultat de cryptage, CHS, est alors mémorisé dans la zone 24. 6 2812510 Le cryptage met donc en oeuvre trois éléments: une fonction de cryptage et les deux variables que représentent les données de caractérisation IMEI, BRID et le numéro de série en mémoire 19 ou 25. Il suffit donc que l'un de ces trois éléments soit conservé secret pour que toute modification des données IMEI, BRID soit détectée par le bloc de vérification 15. Si c'est la fonction de cryptage qui est secrète ou quasiment secrète (cachée et difficilement accessible depuis l'extérieur dans le bloc 14), le remplacement de la mémoire 2 par une autre modifierait le numéro de série (25) et invaliderait la vérification. Si c'est le numéro de série (25) de la mémoire 2 qui est quasiment secret, la fonction de cryptage peut être publique, et peut donc, sans inconvénient, être mémorisée et accessible en lecture dans la mémoire 2. Pour renforcer la protection du cryptage par le secret, on peut utiliser pour celui-ci, à titre de données d'identification, les deux numéros de série en mémoires 19 et 25, et non plus un seul. En variante, le numéro IMEI pourrait remplacer le numéro de série en mémoire 19 par exemple et être apparié aux données BRID. La mémoire 19 est en effet difficilement accessible en lecture depuis l'extérieur de l'ASIC 1 et le numéro de série qu'elle contient, utilisé en interne par les blocs 14 et 15, maintient une protection du cryptage même si la fonction de cryptage, les données IMEI, BRID (22, 23) et le numéro de série (25) de la mémoire 2 sont publics. Les intégrations des blocs 14 et 15 et de la mémoire 19 dans l'ASIC 1 constituent des mesures de protection de la vérification de l'appariement, qui protègent ce qui est en amont (14, 19) du bloc de vérification 15 et protègent aussi sa sortie de commande du DSP 12. Comme évoqué plus haut, pour réaliser la fonction OTP, après mémorisation des données de caractérisation IMEI, BRID dans les zones 22, 23, on mémorise une donnée supplémentaire d'interdiction d'accès en écriture aux données de caractérisation mémorisées IMEI, BRID. Dans la zone OTP, cela consiste à faire fondre en dernier un fusible représentant un bit contrôlant un amplificateur d'écriture, qui va alors être inhibé. Le 7 2812510 résultat CHS du cryptage étant, dans cet exemple, aussi mémorisé en mémoire OTP, 24, on écrit donc les données dans les zones 22, 23, 24 avant d'en verrouiller l'accès en écriture par le bit ci-dessus. Lorsque l'utilisateur du terminal active des touches de celui-ci pour en exploiter les fonctions, le bloc de vérification 15 vérifie la corrélation définie par la fonction de cryptage, entre les éléments du groupe constitué par les différentes variables, utilisées pour le cryptage dans les mémoires 22, 23, 24 et 25 et/ou 19, et par le résultat du cryptage CHS (24). Le bloc de vérification 15 lit à cet effet les variables ci-dessus, tout comme précédemment le bloc de cryptage 14, et vérifie qu'elles permettent d'obtenir ce même résultat CHS par la fonction de cryptage. Cette vérification peut aussi consister à recalculer l'une des variables (d'origine), IMEI, BRID par exemple, à partir des autres et du résultat de cryptage CHS, et à vérifier que cette variable d'origine recalculée a conservé sa valeur lors de la lecture de la mémoire (ici 22, 23) qui la contient. Le bloc de vérification 15 effectue donc un cryptage identique à celui du bloc 14 et vérifie la concordance, ou égalité, des données homologues des deux cryptages ou effectue un décryptage dans le même but. En variante, il peut être prévu que les zones de mémoire OTP 22, 23 et/ou 24 appartiennent à la mémoire 16 de l'ASIC 1 afin de mieux protéger le secret de leur contenu et/ou éviter la duplication de celuici. L'ASIC 1 étant en effet un composant dont la commercialisation est contrôlée, puisqu'il a été spécifié pour le fabricant du terminal, il est donc difficile, à une personne non autorisée, de s'en procurer un lot pour le falsifier, tandis que les circuits intégrés du type de la mémoire 2 sont au contraire largement commercialisés. Pour éviter le remplacement de la mémoire 2 par un émulateur des circuits (2) extérieurs à l'ASIC 1, susceptible de lui fournir un logiciel de contrôle de cryptage et de blocage du terminal qui aurait été modifié pour être inefficace, il peut être prévu que le microcontrôleur 11 dispose d'un logiciel en mémoire morte ROM (zone OTP de la mémoire 16) dans I'ASIC 1, comportant en particulier le numéro de série (25) de la 8 2812510 mémoire 2, pour vérifier l'identité (25) que cette dernière fournit. En outre, la mémoire ROM en ASIC 1 peut comporter un mot de code décrivant globalement le contenu de la mémoire 2, c'est-à-dire un mot de code de total crypte de son contenu (check-sum), associé à une clé secrète mémorisée dans la ROM de 'ASIC 1. Le microcontrôleur 11 ou le DSP 12 dispose ainsi d'un "noyau dur" de logiciel permettant de détecter toute modification de sa programmation et, ainsi, un logiciel utilisé pour l'ASIC 1 est protégé par sa mémorisation, au moins partielle, dans cette mémoire interne à l'ASIC 1. De plus, il peut être prévu que, lorsque le microcontrôleur 11 reçoit, par le bus 3 accessible depuis l'extérieur, des données pour les écrire dans la mémoire 2, ces données soient accompagnées de données de certification de leur émetteur ou source, afin que le microcontrôleur 11 vérifie ces données de certification et refuse de programmer ou reprogrammer la mémoire 2 par des données non certifiées. Les données de certification sont par exemple une somme totale cryptée (check-sum) des données à mémoriser. Dans la source externe, on associe, aux nouvelles données IMEI, BRID, des données de certification et on transmet le total des données au microcontrôleur 11 par le bus 3 et le microcontrôleur 11 vérifie les données de certification avant de mémoriser les données associées IMEI, BRID dans la mémoire 2. La somme totale chiffrée est cryptée par une clé secrète du fabricant du terminal et 'ASIC 1 utilise une clé publique correspondante de décryptage. L'ASIC 1 peut ainsi par exemple calculer lui-même une somme totale des données à mémoriser, qu'il reçoit du bus 3 et mémorise temporairement, et vérifier qu'elle est égale à un mot de code homologue de certification qui accompagne les données reçues. En cas d'échec, il ne transfère pas les données à la mémoire 2 et les détruit. Pour la protection contre les intrusions, afin de protéger le secret des données transitant par le bus 3 entre l'ASIC 1 et la mémoire 2 en fonctionnement normal, il peut en outre être prévu des circuits pour transformer le bus 3 en bus chiffrant, c'est-à-dire pour embrouiller les données qui y sont transmises. De même, le contenu de la zone mémoire peut être mémorisé sous forme embrouillée. Ce contenu peut en 9 2812510 particulier comporter une fonction de vérification de l'appariement, ou du cryptage, utilisée par le bloc de vérification 15. En pareil cas, ces embrouillages protègent les données de vérification de l'appariement. Afin de permettre toutefois une modification des données IMEI, BRID par le fabricant ou le distributeur du terminal, tant que celui-ci n'a pas été mis en service par un utilisateur final, il est ici prévu d'écrire d'abord les données IMEI, BRID et le résultat CHS du cryptage en mémoire réinscriptible (20 ou 16), puis on détecte une mise en service du terminal et on transfère le contenu de la mémoire réinscriptible, 20 ou 16, dans la mémoire non réinscriptible 22, 23 et 24. Cette détection de la mise en service est effectuée par le microcontrôleur 11, qui, dans cet exemple, détecte à cet effet l'activation de touches pour un appel sortant. Si le terminal livré n'est pas mis en service, et retourné au distributeur ou au fabricant, celui-ci peut alors bloquer le transfert en mémoire non réinscriptible, en forçant par exemple une entrée de validation d'écriture de la mémoire non réinscriptible à un état de blocage lorsqu'il met en service le terminal. Ensuite, la mémoire réinscriptible peut être rechargée par de nouvelles données de remise à niveau certifiées, comme exposé plus haut, sous le contrôle du microcontrôleur 11 ou encore du DSP 12, utilisant une fonction, de contrôle des données, stockée de préférence en ROM de l'ASIC 1, donc bien protégée. Pour mieux protéger le numéro de série secret en mémoire 19, il peut être prévu que le microcontrôleur 11 ne fournisse ce numéro de série qu'après fourniture d'une clé logique par le circuit qui l'interroge, cette clé étant stockée en mémoire ROM de l'ASIC 1 et protégeant ainsi le numéro en mémoire 19 contre des accès en lecture illicites. Il en serait de même si la mémoire 19 était prévue dans le DSP 12 et non dans le microcontrôleur 11. Par ailleurs, il peut être prévu une liaison de test de l'ASIC 1, à la norme JTAG par exemple, permettant en particulier de lire pas à pas la mémoire ROM (16) évoquée plus haut, depuis l'extérieur de celui-ci. Pour protéger le secret de certaines données en ROM, telles que fonctions de cryptage, 2812510 décryptage, vérification de certification, clé secrète, numéro de série et autres, on active, à la fabrication du terminal, une protection des zones de ROM (16) correspondantes, pour verrouiller l'accès en lecture à celles-ci depuis la liaison de test. Pour faciliter le test du terminal, il peut être prévu que l'ASIC 1, et par exemple le DSP 12, détecte que la zone mémoire OTP 21 présente tous ses bits à un état initial de non programmation. En pareil cas, si comme ici les données telles que IMEI sont prévues pour être dans la mémoire OTP 21, le DSP 12 détecte donc qu'elles n'ont pas encore été écrites et ne se bloque pas, afin d'autoriser les fonctions du terminal pour permettre les tests en usine. ll 2812510 REVENDICATIONS 1.- Procédé d'exploitation d'un terminal de téléphonie cellulaire, procédé dans lequel - on écrit dans une mémoire du terminal des données (IMEI, BRID) de caractérisation du terminal et - on relit les données de caractérisation (IMEI, BRID) avant d'autoriser les fonctions du terminal, procédé caractérisé par le fait - qu'on écrit dans une mémoire des données (19, 24) d'identification individuelle du terminal, - on apparie les données de caractérisation (IMEI, BRID) et les données d'identification (19, 24) et - on vérifie l'appariement (15) avant d'autoriser les fonctions du terminal. 2.- Procédé selon la revendication 1, dans lequel on mémorise les données d'identification (24) dans la mémoire (2) de données de caractérisation (IMEI, BRID). 3.- Procédé selon l'une des revendications 1 et 2, dans lequel on apparie les données (IMEI, BRID) de caractérisation du terminal et les données d'identification (19, 24) en les cryptant ensemble par une fonction de cryptage déterminée. 4.- Procédé selon les revendications 2 et 3, dans lequel, utilisant une fonction de cryptage publique, on crypte, à titre de données d'identification, un numéro de fabrication (24) de la mémoire (2) et un numéro secret (19) d'identification d'un processeur (1) du terminal. 5.- Procédé selon l'une des revendications 1 à 4, dans lequel, après mémorisation des données de caractérisation (IMEI, BRID), on mémorise une donnée supplémentaire d'interdiction d'accès en écriture à celles-ci. 6.- Procédé selon l'une des revendications 1 à 5, dans lequel, en cas de résultat négatif de la vérification d'appariement, on autorise toutefois l'activation de fonctions d'exploitation locale du terminal. 12 2812510 7.- Procédé selon l'une des revendications 1 à 6, dans lequel on mémorise au moins une partie des données (16, 19) dans un circuit à la demande (1). 8.- Procédé selon l'une des revendications 1 à 7, dans lequel on protège la vérification de l'appariement en prenant des mesures de protection contre les intrusions. 9.- Procédé selon l'une des revendications 1 à 8, dans lequel, - on écrit les données (IMEI, BRID) de caractérisation en mémoire réinscriptible (20), - on détecte une mise en service du terminal et - on transfère le contenu de la mémoire réinscriptible (20) dans une mémoire non réinscriptible (22). 10.- Procédé selon la revendication 9, dans lequel, pour effectuer un remplacement des données (IMEI, BRID) en mémoire réinscriptible par de nouvelles données provenant d'une source externe, - dans la source externe on associe, aux nouvelles données, des données de certification et on transmet les données au terminal et - dans le terminal, on vérifie les données de certification avant de mémoriser les données associées. 1l.- Procédé selon l'une des revendications 4 à 10, dans lequel on protège le numéro secret (19) d'identification de processeur (1) par une clé d'accès en lecture à ce numéro. 12.- Procédé selon l'une des revendications 4 à 11, dans lequel on protège un logiciel utilisé par le processeur (1) en le mémorisant, au moins partiellement, dans une mémoire interne au processeur (1). 13.- Procédé selon l'une des revendications 4 à 12, dans lequel, ayant prévu une liaison de test du processeur (1) accessible depuis l'extérieur de celui-ci, on verrouille l'accès d'une zone de mémoire à protéger depuis la liaison. 13 2812510 14.- Procédé selon l'une des revendications 1 à 13, dans lequel, la mémoire (21) pour les données de caractérisation (IMEI, BRID) étant une mémoire inscriptible une seule fois, on détecte qu'elle n'a pas encore été écrite et on autorise en pareil cas les fonctions du terminal. 15.Terminal pour la mise en oeuvre du procédé de la revendication 1, comportant un circuit à la demande (1) comprenant: - une zone de circuit (19) dans laquelle est gravé un numéro de série du circuit (1), - des moyens de cryptage (14) agencés pour crypter des données de caractérisation du terminal avec le numéro de série et fournir le résultat de cryptage, et - des moyens de vérification (15) agencés pour lire les données et le numéro de série et vérifier leur concordance avec le résultat de cryptage et pour inhiber des moyens (12) d'exploitation du terminal en cas de discordance.