FR 2641880 A1 19900720 FR 8916463 A 19891213 "Procédé pour la surveillance de domaines d'adresse dans des appareils de traitement de données en temps réel" L'invention concerne un procédé pour la surveillance de domaines d'adresse dans des appareils de traitement de données dans lesquels il y a en temps réel des possibilités d'accès au bus de système. Par ce moyen on assure la protection de machines de traitement de données, et des données mises en mémoire dans celles-ci, contre un accès non autorisé, ainsi que la protection du système d'exploitation contre une modification. Les systèmes précédents utilisent à cette fin divers niveaux de hiérarchie afin d'interdire à des niveaux de privilège inférieurs l'accès à des niveaux plus élevés. De telles barrières peuvent toutefois être contournées par l'envoi d'une program- mation ou dans le cas d'erreurs dans le système d'exploitation. Le problème fondamental dans une structure hiérarchisée traditionnelle réside dans le fait que la structure peut (et aussi doit) être modifiée à l'aide de logiciels, c'est-à-dire que lors de l'élaboration des programmes le processeur se trouve dans les divers états privilégiés qui sont modifiés par logiciel ou par des instructions de 2. retour (par exemple par manipulation dans le domaine de la pile). Il est certes en principe possible de surveiller des éléments importants pour déterminer si des modifications ont lieu dans ceux-ci, mais ce contrôle occupe de la capacité de calcul et'peut à son tour être mis. hors service par des programmes d'ordinateur. Le but de l'invention est d'améliorer le procédé mentionné au début, de manière que la protection de la structure du programme soit également garantie lorsque sont effectuées des manipulations sur l'état du processeur ou lorsqu'on essaie de manipuler le système d'exploitation.. Ce but est atteint par le procédé selon l'invention pour la surveillance de domaines d'adresse dans des appareils de traitement de données dans lesquels il y a, en temps réel, des possibilités d'accès au bus du système, procédé caractérisé en ce que divers niveaux d'accès sont affectés à des domaines de mémoire sélectionnables de l'appareil de traitement de données, à chaque niveau étant affectées des opérations autorisées de mise en mémoire dont la violation est décelée. Des perfectionnements avantageux du procédé selon l'invention sont caractérisés en ce que le programme hors duquel est appelé un accès non autorisé est reconnu, en ce que l'inscription d'une mémoire, dans laquelle sont stockés les accès admissibles peut être interdite par une instruction de logiciel et en ce que le blocage selon le logiciel, après inscription de la mémoire ne peut être à nouveau levé que par actionnement d'un commutateur. D'autres aspects avantageux du procédé selon l'invention sont caractérisés en ce que des instructions d'inscription inadmissibles sur la mémoi- re de la machine de traitement de données peuvent être reconnues et leurs réalisations peuvent être blo- quées; en ce que, dans le cas d'accès inadmissible, l'ordinateur est toujours -arrêté sur un point de mémoire et un signal d'alarme est émis; en ce que l'ordinateur n'est arrêté que dans le cas d'opérations d'inscription inadmissibles, et dans le cas d'opéra- tions de lecture inadmissibles, seul le programme déclencheur est localisé et interrompu; en ce que l'affectation des domaines de mémoire de la machine de traitement de données est effectuée -à l'aide d'un élément RAM qui est programmé sous forme de tables de référence et en ce que, pour la localisation du programme qui a déclenché l'accès inadmissible à la mémoire, un registre mémorise la dernière adresse des compteurs de programme. Dans la méthode utilisée selon l'invention, on ajoute à la machine de traitement de données un dispositif de commutations selon l'invention, avec lequel on atteint une sécurité supplémentaire du programme du système. Une caractéristique de ce circuit est que le circuit de surveillance du programme de l'ordinateur ne peut être programmé qu'une seule fois. Une fois effectuée la program- mation, d'autres accès ne sont plus possibles. Le dispositif de protection ne peut donc pas être mis hors service par des programmes étrangers. Le dispositif de protection consiste en un module de matériel qui est inséré dans l'ordinateur ou qui est incorporé dans l'ordinateur lors de sa construction. Etant donné qu'une protection-n'est pas garantie sans ce module matériel, on peut contrôler lors de la-mise en route du programme que ce module est bien présent. Lors du fonctionnement de l'ordinateur, une surveillance n'est plus nécessaire 26418r0 (bien qu'elle soit possible), car lors de l'extension de la carte par les courts-circuits ainsi produits, l'ordinateur ne fonctionne plus convenablement. Lors de la mise en route du programme, on programme le module de manière qu'un accès a certaines adresses de mémoire ou adresses de port n'est plus admis que dans certaines conditions qui correspondent au sept niveaux décrits ci-dessous: Niveau 0 La lecture et l'inscription des cellules de mémoire déterminables n'est généralement pas possible., des programmes ne peuvent être élaborés qu'à partir de points de programme déterminés. Niveau 1 La lecture et l'inscription des cellules de mémoire déterminables ne sont en général pas possibles, des programmes peuvent être élaborés à partir de tous les points du programme. Niveau 2 La lecture des cellules de mémoire déterminables ne sont possibles qu'à partir de certaines zones de mémoire, mais aucune élaboration de programme. Niveau 3 La lecture et l'inscription des cellules de mémoire ne sont possibles qu'à partir de certaines zones de mémoire, mais aucune élaboration-de programme. Niveau 4 La lecture des cellules de mémoire déterminables n'est admise qu'à partir de certaines zones de mémoire, l'élaboration de programme est possible. Niveau 5 La lecture et l'inscription des cellules de mémoire ne sont pas possibles qu'à partir de certaines zones de mémoire, l'élaboration de programme est possible. Niveau 6 La lecture et l'inscription des cellules de mémoire sont toujours possible. Dans un autre mode de réalisation avantageux, le procédé - selon l'invention est caractérisé en ce que les niveaux d'accès du domaine de mémoire sont définis comme suit: Niveau 1 La lecture des.cellules de mémoire n'est admise qu'à partir de certaines zones de mémoire. Niveau 2 La lecture et l'inscription des cellules de mémoire ne sont possibles qu'à partir de certaines zones de mémoire. Niveau 3 La lecture et l'inscription des cellules de mémoire sont toujours possibles. - Le domaine de la mémoire est divisé selon les niveaux indiqués ci-dessus, à savoir par exemple de manière que le niveau 0 soit affecté au système, le niveau 2 ou 3 aux données de système, aux vecteurs de saut importants et adresses périphériques, et le niveau 1 aux entrées du sous-programme de système. Le niveau 6 contient le programme d'utilisateur. Dans le cas d'accès inadmissible à une cellule de mémoire, il existe les possibilités suivantes: 1 - L'ordinateur est maintenu toujours en fonction et un signal d'alarme est émis. 2 - L'ordinateur n'est maintenu en fonction que dans le cas d'opérations d'écriture inadmissibles; dans le cas d'opérations-de lecture inadmissibles, seul le programme déclenchant et localisé est interrompu. 3 - Lorsque le module de matériel est connecté à l'ordinateur de manière que des instructions d'écriture inadmissibles ne puissent pas être exécutées, l'ordinateur doit également en ce cas ne pas être maintenu en fonction, et on peut procéder comme en 2. On peut parvenir à une simplification du système lorsqu'on renonce à une distinction des accès de la mémoire pour l'élaboration du programme et, respectivement, des cellules de mémoire. Il reste ainsi les niveaux 2 et 3. Les systèmes d'ordinateurs à protéger peuvent grossièrement être divisés en - deux catégories: 1 - Systèmes à un seul utilisateur, par exemple PC, 2 - Systèmes à plusieurs utilisateurs, par exemple VAX, PC en réseau. Dans le cas des systèmes à un seul utilisateur, tel que le PC, ce qu'on appelle des virus représentent un risque pour les données mises en mémoire. En ce cas, on peut parvenir à une protection par le fait que pour les accès aux données, on ne permet que les déroulements de programme prévus par le système opérationnel, et, avec le procédé selon l'invention, les entrées directes de BIOS sont interdites. En outre, avec le procédé indiqué plus haut, on surveille le système opérationnel en ce qui concerne des modifications. Dans le cas de systèmes à plusieurs utilisateurs, tels que le VAX ou un PC en réseau, les fichiers sont généralement munis d'une protection d'accès. Cette protection d'accès peut toutefois être contournée de nombreuses façons, par exemple on peut dévier des sous-programmes d'entrée et de sortie afin de capter des mots de passe. En ce cas, il est particulièrement important que les vecteurs de saut ne puissent même pas être modifiés par l'état superviseur du processeur. Cela peut être assuré au moyen du - procédé selon l'invention. MODE DE FONCTIONNEMENT Les processus du commerce disposent de sorties 300 qui affichent, en plus de l'adresse 100 de la mémoire, la nature respective de l'accès. Ces sorties sont utilisées afin de fournir l'adresse réelle du compteur de programme 102, la nature de l'accès 301 à 304 et l'adresse réelle 100 de la mémoire. Ces données sont -comparées à l'aide d'un montage approprié (ici RAM 3) avec les accès admissibles stockés dans une mémoire (ici RAM 3), et examinées en égard à leur admissibilité. La mémoire 3 avec les accès permis à la mémoire est réalisée de telle manière que l'on peut bloquer l'accès d'écriture par une commande de logiciel, au moyen de la bascule électronique 12 et de la porte ET 18. Une remise en circuit ne peut être convenablement effectuée que par le commutateur de matériel 13. S'il se produit un accès inadmissible à une cellule de mémoire 100, la logique 14 est activée par l'intermédiaire des lignes 104, l'éventuel accès à l'écriture 500 est bloquée sur l'adresse 100 de la mémoire de l'ordinateur (ou de l'adresse de post) 17. En outre, un autre descriptif du registre 1 de compteur de programme est bloqué par la porte ET 15. La logique 14 exerce une interruption au moyen des lignes de commande 300. Le programme appelé par ce moyen lit l'adresse 102 de compteur de programme par l'intermédiaire de l'excitateur 16 et arrête le programme -correspondant. Le montage est convenablement établi sur un - circuit imprimé qui est inséré dans l'ordinateur. Afin d'éviter que l'ordinateur soit mis en route au moyen d'une carte étendue, on peut prévoir dans le système opérationnel un sous-programme qui contrôle si ia carte est insérée, Le présent schéma offre l'avantage qu'avec seulement de légères modifications du système d'exploitation, on parvient à une amélioration considérable de la protection contre un accès non autorisé à l'ordinateur et à ses données. L'invention est illustrée à l'aide de l'exemple descriptif et non limitative de réalisation ci-après et de la figure 1. L'affectation des niveaux d'accès au domaine de mémoire est effectuée à l'aide de la mémoire 3, qui, lors de la mise en route du programme, est reliée par une multiplexeur 2 au bus d'adresse 100 et par l'excitateur 4 au bus de données 200. Les données sont inscrites par la ligne 5 dans la mémoire 3 qui est connectée par la sélection d'adresse 11 (dans un PAL) au bus d'adresse 100 et aux lignes de commande 300. Une fois effectuée la programmation, l'accès est bloqué par l'activation de la ligne 131 (retour de la bascule électronique 12 à l'état initial). Lors de la mise en marche de l'ordinateur, la bascule électronique 12 est placée sur la ligne résiduelle 301 du bus de commande 300. L'accès d'écriture pour la mémoire 3 est ainsi activé par la porte ET 18. L'accès d'écriture 105 par la ligne 133 de la sélection d'adresse 11 est alors possible par la porte ET 18. La logique 14 est fermée par la porte 20. Si la programmation (inscription) est isolée, la porte ET 18 est bloquée et la porte ET 20 est ouverte. Des accès inadmissibles peuvent ainsi être reconnus. Lors du fonctionnement de l'ordinateur, sont alors reconnues les adresses, dans lesquelles sont élaborés des - programmes, par la reconnaissance d'accès 10 (PAL) qui 26418 O active les lignes suivantes dans le cas des accès respectifs. Les lignes suivantes sont introduites, conjointement avec l'adresse 100, l'adresse de programme 102, par l'intermédiaire du multiplicateur 2, dans l'entrée 103 de la RAM 3,: PGM 301 est activé lorsque le contenu d'une certaine cellule de mémoire est chargé dans le compteur de programme, I/0 302 est activé lorsqu'on accède à une adresse de port déterminée. RD 303 est activé lorsqu'on lit avec des données une cellule de mémoire. déterminée (adresse de port) WR 304 est activé lorsqu'on inscrit avec des données une cellule de mémoire déterminée (adresse de port). Avec la ligne PGM 301, le dernier état de compteur de programme 102 est mis en mémoire dans le registre 1 est envoyé par le multiplexeur 2 conjointement avec l'adresse actuelle 100 et les lignes d'état 301, 302 et 303 et 304 à l'entrée d'adresse de la mémoire 3. Sur la mémoire 3 se trouvent par conséquent l'adresse d'accès, la nature de l'accès et éventuellement l'adresse de programme par laquelle est effectuée l'accès. La sortie 104 de la mémoire 3 est envoyée, par l'intermédiaire de la porte ET 20, à la logique d'interruption 14 (PAL) qui soit exécute une interruption par l'intermédiaire de la ligne de commande 300, soit arrête l'ordinateur et émet un signai d'alarme au moyen du haut-parleur 402. En outre, une nouvelle inscription du registre 1 est empêchée par blocage de la porte ET 15 par la logique 14. Dans la prise en charge de l'accès inadmissible, on peut alors extraire l'état de compteur de programme 26418e0 102 par l'excitateur 16, et ainsi le programme qui a entraîné l'accès inadmissible, et le localiser. Dans le cas d'accès d'écriture inadmissibles, la mémoire 17 de l'ordinateur est bloquée par le circuit d'inversion 21 et la porte ET 22. Afin de diminuer le besoin de mémoire de la mémoire 3, il est avantageux de diviser le domaine de mémoire en zones déterminées. Ainsi, par abandon des lignes d'adresse inférieures 103, on peut renoncer à une division plus fine du domaine de mémoire. On forme alors des blocs de programme ayant une longueur de 2n bytes, auxquels sont affectés les niveaux d'accès correspondants. Une autre simplification du circuit est alors possible lorsque le registre 1 mémorise la dernière adresse de programme 102 et les parties de la logique 10 correspondante sont abandonnées. La mémoire 3 n'a alors plus besoin que de comporter la moitié du domaine de mémoire. Etant donné qu'aucune localisation de l'accès inadmissible ne s'effectue plus, le système ne convient toutefois plus que pour de petits systèmes, car dans le cas d'un accès inadmissible, l'ordinateur doit être arrêté. 26418?0 R E V E N D I C A T I O-N S 1') Procédé pour. la surveillance de domaines d'adresse dans des appareils de traitement de données dans lesquels il y-a en temps réel des possibilités d'accès au bus de système, caractérisé en ce que divers niveaux d'accès sont affectés à des domaines de mémoire sélectionnables de l'appareil de traitement de données, à chaque niveau étant affectées des opérations autorisées de mise en mémoire dont la violation est décelée. 2) Procédé - selon la revendication 1, caractérisé en ce que le programme hors duquel est appelé un accès non autorisé est reconnu. 3) Procédé selon la revendication 1 ou 2, caractérisé en ce que l'inscription d'une mémoire (3) dans laquelle sont stockés les accès inadmissibles peut être interdite par une instruction de logiciel. 4-) Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le blocage selon le logiciel, après inscription de la mémoire (3) ne peut être à nouveau levé que par actionnement d'un commutateur. ') Procédé selon la revendication 1, caractérisé en ce que les niveaux d'accès pour différentes parties du domaine de mémoire sont définis comme suit Niveau 0 La lecture et l'inscription des cellules de mémoire ne sont généralement pas possibles, des programmes ne peuvent être élaborés qu'à partir de points de programme. Niveau 1 La lecture et l'inscription des cellules de mémoire ne sont en général pas possibles, des programmes peuvent être élaborés à partir de tous les points du 26418 8 programme. Niveau 2 La lecture des cellules de mémoire n'est possible qu'à partir de certaines zones de mémoire, mais aucune élaboration deprogramme. Niveau 3 La lecture et l'inscription des cellules de mémoire ne sont possibles qu'à partir de certaines zones de mémoire, mais aucune élaboration de programme. Niveau 4 La lecture des cellules de mémoire déterminables n'est admise qu'à partir de certaines zones de mémoire, l'élaboration de programme est possible. Niveau 5 La lecture et l'inscription des cellules de mémoire ne sont pas possibles qu'à partir de certaines zones de mémoire, l'élaboration de programme est possible. Niveau 6 La lecture et l'inscription des cellules de mémoire sont toujours possible. 6') Procédé selon la revendication 1, caractérisé en ce que sont définis comme suit: Niveau 1 La lecture des cellules de mémoire n'est admise qu'à partir de certaines zones de mémoire. Niveau 2 La lecture et l'inscription des cellules de mémoire ne sont possibles qu'à partir de certaines zones de mémoire. Niveau 3 La lecture et l'inscription des cellules de mémoire sont toujours possible. 7) Procédé selon l'une quelconque des revendications 1 à 6, caractérisé' en ce que des instructions d'inscription inadmissibles sur la - - 264 1880 1-3 mémoire de-la machine de traitement de données peuvent être reconnues et leurs réalisations peuvent être bloquées. 8-) Procédé selon. l'une quelconque des revendications 1 à 7, caractérisé en ce que, dans le cas d'accès inadmissible, l'ordinateur est toujours arrêté sur un point de mémoire et un signal d'alarme est émis. 9 ) Procédé selon l'une quelconque des -revendications i à 8, caractérisé en ce que l'ordinateur n'est arrêté que dans le cas d'opérations d'inscription inadmissibles, et dans le cas d'opérations de lecture inadmissibles, seul le programme déclencheur est localisé et interrompu. 10*) -Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce- que l'affectation des domaines de mémoires de la machine de traitement de données est effectuée à l'aide d'un élément RAM (3) qui est programmé sous forme de tables 20. de référence. 11V) Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que, pour la localisation du programme qui a déclenché l'accès inadmissible à la mémoire, un registre (1) mémorise la dernière adresse du compteur de programme.