Brevet FR2623640A1 — publié le 19890526

Dispositif micro-informatique contre le déroulement de programmes frauduleux La présente invention concerne la protection des dispositifs micro-informatiques contre le déroulement de programmes frauduleux, en particulier dans des dispositifs micro-informatiques du type comprenant une unité centrale de micro-ordinateur équipée d'au moins un lecteur de disquettes opérant selon un format prédéfini. Plus précisément, elle est relative à la protection contre la modification frauduleuse des données situées en position physique prédéterminée sur chaque disquette et propres à transmettre des commandes-à l'unité centrale, ainsi qu'à définir des fichiers stockés dans la disquette. On appelle ici "programme frauduleux" tout logiciel (système, application) exécutable par l'unité centrale et dont les données sont falsifiées et inauthentiques, de façon à accéder à des fonctions et/ou commandes sensibles et de sécurité du micro-ordinateur. Pour obtenir une protection souple et efficace des dispositifs micro-informatiques contre le déroulement d'un programme frauduleux, il est souhaitable de pouvoir disposer de dispositifs micro-informatiques propres à déclarer inauthentique un logi ciel frauduleux chargé en unité centrale, laquelle déclaration autorisant le déroulement du logiciel mais lui interdisant l'accès aux fonctions et/ou commandes sensibles et de séca- rité du micro-ordinateur. Il est établi que les modifications frauduleuses s'effectuent généralement et le plus facilement au niveau de l'équipement micro-informatique (claviers, disquettes, ...). Ainsi, pour se protéger contre de telles modifications, il est également souhaitable que les données situées en position prédéterminée sur chaque disquette et propres à transmettre des commandes à l'unité centrale offrant l'accès aux fonctions sensibles et de sécurité, devraient être signées et authentifiées de manière sûre et non détournable. Il est également souhaitable que le mécanisme d'authentification des données physiques de la disquette ne devrait pas être non plus détourné et que l'utilisation d'un clavier ne devrait pas permettre le chargement de programmes frauduleux. Dans certaines applications particulières et notamment lors de l'échange en cours de fonctionnement sur un micro-ordinateur d'une disquette déjà déclarée authentique, il est enfin souhaitable que cet échange s'effectue avec une séquence de redémarrage et de rechargement au cours de laquelle les mécanismes d'authentification seraient de nouveau mis en oeuvre. La présente invention a pour but d'apporter une solution à ces problèmes et notamment de prévoir un dispositif microinformatique permettant d'authentifier par un codage non réversible à clé de lecture publique toute partie désignée d'une disquette, afin d'empêcher le déroulement d'un programme stocké sur une disquette et différent du programme authentique d'exécution à partir duquel ce dispositif micro-informatique doit normalement fonctionner. L'invention porte sur un dispositif micro-informatique, du type comprenant une unité centrale de micro-ordinateur équipée d'au moins un lecteur de disquettes opérant selon un format prédéfini, comprenant, sur chaque disquette, des données situées en position physique prédéterminée, propres à transmettre des commandes à l'unité centrale, ainsi qu'à définir des fichiers stockés dans la disquette. Selon une définition générale de l'invention, le dispositif micro-informatique comprend en outre - des moyens matériels de codage propres à associer une signature d'authentification à toute partie désignée de la disquette, en particulier par un codage non réversible à clé de lecture publique; - un premier fichier auxiliaire stocké sur la disquette, et définissant une liste de fichiers à protéger, cette liste comprenant ce fichier lui-même, et les fichiers-systèmes, interprétation, configuration, commande au lancement; - un deuxième fichier auxiliaire stocké sur la disquette, et désignant, comme données à protéger sur la disquette, au moins les emplacements des fichiers définis par le premier fichier auxiliaire; et - des moyens de vérification réagissant à la commande au lancement en contrôlant l'authenticité des fichiers définis par le deuxième fichier auxiliaire, en coopération avec lesdits moyens matériels. Plus particulièrement, les moyens de vérification comprennent des moyens de calcul capables de partager le contenu de la disquette en une pluralité de partitions de même longueur, ainsi qu'à relier lesdites partitions entre elles par une relation de récurrence, ils actionnent les moyens de calcul pour les partitions contenant des données physiques désignées par le second fichier auxiliaire, les moyens matériels de codage associant, à chacune de ces partitions, un bloc de données comprenant une signature formée à partir d'une clé d'écriture secrète, ce qui permet d'appcser une signature globale par chai nage sur le contenu de la disquette ainsi condensé. Selon une autre caractéristique de l'invention, les moyens réagissant à la commande de lancement du micro-ordinateur vérifient l'authenticité du contenu de la disquette condensé et authentifié par les moyens matériels de codage en coopération avec les moyens de calcul. Selon un mode de réalisation préféré du dispositif de l'invention, es moyens de calcul sont chargés à la commande de lancement du micro-ordinateur dans l'unité centrale et exécutés par celle-ci. Selon une première variante, les moyens de calcul sont logés dans le système de base d'entrée/sortie du système d'exploitation du micro-ordinateur. Selon une deuxième variante, les moyens de calcul sont logés dans une mémoire morte auxiliaire reliée directement à l'unité centrale du micro-ordinateur. Selon un mode de réalisation préféré du dispositif de l'invention, la clé de lecture publique est elle-même authentifiée, en particulier par un codage chiffré. Selon un autre mode de réalisation préféré du dispositif de l'invention, le lecteur de disquettes est équipé d'une porte comprenant des moyens de détection propres à détecter l'ouverture de ladite porte ainsi qu'à permettre l'interruption de l'exécution des commandes transmises à l'unité centrale par la disquette. D'autres caractéristiques et avantages de l'invention apparaitront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels - la figure 1 représente une vue schématique montrant les éléments constitutifs et essentiels du dispositif micro-informatique selon l'invention; et - la figure 2 représente un tableau illustrant le partage du contenu de la disquette en une pluralité de partitions de même longueur et l'association auxdites partitions de blots de données signées par l'intermédiaire d'une relation de récur rence. Les dessins annexés comportent à de nombreux titres des éléments de caractère certain. Ils pourront donc non seulement servir à éclairer la description ci-après, mais aussi contribuer à la définition de l'invention, le cas échéant. Sur la figure 1, la référence 2 désigne le dispositif microinformatique selon l'invention. D'une façon sommaire, il comprend une unité centrale 4 équipée d'un lecteur de disquettes 6 opérant selon un format prédéfini. L'unité centrale 4 fait usage d'un microprocesseur (non représenté), par exemple du type de la famille dite 86, en particulier les modèles 8086, 8088, 80286 et 80386 (vendus par INTEL CORPORATION), et d'un système d'exploitation MS-DOS (Marque déposée) conçu par la société Microsoft (Etats-Unis). L'interface homme-machine est un clavier 10 de saisie de données. La disquette 8 est divisée en pistes concentriques, et chaque piste est divisée en secteurs. Chaque disquette 8 comprend des données situées en position physique prédéterminée propre à transmettre des commandes à l'unité centrale 4, ainsi qu'à définir des fichiers stockés sur la disquette 8. La disquette 8 admettant le système d'exploitation MS-DOS comprend - un préchargeur: - des secteurs réservés à l'implantation des deux FAT pour tables d'affectation de fichiers (File Allocation Table); - des secteurs réservés à l'implantation du fichier répertoire-racine; - des fichiers identifiés, formés de blocs d'enregistrement physique (Cluster) chaînés par l'intermédiaire des deux FAT et comprenant des fichiers suivants - fichiers systèmes (IO.SYS, MS DOS.SYS); - fichiers d'interprétation des commandes COMMAND.COM; - fichier de configuration système CONFIG.SYS: - fichier de commande au lancement AUTOEXEC.BAT; et - fichiers exécutables, non-exécutables, de commande d'appareillage, de librairie.... Des moyens matériels 12 sont reliés au dispositif micro-informatique de 11 invention. Ils comprennent une carte 16 comportant, soit directement implantés sur cette carte, soit à l'extérieur et en relation avec cette carte, des éléments physiques de sécurité. Ces éléments physiques de sécurité sont par exemple des puces spécifiques de haute sécurité à DES (Data Encryption Standard) lent ou rapide permettant d'authentifier des blocs de données par l'intermédiaire d'une signature formée d'écriture secrète. La carte 16 permet d'une part d'associer à chacune des partitions de la disquette obtenues par les moyens de calcul que l'on décrira ci-après, des blocs de données signées et d'autre part de vérifier l'authenticité des données codées par un codage à clé de lecture publique. Il est établi que les FAT et les fichiers répertoires d'une disquette ne peuvent pas faire l'objet d'une signature ou d'une authentification puisqu'ils sont gérés par l'unité cen- trale d'une façon dynamique et non statique. En revanche, le dispositif micro-informatique selon l'invention porte une signature sur un fichier auxiliaire appelé SECUR.TXT par la Demanderesse stocké sur la disquette et définissant une liste de fichiers à protéger. Cette liste comprend ce fichier auxiliaire lui-même et les fichiers de la disquette propres à être signés, en particulier les fichiers-systèmes, interprétation, configuration, commande au lancement ainsi que l'ensemble des fichiers désignés par l'utilisateur du dispositif. Un deuxième fichier auxiliaire appelé SECUR;CFN, désigne comme données physiques à protéger sur la disquette au moins les emplacements des fichiers définis par SECUR.TXT. Ce deuxième fichier auxiliaire indique les chaînages physiques pistes et secteurs sur lesquels la signature est appliquée. La carte 16 réagit à la commande de lancement en contrôlant l'authenticité des fichiers définis par le deuxième fichier auxiliaire SECUR.CFN en- coopération avec les moyens matériels 12. La principale caractéristique du dispositif selon l'invention est l'authentification de toute partie désignée d'une disquette par un codage non réversible à clé de lecture publique, afin d'empêcher le déroulement d'un programme stocké sur la disquette et différent du programme authentique d'exécution à partir duquel ce dispositif doit normalement fonctionner. Pour procéder à la vérification de cette authentification, les moyens de vérification 16 comprennent des moyens de calcul (non représentés.) partageant le contenu de la disquette en une pluralité de partitions de même longueur, ainsi qu'à relier lesdites partitions entre elles par une relation de récur rence. Les moyens de vérification 16 actionnent les moyens de calcul pour les partitions contenant des données physiques désignées par le fichier SECUR.CFN. Les moyens matériels 12 associent, à chacune de ces partitions, des blocs de données comprenant une signature formée à partir d'une clé d'écriture secrète, ce qui permet d'apposer une signature globale par chaînage sur le contenu de la disquette ainsi condensé. Par exemple, l'authentification accepte le projet de norme proposé par le CCITT dans l'article "The Directory, Authentification Frame tory", ISO/CCITT, Directory Convergence Document No 3, Melbourne, Avril 1986. D'après ce projet de norme, la signature s'écrit selon la relation suivante S = Ks [ h(contenug où S est la signature, KS est la clé d'écriture secrète de type RSA, h est une fonction hash, et Kp est une clé de lecture publique. La vérification de la signature est établie lorsque h(contenu) est égal à Kp Il est établi qu'il est impossible de substituer le terme h(contenu) et S dans le mécanisme d'authentification. Dans la colonne de gauche ayant pour entête "disquette (8)" du tableau représenté sur la figure 2, on a représenté le partage du contenu de la disquette en une pluralité de partitions B de même longueur référencées individuellement en B B2, ... Bm. Dans la colonne du tableau ayant pour en-tête "PC (2)", on a représenté la relation de récurrence reliant les partitions entre elles. Cette relation est établie par les moyens de calcul qui font intervenir la fonction hash. Dans l'exemple illustré ici, la partition B1 se transforme, par l'intermédiaire de la fonction hash, sous la forme de l'expression H1=B12 modn, où n est un nombre premier. Le terme suivant de la série de récurrence est de la forme H2 = (H1 + B2)2 modn. On voit ainsi que la transformée de la partition B par une fonction hash est dépendante des termes précédents de la série de récurrence. On obtient ainsi un chaînage entre les différentes fonctions hash, ce qui permet un compactage des données de la disquette. D'après la colonne "carte (16)", on voit que la carte 16 associe un bloc Bsl Cette association subit la même transformation hash que les partitions B. Par exemple, on voit que, dans un premier temps, la partition Bi à laquelle est associé le bloc B511 subit une première fonction hash la transformant selon l'expression suivante Hi = (Hi-l + Bi)2 modn. Dans un second temps, le bloc B51 est associé à ladite fonction Hi pour obtenir une transformée hash de la forme H51 = (Hi + Bus1)2 modn. Le dernier terme Hm de la série de récurrence est donc fonction des partitions B, des blocs Bs et des transformées hash. La combinaison de ces éléments permet d'obtenir un compactage des données de la disquette ainsi qu'une signature sur ledit compactage. On obtient ainsi, par l'intermédiaire de ces éléments, une signature globale par chaînage sur les données de la disquette. Par exemple, les partitions ont une capacité de 256 bits ainsi que les blocs Bs. Après ce codage non réversible, la carte 16 utilise la clé de lecture publique pour vérifier l'authenticité du contenu de la disquette. Si la vérification est positive, le programme stocké dans la disquette se déroule normalement et permet éventuellement l'accession aux fonctions de sécurité du microordinateur tandis que si la vérification est négative, le programme se déroule tout en empêchant l'accession aux fichiers protégés dont la liste est définie dans le fichier SECUR.TXT. Dans un mode de réalisation préféré de l'invention, les algorithmes de calcul de la fonction hash sont chargés et exécutés à la commande de lancement du micro-ordinateur, accompagnés de l'introduction dans la chaîne de calcul d'un ou de plusieurs blocs Bs issus de la carte 16 avant vérification de l'authenticité de la signature. Les moyens 16 réagissant à la commande de lancement du microordinateur vérifient l'authenticité du contenu de la disquette condensé et authentifié par les moyens matériels de codage en coopération avec les moyens de calcul. Les moyens de calcul, en particulier les algorithmes de calcul de la fonction hash accompagnés de l'introduction des blocs signés Bs dans la chaîne de calcul, sont chargés à la commande de lancement du micro-ordinateur dans l'unité centrale et exécutés par celle-ci. Ce mode de réalisation a l'avantage de présenter une solution purement logicielle. Par contre, cette solution a l'inconvé- nient d'exiger la création de blocs signés Bs par le constructeur du micro-ordinateur, lesdits blocs étant susceptibles de provoquer le blocage de l'algorithme de calcul de fonction hash. Il en résulte une maintenance difficile des blocs ainsi que de la chaîne de calcul. Selon un autre mode de réalisation du dispositif selon l'in- vention, les moyens de calcul, en particulier les algorithmes de calcul de la fonction hash, sont logés dans le système de base d'entrée-sortie (BIOS) du système d'exploitation du micro-ordinateur. On notera que, dans ce mode de réalisation de l'invention, la modification du BIOS standard du micro-ordinateur entraîne une indépendance de l'utilisateur vis-à-vis du constructeur puisqu'il n'y a plus, comme dans le mode de réalisation précédent, l'introduction de blocs constructeurs signés demandant une maintenance. Selon encore un autre mode de réalisation du dispositif de l'invention, les moyens de calcul, en particulier les algorithmes de calcul de la fonction hash, sont logés dans une mémoire morte auxiliaire, reliée directement à l'unité centrale du micro-ordinateur. La mémoire morte auxiliaire est par exemple 2 PROMS de 32 K octets implantée sur une carte enfichable sur le bus du microordinateur. La carte enfichable utilise les zones mémoires, au-dessus des 640 K octets du micro-ordinateur, réservées généralement à l'implantation des PROMS. Lorsque le BIOS reconnait une PROM, c'est-à-dire que le type d'identification est7 spécifié, le BIOS effectue un déroutement sur le point d'entrée de PROMS à l'intérieur desquelles sont logés les algorithmes de calcul de la fonction hash La carte enfichable est par exemple une carte de type CPU QUAM 1032 vendue par la société QUAM. On remarquera que la clé de lecture publique Kp est elle-même authentifiée par un codage chiffré. Par ailleurs, la clé de lecture publique Kp est diffusée dans les équipements micro-informatiques, par exemple carte CPU QUAM ou BIOS selon le mode de réalisation utilisé. Par exemple, la clé de lecture publique Kp est introduite dans le fichier auxiliaire SECUR.TXT (chiffrée par une clé constructeur), ce qui permet d'éviter toute substitution de ladite clé mais provoque la suppression de l'indépendance de l'utilisateur vis-à-vis du constructeur du dispositif. Enfin, pour éviter une substitution de disquette en cours de fonctionnement sur un micro-ordinateur en exploitation, le lecteur d'une disquette (6) est équipé d'une porte (non représentée)comprenant des moyens de détection (non représentés) propres à détecter l'ouverture de ladite porte ainsi qu'à permettre l'interruption de l'exécution des commandes transmises à l'unité centrale par la disquette. Cette surveillance d'ouverture de porte est par exemple effectuée par la carte 16. Cette carte verrouille automatiquement les fonctions critiques. Seule une opération d'amorçage ou de remise sous tension, satisfaisant aux mécanismes d'authentification, permet de déverrouiller ces fonctions. Revendications 1.- Dispositif micro-informatique, du type comprenant une unité centrale (4) de micro-ordinateur (2) équipée d'au moins un lecteur de disquette (6) opérant selon un format prédéfini, comprenant, sur chaque disquette (8), des données de base situées en position physique prédéterminée propres à transmettre des commandes à l'unité centrale (4), ainsi qu'à définir des fichiers stockés dans la disquette (8), caractérisé en ce qu'il comprend en outre - des moyens matériels de codage (12) propres à associer une signature d'authentification à toute partie désignée de la disquette (8), en particulier par un codage non réversible à clé de lecture publique;; - un premier fichier auxiliaire (SECUR.TXT) stocké sur la disquette, et définissant une liste de fichiers à protéger, cette liste comprenant ce fichier lui-même, et les fichiers systèmes, interprétations, configurations, commandes au lancement; - un deuxième fichier auxiliaire (SECUR.CFN) stocké sur la disquette, et désignant, comme données physiques à protéger sur la disquette, au moins les emplacements des fichiers définis par le premier fichier auxiliaire; - des moyens de vérification (16) réagissant à la commande au lancement en contrôlant l'authenticité des fichiers définis par le deuxième fichier auxiliaire, en coopération avec lesdits moyens matériels. 2.- Dispositif selon la revendication 1, caractérisé en ce que les moyens de vérification (16) comprennent des moyens de calcul capables de partager le contenu de la disquette en une pluralité de partitions de même longueur, ainsi qu'à relier lesdites partitions entre elles par une relation de récurrence, en ce qu'ils actionnent les moyens de calcul pour les partitions contenant des données physiques désignées par le deuxième fichier auxiliaire, les moyens matériels (12) associant, à chacune de ces partitions, un bloc de données comprenant une signature formée à partir d'une clé d'écriture secrète, ce qui permet d'apposer une signature globale par chaînage sur le contenu de la disquette ainsi condensé. 3.- Dispositif selon les revendications 1 et 2, caractérisé en ce que les moyens réagissant à la commande de lancement du micro-ordinateur vérifient l'authenticité du contenu de la disquette condensé et authentifié par les moyens matériels de codage (12) en coopération avec les moyens de calcul. 4.- Dispositif selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les moyens de calcul sont chargés à la commande de lancement du micro-ordinateur dans l'unité centrale (4) et exécutés par celle-ci. 5.- Dispositif selon la revendication 2, caractérisé en ce que les moyens de calcul sont logés dans le système de base d'entrée-sortie du système d'exploitation du micro-ordinateur. 6.- Dispositif selon la revendication 2, caractérisé en ce que les moyens de calcul sont logés dans une mémoire morte auxiliaire reliée directement à l'unité centrale du microordinateur. 7.- Dispositif selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la clé de lecture publique est elle-même authentifiée, en particulier par un codage chiffré. 8.- Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que le lecteur de disquette (6) est équipé d'une porte comprenant des moyens de détection propres à détecter l'ouverture de ladite porte ainsi qu'à permettre l'interruption de l'exécution des commandes transmises à l'unité centrale par la disquette.