SATURNE 1984-1998

HomeYD-home-fr.htmlshapeimage_1_link_0
 
De 1984 à fin 1998, date de mon détachement de l’INRIA au CNRS, mes travaux se situaient dans le cadre du projet SATURNE, projet commun du LAAS et de l’INRIA. Ce projet, que j’ai créé en 1985 et que j’ai dirigé jusqu’à sa fin, visait à développer des méthodes pour améliorer la disponibilité et la sécurité d’applications réparties sur des réseaux locaux. En fait, le projet SATURNE servait surtout à donner à l’INRIA une visibilité et un cadre pour l’ensemble des travaux menés par les personnels INRIA au LAAS (Christian Béounes, décédé en 1993, Jean-Charles Fabre et moi-même) et aux autres membres du groupe TSF (Tolérance aux fautes et sûreté de fonctionnement informatique) du LAAS-CNRS collaborant avec nous.

L'objectif du projet SATURNE était l'approche globale de la tolérance aux fautes physiques accidentelles et aux fautes d'interaction intentionnelles (appelées dans la suite intrusions) pour des réseaux locaux de stations de travail. Dans ce cadre, la tolérance aux fautes est un moyen destiné à fournir, voire à garantir, aux utilisateurs de systèmes informatiques répartis un haut niveau de disponibilité et un haut niveau de sécurité.

La démarche adoptée pour remplir cet objectif consiste à développer des méthodes de spécification, de conception, et de validation de systèmes tolérant les fautes et les intrusions, avec expérimentation de ces méthodes sur un réseau de stations de travail.

Au départ, deux méthodes principales ont été développées pour la tolérance aux fautes et la tolérance aux intrusions :

  1. la saturation, pour la tolérance aux fautes,

  2. la fragmentation-dissémination, pour la tolérance aux intrusions.

Par la suite, nos travaux se sont élargis vers les apports de la technologie objet à la sûreté de fonctionnement, vers l’évaluation quantitative de la sécurité informatique et vers la protection des objets répartis.

La saturation

La saturation est une notion que nous avons inventée, qui consiste à créer de multiples copies de tout processus dans le système, de façon à satisfaire les exigences suivantes :

  1. chaque site du réseau exécute un exemplaire d'un processus actif,

  2. les processus les plus critiques sont exécutés avec un plus grand nombre d'exemplaires,

  3. le masquage des erreurs est obtenu par un vote majoritaire sur les données échangées et sur les informations persistantes.

Le nombre des exemplaires d'un processus varie dynamiquement en fonction de la charge du système. Cette technique présente deux avantages importants :

  1. à tout instant le degré de redondance d'un processus est maximal, et fonction du nombre de sites disponibles dans le système ; l'efficacité du masquage d'erreur est donc maximale ;

  2. puisque chaque site exécute un exemplaire d'un processus, les erreurs peuvent être détectées peu de temps après l'activation de la faute : la latence d'erreur est minimale.

L'étude de cette technique de saturation s'est déroulée en 3 phases :

1ère phase : simulation du comportement d'un système avec saturation et comparaison avec un système tolérant les fautes sans saturation. Cette première phase (1984-1986) nous a permis de montrer les avantages que l'on peut attendre de la saturation (augmentation "gratuite" de la redondance, réduction de la dormance des fautes et de la latence des erreurs), mais aussi des coûts induits par cette technique (augmentation du trafic sur le réseau, messages de service).

2ème phase : conception et validation de l'algorithme réparti gérant l'affectation des processus aux sites et le masquage des erreurs (1987-1988). Cet algorithme d'ordonnancement a été décrit formellement en ESTELLE, puis validé par simulation à l'aide de VÉDA, outil de simulation d'algorithmes ESTELLE réalisé par le CNET-Lannion. Cette simulation a permis de valider le fonctionnement nominal de l'ordonnancement, mais aussi son comportement en présence de fautes (simulées).

3ème phase : modélisation et évaluation de la sûreté de fonctionnement obtenue par la saturation et comparaison avec des techniques de tolérance aux fautes sans saturation. Les deux points les plus originaux concernent la modélisation de la latence d'erreur (phénomène d'activation de la faute) et l'obtention d'une formule donnant le taux de défaillance équivalent, en fonction du nombre d'exemplaires des tâches. L'évaluation et la comparaison avec d'autres approches ont été basées sur les résultats de simulation des deux phases précédentes. Une expérimentation sur notre réseau expérimental avec Chorus a dû être abandonnée en raison de la quantité de travail que cela aurait nécessité, sans pour autant apporter plus d'informations sur la faisabilité de cette approche que la description en ESTELLE et la simulation VÉDA.

