• Aucun résultat trouvé

Le choix d’un langage formel pour la spécification d’une politique de sécurité s’effectue tout d’abord en fonction du domaine d’application de ce langage. Il semble indispensable de choisir un langage permettant, d’une part, de représenter naturellement des notions comme celles de permission, d’obligation, d’interdiction et de recommandation que l’on retrouve dans une politique de sécurité de manière générale, et d’autre part, de capturer les particularités et les concepts du système étudié, c’est-à-dire des SICSS.

Avec nos partenaires des sous-projets 3 et 4 du projet MP6, nous avons proposé d’associer à Or-BAC un formalisme logique fondé sur la logique de premier ordre [Abou El Kalam et al.

2003]. Dans ce mémoire, nous proposons un autre formalisme fondé sur la logique déontique [Abou El Kalam & Deswarte 2003]. Ce langage a été élaboré avec la contribution de Philippe Balbiani de l’IRIT.

Mais tout d’abord, présentons une brève description de la logique du premier ordre et de la logique modale, et plus particulièrement une de ses branches : la logique déontique.

5.2.1. Logique de premier ordre

La logique des propositions est l’étude des raisonnements dont la forme est constituée par des variables propositionnelles (p, q, r, …) et des connecteurs interpropositionnels tels que et : (Ÿ), ou (⁄), non (ÿ), si … alors …(fi). Malheureusement, ce type de logique ne permet pas d’effectuer des raisonnements comme le fameux syllogisme de Socrate : tous les hommes sont mortels, or Socrate est un homme, donc Socrate est mortel En effet, la logique des propositions, ne peut pas exprimer une assertion du type : tous les hommes sont mortels. C’est pourquoi la logique de premier ordre a été introduite [Kleen 1967]. Elle reprend l’ensemble des éléments de la logique propositionnelle et y ajoute des constantes (a, b, c, …), des variables (x, y, z, …), des prédicats (relations), des fonctions {f(x, y, ..), g(y, z,), ...)}, des quantificateurs universel "et existentiel $, etc.

Les constantes sont des symboles directement mis en correspondance avec les objets que l’on décrit ou sur lesquels on veut raisonner. Les variables peuvent être instanciées dans un ensemble de constantes. Les fonctions prennent comme arguments des variables ou des constantes pour retourner des valeurs prises parmi l’ensemble de constantes possibles. Les

