• Aucun résultat trouvé

3.3 Changement de modèle

3.3.2 Méthode

Pour construire la politique cible, nous générons un ensemble de contraintes ex-primant le fait que sa sémantique doit être celle de la politique d’origine. Par ailleurs, sachant que les configurations décrivent des interprétations logiques fortement régu-lières et que l’algorithme proposé dans [Peltier, 2009] engendre des interprétations régulières, des contraintes supplémentaires seront ajoutées de telle sorte que toute interprétation régulière validant les contraintes soit fortement régulière. Enfin, une dernière étape consistera à calculer un programme H1 à partir d’une interprétation fortement régulière. L’algorithme général est illustré par la figure 3.1.

Génération des contraintes. Nous allons décrire les contraintes dont les modèles logiques correspondent aux interprétations des symboles du modèle cible engendrant exactement la même sémantique que la politique d’origine. Puisque cette dernière est fortement régulière, il faut et il suffit de savoir axiomatiser l’ensemble des éléments appartenant à un ensemble régulier. Plus précisément, étant donné un automate A = h Σ, Q, F, ∆ i, on note Ax(A)[x] la formule telle que pour tout terme clos t, Ax(A)[t] est un théorème du premier ordre (c.-à-d. valide dans toute interprétation) ssi t est reconnu par A et est contradictoire (c.-à-d. valide dans aucune interprétation) sinon. Étant entendu que tous les automates considérés sont complets, déterministes et minimaux, Ax(A)[x] = Ax(A)∧AxF(A)[x], où Ax(A) est donnée par la formule suivante : ^ f (q1,...,qn)→∆q ∀y1, . . . , yn: n ^ i=1 qi(yi)⇒ q(f(y1, . . . , yn)) ! ∧ ^ q6=q0∈Q2 ∀x : q(x) ⇒ ¬q0(x) 62

3.3. CHANGEMENT DE MODÈLE

et AxF(A)[x] = _

qF∈F

qF(x).

Intuitivement, à chaque état q de l’automate on associe un prédicat q dont l’in-terprétation doit être l’ensemble des termes clos se réduisant (pour la relation de transition de l’automate) à q. Autrement dit, q(t) est vrai ssi t−→ q.

Exemple 3.24.Si l’on considère l’automate reconnaissant l’ensemble des entiers pairs Aeven = ({qodd, qeven}, {zero :→ Nat, succ : Nat → Nat}, {qeven}, ∆) avec : ∆ =    zero → qeven

succ(qeven) → qodd

succ(qodd) → qeven

alors Ax(Aeven)est donnée par : qeven(zero)

∧ ∀x : qeven(x)⇒ qodd(succ(x)) ∧ ∀x : qodd(x)⇒ qeven(succ(x)) ∧ ∀x : qeven(x)⇒ ¬qodd(x) ∧ ∀x : qodd(x)⇒ ¬qeven(x)

et AxF(Aeven)[x] = qeven(x). La première (resp. deuxième, resp. troisième) sous-formule de Ax(Aeven) est produite à partir de la première (resp. deuxième, resp. troisième) règle de l’automate Aeven.

Considérons désormais une politique de sécurité cohérente h modζ1

1 , ρκ1

1 i sur ˜Σ ainsi qu’un modèle de sécurité modζ2

2 , sur cette même signature, munie d’une ex-tension κ2 de Σmod2. Rappelons que pour tout modèle modζ, le domaine de Γζ

mod

forme une partition {L1, . . . ,Lm} de l’ensemble des actions At(˜Σ) (c.f. démonstra-tion de la proposidémonstra-tion 3.19). Autrement dit, pour toute acdémonstra-tion act = act(t1, . . . , tn), il existe exactement un i tel que act ∈ Li. La contrainte permettant d’évaluer l’au-torisation de l’action act est alors donnée par ϕ[x1, . . . , xn] = Γζmod(Li). Plus préci-sément, l’action act est permise relativement à la configuration ρ si et seulement si ρ |= ϕ[t1, . . . , tn]. A fortiori, l’ensemble des langages L1 ∩ L2 tels que (L1 × L2) ∈ Dom(Γζ1

mod1)×Dom(Γζ2

mod2)et L1∩L2 6= ∅ forment également une partition de At(˜Σ). À noter que tous les éléments de L1∩ L2 possèdent nécessairement le même symbole d’action de tête. Dans ce cadre, la formule Ax(L1 ∩ L2)[act(x1, . . . , xn)] caracté-rise l’ensemble des valeurs de x1, . . . , xn pour lesquelles act(x1, . . . , xn)appartient à L1∩ L2. AxSolρ1

 Γζ1

mod1(L1)

[#(x1, . . . , xn)] caractérise quant à elle l’ensemble des valeurs de x1, . . . , xn pour lesquelles #(x1, . . . , xn) est une solution dans ρ1 des contraintes associées à L1 donc telles que act(x1, . . . , xn) est une action permise par la politique h modζ1

1 , ρκ1

1 i. Il est nécessaire de bien comprendre que quels que soient les termes clos t1, . . . , tn, la validité de la formule AxSolρ1

 Γζ1

mod1(L1)

[#(t1, . . . , tn)] ne dépend pas de l’interprétation dans laquelle elle est évaluée. Autrement dit, ∅ |= AxSolρ1

 Γζ1

mod1(L1)

[#(t1, . . . , tn)] si l’action act(t1, . . . , tn) est autori-sée par la politique h modζ1

1 , ρκ1 1 i et ∅ |= ¬AxSolρ1  Γζ1 mod1(L1) [#(t1, . . . , tn)]

sinon. Enfin, Γζ2

mod2(L2)[x1, . . . , xn] est la contrainte à satisfaire pour que l’action act(x1, . . . , xn) soit permise selon le modèle mod2ζ2 relativement à l’interprétation des prédicats de ˜Σmod2.

En notant act le symbole de tête des actions de L1 et L2, on note Cons(L1,L2) la formule suivante : Ax Solρ1  Γζ1 mod1(L1) ∧ Ax(L1∩ L2) ∧ ( ∀x1, . . . , xn: AxF(L1∩ L2)[act(x1, . . . , xn)] ⇒AxF  Solρ1  Γζ1 mod1(L1) [#(x1, . . . , xn)]⇔ Γζ2 mod2(L2)[x1, . . . , xn]) Cons(L1,L2)est donc une théorie caractérisant l’équivalence entre la satisfiabilité de la contrainte associée à chaque action par mod2 (relativement à l’interprétation des prédicats de ˜Σmod2) avec la satisfiabilité de la contrainte associée à cette même action par mod1 relativement à ρ1.

Enfin, on note Consh modζ2

2 , Xκ2i ≈ h modζ1

1 , ρκ1

1 ila formule suivante :

Tmod2^

(L1,L2)∈Dom(Γζ1mod1)×Dom(Γζ2mod2)

Cons(L1,L2)

Cette formule est une théorie dont les modèles logiques interprètent les sym-boles de prédicats de ˜Σmod2 de telle sorte que les autorisations calculées à partir de mod2et de ces modèles logiques correspondent à l’ensemble des autorisations établies par la politique d’origine. À chaque modèle logique fortement régulier (c.-à-d. inter-prétant les prédicats par des ensembles et relations fortement réguliers) correspond exactement une configuration. Cependant, la recherche d’interprétations régulières de cette théorie peut engendrer des modèles logiques non fortement réguliers, donc ne correspondant pas à une configuration. C’est pourquoi nous allons transformer cette théorie de telle sorte que toutes les interprétations régulières de la théorie soit fortement régulières.

Construction d’un modèle logique. Dans [Peltier, 2009], Peltier propose une méthode pour utiliser les outils de construction automatiques de modèles (logiques) finis dans l’objectif de construire des modèles infinis d’une formule donnée. Les mo-dèles ainsi construits sont des interprétations de Herbrand dans lesquelles les sym-boles de prédicats sont interprétés par des relations régulières (spécifiées par des automates d’arbres). Son approche est fondée sur une transformation de la formule dont on recherche un modèle logique : une formule φ est transformée en une formule ∆(φ) telle que φ possède un modèle = représentable par des automates de tuples de termes si et seulement si ∆(φ) possède un modèle fini I. Il établit ensuite une application ∗ permettant d’obtenir = à partir de I. Il a montré la correction et la complétude de son algorithme dans le sens suivant : un modèle régulier de Herbrand = de ϕ existe si et seulement si il existe un modèle fini I de ∆(φ) (et alors = = I). Le principe général de son algorithme est illustré par le schéma suivant :

3.3. CHANGEMENT DE MODÈLE

φ

ψ

Outils de construction automatique de mod`eles finis

MACE, SEM, FINDER . . .

I mod`ele fini de ψ mod`ele r´egulier de φ

Dans le contexte qui est le nôtre, il est nécessaire de construire à partir d’une formule ϕ sur ˜Σ une interprétation syntaxique de domaine T (ΣCons ) associant à chaque prédicat une relation fortement régulière. En effet, nous avons vu que l’en-semble des configurations d’un modèle donné mod sur une signature de sécurité ˜Σ est isomorphe à l’ensemble des interprétations syntaxiques fortement régulières de

˜

Σmod de domaine ΣConsmod= ΣCons (d’après le théorème 3.11 et sa réciproque qui est triviale). Il nous faut donc étendre la méthode de [Peltier, 2009]. Nous nous pro-posons, suivant l’idée de Peltier, de transformer notre formule d’origine ϕ en une formule Θ(ϕ) telle que A est une interprétation fortement régulière de ˜Σ de domaine T (ΣCons ) modèle de ϕ si et seulement si il existe un modèle de Herbrand régulier = de Θ(ϕ) (et alors A = =? pour une certaine application ?).

Le principe de la méthode est alors illustré par le schéma suivant :

ϕ Θ φ ψ

Outils de construction automatique de mod`eles finis

MACE, SEM, FINDER . . .

I mod`ele fini de ψ mod`ele r´egulier de φ A mod`ele fortement r´egulier de ϕ

Tout d’abord, remarquons que les relations unaires régulières sont fortement régu-lières. Puisque pour toute relation n-aire fortement régulière R, il existe un ensemble (relation unaire) régulier R# contenant les termes {#(t1, . . . , tn) | (t1, . . . , tn) ∈ R} et réciproquement, alors il faut et il suffit de transformer tous les prédicats n-aires en prédicats unaire pour que l’ensemble des interprétations régulières de ce prédi-cat soit exactement l’ensemble des interprétations fortement régulières du prédiprédi-cat.

Par ailleurs, comme la méthode de [Peltier, 2009] ne considère que des interpréta-tions de Herbrand, il est nécessaire de considérer les symboles définis comme des symboles de prédicats particuliers. Ce processus est standard et est souvent appelé « flattening ». Chaque symbole défini f est donc remplacé par un nouveau symbole de prédicat f0 tel que f0(#(t1, . . . , tn, u)) est vrai si et seulement si f(t1, . . . , tn) = u l’est. Pour que f0 soit toujours interprété par une fonction, il est nécessaire d’ajouter un axiome établissant que pour tout n-uplet de valeurs x1, . . . , xn, il existe exac-tement une valeur y telle que f0(#(x1, . . . , xn, y)). Notez bien que l’utilisation du symbole # est un abus de notation et qu’il faut en réalité considérer un symbole #n

pour tout n (#n étant le symbole de tête des n-uplets). Par ailleurs, les signatures considérées dans [Peltier, 2009] sont mono-sortées. En conséquence, il est nécessaire d’ajouter une axiomatisation des profils des prédicats et symboles de fonction définis. En résumé, étant donnée une formule ϕ sur ˜Σ, Θ(ϕ) est obtenue en appliquant les transformations suivantes :

chaque atome p(t1, . . . , tn) est remplacé par l’atome p(#(t1, . . . , tn)),

tout terme t comportant au moins un symbole défini et apparaissant dans un atome (ou une égalité) est remplacé par une variable x existentiellement quantifiée et l’égalité t = x est ajoutée,

toute égalité de la forme f(t1, . . . , tn) = xest remplacée par f0(#(t1, . . . , tn, x)),

pour toute sorte s, on ajoute (sous la forme d’une conjonction) Ax(T (ΣCons )s) (où T (ΣCons )s vu comme l’automate reconnaissant les termes de donnée de sorte s),

pour tout prédicat p : s1× . . . × sn, on ajoute (sous la forme d’une conjonction) la formule : ∀x1, . . . , xn, p(#(x1, . . . , xn))⇒ n ^ i=1 AxF(T (ΣCons )si)[xi] (on fait de même pour les symboles définis vus comme des prédicats),

pour tout symbole defini f : s1× . . . × sn→ s, on ajoute (sous la forme d’une conjonction) les formules :

∀x1, . . . , xn, y1, y2, f0(#(x1, . . . , xn, y1))∧ f0(#(x1, . . . , xn, y2))⇒ y1= y2

indiquant que f0 doit être interprété par une relation fonctionnelle et

∀x1, . . . , xn,

n

^

i=1

AxF(T (ΣCons )si)[xi]

⇒ ∃y, AxF(T (ΣCons )s)[y]∧ f0(#(x1, . . . , xn, y))

indiquant que f0 doit être interprétée par une application (fonction totale). La formule obtenue est donc exprimée sur une signature dont les prédicats sont les prédicats de ˜Σ et les symboles fonctionnels de ΣDef ainsi que quelques prédi-cats auxiliaires (correspondant notamment aux états de tous les automates d’arbres impliqués) et dont les termes sont construits sur ΣCons . Une interprétation de Her-brand de cette signature induit donc une unique interprétation syntaxique de ˜Σ basée sur les constructeurs. Pour obtenir l’inteprétation fortement régulière d’une 66