{"id":59,"date":"2011-09-09T19:51:38","date_gmt":"2011-09-09T17:51:38","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=59"},"modified":"2016-03-29T19:05:26","modified_gmt":"2016-03-29T17:05:26","slug":"etre-relie-ou-ne-pas-etre","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=59","title":{"rendered":"Etre reli\u00e9 ou ne pas \u00eatre"},"content":{"rendered":"<p>Dans la derni\u00e8re revue MISC<sup>(1)<\/sup>, en marge du dernier article, on trouve un petit descriptif rapide des mod\u00e8les <em>DAC<\/em>, <em>RBAC<\/em> et <em>OrBAC<\/em>.<\/p>\n<p>L&rsquo;\u00e9volution de ces mod\u00e8les tend vers la cr\u00e9ation d&rsquo;un langage \u00e0 part enti\u00e8re que l&rsquo;on peut traduire vers nos langages humains, et vice-versa.<\/p>\n<p>Et ce langage n&rsquo;est autre qu&rsquo;une forme de lien entre deux objets.<\/p>\n<p><!--more--><\/p>\n<h3>Mod\u00e8les<\/h3>\n<p>Le mod\u00e8le de contr\u00f4le d&rsquo;acc\u00e8s <em>MAC<\/em><sup>(2)<\/sup> (Mandatory Access Control)<em><strong> <\/strong><\/em>est le minimum indispensable dans une entit\u00e9 bien d\u00e9limit\u00e9e comme une soci\u00e9t\u00e9 commerciale ou une association (ou autre) parce que cette entit\u00e9 d\u00e9l\u00e8gue un pouvoir d&rsquo;action \u00e0 ses membres et doit en contr\u00f4ler la port\u00e9e. Mais c&rsquo;est une aberration \u00e0 l&rsquo;\u00e9chelle d&rsquo;un pays ou du monde.<\/p>\n<p>Le mod\u00e8le <em>DAC<\/em><sup>(3)<\/sup> (Discretionary Access Control) est plus adapt\u00e9 \u00e0 grande \u00e9chelle parce que chaque entit\u00e9 d\u00e9finie ses propres r\u00e8gles du jeu dans le traitement d&rsquo;informations vis-\u00e0-vis des autres entit\u00e9s. La notion de membres internes n&rsquo;existe pas.<\/p>\n<p>Ces deux mod\u00e8les, bien que diff\u00e9rents dans la gestion, impl\u00e9mentent la mise en place de permissions discr\u00e8tes (unitaires) sur l&rsquo;espace <strong>sujet-action-objet<\/strong>.<\/p>\n<p>En fait, dans l&rsquo;entit\u00e9, si l&rsquo;on assimile les membres \u00e0 des (sous-)entit\u00e9s, on se retrouve avec les deux mod\u00e8les <em>MAC<\/em> et <em>DAC<\/em> imbriqu\u00e9s et souvent en conflit. Un utilisateur voudrait montrer un document \u00e0 un de ses coll\u00e8gues d&rsquo;une autre direction, mais la politique de confidentialit\u00e9 de l&rsquo;entreprise ne permet la consultation que pour les membres de sa propre direction. La rupture de la s\u00e9curit\u00e9, c&rsquo;est quand l&rsquo;utilisateur transmet le document \u00e0 son coll\u00e8gue via la messagerie&#8230;<\/p>\n<p>Le mod\u00e8le <em>RBAC<\/em><sup>(4)<\/sup> (Role-Based Access Control)<strong> <\/strong>est une \u00e9volution du mod\u00e8le <em>MAC<\/em> mais qui simplifie la gestion des r\u00e8gles d&rsquo;acc\u00e8s en pratiquant des regroupements par r\u00f4les, c&rsquo;est \u00e0 dire par cat\u00e9gories d&rsquo;activit\u00e9s dans l&rsquo;entit\u00e9. On introduit ainsi la notion de groupes d&rsquo;entit\u00e9s.<\/p>\n<p>Le mod\u00e8le <em>OrBAC<\/em><sup>(5)<\/sup> (Organization-Based Access Control) pousse le concept de groupes encore plus loin. Il permet de g\u00e9rer les notions de r\u00f4les, activit\u00e9s, vues et \u00e9quipes. Il permet aussi et surtout de travailler sur une vue abstraite de l&rsquo;organisation en repr\u00e9sentant les r\u00e8gles par le triptyque <strong>r\u00f4les-activit\u00e9s-vues<\/strong>. Et une fois la vue abstraite d\u00e9finie, il permet de la transcrire directement en <strong>sujet-action-objet<\/strong> concr\u00e8tement applicable. Cela inclut les permissions, les restrictions et les obligations.<\/p>\n<p>Ces deux derniers mod\u00e8les permettent aussi la d\u00e9finition de contraintes spatiales et temporelles suppl\u00e9mentaires. La contrainte spatiale \u00e0 peu d&rsquo;int\u00e9r\u00eat \u00e0 priori dans le sens o\u00f9 elle est en redondance avec la notion d&rsquo;adressage r\u00e9seau, elle-m\u00eame \u00e9tant d\u00e9j\u00e0 la base de la d\u00e9finition des <em>serveurs<\/em> et <em>stations<\/em>. Sauf si on dissocie nativement l&rsquo;utilisateur de la station (dans le sens o\u00f9 il peut \u00eatre connect\u00e9 \u00e0 plusieurs endroits diff\u00e9rents) ou que l&rsquo;on accepte que plusieurs utilisateurs travaillent depuis la m\u00eame station (multi-session actives), ce qui techniquement parlant est d\u00e9j\u00e0 une r\u00e9alit\u00e9 bien ancr\u00e9e.<\/p>\n<h3>Langage<\/h3>\n<p>Quand je regarde ces diff\u00e9rents mod\u00e8les qui parlent de <strong>sujet-action-objet<\/strong>, j&rsquo;ai l&rsquo;impression de retrouver une structure syntaxique de base assez commune au langage humain : <strong>sujet-verbe-compl\u00e9ment<\/strong>. On peut aussi le rapprocher de la m\u00e9thode d&rsquo;analyse de d\u00e9marche de travail <em>QQOQCCP<\/em><sup>(6)<\/sup> (Qui Quoi O\u00f9 Quand Comment Combien Pourquoi), ici en ne prenant que <strong>qui<\/strong><strong>-comment<\/strong><strong>-quoi<\/strong>.<\/p>\n<p>Nous pouvons donc traduire directement ces permissions en langage humain courant, et r\u00e9ciproquement. On peut m\u00eame ajouter facilement les contraintes spatiales et temporels.<\/p>\n<p>On remarque que, par rapport au <em>QQOQCCP<\/em>, notre langage humain n&rsquo;utilise pas le m\u00eame ordre syntaxique bien qu&rsquo;il ai une logique coh\u00e9rente :<br \/>\n&#8211; <strong>qui-quoi<\/strong> donne le <strong>sujet-objet<\/strong> (les acteur de la sc\u00e8ne) ;<br \/>\n&#8211; <strong>o\u00f9-quand<\/strong> donne les contraintes spatiales et temporels ;<br \/>\n&#8211; <strong>comment-combien<\/strong> correspond \u00e0 l&rsquo;<strong>action<\/strong> ou <strong>verbe<\/strong> modul\u00e9 par une quantit\u00e9 ;<br \/>\n&#8211; <strong>pourquoi<\/strong>, enfin, justifie l&rsquo;action.<\/p>\n<p>Pour ceux qui ont connu les calculatrices scientifiques HP48<sup>(8)<\/sup> d&rsquo;il y a 15 ans en arri\u00e8re (pfu&#8230;), le principe du calcul en <em>RPN<\/em><sup>(7)<\/sup> (Reverse Polish Notation) fonctionne plut\u00f4t suivant l&rsquo;agencement syntaxique <strong>sujet<\/strong><strong>-compl\u00e9ment<\/strong><strong>-verbe<\/strong>. Cela ne parait pas tr\u00e8s diff\u00e9rent vu comme \u00e7a, mais cette fa\u00e7on de calculer originale est tr\u00e8s performante et permet de faire des calculs complexes sans utiliser de parenth\u00e8ses. Le Polonais, le Pachtoune et le Dari ont cette m\u00eame structure. Malheureusement elle est en rupture compl\u00e8te avec notre \u00e9ducation occidentale.<\/p>\n<p>L&rsquo;agencement syntaxique pourrait \u00eatre encore diff\u00e9rent, par exemple <strong>verbe-<\/strong><strong>sujet<\/strong><strong>-compl\u00e9ment<\/strong>, cela fonctionnerait aussi. L&rsquo;agencement <strong>sujet<\/strong><strong>-compl\u00e9ment<\/strong><strong>-verbe<\/strong> me parait meilleur mais n&rsquo;est pas ou peu utilis\u00e9 par nos cultures occidentales. Existe-t-il d&rsquo;autres cultures qui utilisent une autre forme syntaxique?<\/p>\n<h3>Liens<\/h3>\n<p>Si on revient au d\u00e9but sur la d\u00e9finition des permissions et aux r\u00e9flexions de base de Nebule, on retrouve des similitudes avec les \u00e9l\u00e9ments de cette analyse syntaxique.<\/p>\n<p>En effet, en d\u00e9finissant des permissions, on d\u00e9finit (permet) implicitement un lien privil\u00e9gi\u00e9 entre deux objets (l&rsquo;un ou l&rsquo;autre ou les deux pouvant \u00eatre des entit\u00e9s). Et c&rsquo;est le m\u00eame genre de lien qu&rsquo;il faut mettre en place entre les objets de Nebule, mais avec un <strong>vocabulaire<\/strong> beaucoup plus grand!<\/p>\n<p>Prenons un exemple, \u00ab\u00a0autoriser <em>Alice<\/em> \u00e0 <em>se connecter en HTTP<\/em> sur <em>nebule.org<\/em>\u00ab\u00a0. Le <strong>sujet<\/strong> c&rsquo;est <em>Alice <\/em>(pr\u00e9nom classique des exemples de crypto). L&rsquo;<strong>action<\/strong> c&rsquo;est <em>se connecter en HTTP<\/em>. Et l&rsquo;<strong>objet<\/strong> c&rsquo;est <em>nebule.org<\/em>. Nous respectons la forme syntaxique du langage humain et c&rsquo;est facilement transposable en une r\u00e8gle technique de (non-)filtrage. Le lien (pas de connexion r\u00e9seau) est fait en attachant Alice et le site web par une action.<\/p>\n<p>Dans le m\u00eame ordre d&rsquo;id\u00e9e, \u00ab\u00a0<em>Alice<\/em> transmet le document \u00e0 <em>Bob<\/em>\u00a0\u00bb (autre\u00c2\u00a0pr\u00e9nom classique des exemples de crypto),\u00c2\u00a0<em>Alice<\/em> fait le lien entre le document et <em>Bob<\/em>. Il est sous-entendu avec l&rsquo;envoi, le <strong>partage<\/strong><span>,<\/span>qu&rsquo;elle lui transmet aussi implicitement la possibilit\u00e9 de le lire (droit de lecture) m\u00eame si ce n&rsquo;est pas une obligation.<\/p>\n<p>Le verbe <em>transmettre<\/em> pourrait \u00eatre remplac\u00e9 par le verbe <em>donner<\/em>. Si en informatique, on consid\u00e8re que c&rsquo;est <em>Alice<\/em> qui fait le geste d&rsquo;envoyer le document, dans la vraie vie cela ne dit pas si c&rsquo;est <em>Alice<\/em> qui se d\u00e9place pour remettre le document ou si c&rsquo;est <em>Bob<\/em> qui se d\u00e9place pour qu&rsquo;elle lui donne. Si le lien est \u00e0 sens unique, le transfert aussi, l&rsquo;initialisation du transfert peut \u00eatre indiff\u00e9rament dans un sens ou dans l&rsquo;autre.<\/p>\n<p><em>En cours&#8230;<\/em><\/p>\n<h3>Annexes<\/h3>\n<p>R\u00e9f\u00e9rences :<br \/>\n(1) MISC57 <a title=\"http:\/\/ed-diamond.com\/produit.php?ref=misc57\" href=\"http:\/\/ed-diamond.com\/produit.php?ref=misc57\" target=\"_blank\">ed-diamond.com<\/a><br \/>\n(2) MAC <a title=\"http:\/\/fr.wikipedia.org\/wiki\/Mandatory_Access_Control\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Mandatory_Access_Control\" target=\"_blank\">fr.wikipedia.org<\/a><br \/>\n(3) DAC <a title=\"http:\/\/fr.wikipedia.org\/wiki\/Contr%C3%B4le_d%27acc%C3%A8s_discr%C3%A9tionnaire\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Contr%C3%B4le_d%27acc%C3%A8s_discr%C3%A9tionnaire\" target=\"_blank\">fr.wikipedia.org<\/a><br \/>\n(4) RBAC <a title=\"http:\/\/fr.wikipedia.org\/wiki\/Contr%C3%B4le_d%27acc%C3%A8s_%C3%A0_base_de_r%C3%B4les\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Contr%C3%B4le_d%27acc%C3%A8s_%C3%A0_base_de_r%C3%B4les\" target=\"_blank\">fr.wikipedia.org<\/a><br \/>\n(5) OrBAC <a title=\"http:\/\/fr.wikipedia.org\/wiki\/Contr%C3%B4le_d%27acc%C3%A8s_bas%C3%A9_sur_l%27organisation\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Contr%C3%B4le_d%27acc%C3%A8s_bas%C3%A9_sur_l%27organisation\" target=\"_blank\">fr.wikipedia.org<\/a> et <a title=\"http:\/\/orbac.org\/\" href=\"http:\/\/orbac.org\/\" target=\"_blank\">http:\/\/orbac.org\/<\/a><br \/>\n(6) QQOQCCP ou 5W2H <a title=\"http:\/\/fr.wikipedia.org\/wiki\/QQOQCCP\" href=\"http:\/\/fr.wikipedia.org\/wiki\/QQOQCCP\" target=\"_blank\">fr.wikipedia.org<\/a><br \/>\n(7) RPN <a title=\"http:\/\/fr.wikipedia.org\/wiki\/Notation_polonaise_inverse\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Notation_polonaise_inverse\" target=\"_blank\">fr.wikipedia.org<\/a><br \/>\n(8) HP48 <a title=\"http:\/\/en.wikipedia.org\/wiki\/HP-48_series\" href=\"http:\/\/en.wikipedia.org\/wiki\/HP-48_series\" target=\"_blank\">en.wikipedia.org<\/a><br \/>\n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans la derni\u00e8re revue MISC(1), en marge du dernier article, on trouve un petit descriptif rapide des mod\u00e8les DAC, RBAC et OrBAC. L&rsquo;\u00e9volution de ces mod\u00e8les tend vers la cr\u00e9ation d&rsquo;un langage \u00e0 part enti\u00e8re que l&rsquo;on peut traduire vers nos langages humains, et vice-versa. Et ce langage n&rsquo;est autre qu&rsquo;une forme de lien entre &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=59\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Etre reli\u00e9 ou ne pas \u00eatre<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[90,24],"tags":[161,224,250,273,283,291],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/59"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59"}],"version-history":[{"count":1,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/59\/revisions"}],"predecessor-version":[{"id":2378,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/59\/revisions\/2378"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=59"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}