Brevet FR2786289A1 — publié le 20000526

La présente invention se rapporte à un dispositif et à un procédé de protection contre un accès à une mémoire et à une machine à affranchir les mettant en oeuvre. Elle s'applique en particulier aux machines à la détection de tout accès interdit, en écriture à des compteurs ascendants ou descendants d'une machine à affranchir, compteurs relatifs à des sommes d'argent. Elle s'applique aussi, en particulier, à la protection en lecture et en écriture d'une clé privée d'une méthode de cryptage ou d'authentification. Dans une machine à affranchir, certains compteurs (dits"postaux") représentant des sommes d'argent. Dans l'état de la technique antérieure à la présente invention, aucune protection logicielle n'est prévue contre des accès interdits. Des solutions consistant à effectuer un verrouillage par une carte électronique, sont complexes et coûteuses. La présente invention vise à remédier à ces inconvénients. A cet effet, la présente invention vise à utiliser des ressources de certains types de processeurs pour protéger les données conservées dans certaines zones de mémoire protégées. Les processeurs en question sont des processeurs possédant un point d'arrt matériel (connu sous le nom de"debug register"signifiant"registre pour la mise au point"). Ces points d'arrt matériels sont, conformément à la présente invention, programmés de manière à contrôler les accès à une donnée protégée. La mise en oeuvre d'un point d'arrt provoque la génération d'une interruption à chaque fois qu'une adresse mémoire programmée est accédée. Ainsi, selon un premier aspect, la présente invention vise un procédé de protection de données dans un dispositif comportant un microprocesseur possédant au moins un point d'arrt matériel, caractérisé en ce qu'il comporte une opération d'affectation de point d'arrt à des données à protéger. Grâce à ces dispositions, une interruption est générée à chaque fois qu'une donnée à protéger est accédée. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte : -à chaque arrt déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de validité de l'accès ; -à chaque arrt déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de la programmation des registres de contrôles ; -à chaque arrt déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de ce que l'adresse de retour de l'interruption est dans la zone autorisée du programme ; et/ou -une opération d'appel du gestionnaire d'erreur lorsqu'au moins une opération de vérification donne un résultat négatif. Grâce à chacune de ces dispositions, la mise en oeuvre de la présente invention est particulièrement simple et efficace. Selon un deuxième aspect, la présente invention vise un dispositif de protection de données dans un système comportant un microprocesseur possédant au moins un point d'arrt matériel, caractérisé en ce qu'il comporte un moyen d'affectation de point d'arrt à des données à protéger. L'invention vise, aussi, une machine à affranchir, caractérisée en ce qu'elle comporte un dispositif tel que succinctement exposé ci-dessus. L'invention vise aussi : -un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique caractérisé en ce qu'il permet la mise en oeuvre du procédé de l'invention telle que succinctement exposée ci-dessus, et -un moyen de stockage d'informations amovible, partiellement ou totalement, et lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique caractérisé en ce qu'il permet la mise en oeuvre du procédé de l'invention telle que succinctement exposée ci-dessus. Ce dispositif, cette machine à affranchir et ces moyens de stockage présentant les mmes avantages que le procédé succinctement exposé cidessus, ceux-ci ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques ressortiront de la description qui va suivre, faite en regard des dessins annexés dans lesquels : -la figure 1 représente, une machine à affranchir mettant en oeuvre le dispositif et le procédé de protection objet de la présente invention, -la figure 2 représente, schématiquement, un circuit électronique incorporé dans la machine à affranchir illustrée en figure 1, et -la figure 3 représente un organigramme de fonctionnement du dispositif illustré en figures 1 et 2. La machine à affranchir 1 illustrée sur les dessins comporte un dispositif pour imprimer, sur un objet plat tel que la lettre 2, d'une part, une marque d'affranchissement et, éventuellement, une adresse de destination de l'enveloppe. Pour imprimer la marque d'affranchissement sur l'emplacement normalisé prévu à cet effet, il faut faire passer la lettre 2 dans un couloir 5 que comporte la machine 1, ce couloir étant délimité par des éléments solidaires du bâti, respectivement un support de glissement 6 qui forme le plafond du couloir 5, une table 7 qui en forme le plancher et une rampe qui en forme une limite latérale, le couloir étant ouvert à t'opposé de cette rampe. Pour faire passer la lettre 2 dans le couloir 5, on pose la lettre sur la partie de la table 7 qui est en saillie du côté prévu pour l'introduction (côté que l'on voit à gauche en figure 1) puis on fait rentrer la lettre dans le couloir 5, comme montré en figure 1, jusqu'à ce qu'elle soit entraînée par les moyens prévus à cet effet dans la machine 1, l'impression de la marque d'affranchissement s'effectuant automatiquement pendant que la lettre 2 est entraînée dans le couloir 5, la lettre affranchie étant expulsée de la machine à l'autre extrémité du couloir 5 (extrémité que l'on voit à droite en figure 1). Pour entraîner la lettre 2, la machine 1 comporte deux galets 9 et 10 passant chacun au travers d'une ouverture de la table 7, et deux contre-galets 12 et 13, respectivement pour le galet 9 et pour le galet 10, passant au travers d'une ouverture du support 6. Les galets 9 et 10 sont montés à rotation par rapport au bâti de la machine 1, par l'intermédiaire de moyens de suspension 14 montrés schématiquement sur la figure 1. Les contre-galets 12 et 13 sont montés à rotation sur le bâti de la machine 1, sans tre suspendus par rapport à celui-ci. Un moteur électrique non représenté sert à entraîner en rotation synchrone les contre-galets 12 et 13, par exemple par l'intermédiaire d'une courroie (non représentée) qui tourne autour de trois pignons portés respectivement par le moteur, par le contre-galet 12 et par le contre-galet 13. Etant donné que les moyens de suspension 14 sollicitent les galets 9 et 10 vers le support 6, et donc vers les contre-galets 12 et 13, les galets 9 et 10 sont entraînés par friction sur les contre-galets 12 et 13, directement ou par l'intermédiaire d'un objet, tel que la lettre 2, en cours de passage dans la machine 1. La lettre 2, lorsqu'elle est introduite dans le couloir 5 comme montré sur la figure 1, finit par rencontrer le galet 9 puis le contre-galet 12 qui l'entraîne dans le sens indiqué sur la figure 1 par la flèche horizontale orientée de gauche à droite. Simultanément, le galet 9 s'abaisse tandis que la lettre 2 s'introduit entre les galets 9 et 12 de sorte que la lettre 2 progresse dans la machine 1 avec sa face à imprimer 4 qui est plaquée et qui glisse contre la surface 17 du support de glissement 6. Pour imprimer la marque d'affranchissement à l'emplacement normalisé qui lui correspond et/ou l'adresse de destination à l'emplacement normalisé qui lui correspond, la machine 1 comporte des moyens d'impression 19 montrés très schématiquement sur la figure 1. D'une façon générale, les moyens d'impression 19 déposent la marque d'affranchissement pendant que la lettre 2 ou l'objet à affranchir circule dans la machine 1 avec sa face à imprimer qui est plaquée contre la surface 17 du support de glissement 6, les moyens 19 étant situés entre les contre-galets 12 et 13. Dans l'exemple illustré, les moyens d'impression 19 sont montés directement sur le bâti de la machine, et sont donc fixes par rapport au support de glissement 6. Afin que les moyens d'impression 19 soient commandés en synchronisme avec l'avancement de l'objet dans la machine, il est prévu un détecteur de présence de l'objet (non représenté) qui déclenche un processus d'impression se déroutant automatiquement. Plus précisément, il existe un premier détecteur de présence qui commande la mise en route du moteur (non représenté) lorsqu'un objet commence à tre introduit dans la machine 1, et un deuxième détecteur de présence (non représenté) qui déclenche le processus d'impression lorsque l'objet est parvenu à un emplacement prédéterminé. En figure 2, est représenté un circuit électronique de commande du dispositif tel que présenté en figure 1. Ce circuit est illustré sous forme de schéma synoptique et représenté sous référence générale 100. II comporte, reliés entre eux par un bus d'adresses et de données 102 : -une unité centrale de traitement (microprocesseur) ; -une mémoire vive RAM 104 ; -une mémoire morte flash PROM 105 ; -un port d'entrée sortie 103 servant à recevoir : 0 le poids de l'objet postal à affranchir, et * ta détection de l'objet postal par chacun des détecteurs (non représentés aux figures) et à transmettre : des signaux de commande de moteurs, et et, indépendamment du bus : -des moteurs pas-à-pas 109 ; -des détecteurs de présence 110 ; -un écran de visualisation 108 relié au port d'entrée/sortie ; -une balance 112 reliée au port d'entrée/sortie 103 et fournissant des octets représentatifs du poids d'un objet postal ; et -un clavier 101 relié au port d'entrée/sortie 103 et fournissant des octets représentatifs des touches de clavier successivement utilisées. Chacun des éléments illustrés en figure 2 est bien connu de l'homme du métier des circuits à microprocesseur et, plus généralement, des systèmes de traitement de l'information. Ces éléments ne sont donc pas décrits ici. La mémoire vive 104 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la suite de la description, les mmes noms que les données dont ils conservent les valeurs. La mémoire vive 104 comporte notamment des registres conservant des informations représentatives du poids de l'objet postal à affranchir, le format de l'objet postal en cours de traitement, le nombre d'objets postaux dans le lot en cours de traitement, des valeurs de compteurs ascendant et descendant qui correspondent à des montants d'affranchissement déjà déposés et restant à déposer avant le rechargement de la machine. Ces derniers registres fonctionnent selon des techniques connues dans le domaine des machines à affranchir (au cours de chaque affranchissement, lorsque le montant du compteur descendant est supérieur au montant de la marque d'affranchissement à déposer, il est décrémenté du montant de cette marque et le compteur ascendant est incrémenté du mme montant). La mémoire morte 105 est adaptée à conserver le programme de fonctionnement de l'unité centrale de traitement 106, dans un registre program1", et les données nécessaires au fonctionnement de ce programme. En particulier, sont conservés dans la mémoire morte 105 : -des valeurs correspondant aux registres de contrôle (voir test 302, en figure 3), et -des adresses correspondant à un retour d'interruption dans une zone autorisée du programme, (voir test 303, figure 3). En fait, la mémoire dite"morte"105 est une mémoire réinscriptible qui ne s'efface pas lorsque le dispositif est éteint. Elle n'est réinscriptible que selon des procédures sécurisées et seulement par certaines personnes habilitées, si bien que, pour l'utilisateur quotidien, elle apparaît comme une mémoire morte. L'unité centrale de traitement 106 est adaptée à mettre en oeuvre le programme conservé en mémoire morte 105 et à organiser la mémoire vive 104, conformément à la figure 3. Le programme ou logiciel de la machine à affranchir est un logiciel multitâche, ce qui implique une allocation, par le processeur, d'un espace mémoire, ou pile, associé à chaque tâche. Cet espace mémoire est contenu dans la mémoire vive 104. Dans le mode de réalisation décrit et représenté, l'unité centrale 106 est un processeur du type INTEL (marque déposée) de la génération ou plus jeune que la génération 80386 (marque déposée). Un registre pour la mise au point permet de protéger un mot de 32 données binaires, ou bits. En utilisant plusieurs registres identiques, il est possible de protéger des zones de mémoire plus importantes. Conformément à la présente invention, on effectue une opération d'affectation de point d'arrt à des données à protéger. On observe ici que les points d'arrt matériels et le type d'accès interdit sont programmés à l'aide de registres. Ceux-ci sont vérifiés régulièrement de manière à garantir que la donnée protégée l'est toujours. Le registre de commande des registres pour la mise au point permet de spécifier le type d'accès à contrôler (lecture, écriture, exécution). Ainsi, lors d'un accès à une donnée protégée, l'accès est détecté par le microprocesseur et une interruption est effectuée. Au cours de l'interruption qui est tancée lorsqu'un accès à la donnée protégée est détecté, on vérifie la bonne programmation des registres de contrôle, en les comparant aux valeurs de référence conservées en mémoire morte 105, et si l'accès à la donnée est licite. On effectue ainsi, à chaque arrt déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de validité de l'accès. Lors de l'appel de l'interruption, 1'adresse courante du pointeur d'instruction est sauvegardée. Selon un mode de réalisation de la présente invention, cette adresse courant du pointeur d'instruction est comparée avec les adresses mémoire des fonctions autorisées à accéder aux données protégée. Si l'accès est autorisé, l'opération d'accès se poursuit. Sinon, si l'accès est interdit ou si le contenu des registres de programmation a été modifié, le gestionnaire d'erreur est immédiatement appelé pour signaler que l'accès était interdit et que le contenu de cette donnée n'est plus valide (dans le cas d'une écriture). En effet, dans le mode de réalisation décrit et représenté, et dans le cas de la protection en écriture, celle-ci est effectuée avant la génération de l'interruption. Dans le cas de la protection de compteurs, le procédé de l'invention permet d'indiquer que la valeur d'un compteur a été altérée et, dans le cas d'une double sauvegarde, il est possible de stopper l'application et d'indiquer quel compteur est valide. Dans le cas de la protection d'une clé d'encryptage ou d'authentification, la mise en oeuvre de l'invention permet de détecter toute lecture illicite et d'assurer la validité de la clé et de valider le changement de clé. En figure 3, on observe que, lors d'un accès à une donnée contrôlée est détecté, opération 301, une interruption est déclenchée. Au cours de cette interruption, au cours d'un test 302, t'unité centrale 106 détermine si les registres de contrôle sont programmés correctement, ou non, par comparaison des valeurs contenues dans ces registres avec des valeurs conservées en mémoire morte 105. Lorsque le résultat du test 302 est positif, au cours d'un test 303, l'unité centrale 106 détermine si l'adresse de retour de l'interruption est dans la zone autorisée du programme, ou non, en comparant cette adresse avec des adresses conservées en mémoire morte 105. Lorsque le résultat de l'un des test 302 ou 303 est négatif, au cours d'une opération 305, t'unité centrale 106 procède à un appel du gestionnaire d'erreur en déroutant l'exécution du logiciel vers la zone correspondant au gestionnaire d'erreur en mémoire morte 105. Lorsque le résultat du test 303 est positif, !'interruption en cours est achevée et l'unité centrale 106 effectue un retour au programme qui était en cours d'exécution lors de l'accès à une donnée contrôlée détectée au cours de l'opération 301. REVENDICATIONS 1. Procédé de protection de données dans un système comportant un microprocesseur (106) possédant au moins un point d'arrt matériel (301), caractérisé en ce qu'il comporte une opération d'affectation de point d'arrt à des données à protéger, en ce qu'il consiste à provoquer dans ledit microprocesseur (106) la génération d'un arrt ou interruption (301) à chaque fois qu'une desdites données à protéger est accédée. 2. Procédé de protection selon la revendication 1, caractérisé en ce qu'il comporte, à chaque arrt (301) déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de validité de l'accès (302, 303). 3. Procédé de protection selon l'une quelconque des revendications 1 ou 2, caractérisé en ce qu'il comporte, à chaque arrt (301) déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de la programmation des registres de contrôle (302). 4. Procédé de protection selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comporte, à chaque arrt (301) déclenché par un point d'arrt matériel affecté à une donnée protégée, une opération de vérification de ce que l'adresse de retour de l'interruption est dans la zone autorisée du programme (303). 5. Procédé de protection selon l'une quelconque des revendications 2 à 4, caractérisé en ce qu'il comporte une opération d'appel de gestionnaire d'erreur (305) lorsqu'au moins une opération de vérification (302,303) donne un résultat négatif. 6. Dispositif de protection de données dans un système comportant un microprocesseur (106) possédant au moins un point d'arrt matériel, caractérisé en ce qu'il comporte un moyen d'affectation (106) de point d'arrt à des données à protéger. 7. Dispositif de protection selon la revendication 6, caractérisé en ce qu'il comporte un moyen de vérification (106) de validité de chaque accès correspondant à un arrt déclenché par un point d'arrt matériel affecté à une donnée protégée. 8. Dispositif de protection selon l'une quelconque des revendications 6 ou 7, caractérisé en ce qu'il comporte un moyen de vérification (106) de la programmation des registres de contrôle. 9. Dispositif de protection selon l'une quelconque des revendications 6 à 8, caractérisé en ce qu'il comporte un moyen vérification (106) de ce que l'adresse de retour de l'interruption est dans la zone autorisée du programme. 10. Dispositif de protection selon l'une quelconque des revendications 6 à 9, caractérisé en ce qu'il comporte un moyen d'appel (106) de gestionnaire d'erreur lorsqu'au moins un moyen de vérification fournit un résultat de vérification négatif.