110 likes | 252 Views
Concepts pour le contrôle de flux. Luigi.Logrippo@uqo.ca. Pourquoi. Étant donné un ensemble de sujets et objets qui peuvent lire et écrire l’un sur l’autre, où peut aboutir l’information. A. x. x. B. Le sujet B, peut-il arriver à connaître l’information de A?
E N D
Concepts pour le contrôle de flux Luigi.Logrippo@uqo.ca
Pourquoi • Étant donné un ensemble de sujets et objets qui peuvent lire et écrire l’un sur l’autre, où peut aboutir l’information A x x B Le sujet B, peut-il arriver à connaître l’information de A? question importante pour la confidentialité
Réponse: A x x B Le sujet B, peut-il arriver à connaître l’information de A? La réponse OUI est évidente dans ce cas, mais dans d’autres cas le réseau peut être bien plus complexe.
Pour l’intégrité • Pour l’intégrité, les questions sont semblables: • L’objet O peut-il arriver à stocker une information provenant d’un autre objet O’ • L’objet O peut-il arriver à stocker une information provenant d’un sujet S?
Modèle de base • Nous avons des sujets et des objets • Toute communication est effectuée entre sujets par l’entremise d’objets S2 S1 O
Définitions • CanStore (O,x) : l’objet 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 l’objet O x x S O CA S O 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)) S1 S4 Donné: CanKnow(S1,x) x x Conclusion: CanKnow(S4,x) CanStore x CanKnow x . . . 7
Application à RBAC • Pour appliquer ces idées à RBAC, nous n’avons qu’à rédéfinirCanWrite 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
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
CanKnowSet, CanStoreSet • Voici deux fonctions auxiliaires utiles: • CanStoreSet(O) est l’ensemble de tous les x qui peuvent être stockés dans O • {x | CanStore(O,x)= vrai} • CanKnowSet(S) est l’ensemble de tous les x qui peuvent être connus par S • {x | CanKnow(S,x)= vrai}
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 …