Dans la dernière revue MISC(1), en marge du dernier article, on trouve un petit descriptif rapide des modèles DAC, RBAC et OrBAC.
L’évolution de ces modèles tend vers la création d’un langage à part entière que l’on peut traduire vers nos langages humains, et vice-versa.
Et ce langage n’est autre qu’une forme de lien entre deux objets.
Modèles
Le modèle de contrôle d’accès MAC(2) (Mandatory Access Control) est le minimum indispensable dans une entité bien délimitée comme une société commerciale ou une association (ou autre) parce que cette entité délègue un pouvoir d’action à ses membres et doit en contrôler la portée. Mais c’est une aberration à l’échelle d’un pays ou du monde.
Le modèle DAC(3) (Discretionary Access Control) est plus adapté à grande échelle parce que chaque entité définie ses propres règles du jeu dans le traitement d’informations vis-à -vis des autres entités. La notion de membres internes n’existe pas.
Ces deux modèles, bien que différents dans la gestion, implémentent la mise en place de permissions discrètes (unitaires) sur l’espace sujet-action-objet.
En fait, dans l’entité, si l’on assimile les membres à des (sous-)entités, on se retrouve avec les deux modèles MAC et DAC imbriqués et souvent en conflit. Un utilisateur voudrait montrer un document à un de ses collègues d’une autre direction, mais la politique de confidentialité de l’entreprise ne permet la consultation que pour les membres de sa propre direction. La rupture de la sécurité, c’est quand l’utilisateur transmet le document à son collègue via la messagerie…
Le modèle RBAC(4) (Role-Based Access Control) est une évolution du modèle MAC mais qui simplifie la gestion des règles d’accès en pratiquant des regroupements par rôles, c’est à dire par catégories d’activités dans l’entité. On introduit ainsi la notion de groupes d’entités.
Le modèle OrBAC(5) (Organization-Based Access Control) pousse le concept de groupes encore plus loin. Il permet de gérer les notions de rôles, activités, vues et équipes. Il permet aussi et surtout de travailler sur une vue abstraite de l’organisation en représentant les règles par le triptyque rôles-activités-vues. Et une fois la vue abstraite définie, il permet de la transcrire directement en sujet-action-objet concrètement applicable. Cela inclut les permissions, les restrictions et les obligations.
Ces deux derniers modèles permettent aussi la définition de contraintes spatiales et temporelles supplémentaires. La contrainte spatiale à peu d’intérêt à priori dans le sens où elle est en redondance avec la notion d’adressage réseau, elle-même étant déjà la base de la définition des serveurs et stations. Sauf si on dissocie nativement l’utilisateur de la station (dans le sens où il peut être connecté à plusieurs endroits différents) ou que l’on accepte que plusieurs utilisateurs travaillent depuis la même station (multi-session actives), ce qui techniquement parlant est déjà une réalité bien ancrée.
Langage
Quand je regarde ces différents modèles qui parlent de sujet-action-objet, j’ai l’impression de retrouver une structure syntaxique de base assez commune au langage humain : sujet-verbe-complément. On peut aussi le rapprocher de la méthode d’analyse de démarche de travail QQOQCCP(6) (Qui Quoi Où Quand Comment Combien Pourquoi), ici en ne prenant que qui-comment-quoi.
Nous pouvons donc traduire directement ces permissions en langage humain courant, et réciproquement. On peut même ajouter facilement les contraintes spatiales et temporels.
On remarque que, par rapport au QQOQCCP, notre langage humain n’utilise pas le même ordre syntaxique bien qu’il ai une logique cohérente :
– qui-quoi donne le sujet-objet (les acteur de la scène) ;
– où-quand donne les contraintes spatiales et temporels ;
– comment-combien correspond à l’action ou verbe modulé par une quantité ;
– pourquoi, enfin, justifie l’action.
Pour ceux qui ont connu les calculatrices scientifiques HP48(8) d’il y a 15 ans en arrière (pfu…), le principe du calcul en RPN(7) (Reverse Polish Notation) fonctionne plutôt suivant l’agencement syntaxique sujet-complément-verbe. Cela ne parait pas très différent vu comme ça, mais cette façon de calculer originale est très performante et permet de faire des calculs complexes sans utiliser de parenthèses. Le Polonais, le Pachtoune et le Dari ont cette même structure. Malheureusement elle est en rupture complète avec notre éducation occidentale.
L’agencement syntaxique pourrait être encore différent, par exemple verbe-sujet-complément, cela fonctionnerait aussi. L’agencement sujet-complément-verbe me parait meilleur mais n’est pas ou peu utilisé par nos cultures occidentales. Existe-t-il d’autres cultures qui utilisent une autre forme syntaxique?
Liens
Si on revient au début sur la définition des permissions et aux réflexions de base de Nebule, on retrouve des similitudes avec les éléments de cette analyse syntaxique.
En effet, en définissant des permissions, on définit (permet) implicitement un lien privilégié entre deux objets (l’un ou l’autre ou les deux pouvant être des entités). Et c’est le même genre de lien qu’il faut mettre en place entre les objets de Nebule, mais avec un vocabulaire beaucoup plus grand!
Prenons un exemple, « autoriser Alice à se connecter en HTTP sur nebule.org« . Le sujet c’est Alice (prénom classique des exemples de crypto). L’action c’est se connecter en HTTP. Et l’objet c’est nebule.org. Nous respectons la forme syntaxique du langage humain et c’est facilement transposable en une règle technique de (non-)filtrage. Le lien (pas de connexion réseau) est fait en attachant Alice et le site web par une action.
Dans le même ordre d’idée, « Alice transmet le document à Bob » (autre prénom classique des exemples de crypto), Alice fait le lien entre le document et Bob. Il est sous-entendu avec l’envoi, le partage,qu’elle lui transmet aussi implicitement la possibilité de le lire (droit de lecture) même si ce n’est pas une obligation.
Le verbe transmettre pourrait être remplacé par le verbe donner. Si en informatique, on considère que c’est Alice qui fait le geste d’envoyer le document, dans la vraie vie cela ne dit pas si c’est Alice qui se déplace pour remettre le document ou si c’est Bob qui se déplace pour qu’elle lui donne. Si le lien est à sens unique, le transfert aussi, l’initialisation du transfert peut être indifférament dans un sens ou dans l’autre.
En cours…
Annexes
Références :
(1) MISC57 ed-diamond.com
(2) MAC fr.wikipedia.org
(3) DAC fr.wikipedia.org
(4) RBAC fr.wikipedia.org
(5) OrBAC fr.wikipedia.org et http://orbac.org/
(6) QQOQCCP ou 5W2H fr.wikipedia.org
(7) RPN fr.wikipedia.org
(8) HP48 en.wikipedia.org
.