next up previous contents
Nächste Seite: 5.4 Kommunikationskanäle Aufwärts: 5. Ein Sicherheitsmodell für Vorherige Seite: 5.2 Erzwungenes Vertrauen durch   Inhalt

Unterabschnitte


5.3 Wechselseitige Abschottung der Entitäten

Um den in Kap. 2.5 geforderten wechselseitigen Schutz der Entitäten realisieren zu können, muß die Existenz getrennter Umgebungen für alle Entitäten gewährleistet werden. Hierbei sind nur Agentensysteme und Agenteninstanzen zu betrachten, da die anderen Entitäten des Modells per se über eigene Ausführungsumgebungen verfügen.

5.3.1 Abschottung zwischen Agentensystemen

In der Praxis wird die Trennung der Ausführungsumgebungen der Agentensysteme in den meisten Fällen schon dadurch gewährleistet, daß verschiedene Agentensysteme auf verschiedenen physischen Endgeräten ausgeführt werden. Für den Fall, daß mehrere Agentensysteme auf einem Endsystem ablaufen sei angenommen, daß auf dem Endsystem ein Betriebssystem abläuft, welches ein Prozeßmodell implementiert, das eine Abschottung der Prozesse voreinander realisiert. Mit dieser Annahme genügt die Forderung, daß jedes Agentensystem durch einen Prozeß auf dem Endsystem realisiert wird.

5.3.2 Abschottung zwischen Agenteninstanzen

Für den wechselseitigen Schutz von Agenteninstanzen, die auf dem gleichen Agentensystem ausgeführt werden, muß die Trennung ihrer Ausführungsumgebungen näher betrachtet werden.

Das Agentensystem, welches die einzelnen Umgebungen bereitstellt, muß dabei äquivalente Eigenschaften aufweisen, die ein Betriebssystem zur Trennung von Prozeßumgebungen realisiert:

Eine Trennung der Namensräume der Agenteninstanzen ist für eine Trennung der Ausführungsumgebungen essentiell, insbesondere in Systemen, die die Laufzeitbindung von Bibliotheken unterstützen. Zwar sind nach Kap. 3.2 keine Kollisionen in der Namensgebung zwischen den Agenteninstanzen selbst zu befürchten, dies gewährleistet jedoch noch nicht, daß Komponenten, die von Agenteninstanzen ``mitgebracht'' und benutzt werden, sich ebenfalls in disjunkten Bereichen ihres Namensraums befinden.


Abbildung 5.3: Nicht eindeutiger Bibliothekszugriff mit gemeinsamen Namensraum
\includegraphics [width=6.5cm]{namespace_single}

An einem Beispiel erläutert könnte dies bedeuten: Benutze ein Agent A eine Laufzeitbibliothek namens L. Diese sei nicht Teil des Agentensystems, sondern der statischen Gattungsdaten des Agenten, und deshalb erst dann dem Agentensystem bekannt, wenn eine Instanz des Agenten das Agentensystem betritt. Ein zweiter Agent B benutze ebenfalls eine Bibliothek namens L, diese sei jedoch von einem anderen Hersteller und implementiere eine andere Semantik, als jene die vom Agenten A benutzt wird.

Werden nun Instanzen von A und B auf einem Agentensystem ausgeführt, so kann ohne getrennte Namensräume im allgemeinen keine Aussage darüber getroffen werden, welche Bibliothek L durch A bzw. B benutzt wird. Dies wird im konkreten Fall durch die verwendete Implementierungssprache bestimmt, bzw. durch die verwendete Laufzeitumgebung. Im wesentlichen bestimmt dabei die Implementierung des Runtime-Linkers, ob z.B. eine ``first load, first use''-Semantik oder ``last load, first use''-Semantik benutzt wird.

Abbildung 5.4: Bibliothekszugriff mit getrennten Namensräumen
\includegraphics [width=6.5cm]{namespace_sep}

Nur die Trennung der Namensräume der beiden Agenteninstanzen kann gewährleisten, daß jeder der beiden Agenten auf ``seine'' Bibliothek zugreift, obwohl beide Versionen der Bibliothek unter dem gleichen Namen angesprochen werden.

An diesem Beispiel wird deutlich, wie sich bei gemeinsamen Namensräumen durch Einschleusung von Bibliotheken auf ein Laufzeitsystem mit ``last load, first use''-Semantik Maskeradeattacken durchführen ließen, indem eine Bibliothek mit neuer Semantik eine bestehende gleichen Namens ersetzt.


Da auf dynamische Laufzeitbibliotheken, ohne massive Einschränkung des generischen Ansatzes von SmA, nicht verzichtet werden kann, folgt hieraus, daß eine Trennung der Namensräume für Agenteninstanzen unabdingbar ist.

5.3.3 Abschottung zwischen Agentensystem und Agenteninstanzen

Äquivalent zur Trennung der einzelnen Umgebungen der Agenteninstanzen muß die Ausführungsumgebung des Agentensystems zu denen der Instanzen gewährleistet werden. Hierfür kommen ebenfalls die im vorhergehenden Abschnitt genannten Techniken zum Einsatz.

Insbesondere muß das Agentensystem selbst über einen eigenen Namensraum verfügen, der getrennt von jenen der Agenteninstanzen ist, was einen entsprechenden Schutz des Agentensystems selbst bewirkt. So werden vor allem Maskerade-Attacken auf Bibliotheken des Agentensystems verhindert, die eine Gefährdung des gesamten Agentensystems darstellen.


next up previous contents
Nächste Seite: 5.4 Kommunikationskanäle Aufwärts: 5. Ein Sicherheitsmodell für Vorherige Seite: 5.2 Erzwungenes Vertrauen durch   Inhalt
harald@roelle.com