flag OrBAC Telecom Bretagne
flag FRANCAIS ENGLISH
OrBee

OrBAC

AdOrBAC

Les publications


OrBAC


haut de page Références d’articles sur Or-BAC

Les objectifs et avantages d’OrBAC haut de page

L’objectif d’ OrBAC est de permettre la modélisation d’une variété de politiques de sécurité basées sur le contexte de l’organisation. Pour arriver à ce but, et afin de réduire la complexité de gestion des droits d’accès, le modèle OrBAC repose sur quatre grands principes :


Ainsi, en plus d’avoir une politique se sécurité indépendante de son implémentation, OrBAC a d’autres avantages. Il permet d’exprimer aussi bien des permissions, que des interdictions, que des obligations. Il prend en compte les contextes, les hiérachies et la délégation.
L’introduction d’un niveau permet aussi la structuration des entités comme on le voit sur le schéma suivant:  Structuration des entités dans OrBAC
Ainsi dans OrBAC, un rôle est un ensemble de sujets sur lesquels sont appliquées les mêmes régles de sécurité. Identiquement, une activité est un ensemble d’actions sur lesquels sont appliquées les mêmes régles de sécurité. Une vue est un ensemble d’objets sur lesquels sont appliquées les mêmes régles de sécurité.

Les interactions d’OrBAC haut de page

Sur le schéma suivant, on peut apercevoir les interactions existantes dans ORBAC. Afin de ne pas surchargé celui-ci l’interaction entre le contexte et les entités concrêtes n’est pas représenté.
Interaction des entités dans OrBAC
Les prédicats d’OrBAC liés aux intéractions seront descrits dans la section du même nom.

La notion de contexte haut de page

On voit apparaître sur ce schéma des interactions une entité qui n’apparait pas dans les autres modèles de contrôle d’accès : le contexte. Celui-ci est défini pour une organisation, un sujet, une action, des objets donnés. Les contextes permettent d’exprimer des permissions ou des interdictions dans certaines circonstances (urgence à l’hôpital, heures de travail dans une entreprise,...). Il est facile d’imaginer que dans un contexte d’urgence, on désirera qu’un infirmier puisse accéder au dossier d’un patient lambda sans avoir besoin d’appeler l’administrateur afin que celui-ci lui donne les droits (peut-être trop tard). Cette possibilité de nuancer les autorisations n’est pas offertes par DAC, MAC, RBAC, alors que dans de nombreuses organisations (hôpital, entreprise,...) il existe un réel besoin de ne donner des droits que dans des circonstances précises.
Taxonomie des contextes Pour le modéle OrBAC, on a regroupés les différents contextes par type (comme sur le schéma ci-dessus) :

A noter que dans une modélisation OrBAC, on définit toujours un contexte par défaut.

La notion de hiérachie haut de page

Afin de gérer plus facilement des sous-organisations, en automatisant la dérivation des permissions, OrBAC permet de définir des hiérarchies sur les rôles, les activités, les vues et les contextes. On a ainsi l’héritage des permissions et des interdictions en descendant dans la hiérarchie des rôles, des activités, des vues et des contextes. Tout comme dans RBAC, l’héritage permet de simplifier la tâche de l’administrateur en automatisant partiellement l’attribution des privilèges. Comme dans RBAC, il existe deux façons de définir la hiérarchie de l’héritage :


Dans OrBAC, ces deux hiérarchies réapparaissent mais les droits qui leur sont associés sont quelque peut modifier. En effet, avec le modèle OrBAC, on peut définir des permissions mais aussi des interdictions. Dans OrBAC, on peut aussi spéciliser un rôle. On voit donc apparaître une hiérachie liée à cette spécification. Dans cette hiérachie si on veut qu’un rôle senior puisse avoir plus de pouvoir que son rôle junior, alors il faut que le rôle senior hérite des permissions de son rôle junior et que les interdictions liées au rôle senior soient héritées par son rôle junior. De plus, par rapport à RBAC, OrBAC introduit le concept d’organisation, ce qui donne une nouvelle dimension à l’héritage. En effet, il est possible qu’un rôle puisse toujours englober un certain sous-rôle quelle que soit l’organisation dans laquelle on se place. Par exemple, dans tout hôpital, le rôle de chirurgien est une spécialisation du sous-rôle médecin. OrBAC permet donc au chirurgien d’hériter de tous les droits du médecin en ne définissant qu’une seule fois les droits. Le reste se fait grâce à la relation de spécialisation/généralisation. Identiquement, les vues et les activités possèdent des sous-vues et des sous-activités. On les hiérarchise donc afin de créer pour elles aussi cette relation de spécialisation/généralisation.
exemple simple de hierarchie
Un petit exemple de dérivation de priviléges par la hiérarchie dans OrBAC, sur le schéma, si on a :
Permission(Org.HOP, Médecin, Opérer, patient, ctx.MéduPat.OUctx.Urg)
alors à partir de la hiérachie définie, on dérive automatiquement :
Permission(Org.HOP, Urologue, Opérer, patient, ctx.MéduPat.OUctx.Urg) et
Permission(Org.HOP, Chirurgien, Opérer, patient, ctx.MéduPat.OUctx.Urg)

