Possibilités

Conceptuellement, des possibilités sont comme la rangée d'une matrice de contrôle d'accès. Chaque sujet a associé à elles un ensemble de paires, avec chaque paire contenant un objet et un ensemble de droites. Le sujet s'est associé à cette liste peut accéder à l'objet appelé de n'importe laquelle de ces manières indiquées par les droites appelées. Plus formellement :

Laissez O être l'ensemble d'objets, et R l'ensemble de droites, d'un système. Une liste c de possibilités est un ensemble de paires c = {(o, r) : o inclus dans O, r inclus dans R}. Laissez le chapeau être une fonction qui détermine la liste c de possibilités liée à un sujet particulier s. L'interprétation du cap(s) de liste de possibilités = {(oi, ri) : 1 < = I < = n} est que s soumis peut accéder à l'oi en utilisant juste dans le ri.

Nous abrégeons la "liste de possibilités" comme C-Liste.

Les possibilités encapsulent l'identité d'objet. Quand un processus présente des possibilités au nom d'un utilisateur, le logiciel d'exploitation examine les possibilités pour déterminer l'objet et l'accès auxquels le processus a droit. Ceci reflète comment les capabiliies pour la gestion de mémoire travaillent ; l'endroit de l'objet dans la mémoire est encapsulé dans les possibilités. Sans possibilités, le processus ne peut pas appeler l'objet dans une manière dont lui donnera l'accès désiré.

  

EXEMPLE : Pour ouvrir un dossier d'UNIX, un processus donne le nom de fichier au grain. Le grain obtient le nombre du noeud d'index du dossier en résolvant le nom par la hiérarchie de dossier. Une fois que le noeud d'index est obtenu, le système détermine si on accorde l'accès demandé en utilisant les permissions de contrôle d'accès. Si on accorde l'accès, le logiciel d'exploitation renvoie des possibilités appelées un descripteur de dossier. Les possibilités sont étroitement liées à l'objet de dossier, ainsi même si le dossier est supprimé et un nouveau dossier avec le même nom est créé, le descripteur de dossier se rapporte toujours au dossier précédent.


Les "codewords" d'Iliffe sont semblables aux possibilités. les "possibilités" sont une manière de commander l'accès aux objets dans la mémoire ou stockage secondaire. Fabry a généralisé cette idée de mettre en application l'adressage possibilité-basé.

L'architecture des possibilités est plus intéressante que celle des listes de contrôle d'accès. Le Access Control List et l'identité de processus sont sous la commande du logiciel d'exploitation. En l'absence des pailles, les processus d'utilisateur peuvent les changer seulement en appelant les services de logiciel d'exploitation. Cependant, un processus doit identifier des possibilités afin de les employer, ainsi le processus doit avoir un certain contrôle des possibilités. Si le processus peut forger des possibilités et puis les employer, les contrôles d'accès échouent.

Exécution des possibilités

Trois mécanismes sont employés pour protéger des possibilités : étiquettes, mémoire protégée, et cryptographie.

Une architecture étiquetée a un ensemble de peu lié à chaque mot de matériel. L'étiquette a deux états : l'ensemble et a supprimé. Si l'étiquette est placée, un processus ordinaire peut lire mais ne pas modifier le mot. Si l'étiquette est supprimait, un processus ordinaire peut lire et modifier le mot. De plus, un processus ordinaire ne peut pas changer l'état de l'étiquette ; le processeur doit être en mode privilégié à faire ainsi.

EXEMPLE : Le B5700 a employé une architecture étiquetée (bien qu'il n'a pas employé des possibilités comme mécanismes de protection). Le champ d'étiquette s'est composé de trois bits et a indiqué comment l'architecture devait traiter le mot (indicateur, descripteur, type, et ainsi de suite).


Plus commun est employer le peu de protection lié à la pagination ou à la segmentation. Toutes les possibilités sont stockées dans une page (segment) que le processus peut lire mais ne pas changer. Ceci n'exige aucun matériel pour un but particulier autre que cela employé par l'arrangement de gestion de mémoire. Mais le processus doit mettre en référence des possibilités indirectement, habituellement par des indicateurs, plutôt que directement.

EXEMPLE : Le système de CAP n'a pas permis à des processus de modifier le segment dans lequel configuration d'instructions. Il a également stocké des possibilités dans ce segment. Instructions et possibilités séparées de barrière par registre.


Une troisième alternative doit employer la cryptographie. Le but des étiquettes et de la protection de mémoire est d'empêcher les possibilités d'être changé. C'est apparenté à la vérification d'intégrité. Les sommes cryptographiques sont un autre mécanisme pour vérifier l'intégrité d'information. Chaque possibilités ont une somme cryptographique liée à elles, et la somme est digitalement chiffrée en utilisant un cryptosystem dont la clef est connue au logiciel d'exploitation.

