TD2 - Les modèles de contrôle d accès Corrigé Chantal Keller <chantal.keller@u-psud.fr> 25 novembre 2015 1 Mise en jambe Question 1 Les politiques de sécurité suivantes représentent-elles des systèmes fermés ou ouverts : l accès à la page d accueil de iut-orsay.fr? l accès à Dokéos? l entrée sur le territoire d un pays demandant un visa? l entrée sur le territoire d un pays ne demandant pas de visa? l entrée dans un casino? l accès à une base de donnée PostgreSQL (dans la configuration par défaut, utilisée lors du TD1)? Proposer d autres systèmes ouverts ou fermés. Les systèmes ouverts sont : l accès à la page d accueil de iut-orsay.fr : tout le monde y a accès, sans aucune restriction ; l entrée sur le territoire d un pays ne demandant pas de visa : l entrée est a priori autorisée, sauf éventuellement pour des personnes recherchées à l échelle internationale ; l entrée dans un casino : l entrée est a priori autorisée, sauf pour les personnes se faisant interdire des casinos et les mineurs. Les systèmes fermés sont : l accès à Dokéos : personne n y a accès, sauf les personnes explicitement authentifiées sur le site de Paris-Sud ; l entrée sur le territoire d un pays demandant un visa : l entrée est a priori interdite, sauf pour les personnes autorisées par un visa ; l accès à une base de donnée PostgreSQL (dans la configuration par défaut, utilisée lors du TD1) : seul l utilisateur Unix ayant le même login que l utilisateur qui a lancé le serveur peut accéder à la base (d où les problèmes lorsque le login est devenu user1 au lieu de votre login). Un autre exemple de système ouvert est le suivi d un compte Twitter : le propriétaire de ce compte n a pas de moyen d en restreindre la lecture. Un autre exemple de système fermé est l accès à l état d une personne sur Facebook : cette dernière peut choisir qui va connaître son état en choisissant les personnes reconnues comme amis. Question 2 Combien de niveaux de privilèges comportent les systèmes suivants : le système de fichiers Unix? sudo? 1
l entrée sur le territoire d un pays étranger? l accès aux données de l ensemble des étudiants de l IUT? l entrée dans le métro? Qu en est-il des systèmes que vous avez proposés dans la Question 1? On rappelle que les niveaux ne dépendent pas du nombre de sujets ou d objets, mais uniquement des relations possibles entre sujets et objet. Les systèmes suivants n ont que deux niveaux de privilèges : sudo : on donne le droit d exécuter ou non une commande ; l entrée sur le territoire d un pays étranger : elle peut être autorisée ou non ; l entrée dans le métro (même raison) ; l accès aux données de l ensemble des étudiants de l IUT : étant donné un sujet (étudiant, personnel,...), et des données, le sujet peut y accéder ou non. En revanche, ce système est multi-niveaux : le système de fichiers Unix : il y a plusieurs niveaux non ordonnées : la lecture, l écriture, l exécution. Les deux systèmes proposés dans la Question 1 ont deux niveaux de privilèges (Twitter n en a même qu un, du point de vue du propriétaire du compte). Question 3 Les politiques de sécurité suivantes sont-elles obligatoires, discrétionnaires, ou une combinaison des deux : l accès à Dokéos? le système de fichiers Unix? l entrée sur le territoire d un pays demandant un visa? l entrée dans le métro? sudo? Qu en est-il des systèmes que vous avez proposés dans la Question 1? Les politiques de sécurité suivantes sont obligatoires : l accès à Dokéos : les personnes ayant un compte à Paris Sud sont determinées de manière fixe par une autorité centrale ; l entrée sur le territoire d un pays demandant un visa : là encore, une autorité décide d accorder ou non les visas. Les politiques suivantes sont discrétionnaires : le système de fichiers Unix : le propriétaire du fichier peut modifier les droits en lecture, écriture et exécution ; cependant, il ne peut pas transmettre ce privilège ; sudo : root peut décider d attribuer comme privilèges le droit d éditer la configuration des sudoers, et ceux qui ont ce droit peuvent le transmettre à leur tour ; La politique suivante est une combinaison des deux : l entrée dans le métro : elle est soumise à la possession d un titre de transport, délivrée par une autorité (la RATP ou la SNCF) ; cependant, cette vérification étant anonyme (dans le cas d un ticket) et non authentifiée, il suffit de donner un ticket de métro à quelqu un pour lui transmettre le droit d entrée. La situation est un peu particulière car une fois que quelqu un a transmis ce droit, il ne l a plus lui-même (à moins de se procurer un autre ticket). Facebook est discrétionnaire, mais comme pour le système de fichiers Unix, le droit ne peut être transmis. 2
2 Organisation d un base de données On considère une base de données de gestion de commandes. Elle est constituée des relations suivantes : une relation clients, contenant : un champ numéro (1) : un identifiant unique de chaque client ; un champ nom (2) : le nom du client ; un champ adresse (3) : l adresse du client ; une relation commandes, contenant : un champ numéro (4) : un identifiant unique de chaque commande ; un champ client (5) : l identifiant du client ayant passé la commande ; une relation contenu_commandes, contenant : un champ commande (6) : l identifiant d une commande ; un champ article (7) : l identifiant d un des articles contenu dans la commande correspondante ; un champ quantité (8) : la quantité de l article correspondant. Question 4 Donner un exemple d une telle base. Voici un exemple : La relation clients numéro (1) nom (2) adresse (3) 6418 Dupont Rue de l avenue, Orsay 8724 Dupond Rue du boulevard, Paris La relation commandes numéro (4) client (5) 845540 6418 462187 8724 331400 6418 La relation contenu_commandes commande (6) article (7) quantité (8) 845540 pantalon 2 845540 veste 1 462187 chaussures 1 331400 pantalon 1 Question 5 Donner les clés primaires et étrangères de chacune des relations. Les clés primaires des relations sont : pour clients : le champ numéro (1) ; pour commandes : le champ numéro (4) ; pour contenu_commandes : le couple (commande (6), article (7)) ; Par ailleurs, le champ client (5) de la relation commandes est une clé étrangère référençant la clé primaire de la relation clients, et le champ commande (6) de la relation contenu_commandes est une clé étrangère référençant la clé primaire de la relation commandes. Question 6 Justifier le choix de ce schéma relationnel en termes d intégrité. Justifier notamment le choix d avoir deux tables distinctes commandes et contenu_commandes. 3
Les noms et adresses de deux clients différents peuvent être les mêmes, d où la nécessité de leur attribuer un identifiant unique en complément. Pour les commandes, il n y a pas d identifiant unique direct non plus, c est pourquoi on leur en attribue un également. La séparation en deux tables évite des redondances (sinon, pour chaque commande, il faudrait répéter le numéro du client autant de fois qu il y a d articles différents dans la commande). 3 Lecture d une matrice d accès La matrice d accès de cette base de données est la suivante : (1) (2) (3) Client R si connu {R, W (M)} si (1) connu {R, W (M)} si (1) connu Empaquetage - - - Livraison R R R (4) (5) (6) (7) (8) Client R si (5) connu R si connu R si connu R si (6) connu R si (6) connu Empaquetage - - R R R Livraison R R - - - On supposera que les identifiants de clients et de commandes ne peuvent pas être devinés (à moins de les connaître). Question 7 Décrire les privilèges de chaque sujet. Quelles sont les informations confidentielles vis-à-vis de chacun d eux? Un client peut lire uniquement les informations le concernant : pour lire les données d un client, il doit connaître son numéro ; pour lire les données concernant une commande, il doit connaître le numéro de celle-ci. Il ne peut pas accéder aux données des autres clients et aux commandes dont il n est pas l auteur. Par ailleurs, il peut également modifier son nom et son adresse. Le service d empaquetage peut uniquement lire le contenu de chaque commande. En particulier, il ne peut pas associer un client à une commande. Le service de livraison peut uniquement lire les données clients et associer une commande au client qui l a passée. En particulier, il ne peut pas connaître le contenu des commandes. Question 8 Justifier le choix d avoir deux vues distinctes commandes et contenu_commandes (ici, directement représentées par des tables) en termes de confidentialité. Cela simplifie la séparation des privilèges entre le service d empaquetage et le service de livraison. Question 9 Ajouter un nouveau sujet NouveauClient pouvant s inscrire sur le site en donnant son nom et son adresse. La matrice d accès pour ce sujet est : 4
(1) (2) (3) (4) (5) (6) (7) (8) NouveauClient - W (A) W (A) - - - - - Question 10 Ajouter un nouveau sujet Commander permettant de passer une commande. La matrice d accès pour ce sujet est : (1) (2) (3) (4) (5) (6) (7) (8) Commander - - - - W (A) - W (A) W (A) 5