“mots” constitués des variables, des constantes et des fonctions appliquées à ces variables ou constantes forment les termes du langage : t1 :=x ; t2:=f(x, y, b) ; t3:=a, etc. Les prédicats (P(t1, .., tn), Q(t1, .., tn), ...) sont des relations qui ont pour arguments les termes du langage. Le langage prédicatif comporte toutes les formules bien formées à partir des formules atomiques (y := P(t1, .., tn), j := (t1 = tn), ...), des connecteurs dyadiques de la logique propositionnelle {ÿ, Ÿ, ⁄, …, ≡} ainsi que des quantificateurs (" et $). Si y et j sont des formules bien formées du langage L, alors y⁄j, yŸj , ÿy, ÿj, y…j , "xy, $xj, etc., sont des formules bien formées.

5.2.2. Logique modale

La logique modale est une extension de la logique classique dans laquelle, en plus des connecteurs booléens, on trouve les connecteurs intensionnels de la nécessité ( ) et de la possibilité (‡). Plus précisément, elle constitue un cadre formel pour l’étude de ces notions, en fournissant, outre une représentation explicite de celles-ci par des opérateurs modaux (pour la nécessité et pour la possibilité), la possibilité d’étudier leurs aspects intentionnels et déductifs, ainsi que leurs aspects extensionnels par la sémantique des mondes possibles (dite sémantique de Kripke). La logique modale, prise au sens large, est aujourd’hui l’un des meilleurs outils d’analyse scientifique pour l’étude de divers concepts considérés comme philosophiques. Ce sont principalement ceux de la nécessité, de la possibilité, de l’obligation, de la permission, du futur, du passé, du temps en général, du savoir, de la croyance, etc. En effet, selon le type de la modalité, diverses logiques modales peuvent être distinguées [Chella 1980 ; Catach 1989]. On trouve les modalités :

- Ontiques : « il est (nécessaire, possible, contingent, impossible) que p ».

- Temporelles : « il (sera, a été) (toujours, à un moment donné) vrai que p ».

- Epistémiques : « x (sait, croit, doute) que p ».

- Dynamiques : « il (sera, a été) (nécessaire, possible, impossible) en faisant … que p ».

- Déontiques : « il est (obligatoire, permis, interdit) que p ». Ces modalités, auxquelles il est opportun d’ajouter la recommandation, nous intéressent plus particulièrement.

Une intérprétation intuitive de toute logique modale [Kripke 1959 ; Kripke 1963] peut être fondée sur un modèle sémantique comprenant un ensemble de mondes différents, dans lesquels on considère la valeur de vérité des différentes propositions, notamment des propositions

contenant un opérateur modal. Par exemple, « Nécessairement p » est vrai dans un monde w si et seulement si « p est vrai dans tous les mondes w’ directement accessibles depuis w ». L’idée est que tous les mondes (ou états) ne sont pas forcément directement (ou indirectement) accessibles depuis un monde w. Un monde w permet d’accéder directement à un monde w’, seulement si toutes les propositions qui sont vraies dans w’ sont vraies dans w. De la même manière, si une proposition est nécessairement vraie dans un monde w, elle doit être vraie dans tous les mondes w’ auxquels w permet d’accéder.

5.2.3. Logique déontique

La logique modale est appelée logique déontique lorsque les formules “ A” et “‡A” sont lues « il est obligatoire que A » et « il est permis que A » respectivement. Le concept d’interdiction n’est pas oublié puisque la formule “ ¬A” exprime justement l’interdiction de

“A”. Plus précisément, si F est un ensemble de propositions atomiques a, b, c, … , si ÿ, Ÿ, ⁄, fi et ¤ désignent les connecteurs booléens habituels, et si O, P et F désignent les trois opérateurs modaux de la logique déontique (obligation, permission, interdiction), le langage de la logique déontique noté LO(F) est l’ensemble des formules (ou expressions) construit par les règles suivantes :

- si pŒF, p est une formule,

- si p et q sont des formules, ÿp, pŸq, pq, pfiq sont des formules, - si p est une formule, Op, Pp et Fp sont des formules.

En notation EBNF (Extended Backus Normal Form), LO peut être donné sous la forme : f ::= a |ÿf | fŸf | f⁄f | ffif | Of | Pf | Ff |

où a Œ LO(F) est une proposition atomique ; f est une formule du langage déontique LO(F).

Une formule modale est une formule contenant au moins un des opérateurs modaux O, P et F. Les formules Op, Pp et Fp désignent respectivement, “il est obligatoire que p”, “il est permis que p”, “il est interdit que p”.

La sémantique associée à une logique modale normale est appelée sémantique de Kripke, ou encore sémantique des mondes possibles [Kripke 1963]. Un modèle de Kripke M est un triplet (W,¬,V) où

- W est un ensemble de mondes possibles w,

- ¬ est une relation binaire sur W appelée relation d’accessibilité,et

- V : W¥F Æ {vrai, faux} est une fonction qui donne pour chaque monde wŒW la valeur de vérité V(w,p) de la proposition atomique p.

=wM p note le fait que la proposition p soit vraie dans un monde w dans le modèle M. Cette valeur de vérité est définie de la manière suivante, qui étend le calcul propositionnel habituel : - si pŒF, monde w si est seulement si p est vraie dans tous les mondes w’ directement accessibles depuis w. Si on considère que l’opérateur P est le dual de l’opérateur O, c’est-à-dire

Pp= ÿOÿp, on peut facilement déduire la valeur de vérité de Pp.

-

=w

M Pp si est seulement si

$w'ŒW/w¬w' , =w' M p

La définition d’un système logique nécessite la considération d’axiomatiques et de règles d’inférence. À titre d’exemple, nous citons :

- La règle d’inférence :

p

Op (dite Règle de Nécessité ou RN), qui signifie que si le système contient p (l’hypothèse), il contient Op (la conclusion).

- L’axiome K : O(pfiq) fi (OpfiOq).

- L’axiome D : OpfiPq. Si une logique déontique inclut cet axiome, alors la relation d’accessibilité ¬ est sérielle, c’est-à-dire :

$wŒW/$w'ŒW/w¬w'.