Quand le processus présente des possibilités au logiciel d'exploitation, les premiers recomputes de système que la somme cryptographique a associés aux possibilités. Elle alors chiffre la somme en utilisant la clef cryptographique et la compare à celle stockée dans les possibilités, ou déchiffre la somme équipée de possibilités et la compare à la somme calculée. S'ils s'assortissent, les possibilités sont inchangées. Si pas, les possibilités sont rejetées.

EXEMPLE : Le système d'amibe est un système réparti qui emploie des possibilités pour appeler des objets. Sur la création, des possibilités correspondant à l'objet sont retournées. Pour employer l'objet, le programme présente les possibilités correspondantes. Les possibilités codent le nom de l'objet (24 bits), du serveur qui l'ont créé (48 bits), et des droites (8 bits) dans une quantité 128-bit. Au commencement, toutes les droites sont allumées.

Les 48 derniers bits sont employés comme champ de contrôle. C'est un nombre aléatoire choisi au temps de création. (puisque les possibilités sont données au propriétaire de l'objet, le propriétaire peut librement modifier les droites sans danger.) Le nombre est stocké dans une table correspondant au serveur qui a créé l'objet, ainsi toutes les fois que les possibilités sont présentées à ce serveur, il vérifie que le nombre aléatoire est correct. Un attaquant devrait savoir le nombre aléatoire afin de pouvoir forger des possibilités. Cependant, comme notes de Tanenbaum, le système est vulnérable si des possibilités sont révélées.


Possibilités copiantes et d'amplifications

La capacité de copier des possibilités implique la capacité de donner des droits. Pour empêcher des processus de donner aléatoirement des droits partis, un drapeau de copie est associé aux possibilités. Un processus ne peut pas copier des possibilités à un autre processus à moins que le drapeau de copie soit placé. Si le processus copie les possibilités, le drapeau de copie peut être arrêté (à la discrétion du processus ou du grain).

EXEMPLE : L'amibe emploie un arrangement intéressant. Elle ne commande pas des droites copiantes. Cependant, les utilisations auxquelles ces droites copiées peuvent être mises soyez restreint.

Supposez les souhaits mats d'utilisateur pour permettre au houx d'utilisateur de lire un objet qu'il possède. Il passe ses possibilités pour cet objet au serveur et demande des possibilités restreintes pour la lecture. Le serveur crée de nouvelles possibilités pour l'objet mais avec seulement la droite indiquée allumée. Le champ de droites est maintenant chacun des 0 excepté le peu lu, qui est un 1. C'est xor'ed avec le contrôle par sondage et l'entrée à une fonction cryptographique d'informations parasites. Le rendement est le nouveau nombre aléatoire pour ces possibilités. Les possibilités restreintes sont alors passées de nouveau à mat, qui les donne au houx.

Quand le houx emploie les possibilités, le serveur note qu'au moins un bit dans le domaine de droites est 0. Il prend le champ de droites, il des xor avec le nombre aléatoire des possibilités originales (stockées dans ses tables), et hache le résultat. Si les informations parasites résultantes assortissent le nombre aléatoire dans les possibilités, les possibilités sont valides ; autrement, elles ne sont pas.


L'amplification est l'augmentation des privilèges. L'idée de la programmation modulaire, et particulièrement des types de données abstraits, exige que les droites que un processus a au-dessus d'un objet soient amplifiées.

Pour comprendre pourquoi, considérez le type de données abstrait suivant pour un compteur.

compteur de module ; ctr increment(var d'entrée de 
procédé : nombre entier) ; commencez le ctr : = 
ctr + 1 ; extrémité ; getval(ctr d'entrée de 
fonction : nombre entier) ; commencez getval : = ctr
; extrémité ; ctr clear(var d'entrée de procédé : 
nombre entier) ; commencez le ctr : = 0 ; 
extrémité ; extrémité.

Supposez que x est déclaré pour être un compteur. Les règles des types de données abstraits admettent qu'objet à consulter seulement par le contre- module. Ainsi, au commencement les possibilités pour x contiendraient la droite d'appeler le contre- module seulement. Mais quand l'objet est passé au contre- module, le processus doit maintenant pouvoir lire et écrire à cet objet. Par conséquent, les possibilités doivent être amplifiées temporairement tandis que le compteur de module est en activité.