Cette étude s’est en particulier concrétisée par la thèse de Mourad Allia.

La fragmentation-redondance-dissémination

La fragmentation-redondance-dissémination (FRD) est une technique que nous avons inventée et qui était la première proposée pour tolérer les intrusions. En ce sens elle se démarquait totalement de la vision classique de la sécurité informatique qui considère qu’il suffit d’empêcher les intrusions, par exemple en se basant sur un petit nombre de dispositifs et de personnes dignes de confiance. Mais cette vision simpliste est très souvent mise en défaut, soit par le contournement des mécanismes d’authentification ou de protection, soit par la négligence ou la malveillance de certains utilisateurs privilégiés.

La FRD consiste à découper des informations confidentielles en fragments de telle sorte que les informations contenues dans chaque fragment ne soient pas significatives, puis à disséminer ces fragments parmi différents sites du réseau, de façon à ce que l'intrusion d'une partie du système ne donne accès qu'à des fragments isolés. Les fragments sont redondants entre eux de façon à tolérer la modification ou la destruction d'une partie des fragments. Cette technique est abordée dans une optique de complémentarité avec d’autres techniques qu’on peut assimiler à la tolérance aux intrusions, telle que la cryptographie par exemple. L'objectif est de tolérer les intrusions, c'est-à-dire de faire en sorte que, si des intrus réussissent à obtenir le contrôle d'un petit nombre de sites ou du médium de communication, ces intrusions n'aient pas de conséquence sur la confidentialité, l'intégrité ni la disponibilité des données fragmentées et disséminées. La FRD permet également de tolérer les fautes accidentelles qui n'affectent qu'une partie du système. L’intérêt principal de cette technique par rapport aux approches classiques de la sécurité est que la sécurité est maintenue même en cas de faute accidentelle affectant le système de sécurité et même en cas de malveillance d’un administrateur ou officier de sécurité.

Une première expérimentation de cette technique a consisté à réaliser un serveur réparti de stockage de fichiers dans le cadre du projet ESPRIT DELTA-4. Ce serveur permet de stocker sur un ensemble de sites d'archivage les fichiers permanents des utilisateurs. La fragmentation et la dissémination dépendent d'une clé associée à chaque fichier. Ce serveur de fichiers a été d'abord réalisé sous forme de prototype sur ETHERNET, puis a été porté sur le système expérimental commun aux projets SATURNE et DELTA-4. Après la fin du projet DELTA-4, pour assurer la pérennité de ces résultats, nous avons également porté ce serveur sur un réseau de machines Sun et sur un réseau de PC tournant sous le système Chorus. Ces deux dernières implémentations utilisaient les protocoles à diffusion xAMp, dérivés de ceux développés pour DELTA-4, au-dessus des couches basses d'ETHERNET.


D'autre part, un serveur de disque basé sur le même principe que le serveur de stockage de fichiers était en cours de réalisation par la société Dune Technologies, avec le soutien de l'ANRT (Association Nationale de la Recherche Technique) dans le cadre de l'appel d'offres Architectures Avancées de Systèmes Informatiques 1989, mais cette réalisation a été suspendue par la liquidation de Dune Technologies. Cette technique de FRD pour le stockage de fichiers a depuis été adoptée par un grand nombre d’équipes (GMD, universités de Berkeley, Carnegie-Mellon, Cambridge, Milwaukee, Lisbonne, etc., des entreprises comme NEC et AT&T, et même le projet Gnutella), même si la plupart d’entre eux ne font pas explicitement référence à nos travaux.

