Begrifflich ist eine Fähigkeit wie die Reihe einer Zugriffssteuerungmatrix. Jedes Thema hat mit ihr einen Satz Paare verbunden, wenn jedes Paar einen Gegenstand und einen Satz enthält, Rechte. Das Thema verband mit dieser Liste kann den genannten Gegenstand in irgendwelchen der Weisen zugänglich machen, die durch die genannten Rechte angezeigt wurden. Formaler:
Lassen Sie O der Satz der Gegenstände sein und R der Satz von Rechten, eines Systems. Eine Fähigkeit Liste c ist ein Satz Paare c = {(O, r): O eingeschlossen in O, in r eingeschlossen in R}. Lassen Sie Kappe eine Funktion sein, die die Fähigkeit Liste feststellt c, die mit einem bestimmten Thema s verbunden ist. Die Deutung des Fähigkeit Liste cap(s) = {(oi, ri): 1 < = i < = n} ist, daß vorbehaltliches s oi mit irgendwie nach rechts im ri zugänglich machen kann.
Wir kürzen "Fähigkeit Liste" als C-Liste ab.
Fähigkeiten kapseln Gegenstandidentität ein. Wenn ein Prozeß eine Fähigkeit im Namen eines Benutzers darstellt, überprüft das Betriebssystem die Fähigkeit, um den Gegenstand und den Zugang festzustellen, zu denen der Prozeß erlaubt wird. Dieses reflektiert, wie capabiliies für Gedächtnismanagement arbeiten; die Position des Gegenstandes im Gedächtnis wird in der Fähigkeit eingekapselt. Ohne eine Fähigkeit kann der Prozeß nicht den Gegenstand in einer Weise nennen, die ihm den gewünschten Zugang gibt.
| BEISPIEL: Um eine UNIX Akte zu öffnen, gibt ein Prozeß den Dateinamen zum Kern. Der Kern erhält die Zahl I-Knoten der Akte, indem er den Namen durch die Akte Hierarchie behebt. Sobald der I-Knoten erreicht wird, stellt das System fest, wenn der erbetene Zugang mit der Zugriffssteuerungerlaubnis bewilligt wird. Wenn der Zugang bewilligt wird, bringt das Betriebssystem eine Fähigkeit zurück, die einen Akte Beschreiber genannt wird. Die Fähigkeit wird fest zum Akte Gegenstand gesprungen, also, selbst wenn die Akte gelöscht wird und eine neue Akte mit dem gleichen Namen hergestellt wird, bezieht sich der Akte Beschreiber noch auf die vorhergehende Akte. |
Die "codewords" von Iliffe sind Fähigkeiten ähnlich. "Fähigkeiten" sind eine Weise, Zugang zu den Gegenständen im Gedächtnis zu steuern oder Fremdspeicher. Fabry generalisierte diese Idee, das Fähigkeit-gegründete Wenden einzuführen.
Die Architektur von Fähigkeiten ist interessanter als die der Zugriffssteuerunglisten. Das Access Control List und die Prozeßidentität sind unter der Steuerung des Betriebssystems. In Ermangelung der Fehler, können Benutzerprozesse sie ändern, nur indem sie die Betriebssystemdienstleistungen hervorrufen. Jedoch muß ein Prozeß eine Fähigkeit kennzeichnen, um sie zu verwenden, also muß der Prozeß etwas Steuerung über den Fähigkeiten haben. Wenn der Prozeß eine Fähigkeit schmieden und sie dann verwenden kann, fallen Zugriffssteuerungen aus.
Drei Einheiten werden benutzt, um Fähigkeiten zu schützen: Umbauten, geschütztes Gedächtnis und Cryptography.
Eine etikettierte Architektur hat einen Satz Spitzen, die mit jedem Kleinteilwort verbunden sind. Der Umbau hat zwei Zustände: Satz und unset. Wenn der Umbau eingestellt wird, kann ein gewöhnlicher Prozeß das Wort lesen aber nicht ändern. Wenn der Umbau unset ist, kann ein gewöhnlicher Prozeß das Wort lesen und ändern. Weiter kann ein gewöhnlicher Prozeß nicht den Zustand des Umbaus ändern; der Prozessor muß in einem privilegierten Modus sein, zum so zu tun.
| BEISPIEL: Das B5700 verwendete eine etikettierte Architektur (obgleich es Fähigkeiten nicht als Schutzeinheiten verwendete). Der Umbau fangen bestanden aus drei Bits und angezeigt auf, wie die Architektur das Wort (Zeiger, Beschreiber, Art behandeln sollte und so weiter). |
Ist, die Schutzspitzen zu benutzen allgemeiner, die mit Paginierung oder Segmentation verbunden sind. Alle Fähigkeiten werden in einer Seite (Segment) gespeichert die der Prozeß lesen aber nicht ändern kann. Dieses erfordert keine für einen speziellen Zweck Kleinteile anders als das, das durch den Gedächtnismanagemententwurf verwendet wird. Aber der Prozeß muß Fähigkeiten, normalerweise durch Zeiger indirekt beziehen, anstatt direkt.
| BEISPIEL: Das KAPPE System ließ Prozesse das Segment nicht ändern, in dem Anweisungen Lage. Es speicherte auch Fähigkeiten in diesem Segment. Ein getrennte Anweisungen und Fähigkeiten des Zauns Register. |
Eine dritte Alternative soll Cryptography benutzen. Das Ziel der Umbauten und des Gedächtnisschutzes ist, die Fähigkeiten an geändert werden zu verhindern. Dieses ist der Vollständigkeit Überprüfung entsprechend. Verschlüsselungsprüfsummen sind eine andere Einheit für die Überprüfung der Vollständigkeit der Informationen. Jede Fähigkeit hat eine Verschlüsselungsprüfsumme, die mit ihr verbunden ist, und die Prüfsumme wird digital mit einem Schlüsselsystem chiffroren dessen Schlüssel zum Betriebssystem bekannt.
Wenn der Prozeß eine Fähigkeit dem Betriebssystem darstellt, die System ersten recomputes, welche die Verschlüsselungsprüfsumme mit der Fähigkeit verband. Sie dann entweder chiffriert die Prüfsumme mit dem Verschlüsselungsschlüssel und vergleicht sie mit dem, der in der Fähigkeit gespeichert wird oder dechiffriert die Prüfsumme, die mit der Fähigkeit versehen wird und vergleicht sie mit der Berechnungs- Prüfsumme. Wenn sie zusammenpassen, ist die Fähigkeit unverändert. Wenn nicht, wird die Fähigkeit zurückgewiesen.
| BEISPIEL: Das Amöbe System ist ein Verbundsystem, das Fähigkeiten verwendet, um Gegenstände zu nennen. Auf Kreation wird eine Fähigkeit, die dem Gegenstand entspricht, zurückgebracht. Um den Gegenstand zu benutzen, stellt das Programm die entsprechende Fähigkeit dar. Die Fähigkeit kodiert den Namen des Gegenstandes (24 Bits), des Bedieners, die ihn (48 Bits) verursachten, und der Rechte (8 Bits) in einer Quantität 128-bit. Zuerst werden alle Rechte eingeschaltet. Die letzten 48 Bits werden benutzt, während eine Überprüfung auffangen. Dieses ist eine gelegentliche Zahl, die zur Kreation Zeit vorgewählt wird. (weil dem Inhaber des Gegenstandes die Fähigkeit gegeben wird, kann der Inhaber die Rechte ohne Gefahr frei ändern.) Die Zahl wird in einer Tabelle gespeichert, die dem Bediener entspricht, der den Gegenstand verursachte, also, wann immer die Fähigkeit diesem Bediener dargestellt wird, überprüft er, daß die gelegentliche Zahl korrekt ist. Ein Angreifer würde die gelegentliche Zahl kennen müssen, um in der Lage zuSEIN, eine Fähigkeit zu schmieden. Jedoch als Tanenbaum Anmerkungen, ist das System verletzbar, wenn eine Fähigkeit freigegeben wird. |
Die Fähigkeit, Fähigkeiten zu kopieren deutet die Fähigkeit an, Rechte zu geben. Um Prozesse an wegrechte wahllos geben zu verhindern,IST eine Kopie Markierungsfahne mit Fähigkeiten verbunden. Ein Prozeß kann nicht eine Fähigkeit zu einem anderen Prozeß kopieren, es sei denn die Kopie Markierungsfahne eingestellt wird. Wenn der Prozeß die Fähigkeit kopiert, kann die Kopie Markierungsfahne abgestellt werden (an der Diskretion entweder des Prozesses oder des Kerns).
BEISPIEL: Amöbe verwendet einen interessanten Entwurf. Sie steuert nicht kopierenrechte. Jedoch zu denen der Gebrauch jene kopierten Rechte gesetzt werden kann, seien Sie eingeschränkt. Nehmen Sie matte Wünsche des Benutzers an, um Benutzerstechpalme einen Gegenstand lesen zu lassen, den er besitzt. Er führt seine Fähigkeit für diesen Gegenstand zum Bediener und bittet um eine eingeschränkte Fähigkeit für Messwert. Der Bediener verursacht eine neue Fähigkeit für den Gegenstand aber mit nur dem gelesenen Recht, das eingeschaltet wird. Die Rechte fangen ist jetzt alles 0 außer der gelesenen Spitze auf, die 1 ist. Dieses ist xor'ed mit der gelegentlichen Überprüfung und dem Eingang zu einer Verschlüsselungsdurcheinanderfunktion. Der Ausgang ist die neue gelegentliche Zahl für diese Fähigkeit. Die eingeschränkte Fähigkeit wird dann zurück zu mattem geführt, das sie der Stechpalme gibt. Wenn Stechpalme die Fähigkeit verwendet, merkt der Bediener, daß mindestens ein Bit in den Rechten ist 0 auffangen. Er nimmt die Rechte auffängt, es der xors mit der gelegentlichen Zahl der ursprünglichen Fähigkeit (gespeichert in seinen Tabellen) und hackt das Resultat. Wenn das resultierende Durcheinander die gelegentliche Zahl in der Fähigkeit zusammenbringt, ist die Fähigkeit gültig; andernfalls ist sie nicht. |
Verstärkung ist die Erhöhung von Privilegien. Die Idee der modularen Programmierung und besonders der abstrakten Datenarten, erfordert, daß die Rechte, die ein Prozeß über einem Gegenstand hat, verstärkt werden.
Verstehen, warum, die folgende abstrakte Datenart für einen Kostenzähler betrachten Sie.
Modulkostenzähler; Verfahren Eintragung increment(var ctr: Ganzzahl); fangen Sie ctr: = an ctr + 1; Ende; Funktion Eintragung getval(ctr: Ganzzahl); fangen Sie getval: = an ctr; Ende; Verfahren Eintragung clear(var ctr: Ganzzahl); fangen Sie ctr: = an 0; Ende; Ende.
Nehmen Sie an, daß x erklärt wird, um ein Kostenzähler zu sein. Die Richtlinien der abstrakten Datenarten geben daß nur zu der durch den Zählbaustein erreicht zu werden Gegenstand. So zuerst würde die Fähigkeit für x das Recht enthalten, nur den Zählbaustein hervorzurufen. Aber, wenn der Gegenstand zum Zählbaustein geführt wird, muß der Prozeß jetzt in der LageSEIN, zu diesem Gegenstand zu lesen und zu schreiben. Folglich muß die Fähigkeit vorübergehend verstärkt werden, während der Modulkostenzähler aktiv ist.
| BEISPIEL: Die Samen- System HYDRA benutzte Verstärkung Schablonen, um die Rechte Prozesse zu verstärken. Mit jedem Verfahren im ModulIST eine Schablone verbunden, die Rechte den Fähigkeiten hinzufügt, wie gebraucht. Z.B. würde die Schablone für das getval Verfahren gelesene Rechte addieren, während das Verfahren aktiv war. Die Schablone für das Stufensprungverfahren würde gelesen hinzufügen und Rechte schreiben. |
| BEISPIEL: Das Intel iAPX 432 System führt eine ähnliche Einheit in den Kleinteilen ein. Seine "Zugang Beschreiber" entsprechen Fähigkeiten. Drei Bits in der Fähigkeit steuern verschiedene System Funktionen. Ein der Verstärkung dieser Spitzen Kontrollen von Rechten. Wenn eine abstrakte Datenart Modul konstruiert wird, wenden die Erlaubnisspitzen der Art Steuerung (die die Datenart definiert), werden eingestellt auf die Erlaubnis ein, die das Verfahren benötigt. Wenn das Verfahren benannt wird, überprüft das System die Verstärkung Spitze. Wenn es eingestellt wird, sind- die Rechte in der Art Steuergegenstand or'ed mit den Rechten im Beschreiber des Gegenstandes, der überschritten wird. Diese Kombination definiert die Rechte, die für das Verfahren vorhanden sind. |
In einem Fähigkeit System erfordert das Widerrufen des Zuganges zu einem Gegenstand, daß alle Fähigkeiten, die Zugang zu diesem Gegenstand bewilligen, widerrufen werden. Begrifflich konnte jeder Prozeß überprüft werden und die Fähigkeiten gelöscht werden. Die Kosten solch eines Betriebes würden nicht annehmbar sein, jedoch also werden alternative Methoden verwendet.
Die einfachste Einheit ist Umweg. Definieren Sie eine oder mehr globalen Gegenstandtabellen. In diesem Entwurf hat jeder Gegenstand eine entsprechende Eintragung in einer Tabelle. Fähigkeiten nennen nicht den Gegenstand direkt; sie nennen die Eintragung in der Tabelle, die dem Gegenstand entspricht.
Dieser Entwurf hat einige Vorteile. Zuerst Fähigkeiten zu widerrufen, wird die Eintragung in der globalen Gegenstandtabelle ungültig erklärt. Dann erhalten alle mögliche Hinweise eine unzulässige Tabelle Eintragung und werden zurückgewiesen. Zweitens wenn nur einige der Fähigkeiten widerrufen werden sollen, kann der Gegenstand mehrfache Eintragungen, jede, die einem anderen Satz Rechten entsprechen oder eine andere Gruppe Benutzer haben.
| BEISPIEL: Amöbe Gebrauch im Wesentlichen dieser Entwurf. Um eine Fähigkeit zu widerrufen, verlangt der Inhaber des Gegenstandes daß die Bedieneränderung die gelegentliche Zahl und gibt eine neue Fähigkeit heraus. Dieses erklärt alle vorhandenen Fähigkeiten ungültig. |
Eine alternative Rücknahmeeinheit benutzt abstrakte Datenart Manager. Mit jeder abstrakten Datenart geschlossen ein Rücknahmeverfahren ein. Wenn Zugang widerrufen werden soll, mißbilligt die Art der simpy Manager weitere Zugänge durch das Thema dessen Rechte widerrufen werden. Dieses beeinflußt nicht alternative Methoden des Zugänglich machens der zugrundeliegenden Gegenstände die abstrakten Datenarten. Z.B. kann Zugang zu einer Akte widerrufen werden, aber diese Technik würde Zugang zu den zugrundeliegenden Segmenten nicht durch eine alternative Art Manager blockieren. Das System SCP3 verwendete diese Technik.
Zwei Fragen liegen dem Gebrauch von Zugriffssteuerungen zugrunde:
Ein Thema gegeben, welche Gegenstände kann es und wie erreichen?
Einen Gegenstand gegeben, können welche Themen ihn zugänglich machen und wie?
In der Theorie entweder Zugriffssteuerunglisten oder -fähigkeiten können diese Fragen beantworten. Für die erste Frage sind Fähigkeiten das einfachste; gerechte Liste die Elemente der dazugehörigen C-Liste des Themas. Für die zweite Frage sind ACLs das einfachste; gerechte Liste die Elemente des Access Control List des Gegenstandes. In einem ACL-based System erfordert das Beantworten der ersten Frage alle Gegenstände, abgelichtet zu werden. Das System extrahiert alle ACL Eintragungen, die mit dem Thema in der Frage verbunden sind. In einem Fähigkeit-gegründeten System erfordert das Beantworten der zweiten Frage alle Themen, abgelichtet zu werden. Das System extrahiert alle Fähigkeiten, die mit dem Gegenstand in der Frage verbunden sind.
Karger und Herbert spekulieren, daß der praktische Unterschied, bezüglich, die zweite Frage zu beantworten, ist der Grund mehr Systeme Gebrauch-Zugriffssteuerunglisten als Fähigkeiten. Diese Frage wird häufig als das erste gestellt. Da der Fokus der Ereignisantwort von "sich verschiebt, wer den Gegenstand" zugänglich machte, um einzuschließen ", was sonst diesen vorbehaltlichen Zugang tat," können Fähigkeit-gegründete Systeme allgemeiner werden.
Online: 518 users browsing the articles directory
![]() . |