Concepts pour le contrôle de flux 1
Pourquoi Étant donné un ensemble de sujets et objets qui peuvent lire et écrire lun sur lautre, où peut aboutir linformation x x A B Le sujet B, peut-il arriver à connaître linformation de A? question importante pour la confidentialit é 2
3 Réponse: x x A B Le sujet B, peut-il arriver à connaître linformation de A? La réponse OUI est évidente dans ce cas, mais dans dautres cas le réseau peut être bien plus complexe.
Pour lintégrité Pour lintégrité, les questions sont semblables: Lobjet O peut-il arriver à stocker une information provenant dun autre objet O Lobjet O peut-il arriver à stocker une information provenant dun sujet S? 4
Modèle de base Nous avons des sujets et des objets Toute communication est effectuée entre sujets par lentremise dobjets O S1 S2 5
Définitions CanStore (O,x) : lobjet O peut stocker la valeur x CanKnow (S,x) : le sujet S peut connaître la valeur x CanWrite (S,O) : sujet S peut écrire sur objet O CanRead (S,O) : sujet S peut lire de lobjet O O x S x O S CA 6 6
Règles de dérivation CanStore(O,x) = S (CanKnow(S,x) CanWrite(S,O)) CanKnow(S,x) = O (CanStore(O,x) CanRead(S,O)) x x S1 S4 Donné: CanKnow(S1,x) Conclusion: CanKnow(S4,x) CanStore xCanKnow x
Application à RBAC Pour appliquer ces idées à RBAC, nous navons quà rédéfinir CanWrite and CanRead: CanWrite(S,O)= R Roles(S) ((O, write) Perm(R)) CanRead(O,S)= R Roles(S) ((O, read) Perm(R)) Donc étant donné: CanStore(O,x), nous pouvons arriver à une des conclusions: CanKnow(S,x) or ¬CanKnow(S,x) Évidemment ceci présuppose qu on connaisse tout le réseau 8
RBAC: Questions plus simples Les mêmes idées peuvent être utilisées pour répondre à des questions plus simples, comme: Pour un rôle donné R, quels sont les objets desquels les sujets qui peuvent avoir R peuvent recevoir des informations, directement ou indirectement? Cette question est importante pour la confidentialité Pour un objet donné O, quels sont les données desquelles le contenu de O peut provenir, directement ou indirectement? Cette question est importante pour l intégrité Voir devoir 9
CanKnowSet, CanStoreSet Voici deux fonctions auxiliaires utiles: CanStoreSet(O) est lensemble de tous les x qui peuvent être stockés dans O {x | CanStore(O,x)= vrai} CanKnowSet(S) est lensemble de tous les x qui peuvent être connus par S {x | CanKnow(S,x)= vrai} 10
Modèles MAC, etc. Les mêmes idées peuvent être appliquées aux modèles MAC, CW et autres, mais ceci exige une certaine adaptation des définitions Laissé comme exercice … 11