Également dans le cadre d'une application au projet DELTA-4, d'autres algorithmes ont été développés pour distribuer, sur des sites dits de sécurité, les fonctions de sécurité des systèmes répartis. Ces fonctions de sécurité comprennent l'identification et l'authentification des utilisateurs et des serveurs, la mémorisation des informations de sécurité (clés, répertoires d'objets sensibles, ...), l'autorisation (c'est-à-dire les contrôles d'accès logiques aux serveurs et aux informations sensibles), ainsi que des fonctions annexes telles que la gestion de l'historique des actions liées à la sécurité. L'application des méthodes de tolérance aux intrusions consiste à faire en sorte que l'intrusion (y compris par les administrateurs) d'un petit nombre de sites de sécurité n'ait pas de conséquence sur la confidentialité et l'intégrité des informations de sécurité, ni sur la disponibilité de ces fonctions. Pour cela, des protocoles particuliers sont mis en œuvre pour l'authentification des utilisateurs et pour l'autorisation, alors que des techniques de fragmentation-redondance-dissémination seront appliquées à la mémorisation des informations sensibles. Dans une première étape, la fonction d'authentification a été réalisée en utilisant des cartes à puce Bull CP8 avec le masque MP, permettant d'enregistrer sur la même carte les informations d'authentification nécessaires à tous les sites de sécurité. La fonction d'autorisation a également été développée, ainsi que la fonction de mémorisation des informations sensibles, basée sur un serveur de répertoire du type X500. L’ensemble de ces fonctions a été réalisé sous forme d’un prototype dans le cadre du projet DELTA-4. Par la suite, ce prototype a été porté sur un réseau de PC tournant sous Chorus.


Les études sur la fragmentation-dissémination ont donné lieu aux thèses de Joni Fraga da Silva, Pierre-Guy Ranéa, Gilles Trouessin et Laurent Blain.

Traitement fragmenté - disséminé orienté-objets

La FRD orientée-objets consiste à transformer une application en considérant la confidentialité des données manipulées par chacun des objets qui la compose. La fragmentation repose sur l’idée simple qu’une information confidentielle peut être souvent vue comme une collection d’items non-confidentiels. La confidentialité repose alors uniquement sur les liens (références) entre ces items. Idéalement, l’objectif est de concevoir l’application sous la forme d’une collection d’objets non confidentiels (objets-fragments). Les objets-fragments ainsi identifiés seront disséminés de telle sorte que chaque groupe d'objets localisés sur un même site ne constitue pas une information confidentielle.

Les travaux relatifs à la FRD orientée-objets ont été effectués dans le cadre du projet recherche de base ESPRIT PDCS-2 en collaboration avec Brian Randell et son équipe à l'Université de Newcastle-upon-Tyne.


La conception orientée-objets d'une application permet ainsi d'effectuer la fragmentation en s'appuyant sur la structuration introduite par le concepteur en terme d’objets. A un niveau d’abstraction donné, la démarche générale consiste à analyser les objets de l’application qui manipulent de l'information confidentielle. Cette analyse conduit à substituer aux objets confidentiels un ensemble d’objets, dont certains ne sont pas confidentiels. Cette démarche récursive s'arrête dès qu’il n’existe plus d’objet confidentiel auquel puisse être substitué un ensemble d’objets non confidentiels, soit à cause du type de l’objet, soit pour des raisons de performance. Les objets issus de cette conception qui manipulent encore de l'information confidentielle devront être implantés de manière sûre au sens de la sécurité, soit en les plaçant dans une zone de confiance du système, soit en utilisant des techniques complémentaires de protection ou de chiffrement.

La fragmentation peut, par elle-même, introduire de la redondance ; c’est le cas des techniques de schémas à seuil par exemple. Dans le cas contraire, différentes techniques de traitement d'erreur sont envisageables soit lors de la conception, soit lors de l'installation (configuration) de l'application.

Dans un premier temps nous avons utilisé dans nos expérimentations les mécanismes de tolérance aux fautes du projet DELTA-4. Cette étude a conduit à développer une approche consistant à définir la technique de tolérance aux fautes utilisée non pas à la configuration, mais lors de la conception en utilisant certaines propriétés de la programmation objet. La propriété de réflexivité s'est montrée la plus prometteuse car elle permet de gérer la redondance en manipulant les abstractions internes du langage.

Cette démarche à d'abord été expérimentée dans le cadre de Saturne. L'application choisie, un agenda électronique réparti, a été développée et implémentée sur le système expérimental du projet DELTA-4 ainsi que sur un réseau de stations Sun sous Unix. Ceci a conduit au développement d'une architecture de système réparti, FRIENDS, basée sur Chorus et les protocoles xAMp, pour des applications dont les exigences de sûreté de fonctionnement peuvent être satisfaites de façon modulaire par des bibliothèques de métaprotocoles. Une hiérarchie de métaobjets a ainsi été créée pour implémenter des communications par groupe, des mécanismes variés de tolérance aux fautes ainsi que des mécanismes d'authentification, d'intégrité et de confidentialité sur les communications. Ces travaux ont été poursuivis sous la direction de Jean-Charles Fabre dans le cadre du projet DeVa jusque fin 1998.