Brevet FR2744540A1 — publié le 19970808

Description L'invention concerne un système de traitement de l'information constitué par un circuit-processeur formé d'au moins un processeur et une mémoire interne contenant au moins un premier jeu d'instructions pour régir une partie, au moins, de son fonctionnement et par une mémoire annexe contenant des informations à protéger. L'invention concerne aussi un procédé mis en oeuvre dans un tel système. Une telle invention se rapporte plus particulièrement aux systèmes qui sont confrontés aux problèmes de sécurité et pour lesquels on doit prévoir des mesures, pour que le système ne soit pas la proie d'utilisateurs malveillants et/ou malhonnêtes. Par exemple des systèmes qui impliquent des traitements monétaires. On connait des circuits-processeurs protégés tels que ceux fabriqués par Philips et portant l'immatriculation P83C852. Si ce circuit-processeur contenant entre autres, sur la même puce, une mémoire interne pour un programme, offre toute garantie en ce qui concerne l'impossibilité de modifier frauduleusement ses constituants et notamment les instructions contenues dans sa mémoire interne, il n'en est plus de même lorsque l'on doit rajouter extérieurement à la puce une mémoire annexe de programme pour des extensions au fonctionnement du système. Pour résoudre ce problème de la protection d'une mémoire annexe, l'invention propose un système du genre mentionné dans le préambule qui est remarquable en ce qu'il est incorporé, dans la mémoire annexe et dans la mémoire interne, un premier code déterminé à partir du contenu de ladite mémoire annexe, en ce qu'il est prévu des premiers moyens de comparaison pour comparer lesdits premiers codes et des premiers moyens de blocage pour modifier le fonctionnement dudit système en cas de différence constatée par les premiers moyens de comparaison des codes contenus dans la mémoire interne et la mémoire annexe. La description suivante, faite en regard des dessins ci-annexés, le tout donné à titre d'exemple non limitatif fera bien comprendre comment l'invention peut être réalisée. La figure 1 montre un système conforme à l'invention. La figure 2 montre l'implantation de codes de protection dans la mémoire annexe. La figure 3 montre un premier organigramme du procédé de l'invention. La figure 4 montre un deuxième organigramme du procédé de l'invention. A la figure 1, la référence 1 indique un circuitprocesseur du genre mentionné ci-dessus. Il se compose d'un processeur 3 proprement dit, d'une mémoire vive 5 et d'une mémoire morte interne 6 destinée à contenir des lignes de programme qui définissent au moins partiellement le fonctionnement de l'ensemble dans lequel est inséré le système de l'invention. Parmi ces lignes, on trouve des fonctions de sécurisation qui permettent d'effectuer des opérations monétaires, par exemple. Ces fonctions peuvent être activées ou non. Si elles sont désactivées, les opérations monétaires sont rendues impossibles. Le circuit-processeur 1 est donc constitué d'une seule puce dans laquelle des mesures ont été prises pour que l'intégrité de tous ses constituants, y compris et surtout, l'intégrité des lignes de programmes contenues dans la mémoire morte soient assurées. A ce circuit-processeur 1 est rattachée une mémoire morte externe 10, ou qualifiée aussi d'annexe, qui contient des lignes pour contenir des mots faisant partie de programmes supplémentaires à protéger. Cette mémoire externe est rattachée, par des lignes communes BUSA et BUSD, connectées aux lignes internes communes du circuit processeur par un circuit isolateur de lignes communes portant la référence 8. Cette isolateur ne met en relation les lignes communes internes et externes que lorsque la mémoire externe est adressée. Ainsi, il devient impossible d'ausculter les lignes communes internes du circuit processeur 1. Selon l'invention, pour s'assurer de l'intégrité des lignes programmes contenues dans la mémoire externe 10 - il est incorporé dans la mémoire annexe et dans la mémoire interne un même premier code de protection, déterminé à partir du contenu de ladite mémoire annexe, ce code porte la référence C1 dans la mémoire morte 6 et C'1 dans la mémoire annexe 10. - il est prévu des premiers moyens de comparaison pour comparer C1 et C'1. Si ces deux codes ne sont pas identiques, ce qui peut être la conséquence d'une fraude, alors on bloque le fonctionnement du système. Le code de protection est formé par exemple à partir d'un code CRC établi sur le contenu de la mémoire et est ensuite crypté par n'importe quel moyen de cryptage connu. La flèche F1 à la figure 2 montre que le code C'1 est établi sur pratiquement la totalité de la mémoire 10. Comme le calcul du CRC peut prendre trop de temps dans certaines circonstances, l'invention propose d'adjoindre un deuxième code de protection C'2 portant sur une plus petite partie de la mémoire annexe 10, de sorte que le calcul devient plus rapide. Ceci est représenté par la flèche F2 à la figure 2. On notera la présence d'un identificateur ID qui donne le type de la mémoire annexe, c'est-à-dire si l'intégrité de cette mémoire doit être vérifiée ou pas. La figure 3, qui est un organigramme, amme, explique comment les codes de protection ci-dessus sont mis à profit pour éviter que la mémoire annexe soit modifiée ou même changée. La case KO représente le démarrage du système à l'aide d'instructions contenues dans la mémoire 6. Puis, à la case K1, on procède à l'initialisation. La case K5 montre un test sur le type de la mémoire annexe. Pour cela, on va lire le mot ID dans la mémoire 10. Si ce mot n'implique aucune opération de sécurisation, alors on va à la case K10 qui symbolise une opération de désactivation de toutes les fonctions de sécurisation contenues dans la mémoire morte 6. Si ce mot implique une sécurisation, alors on établit un code CRC (case K12) sur la quasi totalité du contenu de la mémoire annexe et on crypte (case K15) selon un processus de cryptage déterminé ce code CRC. On obtient ainsi le code C'1 que l'on compare avec le code C1 provenant de la mémoire 6. Si cette comparaison indique une discordance, alors on passe à la case K10. Si lesdits codes sont identiques, alors le programme peut se dérouler à partir de la mémoire 10 (case K25). La figure 4 montre l'utilisation du deuxième code de protection. Celui-ci est utilisé périodiquement durant le fonctionnement du système. A cet effet, des interruptions de programme sont générées (case K50). Puis on détermine le code C'2 de la manière dont est élaboré le code C'1 (case K52). Les codes C2 et C'2 sont comparés (case K55). Si ces codes sont identiques, on attend la prochaine interruption pour effectuer un prochain contrôle. Sinon, on redémarre une réinitialisation du système, en d'autres termes, on redémarre à la case KO. Il est bien évident que les codes à comparer C1, C2, C'1 et C'2 peuvent se présenter de manière différente dans les mémoires interne et externe, les moyens de comparaison devant alors en tenir compte. REVENDICATIONS. 1- Système de traitement de l'information constitué par un circuit-processeur formé d'au moins un processeur et d'une mémoire interne contenant au moins un premier jeu d'instructions pour régir une partie, au moins, de son fonctionnement et par une mémoire annexe contenant des informations à protéger, caractérisé en ce qu'il est incorporé dans la mémoire annexe et dans la mémoire interne un premier code déterminé à partir du contenu de ladite mémoire annexe, en ce qu'il est prévu des premiers moyens de comparaison pour comparer lesdits premiers codes et des premiers moyens de blocage pour modifier le fonctionnement dudit système en cas de différence constatée par les premiers moyens de comparaison des codes contenus dans la mémoire interne et la mémoire annexe. 2- Système de traitement de l'information selon la revendication 1, caractérisé en ce qu'il est incorporé, dans la mémoire annexe et dans la mémoire interne, un deuxième code déterminé à partir d'une petite partie du contenu de ladite mémoire annexe, en ce qu'il est prévu des deuxièmes moyens de comparaison pour comparer lesdits deuxièmes codes et des deuxièmes moyens de blocage pour modifier le fonctionnement dudit système en cas de différence constatée par les deuxièmes moyens de comparaison des codes contenus dans la mémoire interne et la mémoire annexe. 3- Système de traitement de l'information selon la revendication 1 ou 2, caractérisé en ce que les premiers moyens de comparaison sont déclenchés au début du fonctionnement du système. 4- Système de traitement de l'information selon la revendication 2 ou 3, caractérisé en ce que les deuxièmes moyens de comparaison sont déclenchés une multitude de fois durant le fonctionnement du système. 5- Système de traitement de l'information selon la revendication 2 ou 3 ou 4, caractérisé en ce que les deuxièmes moyens de blocage sont prévus pour déclencher à nouveau les premiers moyens de comparaison en cas de différence constatée par les deuxièmes moyens de comparaison des codes contenus dans la mémoire interne et la mémoire annexe. 6- Procédé mis en oeuvre dans un système selon l'une des revendications 1 à 5, caractérisé en ce qu'il comporte les étapes suivantes - incorporation dans la mémoire annexe et dans la mémoire interne d'un premier code déterminé à partir du contenu de ladite mémoire annexe, - première comparaison desdits premiers codes, - modification du fonctionnement dudit système en cas de différence constatée par ladite première comparaison. 7- Procédé selon la revendication 6 caractérisé en ce qu'il comporte les étapes suivantes - incorporation dans la mémoire annexe et dans la mémoire interne d'un deuxième code déterminé à partir d'une petite partie du contenu de ladite mémoire annexe, - deuxième comparaison desdits deuxièmes codes, - modification du fonctionnement dudit système en cas de différence constatée par la deuxième comparaison. 8- Procédé selon la revendication 7, caractérisé en ce qu'il comporte les étapes suivantes - à nouveau, déclenchement de la première comparaison en cas de différence constatée par la deuxième comparaison.