EXEMPLE : L'HYDRE séminale de système avait l'habitude des calibres d'amplification pour amplifier les droites des processus. Associé à chaque procédé dans le module est un calibre qui ajoute des droites aux possibilités comme nécessaires. Par exemple, le calibre pour le procédé getval ajouterait des droites lues tandis que le procédé était en activité. Le calibre pour le procédé d'incrément s'ajouterait lu et écrirait des droites.


EXEMPLE : Le système de l'iAPX 432 d'Intel met en application un mécanisme semblable dans le matériel. Ses "descripteurs d'accès" correspondent aux possibilités. Trois bits dans les possibilités commandent de diverses fonctions de système. Un de l'amplification de ces commandes de peu des droites. Quand un type de données abstrait module est construit, le peu de permission du type commande objecte (qui définit le type de données) est placé aux permissions des lesquelles le procédé a besoin. Quand le procédé s'appelle, le système vérifie le peu d'amplification. S'il est placé, les droites dans le type objet de commande sont or'ed avec les droites dans le descripteur de l'objet étant passé. Cette combinaison définit les droites disponibles au procédé.


Révocation des droites

Dans un système de possibilités, le retrait de l'accès à un objet exige que toutes les possibilités accordant l'accès à cet objet soient retirées. Conceptuellement, chaque processus a pu être vérifié, et les possibilités être supprimé. Le coût d'une telle opération serait inacceptable, cependant, ainsi des méthodes alternatives sont employées.

Le mécanisme le plus simple est adressage indirect. Définissez une ou plusieurs tables globales d'objet. Dans cet arrangement, chaque objet a une entrée correspondante dans une table. Les possibilités n'appellent pas l'objet directement ; elles appellent l'entrée dans la table correspondant à l'objet.

Cet arrangement a plusieurs avantages. D'abord, pour retirer des possibilités, l'entrée dans la table globale d'objet est infirmée. Alors toutes les références obtiendront une entrée inadmissible de table et seront rejetées. En second lieu, si seulement certaines des possibilités doivent être retirées, l'objet peut avoir les entrées multiples, chacune qui correspond à un ensemble différent de droites ou un groupe différent d'utilisateurs.

EXEMPLE : Utilisations d'amibe essentiellement cet arrangement. Pour retirer des possibilités, le propriétaire de l'objet invite que le changement de serveur le nombre aléatoire et publie de nouvelles possibilités. Ceci infirme toutes les possibilités existantes.


Un mécanisme alternatif de révocation emploie le type de données abstrait directeurs. Inclus avec chaque type de données abstrait est un procédé de révocation. Quand l'accès doit être retiré, le type directeur simpy rejette d'autres accès par le sujet dont les droites sont retirées. Ceci n'affecte pas des méthodes alternatives d'accéder aux objets sous-tendants les types de données abstraits. Par exemple, l'accès à un dossier peut être retiré, mais cette technique ne bloquerait pas l'accès aux segments fondamentaux par un type alternatif directeur. Le système SCP3 a employé cette technique.

Comparaison avec des listes de contrôle d'accès

Deux questions sont à la base de l'utilisation des contrôles d'accès :

  1. Donné un sujet, à quels objets peut-il accéder, et comment ?

  2. Donné un objet, quels sujets peuvent lui accéder, et comment ?

Dans la théorie, les listes ou les possibilités de contrôle d'accès peuvent répondre à ces questions. Pour la première question, les possibilités sont les plus simples ; liste juste les éléments de la C-Liste associée du sujet. Pour la deuxième question, ACLs sont les plus simples ; liste juste les éléments du Access Control List de l'objet. Dans un système d'ACL-based, la réponse de la première question exige de tous les objets d'être balayés. Le système extrait toutes les entrées de ACL liées au sujet en question. Dans un système possibilité-basé, la réponse de la deuxième question exige de tous les sujets d'être balayés. Le système extrait toutes les possibilités liées à l'objet en question.

Karger et Herbert speculent que la différence pratique en répondant à la deuxième question est la raison plus de listes de contrôle d'accès d'utilisation de systèmes que des possibilités. On pose cette question plus souvent que le premier. Car le centre de la réponse d'incident décale de "qui a accédé à l'objet" pour inclure "quoi encore a fait cet accès soumis," les systèmes possibilité-basés peuvent devenir plus communs.

c'est un article supplémentaire par Fred Foster


Déni : Notre site Web n'est pas responsable de l'information contenue par cet article. Cet article reflète nullement les vues, les avis, les pensées ou la croyance du personnel d'annuaire d'articles.

Notification de traduction : L'article "possibilités" a été traduit en utilisant un service de traduction automatisé. Nous faisons des excuses sincèrement pour toutes les erreurs de traduction qui se sont produites. Merci de l'arrangement.

Online: 739 users browsing the articles directory


  

.