La notion de délégation haut de page

La délégation permet de donner à un utilisateur particulier un privilège, sans donner ce privilège à toutes les personnes ayant le même rôle que lui. La délégation, bien que très utilisée, est très peu modélisée dans les politiques de sécurité car ce concept est très complexe.
En effet, grâce à une délégation, une permission peut être donnée par le détenteur d’un droit à un tiers pour agir à sa place ou à la place d’un autre. On voit déjà ici apparaître qu’une délégation peut faire intervenir plusieurs parties :


Il existe trois types de situation dans lesquelles la notion de délégation apparaît :
La maintenance d’un rôle correspond au cas où un utilisateur doit déléguer une partie de ses permissions afin qu’on puisse remplir toutes ses obligations pendant son absence. La décentralisation de l’autorité est surtout utile dans le cas où on modifie une partie de l’organisation. En pratique, ce cas peut correspondre à l’ouverture d’un nouvel hôpital dans lequel on va transférer une partie des médecins exerçant dans les autres hôpitaux de la région. Le cas du travail en collaboration est évident, si on souhaite que notre partenaire puisse lire les documents que l’on possède sur un projet donné, il faut lui en donner l’autorisation.

Cependant, la délégation pose de nombreux problèmes. Entre autre, un utilisateur X ayant obtenu tous les droits d’un autre utilisateur Y peut ôter les droits à Y si X possède certains droits administratifs. Il peut aussi arriver que l’on oublie de révoquer une délégation faite à Z et qui n’a plus d’utilité d’être, ce qui peut laisser la possibilité à Z de se faire passer pour quelqu’un d’autre. C’est l’une des raisons pour lesquelles il est important de définir deux types de permission, celles qui sont délégables et celle qui ne peuvent l’être.
Chaîne de délégation

De plus, la délégation est liée à une multitude de notions :
La délégation a de multiples avantages et offre de nombreuses possibilités. Cependant, il apparaît que si on l’autorise à mauvais escient, alors elle peut aller à l’encontre de la politique. En effet, la révocation d’une délégation permet à une personne d’ôter un droit D à une personne X. Mais que se passe-t-il lorsque la personne X possède ce droit avant la délégation? Des personnes mal intentionnées pourraient ainsi utiliser la délégation afin d’effectuer des révocations qu’ils n’avaient pas le droit de faire. D’où l’importance de bien administrer sa polititque de contrôle d’accès, si la délégation est mise en place.

Les prédicats d’OrBAC haut de page

Afin de comprendre les règles définies dans OrBAC, on récapitule dans ces tableaux les différents prédicats liés à OrBAC.
Les predicats liés à l’affectation des entités abstraites aux organisations :

Nom de prédicat Domaine Description
Relevant_role Org*Role Si org est une organisation et r un rôle, alors Relevant_role signifie que le rôle r est défini dans l’organisation org
Relevant_activity Org*Activity Si org est une organisation et a une activité, alors Relevant_activity signifie que l’activité a est définie dans l’organisation org
Relevant_view Org*View Si org est une organisation et v une vue, alors Relevant_view signifie que la vue v est définie dans l’organisation org

Les predicats liés aux relation d’abstraction :
Nom de prédicat Domaine Description
Empower Org*Subject*Role Si org est une organisation, s un sujet et r un rôle, alors Empower signifie que l’organisation org habilite le sujet s dans le rôle r
Consider Org*Action*Activity Siorg est une organisation, A une action et a une activité, alors Consider signifie que l’organisation org considére l’action A comme faisant partie de l’activité a
Use Org*Object*View Si org est une organisation, o un objet et v laune vue, alors Use signifie que l’organisation org utilise l’objet o dans la vue v

Les predicats liés au definition des contextes :
Nom de prédicat Domaine Description
Hold Org*Subject*Action *Object*Context Si org est une organisation, s un sujet, A une action, o un objet et c un contexte, alors Hold signifie que dans l’organisation org, le contexte c est défini pour le sujet s,l’action A etl’objet o

