Nächste Seite: 5.12 Zusammenfassung
Aufwärts: 5. Ein Sicherheitsmodell für
Vorherige Seite: 5.10 Domänenbildung
  Inhalt
Unterabschnitte
5.11 Fallbeispiele
In diesem Abschnitt wird die Anwendung der in diesem Kapitel beschriebenen
Verfahren anhand typischer Stationen des Lebenszyklus eines Agenten
beschrieben.
5.11.1 Implementierung einer Agentengattung
Abbildung 5.11:
Skizze der Implementierung einer Agentengattung
|
Sei ein Implementierer nun Besitzer eines persönlichen Zertifikats
und des zugehörigen privaten Schlüssels. Abb. 5.11
zeigt die folgenden Schritte:
- Im Zuge der Implementierung einer Agentengattung A erstellt
der Implementierer I den Code der Gattung und evtl. weitere für die
Gattung spezifische statische Daten.
- Code und statische Daten werden dann vom Implementierer I unter
Benutzung seines Zertifikat signiert.
- Die neue Agentengattung A wird in einem Code Repository
hinterlegt.
Damit wird folgendes erreicht:
- Der Agentengattung ist ein Implementierer fest und
nachvollziehbar zugeordnet.
- Alle Daten der Agentengattung können auf nachträgliche
Veränderung überprüft werden.
- Die Gattungsdaten können unabhängig von Agenteninstanzen aus
dem Code Repository geladen werden.
5.11.2 Authentisierung eines Anwenders am Agentensystem
- Der Anwender meldet sich am Agentensystem an, indem er ein
Zertifikat präsentiert.
- Das Agentensystem überprüft, ob die Zertifikatkette gültig
ist.
- Das Agentensystem überprüft anhand der Authentication Policy,
ob das Zertifikat als vertrauenswürdig angesehen werden kann, z.B.
ob es von einer für das Agentensystem als vertrauenswürdig
angesehenen Instanz signiert wurde.
- Waren beide Überprüfungen positiv, so ist der Anwender
erfolgreich vom Agentensystem authentisiert.
Abbildung 5.12:
Skizze der Erzeugung einer Agenteninstanz
|
Abb. 5.12 zeigt die einzelnen Schritte, wie eine
neue Agenteninstanz, der in 5.11.1
implementierten Agentengattung A, erzeugt wird:
- Anwender U meldet dich am Agentensystem S an (siehe Abschnitt
5.11.2).
- Anwender U erbittet Erzeugung einer Instanz der Agentengattung
A.
- Das Agentensystem S überprüft, ob die eigene
Permission Policy dem Anwender das Starten einer Agenteninstanz der
Gattung A gestattet.
- Das Agentensystem S wählt über die Code Repository Policy
einen Ort aus, von dem die Daten der Agentengattung A zu laden
sind und lädt diese.
- Das Agentensystem S überprüft die Integrität der geladenen
Daten.
- Das Agentensystem erzeugt (gemäß Abschnitt
5.5.4) ein
Sitzungszertifikat und signiert dieses.
- Das Agentensystem erzeugt eine Menge von Capabilities für
diese Agenteninstanz aus der Permission Policy.
- Das Agentensystem erzeugt eine neue Agenteninstanz M mit den
vorher erzeugten Capabilities, setzt dabei die Attribute
Authority, Agentengattung, Implementierer und initialisiert die
Historie mit der eigenen Identität als ersten Eintrag.
Damit ist die neue Agenteninstanz M der Gattung A, mit Anwender U als
Authority und Implementierer I erzeugt und gestartet.
- Die Agenteninstanz A meldet eine Migrations-Anforderung nach
Agentensystem D an das Agentensystem S.
- Das Agentensystem S überprüft, ob die Agenteninstanz im Besitz
einer Capability ist, die die Migration auf D gestattet.
- S kontaktiert D und fordert dessen Zertifikat an.
- S überprüft die Zertifikatkette von D und entscheidet
anhand der Authentication Policy, ob D als vertrauenswürdig
angesehen werden kann.
- S übergibt die Zertifikat-Kette von D an A und A entscheidet
mit der eigenen Authentication Policy, ob D als vertrauenswürdig
angesehen werden kann.
- D fordert das Zertifikat von S an und überprüft anhand
seiner
Authentication Policy, ob S als vertrauenswürdig angesehen werden
kann.
- S serialisiert A und versendet A nach D.
- D empfängt A und deserialisiert die empfangenen Daten.
- D überprüft die Integrität der Daten von A. Insbesondere
wird dabei die Korrektheit der Historie von A überprüft. Hierzu
muß die Integrität der Liste gewährleistet sein und S muß
als letzter Eintrag in der Liste stehen.
- D überprüft anhand seiner Permission Policy, ob die Instanz A
aufgrund ihrer Gattung, deren Implementierer, ihrer Authority und
ihrer History gestartet werden darf.
Alle weiteren Schritte erfolgen analog zu den Schritten 4 bis 8 der Erzeugung
einer neuen Agenteninstanz.
- Die Agenteninstanz A möchte eine Aktion X auf dem Endsystem
durchführen lassen.
- Das Agentensystem S überprüft, ob A im Besitz
einer Capability ist, die die Aktion X gestattet.
- Liegt eine passende Capability vor, wird die Aktion
ausgeführt, ansonsten verweigert.
Nächste Seite: 5.12 Zusammenfassung
Aufwärts: 5. Ein Sicherheitsmodell für
Vorherige Seite: 5.10 Domänenbildung
  Inhalt
harald@roelle.com