Brevet FR3060153A1 — publié le 20180615

Dispositif de gestion des droits d'accès d'utilisateurs à base de rôles et procédé de gestion associé La présente invention concerne un dispositif de gestion des droits d'accès d'utilisateurs à base de rôles. Dans le domaine informatique, il est connu des modèles de gestion des droits d'accès d'utilisateurs. Un modèle de gestion des droits d'accès d'utilisateurs permet, par exemple, de gérer les droits d'accès à des fichiers informatiques. A titre d'illustration, le système de gestion de fichiers d'un système d'exploitation permet, en pratique, d'attribuer différents droits, tels des droits d'accès, des droits de lecture ou des droits d'écriture à des utilisateurs en fonction de leur profil. Plus généralement, le modèle de contrôle d'accès à base de rôles, également désigné en anglais par l'acronyme RBAC pour « Role-Based Access Control », permet de gérer des permissions attribuées à des utilisateurs d'un système informatique. Le modèle de contrôle d'accès à base de rôles repose sur un ensemble de correspondances entre un rôle et une session. Par l'expression « permission », il est entendu une action pouvant être exécutée par un utilisateur donné. A titre d'exemple, l'accès à un fichier, la modification d'un fichier, l'exécution d'une application ou de certaines fonctionnalités d'une application sont autant de permissions susceptibles d'être attribuées à un utilisateur. Par l'expression « rôle », il est entendu une catégorie permettant de regrouper un ensemble d'utilisateurs en fonction des mêmes permissions qui leur sont attribuées. A titre d'exemple, des utilisateurs faisant partie d'une organisation, telle une entreprise ou une administration, sont susceptibles d'être regroupés par une autorité centrale sous un même rôle, l'autorité centrale étant, par exemple, une entité responsable de la planification hiérarchique d'une organisation. Par l'expression « session », il est entendu l'ensemble de permissions effectives dont dispose un utilisateur à un instant donné. Les permissions d'un même utilisateur sont parfois définies de façon contextuelle. En d'autres termes, une session est définie comme l'activation d'un rôle à partir duquel un ensemble de permissions sont attribuées à un ou plusieurs utilisateurs à un instant donné. A titre d'illustration, un exemple de contrôle d'accès à base de rôles est à présent présenté. 3060153 2 Il est considéré un hôpital au sein duquel est déployé un système d'information comprenant, notamment, une base de données des patients. La base de données des patients, partagée entre des médecins et des infirmières connectés en réseau, comprend pour chaque patient des informations médicales et des informations administratives. 5 Un premier rôle et un second rôle correspondant respectivement aux médecins et aux infirmières sont définis. A chaque rôle est associé un ensemble de permissions. Par exemple, les médecins formant la première catégorie ont accès à l'intégralité des informations contenues dans la base de données, tandis que les infirmières formant 10 la seconde catégorie n'ont accès qu'aux informations administratives. Un tel modèle de contrôle d'accès à base de rôles permet ainsi de limiter la surface d'attaque des composants logiciels dans la mesure où les actions pouvant être effectuées par les utilisateurs d'un rôle sont limitées. Ainsi, à titre d'illustration, si le compte informatique d'une infirmière est compromis, 15 c'est-à-dire, par exemple, parce qu'un attaquant extérieur est en mesure d'accéder aux fichiers et aux droits de l'infirmière, alors l'attaquant ne pourra pas accéder aux dossiers dont l'accès nécessite d'appartenir à un groupe plus privilégié que celui auquel appartient l'infirmière, tel que le groupe des médecins. En outre, la rédaction, l'évolution et la maintenance d'une politique de sécurité 20 sont grandement facilitées par l'attribution de rôles dont il est possible de vérifier la complétude et la cohérence au sein d'une organisation donnée. Par « politique de sécurité », il est entendu l'application de règles internes à l'organisation, ou fixées par une réglementation, permettant d'attribuer des permissions à des catégories d'utilisateurs. 25 Il est également connu des modèles de contrôle d'accès à base de rôles dotés de fonctionnalités permettant d'accroître l'efficacité desdits modèles, notamment au regard de la rédaction, de l'évolution et de la maintenance d'une politique de sécurité. En particulier, le standard INCITS 359-2004 (RBAC) relatif au modèle de contrôle d'accès à base de rôles édicté par l'institut de normalisation américaine prévoit une 30 capacité d'héritage de rôles. La capacité d'héritage de rôles définit une hiérarchie des rôles permettant de refléter la structure mise en place dans une organisation. Pour reprendre l'exemple précédent, le premier rôle hérite du second rôle : toutes les permissions attribuées au second rôle sont alors également attribuées au premier rôle. 35 Une telle capacité d'héritage permet de considérablement simplifier la rédaction et l'évolution des différents rôles mis en place dans une organisation puisque, notamment, la 3060153 3 modification des permissions d'un rôle est susceptible d'impacter certaines permissions d'un autre rôle lorsqu'il y a héritage entre lesdits rôles. Dans le domaine informatique, et en particulier au niveau des systèmes d'exploitation, il est connu de distinguer la partie noyau, également désignée en anglais 5 par l'expression « kernel », de la partie utilisateur, également désignée en anglais par l'expression « user land ». Le noyau est propre à gérer les ressources physiques de l'ordinateur, tels que les disques ou les interfaces réseaux. Le noyau est également propre à permettre la communication entre les différents composants, à savoir le matériel et les applications 10 logicielles installées. Dans la présente description, le noyau est un espace protégé, notamment par des mécanismes matériels de type MMU, de l'anglais « memory management unit ». De fait, le noyau ne doit pas être compromis par des logiciels malfaisants, également appelés en anglais « malwares », de nature à affecter les utilisateurs. 15 En d'autres termes, un tel noyau est protégé d'attaques malveillantes quand bien même le système d'exploitation et des composants logiciels, c'est-à-dire plus généralement la partie utilisateur, seraient compromis. La partie utilisateur comprend un ensemble d'applications logicielles, également appelées applicatifs, accessibles par l'utilisateur. En outre, les utilisateurs sont isolés les 20 uns des autres de sorte à ne pas influencer le noyau. Il n'existe pas de mises en oeuvre connues de procédés permettant d'implémenter en mode noyau un modèle de contrôle d'accès à base de rôles doté d'une capacité d'héritage, ce qui rend la rédaction, l'évolution et la maintenance d'une politique de sécurité en mode noyau particulièrement lourdes et délicates. 25 En outre, les modèles de contrôle d'accès à base de rôles connus de l'état de la technique ne permettent pas la gestion d'éléments événementiels en mode noyau. Par l'expression « élément événementiel », il est entendu la prise en compte, par exemple, de la date ou de l'heure dans l'application d'une permission donnée. Ainsi, l'impossibilité d'implémenter en mode noyau un modèle de contrôle d'accès 30 à base de rôles doté d'une capacité d'héritage ou assurant une gestion d'éléments événementiels conduit à une démultiplication des rôles et à une efficacité réduite. Il existe donc un besoin de disposer d'un modèle de contrôle d'accès à base de rôles adapté pour être implémenté en mode noyau, dans lequel la définition de l'évolution et le contrôle de cohérence de la politique de sécurité sont facilités. 35 A cet effet, il est proposé un dispositif de gestion des droits d'accès d'utilisateurs à base de rôles, le dispositif comprenant une couche applicative comprenant des 3060153 4 applications, un module d'interception d'événements propre à intercepter des événements, un registre mémorisant des données définissant au moins un rôle attribué à au moins un utilisateur du dispositif, chaque rôle déterminant un ensemble de permissions associées à au moins une application, le registre étant propre à être actualisé pour mise à 5 jour de permissions associées à des applications et un module de décision propre à recevoir les événements interceptés par le module d'interception d'événements pour, en fonction des événements interceptés, actualiser le registre et générer une information d'actualisation. Le dispositif comprend une couche noyau distincte de la couche applicative et comprenant un module de pilotage, le module de pilotage étant propre à 10 recevoir l'information d'actualisation et propre à lire le registre alors actualisé pour générer une liste de permissions lorsqu'une information d'actualisation est reçue, le dispositif comprenant, en outre, un module de gestion des permissions adapté pour recevoir une liste des permissions et pour appliquer les permissions de la liste des permissions lors de l'utilisation des applications par les utilisateurs. 15 Suivant des modes de réalisation particuliers, le dispositif de gestion des droits d'accès d'utilisateurs à base de rôles comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : - le module de gestion des permissions est compris dans la couche applicative. 20 - le registre, pour chaque rôle, chaque application d'un ensemble d'applications est associée à au moins un ensemble de permissions. - le registre comprend, pour au moins une application de l'ensemble d'applications dans au moins un rôle, une machine à états finis, chaque état correspondant à un ensemble de permissions. 25 - le module de décision est propre à actualiser le registre en effectuant au moins une transition entre états d'au moins une machine à états finis. - dans le registre, à chaque instant et pour chaque rôle, un état pour chaque machine à états finis est fixé, la liste des permissions étant définie à partir de l'ensemble de permissions correspondant à un état fixé. 30 - un événement est choisi dans un groupe constitué du respect de critères temporels, d'un effacement d'urgence, d'une configuration de sécurité, d'un défaut d'intégrité, de la détection d'une intrusion, de la détection d'un virus, de la bande passante disponible, du nombre d'utilisateurs connectés, et de la valeur d'au moins une ressource d'un système informatique. 35 - la couche noyau est destinée à être mise en oeuvre par un noyau de système d'exploitation de type UNIX. 3060153 5 - le registre définit une politique de sécurité, la politique de sécurité vérifiant un test probatoire de complétude. Il est également proposé un procédé de gestion des droits d'accès d'utilisateurs à base de rôles, le procédé étant mis en oeuvre par un dispositif informatique comprenant 5 une couche applicative et une couche noyau distincte de la couche applicative, le procédé comprenant les étapes suivantes : interception d'un événement par un module d'interception d'événements compris dans la couche applicative, actualisation, par un module de décision compris dans la couche applicative, d'un registre également compris dans la couche applicative et génération d'une information d'actualisation, le registre 10 mémorisant des données définissant au moins un rôle attribué à au moins un utilisateur du dispositif, chaque rôle déterminant un ensemble de permissions associées à au moins une application, le registre étant propre à être actualisé pour mise à jour de permissions associées à des applications. Lorsqu'une information d'actualisation a été générée à l'étape précédente, le procédé comporte une étape de réception de l'information 15 d'actualisation par un module de pilotage compris dans la couche noyau, et lecture par le module de pilotage du registre alors actualisé pour génération d'une liste des permissions, et de réception de la liste des permissions par un module de gestion des permissions pour application des permissions de la liste des permissions. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la 20 description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple uniquement et en référence aux dessins qui sont : - figure 1, une vue schématique d'un exemple de système permettant la mise en oeuvre d'un contrôle de gestion des droits d'accès d'utilisateurs à base de rôles, et - figure 2, une représentation schématique du dispositif de gestion des droits 25 d'accès d'utilisateurs à base de rôles. Un système 10 et un produit programme d'ordinateur 12 sont représentés sur la figure 1. L'interaction du produit programme d'ordinateur 12 avec le système 10 permet de mettre en oeuvre un procédé. 30 Le système 10 est un ordinateur. Plus généralement, le système 10 est un calculateur électronique propre à manipuler et/ou transformer des données représentées comme des quantités électroniques ou physiques dans des registres du système 10 et/ou des mémoires en d'autres données similaires correspondant à des données physiques dans des mémoires, 35 des registres ou d'autres types de dispositifs d'affichage, de transmission ou de mémorisation. 3060153 6 Le système 10 comprend une unité de traitement de données 14 comprenant un processeur 16, des mémoires 18 et un lecteur 20 de support d'informations. Le système 10 comprend également un clavier 22 et une unité d'affichage 24. Comme décrit précédemment, le système d'exploitation comprend un noyau et 5 une partie utilisateur. En particulier, le système 10 est un ordinateur doté d'un système d'exploitation de type UNIX. Dans ce cas, le noyau est un noyau de type UNIX. D'une façon plus générale, le système d'exploitation et le noyau sont de type UNIX ou assimilé. 10 Le produit programme d'ordinateur 12 comprend un support lisible d'informations 20. Un support lisible d'informations 20 est un support lisible par le système 10, usuellement par l'unité de traitement d'informations 14. Le support lisible d'informations 20 est un médium adapté à mémoriser des instructions électroniques et capables d'être 15 couplé à un bus d'un système informatique. A titre d'exemple, le support lisible d'informations 20 est un disque optique, un CD-ROM, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, une mémoire EPROM, une mémoire EEPROM, une carte magnétique ou une carte optique. Sur le support lisible d'informations 20 est mémorisé le programme comprenant 20 des instructions de programme. Le programme d'ordinateur est chargeable sur l'unité de traitement de données 14 et est adapté pour entraîner la mise en oeuvre d'un procédé de gestion des droits d'accès d'utilisateurs à base de rôle lorsque le programme d'ordinateur est mis en oeuvre sur le processeur 16. 25 En référence à la figure 2, un dispositif 30 de gestion des droits d'accès d'utilisateurs à base de rôles est schématiquement représenté. Le dispositif 30 est adapté pour mettre en oeuvre un modèle de contrôle d'accès à base de rôles. Le dispositif 30 comprend une couche applicative 32 et une couche noyau 34 30 distincte de la couche applicative. La couche applicative 32 est formée d'instructions logicielles propres à être mises en oeuvre par la partie utilisateur du système d'exploitation. La couche noyau 34, également appelée couche système, est formée d'instructions logicielles constituant le noyau du système d'exploitation. 35 Alternativement, le code source du noyau du système d'exploitation est directement modifiable lors du déploiement du dispositif 30. 3060153 7 La couche applicative 32 comprend au moins une application logicielle, un module d'interception d'événements 38, un registre 40, un module de décision 42 et un module de gestion des permissions 44. Le dispositif 30 comprend un nombre quelconque d'applications logicielles 5 accessibles par les utilisateurs. A chaque application est associé un ensemble de fonctions. Les applications sont, par exemple, des outils de gestion d'une base de données, des applications de traitement de texte ou autres. Sur la figure 2, il est représenté quatre applications logicielles 36A, 36B, 36C et 10 36D. A titre d'exemple, dans l'exemple d'un hôpital au sein duquel est déployé un système d'information, une application est un outil de gestion de la base de données des patients. Dans ce cas, les fonctions associées à l'outil de gestion sont, par exemple, l'accès en lecture ou l'accès en écriture de certains types de données. 15 Le module d'interception d'événements 38 est propre à intercepter des événements. Lorsqu'un événement est intercepté, le module d'interception d'événements 38 est propre à retourner une donnée d'interception au module de décision 42 de sorte à permettre une gestion d'éléments événementiels. Sur la figure 2, des événements sont représentés par des flèches 46. 20 Les événements 46 sont, par exemple, choisis dans la liste suivante : - le respect de critères temporels, il s'agit, par exemple, de la date courante ou de l'heure courante du système d'information ; - un effacement d'urgence, il s'agit, par exemple, d'un dysfonctionnement du système d'exploitation ou d'une application, 25 - une configuration de sécurité, il s'agit, par exemple, d'une règle de sécurité fixée, telle une connexion anormalement longue d'un utilisateur à une application donnée, - un défaut d'intégrité, il s'agit, par exemple, d'une incohérence relevée dans l'application d'une règle de sécurité, telle l'utilisation de deux rôles par un même 30 utilisateur ; - la détection d'une intrusion, il s'agit, par exemple, de l'intrusion d'une personne externe à l'organisation ; - la détection d'un virus ; - la bande passante disponible, il s'agit, par exemple, de la surcharge du réseau 35 informatique permettant la connexion simultanée des utilisateurs ; - le nombre d'utilisateurs connectés, et 3060153 8 - la valeur d'au moins une ressource d'un système informatique, il s'agit, par exemple, de la charge du processeur ou l'atteinte d'une capacité mémoire. A titre d'illustration, dans l'exemple d'un hôpital au sein duquel est déployé un système d'information, un événement est, par exemple, l'heure de connexion d'une 5 infirmière à la base de données des patients. Le registre 40 est propre à mémoriser des données définissant au moins un rôle attribué à au moins un utilisateur du dispositif 30, chaque rôle déterminant un ensemble de permissions associées à au moins une application. Le registre 40 présente, par exemple, une structure associant, pour chaque rôle, 10 chaque application à au moins un ensemble de permissions. Dans le cas de la figure 2, un rôle 48 est représenté schématiquement sous forme d'un cadre. Comme visible sur cette figure, au sein du rôle 48, quatre ensembles de permissions 50A, 50B, 50C et 50D correspondant respectivement aux quatre applications 36A, 36B, 36C et 36D sont illustrés. 15 Les ensembles de permissions comprennent notamment des données tenant compte des événements 46 interceptés par le module d'interception d'événements 38. A titre d'exemple, il est considéré que le rôle 48 correspond au rôle attribué aux infirmières. Dans ce cas, un premier ensemble de permissions 50A définit les permissions attribuées aux infirmières relativement à l'outil de gestion de la base de données des 20 patients, et les trois autres ensembles de permissions 50B, 50C et 50D définissent les permissions attribuées aux infirmières relativement à trois autres applications. Le premier ensemble de permissions 50A contient notamment des données indiquant que les infirmières ne peuvent pas consulter les informations médicales des patients. De préférence, le registre 40 comprend, pour chaque application de l'ensemble 25 d'applications dans au moins un rôle, une machine à états finis, chaque état correspondant à un ensemble de permissions. Par exemple, l'ensemble de permissions 50A correspondant à l'application 36A comprend une machine à états finis. Une machine à états finis, également appelée automate à états finis, est une construction présentant un nombre fini d'états et dans laquelle, à un instant donné, un 30 seul état à la fois est possible. On parle alors d'état courant ou d'état figé. Le passage d'un état à un autre est régi par un événement et est appelé une transition. Une machine à états finis est définie par l'ensemble de ses états et par les conditions des transitions. Dans ce cas, pour une application donnée, une transition entre deux états finis permet de modifier l'ensemble de permissions à appliquer. 35 Les machines à états sont définies à partir de la rédaction de politique de sécurité dont l'évolution ou la maintenance impacte les machines à états. 3060153 9 A titre d'illustration et en référence à la figure 2, dans l'exemple de l'hôpital dans lequel le premier ensemble de permissions 50A définit les permissions attribuées aux infirmières relativement à l'outil de gestion de la base de données des patients, le premier ensemble de permissions 50A est représenté sous la forme d'une machine à états finis 52 5 comprenant cinq états 54-1, 54-2, 54-3, 54-4 et 54-5. L'état 54-1 correspond, par exemple, à la situation dans laquelle les infirmières ont accès aux données administratives de la base de données des patients. L'état 54-2 correspond, par exemple, à la situation dans laquelle les infirmières n'ont pas accès à la base de données parce qu'elles sont en dehors de leur horaires de 10 travail. Dans un tel cas, une transition est provoquée entre l'état 54-1 et l'état 54-2 par l'interception d'un événement temporel fixé par rapport auxdites horaires de travail. Les autres états 54-3 et 54-4 correspondent à d'autres situations, telle l'impossibilité de modifier des données administratives d'un patient car d'autres infirmières sont en train de modifier les données dudit patient ou l'impossibilité d'accéder à la base 15 de données car un logiciel malfaisant a été détecté dans le système d'information. D'une façon générale, le registre 40 définit une politique de sécurité, ladite politique de sécurité étant alors décrite par les ensembles de permissions, de préférence au moyen de machines à états finis. Les machines à états finis permettent d'apporter la preuve de la politique de 20 sécurité. En cela, les machines à états finis sont de nature à constituer une preuve formelle de la politique de sécurité. Dans certains modes de réalisation, la politique de sécurité vérifie un test probatoire de complétude. Dans d'autres modes de réalisation, le test probatoire de complétude est propre à 25 garantir l'intégrité dans le temps de la politique de sécurité. Dans d'autres modes de réalisation, le test probatoire de complétude est complété par des tests permanents et réguliers. Il est défini une signature électronique qui correspond à l'application d'une fonction mathématique cryptographique, non inversible, la fonction mathématique étant propre à 30 identifier de manière unique un objet logiciel. Le test probatoire est un test visant à effectuer une signature électronique de la politique de sécurité mise en place. La signature électronique est sous le contrôle d'un officier de sécurité assermenté, dont le rôle fonctionnel est : 35 - d'assurer l'authenticité de ladite signature, et - de révoquer des politiques déjà distribuées par le système 30. 3060153 10 Un agent externe, ayant la responsabilité de vérifier que ladite signature est compatible ou non avec l'implémentation des règles de sécurité attendues, garantit l'intégrité de la politique mise en oeuvre dans le système 30, de sorte à éviter le chargement de données corrompues ou malicieuses dans un système de sécurité, en 5 particulier dans des systèmes de sécurité dit critiques. Le module de décision 42 est propre à recevoir des événements interceptés par le module d'interception d'événements 38 pour, en fonction des événements 46 interceptés, générer une information d'actualisation et actualiser le registre 40. L'information d'actualisation est transmise à destination d'un module de pilotage 10 qui est décrit par la suite. L'actualisation du registre 40 par le module de décision 42 consiste à modifier, pour au moins un rôle, au moins un ensemble de permissions correspondant audit rôle. Lorsque la structure du registre 40 est telle que, pour chaque application, chaque ensemble de permissions comprend une machine à états finis, l'actualisation du registre 15 consiste à effectuer des transitions entre états d'au moins une machine à états finis. Dans ce cas, le module de décision 42 est propre à actualiser le registre 40 en effectuant au moins une transition entre états d'au moins une machine à états finis. Dans l'exemple précédent, il est considéré que les infirmières ne travaillent pas après 18h00 et que, passé cet horaire, l'accès à la base de données des patients leur est 20 interdit. Le module d'interception d'événements 38 intercepte alors un horaire qui est postérieur à 18h00 et retourne une donnée d'interception correspondante au module de décision 42. Le module de décision 42 effectue alors la transition de l'état 54-1 à l'état 542 de la machine à états finis 52. Le module de gestion des permissions 44 est adapté pour recevoir une liste des 25 permissions et pour appliquer les permissions de la liste des permissions. En d'autres termes, le module de gestion des permissions 44 est adapté pour établir une session en activant un rôle. La liste de permissions comprend l'ensemble de toutes les permissions, pour chaque rôle et pour chaque application. 30 Dans le cas où le registre 40 comprend des machines à états finis, un état pour chaque machine à états finis est fixé à chaque instant et pour chaque rôle. Pour chacun des états fixés, l'ensemble des permissions correspondant audit état fixé permet de définir une partie de la liste des permissions. Par « état fixé », il est entendu le fait que les permissions associées audit état 35 servent à la définition de la liste de permissions. 3060153 11 Le module de gestion des permissions 44 est alors en relation avec les applications 36A, 36B, 36C et 36D de sorte à assurer la bonne application de la politique de sécurité. La couche noyau 34 comprend un module de pilotage 60 chargé d'assurer la 5 politique de sécurité actualisée suite à l'interception d'un événement 46. Comme visible sur la figure 2, le module de gestion des permissions 44 ne reçoit pas de liste des permissions à appliquer depuis un élément de la couche applicative 32 mais de la couche noyau 34. En particulier, le module de gestion des permissions 44 reçoit la liste des permissions à appliquer depuis le module de pilotage 60 implémenté 10 dans la couche noyau 34. Le module de pilotage 60 est propre à recevoir une information d'actualisation depuis le module de décision 42. En outre, lorsqu'une information d'actualisation est reçue, le module de pilotage 60 est propre à lire dans le registre 40 de sorte à générer une liste de permissions pour 15 transmission au module de gestion des permissions 44. En d'autres termes, lorsqu'un événement 46 est intercepté, l'information d'actualisation transmise au module de pilotage 60 indique que la politique de sécurité décrite dans le registre 40 a été mise à jour, le module de pilotage 60 étant alors adapté pour lire les différents ensembles de permissions dans ledit registre 40 pour transmission 20 de la liste des permissions au module de gestion des permissions 44. Le fonctionnement du dispositif 30 est maintenant décrit en référence à la mise en oeuvre d'un exemple de procédé de gestion de droits d'accès d'utilisateurs à base de rôles. Pour faciliter la compréhension, il est considéré le rôle correspondant aux 25 infirmières dans l'exemple de l'hôpital utilisé précédemment. Initialement, le rôle 48 est activé à partir de l'ensemble de permissions correspondant à l'état 54-1. L'état fixé est ainsi l'état 54-1. De fait, le module gestion des permissions 44, qui a préalablement reçu une liste 30 de permissions comprenant notamment l'ensemble de permissions correspondant à l'état 54-1, se charge de la bonne application de la politique de sécurité. Selon l'exemple, le module gestion des permissions 44 assure que les infirmières puissent accéder aux informations administratives des patients. Dans le procédé de gestion, le module d'interception d'événements 38 détecte un 35 événement. L'événement est, par exemple, le passage d'une horloge interne au système d'information de la valeur 18h00 à 18h01. 3060153 12 Le module d'interception d'événements 38 envoie alors une donnée d'interception au module de décision 42 qui se charge d'actualiser le registre 40. En particulier, le module de décision 42 effectue une transition de l'état 54-1 vers l'état 54-2. 5 A présent, l'état fixé n'est plus l'état 54-1 mais l'état 54-2. En outre, le module de décision 42 génère une information d'actualisation qui est transmise au module de pilotage 60. Le module de pilotage 60, après avoir reçu l'information d'actualisation, lit dans le registre 40 les différentes permissions décrites par les états des différentes machines à 10 états finis. Ainsi, le module de pilotage 60 lit des permissions mises à jour suite à l'interception de l'événement. Après avoir lu le registre 40, le module de pilotage 60 génère une liste de permissions qui est transmise au module de gestion des permissions 44. Enfin, le module de gestion des permissions 44 applique les permissions décrites 15 dans la liste de permissions, lesdites permissions étant alors mises à jour. De fait, au passage de 18h00 à 18h01, les infirmières ne changent pas de rôle mais n'ont plus les mêmes permissions qu'initialement puisqu'elles n'ont plus le droit d'accéder à la base des données des patients. Le dispositif 30 et le procédé précédemment décrits permettent de disposer d'un 20 contrôle d'accès à base de rôles implémenté en mode noyau qui permet d'assurer une gestion événementielle des permissions. De fait, le dispositif 30 et le procédé permettent de disposer d'un modèle de contrôle d'accès à base de rôles adapté pour être implémenté en mode noyau, dans lequel la définition de l'évolution et le contrôle de cohérence de la politique de sécurité sont facilités par rapport aux systèmes existants. 25 En outre, la structure qui vient d'être décrite permet de facilement modifier la politique de sécurité. En particulier, la présence de machines à états finis facilite grandement le travail de rédaction, d'évolution et de maintenance d'une politique de sécurité puisqu'il suffit pour ce faire, par exemple, de modifier ou de rajouter des états aux machines à états finis. 30 Le fait de disposer d'une séparation du dispositif 30 entre le noyau et la partie utilisateur offre, par ailleurs, une grande robustesse. De fait, le module de pilotage 60, qui est la partie sensible du dispositif 30 puisque le module de pilotage 60 est en charge de la génération de la liste de permissions à mettre en oeuvre, appartient au noyau. En revanche, les autres éléments et en particulier le registre 40, sont directement accessibles 35 par un usager pour modification, pour autant que la politique de sécurité déjà en vigueur le permette. REVENDICATIONS1.- Dispositif (30) de gestion des droits d'accès d'utilisateurs à base de rôles, le dispositif (30) comprenant : - une couche applicative (32) comprenant : + des applications (36A, 36B, 36C et 36D), + un module d'interception d'événements (38) propre à intercepter des événements (46), + un registre (40) mémorisant des données définissant au moins un rôle (48) attribué à au moins un utilisateur du dispositif (30), chaque rôle (48) déterminant un ensemble de permissions (50A, 50B, 50C et 50D) associées à au moins une application (36A, 36B, 36C et 36D), le registre (40) étant propre à être actualisé pour mise à jour de permissions associées à des applications (36A), et + un module de décision (42) propre à recevoir les événements (46) interceptés par le module d'interception d'événements (38) pour, en fonction des événements (46) interceptés, actualiser le registre (40) et générer une information d'actualisation, et - une couche noyau (34) distincte de la couche applicative (32) et comprenant un module de pilotage (60), le module de pilotage (60) étant propre à recevoir l'information d'actualisation et propre à lire le registre (40) alors actualisé pour générer une liste de permissions lorsqu'une information d'actualisation est reçue, le dispositif (30) comprenant, en outre, un module de gestion des permissions (44) adapté pour recevoir une liste des permissions et pour appliquer les permissions de la liste des permissions lors de l'utilisation des applications par les utilisateurs. 2.- Dispositif selon la revendication 1, dans lequel le module de gestion des permissions (44) est compris dans la couche applicative (46). 3.- Dispositif selon la revendication 1 ou 2, dans lequel dans le registre (40), pour chaque rôle (48), chaque application (36A, 36B, 36C et 36D) d'un ensemble d'applications est associée à au moins un ensemble de permissions (50A, 50B, 50C et 50D). 4.- Dispositif selon la revendication 3, dans lequel le registre (40) comprend, pour au moins une application (36A) de l'ensemble d'applications dans au moins un rôle (48), 3060153 14 une machine à états finis (52), chaque état (54-1, 54-2, 54-3 et 54-4) correspondant à un ensemble de permissions. 5.- Dispositif selon la revendication 4, dans lequel le module de décision (42) est 5 propre à actualiser le registre (40) en effectuant au moins une transition entre états (54-1, 54-2) d'au moins une machine à états finis (52). 6.- Dispositif selon la revendication 5, dans lequel dans le registre (40), à chaque instant et pour chaque rôle, un état pour chaque machine à états finis est fixé, la liste des 10 permissions étant définie à partir de l'ensemble de permissions correspondant à un état fixé. 7.- Dispositif selon l'une quelconque des revendications 1 à 6, dans lequel un événement (46) est choisi dans un groupe constitué : 15 - du respect de critères temporels, - d'un effacement d'urgence, - d'une configuration de sécurité, - d'un défaut d'intégrité, - de la détection d'une intrusion, 20 - de la détection d'un virus, - de la bande passante disponible, - du nombre d'utilisateurs connectés, et - de la valeur d'au moins une ressource d'un système informatique. 25 8.- Dispositif selon l'une quelconque des revendications 1 à 7, dans lequel la couche noyau (34) est destinée à être mise en oeuvre par un noyau de système d'exploitation de type UNIX. 9.- Dispositif selon l'une quelconque des revendications 1 à 8, dans lequel le 30 registre (40) définit une politique de sécurité, la politique de sécurité vérifiant un test probatoire de complétude. 10.- Procédé de gestion des droits d'accès d'utilisateurs à base de rôles, le procédé étant mis en oeuvre par un dispositif (30) informatique comprenant une couche 35 applicative (32) et une couche noyau (34) distincte de la couche applicative (32), le procédé comprenant les étapes suivantes : 3060153 15 - interception d'un événement (46) par un module d'interception d'événements (38) compris dans la couche applicative (32), - actualisation, par un module de décision (42) compris dans la couche applicative (32), d'un registre (40) également compris dans la couche applicative (32) et génération 5 d'une information d'actualisation, le registre (40) mémorisant des données définissant au moins un rôle attribué à au moins un utilisateur du dispositif (30), chaque rôle déterminant un ensemble de permissions associées à au moins une application, le registre (40) étant propre à être actualisé pour mise à jour de permissions associées à des applications, - lorsqu'une information d'actualisation a été générée à l'étape précédente : 10 + réception de l'information d'actualisation par un module de pilotage (60) compris dans la couche noyau (34), et lecture par le module de pilotage (60) du registre (40) alors actualisé pour génération d'une liste des permissions, et + réception de la liste des permissions par un module de gestion des permissions (44) pour application des permissions de la liste des permissions.