Les predicats liés aux permission abstraites :
Nom de prédicat Domaine Description
Permission Org*Role*Activity *View*Context Si org est une organisation, r un rôle, a une activité, v une vue et c un contexte, alors Permission signifie que dans l’organisation org accorde la permission au rôle r de raliser l’activité a dans la vue v dans le contexte c
Prohibition Org*Role*Activity *View*Context Si org est une organisation, r un rôle, a une activité, v une vue et c un contexte, alors Prohibition signifie que dans l’organisation org refuse la permission au rôle r de réaliser l’activité a dans la vue v dans le contexte c

Les predicats liés aux permission concrètes :
Nom de prédicat Domaine Description
Is_permitted Subject*Action*Object Si s est un sujet, A une action et o un objet, alors Is_permitted signifie que le sujet s a concrétement la permission de réaliser l’action A sur l’objet o
Is_prohibited Subject*Action*Object Si s est un sujet, A une action et o un objet, alors Is_prohibited signifie que le sujet s ne peut pas concrétement réaliser l’action A sur l’objet o

La gestion de conflit haut de page

OrBAC permet d’exprimer des permissions et des interdictions. OrBAC offre donc la possibilité de spécifier une politique mixte. Il existe dans OrBAC une troisième catégorie de privilège: l’obligation. La notion d’obligation décrit les actions qu’un utilisateur doit faire sur un ensemble d’objets. Par exemple, dans un contexte d’urgence, un infirmier aura le droit d’accéder au dossier médicaux mais uniquement s’il fait ensuite un rapport, c’est une obligation.

La politique mixte pose de nombreux problèmes liés à la gestion des conflits potentiels et des règles redondantes. Afin d’éluder le problème des règles redondantes, on ajoute des prédicats. Ceux-ci, pour deux règles données R1 et R2, interdisent d’avoir la priorité de R1 moindre que celle de R2, lorsque toutes les conditions suivantes sont vérifiées :


Il peut apparaître un conflit, par exemple si un même utilisateur possède deux rôles et que l’un de ces rôles lui permet de faire une activité et l’autre lui interdit. On est sûr que s’il n’y a aucun conflit au niveau abstrait, il n’y en aura pas au niveau concret. Ceci est du au fait que les permissions concrètes sont déduites des permissions organisationnelles, de même pour les interdictions. Donc on résout les conflits potentiels au niveau abstrait On décide pour cela de donner des priorités aux interdictions et permissions du niveau abstrait. Cependant, si le conflit subsiste (par exemple: l’interdiction et la permission on même priorité) alors OrBAC prévient le concepteur de la politique. Celui-ci choisit alors de modifier les règles liées aux priviléges, ou le niveau des priorités des privilèges.
Gestion de conflit
Donc, OrBAC simplifie la conception de la politique de contrôle d’accès en automatisant la dérivation des permissions, iIl a l’avantage d’offrir une politique mixte qui gère les problèmes conflictuels.

Le profil XACML haut de page


Profil XACML de OrBAC

Les extensions d’OrBAC haut de page

On peut apercevoir sur le schéma suivant les différentes extensions identifiées du modèle OrBAC, avec en orange les parties déjà traitées par l’équipe. Les extensions d’OrBAC

AdOrBAC

L’administration permet d’ajouter et de révoquer des entités ainsi que des privilèges. C’est dans l’optique d’avoir un modèle auto-administré qui permet de représenter plusieurs façons de gérer les accès que se présente AdOrBAC. Nous avons vu que le modèle OrBAC possède plusieurs relations entre ces diverses entités (cf. le schéma représentant le modèle OrBAC).
AdOrBAC doit gérer toutes ces relations. De plus, comme OrBAC est un modèle auto-administré, AdORBAC doit donc exprimer l’administration de OrBAC dans le même formalisme que OrBAC lui-même.


haut de page Références d’articles sur AdOrBAC

L’administration via les vues haut de page

L’administration par les vues fonctionne comme un guichet qui offre un ticket. Sur un billet d’avion on a tout les informations qui autorise et permettent à un passager de prendre son vol. De même, dans une permissions donner par une vue, la vue regroupera les diverses informations nécessaires à la permission.
Administration via les vues
Ainsi pour définir, une permission pour un rôle donné (dans la vue PRA), on doit donné l’organisation, le rôle, la vue, l’activité et le contexte lié à la permission.
Administration via la vue PRA

Les vues d’AdOrBAC haut de page

Il faut vérifier chaque relation qui permet de décrire OrBAC donc associer des vues a presque chacune de ces relations distinctes. Presque, car pour la relation use, il est facile de vérifier la permission d’affecter ou de révoquer un objet dans une vue. On donne dans ce cas à l’utilisateur du rôle r la permission d’effectuer l’activité d’affectation assign la vue v dans un contexte c dans une organisation org, Permission(org,r,assign,v,c) .

AdOrBAC permet de contrôler les activités d’administration suivantes: