• Aucun résultat trouvé

Modélisation de la problématique des noms

3.2 Modélisation d’une politique de contrôle d’accès direct

3.2.1 Grammaire de la politique

3.2.1.2 Modélisation de la problématique des noms

Nous allons maintenant montrer comment fonctionne le mécanisme de nom symbolique absolu indépendant de la localisation. Notre modélisation commence par définir deux éléments importants du système : les notions d’Emplacement physiqueet deRessource.

Définition 3.2.4 Emplacement physiqueSoitephyun élément de l’ensembleEphy regroupant les emplacements physiques. Concrètement,ephycorrespond à un bloc de données sur le disque dur.

Définition 3.2.5 RessourceSoitrune ressource du système, par exemple un fichier, appartenant à l’ensembleR, l’ensemble de toutes les ressources du système. Cette ressourcerse caractérise par un ensemble d’emplacement physique. Nous noteronsRSCla fonction qui associe à une ressource run ensemble d’emplacement physiques.

∀r ∈R,RSC r7→etel quee={ephy1, .., epyhn}avec{ephy1, .., epyhn} ∈Ephy

Toute ressource du système possède, au moins, un élément dans l’espace d’arrivéeEphy. A contra-rio, tout élément de l’espaceEphyne possède pas nécessairement un antécédent dans l’espace des ressources. Par exemple, lorsqu’un fichier est supprimé par le système par les fonctions classiques de suppression telles querm, les données présentes sur le disque dur associées à ce fichier ne sont pas supprimées. Il faut, pour cela, utiliser des fonctions spécifiques.

De plus, tout élément deEphy qui possède un antécédent, ne possède qu’un seul et unique antécédent par la fonction RSC. Donc par définition, la fonction RSC est injective. Ceci est illustré par le schéma 3.25.

Ressource Emplacement physique

r

ephy1 ephyn

R E_phy

e

FIGURE3.25 – Correspondance entre une ressource et les emplacements physiques En outre, chaque ressource du système possède un emplacement logique. Cet emplacement logique se caractérise sur le système par un chemin dans le système de fichiers. Une ressource peut posséder plusieurs emplacements logiques différents, grâce à des opérations de montage ou par la création de liens.

Définition 3.2.6 Emplacement logique et cheminsNous noteronsElog la fonction qui associe à une ressourcerun emplacement logique dans le système. Cette fonction renvoie un chemin complet de l’arborescence du système de fichiers. L’ensemble de tous les chemins complets possibles est noté Chemin. C’est cet emplacement logique qui est utilisé par l’utilisateur pour accéder à la ressource.

∀r ∈R,Elog : r7→cheminavecchemin∈Chemin

Pour qu’une ressource du système puisse être utilisée par un utilisateur, il est nécessaire qu’elle possède au moins un emplacement logique, c’est-à-dire un nom dans l’espace des noms logiques.

Une ressource peut posséder plusieurs emplacements logiques grâce à des opérations de montage ou par la création de lien. Cette notion est illustrée par la figure 3.26. On obtient pour un fichier, une ressource correspond à l’i-nodeet un ensemble d’emplacement physique.

Comme une ressource peut être désignée par plusieurs emplacements logiques, il est nécessaire de définir une nouvelle fonction capable d’uniformiser la description d’une ressource pour un utilisateur.

Ressource Emplacement logique r

chemin_1

R E_log

chemin_2

FIGURE3.26 – Correspondance entre une ressource et les emplacements logiques

Définition 3.2.7 Nom symbolique absolu indépendant de la localisation Nous définissons la fonctionNabs. Cette fonction associe à un emplacement logique d’une ressource un nom sym-bolique absolu indépendant de la localisationnabsr ∈ Nabs, où Nabs est l’ensemble des noms symboliques absolus indépendants de la localisation.

Soitr∈Ret soitchemin∈CheminavecElog :r 7→chemin, alorsNabs:chemin7→nabsr Par définition, tout emplacement logique possède un seul et unique nom symbolique absolu indé-pendant de la localisation. A contrario, un nom symbolique absolu indéindé-pendant de la localisation possède au moins un emplacement logique. La fonctionNabs est donc surjective, illustrée par la figure 3.27.

Emplacement logique chemin1

n^abs Chemin

Nom symbolique absolu indépendant de la localisation

chemin2

N^abs

FIGURE3.27 – Représentation de la fonctionNabs

La propriété essentielle de cette fonction est la suivante : si une même ressource possède diffé-rents emplacements logiques, alors, par la fonctionNabs, elle ne possède qu’un seul et unique nom symbolique absolu indépendant de la localisation. Cette propriété s’exprime de la façon suivante :

∀r ∈R, si∃Elog(r) =chemin1etElog(r) =chemin2 avecchemin1 6=chemin2 ⇒Nabs(chemin1) =Nabs(chemin2) Cette propriété sera illustrée par la suite.

Solution pour les systèmes Windows

Sur les systèmes Windows, la problématique de nommage des ressources est essentiellement due au fait qu’il n’y a pas de racine commune entre les différents systèmes. Pour résoudre ce problème et pour appliquer notre fonction permettant d’obtenir un nom symbolique absolu indé-pendant de la localisation, nous allons utiliser un mécanisme interne au système commun à chaque système Windows.

Dans un premier temps, le nom de la ressource est séparé en deux : la lettre du lecteur qui est potentiellement changeante, et son chemin dans l’arborescence qui est constant. Nous appliquons la fonctionNabs à la partie changeante. Pour ce faire, nous utilisons la notion d’espace de noms (namespace) d’une ressource. L’espace de noms d’une ressource est une fonctionnalité du système qui associe aux ressources une représentation abstraite indépendante de leur localisation.

La fonction Nabs est appliquée à C:\Program Files exemple présenté dans le lis-ting 3.2. C’est la partie que l’on considère comme changeante. On obtient ainsi Nabs(C :

\P rogramF iles) =ns_programf iles.

En reprenant notre exemple présenté dans le listing 3.2, nous obtenons pour les deux noms usuels différents 3.3 un même nom symbolique absolu indépendant de la localisation.

1 C:\Program Files\Mozilla\Firefox.exe : ns_programfiles:\Mozilla\Firefox.exe 2 D:\Program Files\Mozilla\Firefox.exe : ns_programfiles:\Mozilla\Firefox.exe

Listing 3.3 – Application des noms symboliques absolus indépendants de la localisation pour identifier une même ressource sur un système Windows

L’utilisation de cet espace de noms offre une meilleure portabilité de la politique de contrôle d’accès. Cet espace de noms étant géré directement au sein du système Windows, il n’est plus nécessaire de réécrire les politiques pour les appliquer sur un autre système Windows.

Solution pour les systèmes Linux

Les systèmes Linux utilisent des identifiants internes pour différencier les ressources sur un système. Même si ces identifiants sont accessibles depuis l’espace utilisateur, ils ne sont pas fa-cilement manipulables. Et même si les systèmes Linux disposent d’une racine commune, nous pouvons aussi appliquer notre formalisation à ce système.

Par exemple en adaptant le listing 3.4 et en appliquant la fonction Nabs, nous obtenons le résultat suivant 3.5.

1 /lhome/gros/policy.24 : ns_home:gros/policy.24 2 /mnt/home/gros/policy.24 : ns_home:gros/policy.24

Listing 3.5 – Application des noms symboliques absolus indépendants de la localisation pour identifier une même ressource sur un système Linux

1 gros@ossus:~% stat /lhome/gros/policy.24

2 File: ’/lhome/gros/policy.24’

3 Size: 1592659 Blocks: 3112 IO Block: 32768 regular file 4 Device: 19h/25d Inode: 11274188 Links: 1

5

6 sudo mount -o bind /home/ /mnt/

7

8 gros@ossus:~% stat /mnt/home/damien/policy.24 9 File: ’/mnt/home/gros/policy.24’

10 Size: 1592659 Blocks: 3112 IO Block: 32768 regular file 11 Device: 19h/25d Inode: 11274188 Links: 1

Listing 3.4 – Différents noms Linux pour une même ressource identifiée par son numéroi-node

3.2.2 Application de la grammaire sur deux modèles de protection pour les