Zusammenfassung
- Im von Jerry Saltzer beschriebenen CTSS konnten Links in den Verzeichnissen der Entleiher die Zugriffsart mitbestimmen. Der Entzug war deshalb umständlich, und eine vollständige Prüfung verlangte die Suche in allen Verzeichnissen.
- Multics ließ den Link nur noch als indirekte Adresse wirken und legte die Berechtigung in die Zugriffsliste des Zielsegments. Das ordnete die Autorität, holte aber weder kopierte Daten zurück noch entwertete es automatisch jede gespeicherte Entscheidung.
Der Eigentümer einer Datei beendet eine Freigabe, doch der Eintrag, über den sie benutzt wurde, liegt im Verzeichnis des anderen. Muss der Eigentümer nun jedes fremde Verzeichnis erreichen? Und wie lässt sich feststellen, ob noch weitere Einträge existieren? Aus einer bequemen Abkürzung wird ein Problem der Zuständigkeit.
Saltzer beschrieb genau diese Schwierigkeit beim älteren Compatible Time-Sharing System. In CTSS konnten andere Nutzer besondere Links in ihren eigenen Verzeichnissen anlegen. Diese verwiesen auf die ursprüngliche Datei und enthielten häufig zusätzliche Beschränkungen der zulässigen Nutzung. Damit war ein Teil der Zugriffsregel über die Verzeichnisse der Entleiher verteilt.
Die Folgen waren konkret. Ein vorhandener Link ließ sich nicht entfernen, ohne das fremde Verzeichnis zu ändern. Dieselbe Person konnte je nach verwendetem Link unterschiedliche Rechte an derselben Datei haben. Wer für eine Schutzprüfung alle Berechtigten ermitteln wollte, musste jedes Verzeichnis durchsuchen und berührte dabei womöglich private Informationen anderer Nutzer.
Multics behielt Links, nahm ihnen jedoch die Autorisierungsfunktion. Der Link blieb eine bequeme Benennung und eine indirekte Adresse. Er verlieh kein Zugriffsprivileg. Ob eine Operation erlaubt war, entschied die Zugriffskontrollliste des referenzierten Segments.
Zwei Fragen an zwei Stellen
Das Multics-Speichersystem bestand in Saltzers Darstellung aus benannten Segmenten. Ein Segment war Katalogeinheit, Einheit der Abbildung in den virtuellen Speicher eines Prozesses und eigenständig geschützte Einheit. Jeder Prozess trug eine nicht fälschbare Principal-Kennung. Beim Zugriff auf eine katalogisierte Ressource wurde sie mit deren Liste verglichen.
Die Liste unterschied Tätigkeiten. Für Segmente gab es Lesen, Schreiben und Ausführen; Nachrichtenwarteschlangen und Verzeichnisse besaßen andere Operationsarten. Der Pfad beantwortete, welches Segment gemeint war. Die Liste beantwortete, welcher Principal welche Handlung vornehmen durfte.
Ein Alias änderte damit nicht von selbst die Berechtigung. Der Verantwortliche konnte die maßgebliche Liste am Segment ändern, ohne zuvor alle Namen einzusammeln. Eine Prüfung konnte von der Ressource und ihren Regeln ausgehen, statt sämtliche Namensräume nach versteckten Freigaben zu durchsuchen.
Einfach war die Verwaltung dennoch nicht. Kennungen konnten Person, Projekt und Abteilung kombinieren. Spezifische Listeneinträge gingen allgemeineren vor. Wer ein Verzeichnis verändern durfte, erhielt damit auch Macht über bestimmte Zugriffsspezifikationen darunter. Die Hierarchie blieb bestehen; sichtbar wurde, wo sie wirksam wurde.
Verständlichkeit vor magischer Vererbung
Die Fallstudie berichtet auch von einem verworfenen Multics-Entwurf. Früher wurde die anfängliche Zugriffsliste eines Verzeichnisses als gemeinsamer Anhang der Listen aller enthaltenen Ressourcen behandelt. Eine Änderung oben konnte viele Ressourcen beeinflussen. Durch Reihenfolge und Zusammenspiel mit lokalen Einträgen fiel das Ergebnis jedoch je Ressource anders aus. Die Folgen waren schwer vorherzusagen.
Der Entwurf wechselte zur Kopie der Anfangsliste beim Erstellen einer Ressource. Spätere Änderungen des Standards schrieben alte Ressourcen nicht um. Das war weniger dynamisch, machte den aktuellen Zustand jeder Ressource aber eigenständiger lesbar. Saltzer beschreibt Zugriffskontrolle als Abwägung zwischen Ausdrucksmacht, Verständlichkeit und Implementierungsaufwand.
Die Beschränkung des Links folgt derselben Abwägung. Bedingungen an jedem Pfad erlauben feine Ausnahmen, erzeugen aber mehrere Wahrheiten über dieselbe Ressource. Wenn ein Mitarbeiter ein Projekt verlässt oder eine Freigabe im Notfall geschlossen werden muss, entscheidet nicht die Zahl möglicher Regeln, sondern ob ihre Wirkung vollständig ermittelt werden kann.
Alte Entscheidungen brauchen eine Ablaufbedingung
In der späteren, gemeinsam mit Michael D. Schroeder verfassten Arbeit heißt ein Grundsatz vollständige Vermittlung: Jeder Zugriff soll gegen die Autorität geprüft werden. Saltzers Text von 1974 nennt die operative Komplikation. Ein dauerhaft laufendes System merkt sich Entscheidungen für spätere Nutzung; Änderungen der Autorität müssen daher in solche lokalen Erinnerungen gelangen.
Das bedeutet nicht, dass bei jedem Byte die Liste neu gelesen wurde. Eine Prüfung beim traditionellen Öffnen einer Datei oder beim Abbilden eines Segments kann einen offenen Handle, eine Abbildung, eine Sitzung oder einen Cache-Eintrag hervorbringen. Bleibt dieser Zustand gültig, nachdem die zentrale Liste geändert wurde, ist die Regel neu, die wirksame Berechtigung aber noch nicht überall.
Ein belastbarer Nachweis verbindet Principal, aufgelöste Ressource, verlangte Operation, Regelversion und Entscheidungszeit. Außerdem braucht er die Lebensdauer des daraus entstandenen Zustands. Der Widerruf bildet eine zweite Kette: Änderung angenommen, abhängige Sitzungen und Speicher entwertet, alte Nachweise abgelaufen, neuer Versuch abgelehnt.
Freigegebene Information lässt sich nicht zurückholen
Die geordnete Autorität erleichtert künftigen Entzug, doch sie macht eine Offenlegung nicht rückgängig. Saltzer weist darauf hin, dass ein berechtigter Leser eine Kopie anfertigen kann. Der Entzug am Original löscht diese Kopie nicht. Kontrolle nach einer erlaubten Weitergabe blieb eine eigene Forschungsfrage.
Auch Multics wird nicht als fehlerloses Muster präsentiert. Das Papier nennt unvollständige Mechanismen und eine noch zu große höchstgeschützte Zone. Eine klare Grenze macht sichtbar, welcher Teil vertrauenswürdig sein muss; sie beweist nicht, dass dieser Teil klein und korrekt ist.
Heute werden geteilte URLs, Aliasnamen, Handles und Sitzungen häufig gemeinsam als „Zugriff“ bezeichnet. Saltzers Trennung verlangt vier verschiedene Bestände: Namen, gültige Gewährungen, beobachtete Nutzung und die Weitergabe eines Widerrufs. Der Link darf die Ressource weiterhin finden. Ob er sie öffnen darf, muss eine andere Instanz beantworten.
Quellen
- Saltzer — Protection and Control of Information Sharing in Multics
- Saltzer und Schroeder — The Protection of Information in Computer Systems
- Basic Principles of Information Protection
- Descriptor-Based Protection Systems
- The State of the Art
- Publikationen von Jerome H. Saltzer
- Kurzbiografie von Jerome H. Saltzer
- Lebenslauf von Jerome H. Saltzer
- MIT-Seite von Jerome H. Saltzer
- MIT Multics History
- Multics—The First Seven Years
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
