• Keine Ergebnisse gefunden

2.5 Vorstellung strukturierter Peer-to-Peer-Protokolle und -Regelwerke

2.5.7 Viceroy

Viceroy [MNR02] implementiert ein f¨ur Netze mit hohem Datenaufkommen optimier-tes Overlay, in dem die Knoten wie bei Chord ringf¨ormig angeordnet sind. Zus¨atzlich existieren miteinander vernetzte Ebenen. Die entstehende Topologie wird als Butterfly-Topologie11 bezeichnet [ACE96].

F¨ur alle Bezeichner gilt m= 128. Zus¨atzlich zu seiner NodeID besitzt jeder Knoten eine Ebene (Level) l, auf der er angesiedelt ist. F¨ur einen Bezeichner ist wie in Chord der direkte Nachfolger nrhbi=succ(b) zust¨andig; auch die Distanzdefinition ist identisch.

Lookup. Jeder Knotenni speichert in seiner Routing-Tabelle maximal sieben Kontak-te:

Direkter Vorg¨anger und Nachfolger auf dem Ring:

succ(ni) undpred(ni) (Ring Pointer)

Vorg¨anger und Nachfolger auf gleicher Ebene l(ni):

nextonlevel(ni) und prevonlevel(ni) (Level Ring Pointer)

Zwei Knoten auf der n¨achsth¨oheren Ebene l(ni) + 1, sofernl(ni)6=max:

right(ni) undlef t(ni).

Einen Knoten auf der n¨achstniedrigeren Ebenel(ni)1, sofernl(ni)>1:

up(ni).

Die Kontakteright(ni),lef t(ni) undup(ni) werden Butterfly Links genannt. Ein Knoten h¨alt aber nicht nur die beschriebenen Kontakte, sondern verwaltet auch die eingehenden Zeiger anderer Knoten auf ihn selbst (Level Ring Pointer und Butterfly Links). Abbil-dung 2.11 zeigt die Vernetzung der Ebenen an einem kleinen Beispielnetz in Level- und Ringdarstellung12.

Ein Lookup nach Bezeichner bwird in drei Phasen ausgef¨uhrt:

1. Proceed to Root: Mittels der Weiterleitung ¨uber up-Links wird die Nachricht an einen Knoten auf Level 1 transferiert.

2. Traverse Tree: Uber abw¨artsgerichtete Links (right¨ oder lef t) wird die Lookup-Nachricht in Richtung des Ziels weitergeleitet, wobeilef t(ni) verwendet wird, wenn

∆(ni, b)< 1 2l(ni)

f¨ur den aktuellen Knotenni, ansonstenright(ni). Diese Phase wird beendet, wenn der ben¨otigte abw¨artsgerichtete Link nicht existiert oder ¨uber das Ziel hinaus-schießt, d.h. eine NodeID> b besitzt.

3. Traverse Ring: Diese Phase wird rekursiv durchlaufen:

11In Anlehnung an die Bezeichnung

Butterfly-Topologie“ wurde der Name Viceroy gew¨ahlt: Viceroy (Vizek¨onig) ist eine nordamerikanische Schmetterlingsart (Limenitis archippus).

12Die Abbildungen wurden mit dem Viceroy-Applet [VICAP] generiert.

(a) Level-Darstellung

(b) Ring-Darstellung

Abbildung 2.11: Beispiel: Butterfly Links in einem Viceroy-Netzwerk mit 32 Knoten

Besitzt der aktuelle Knoten die NodeID ni = succ(b), ist der Lookup erfolg-reich beendet und er sendet eine Antwort, dass er f¨urb zust¨andig ist.

Ansonsten:

– Ist nextonlevel(ni) ein Knoten im Adressraum zwischen ni und b, wird die Lookup-Nachricht an diesen ¨ubertragen.

– Liegtprevonlevel(ni) zwischenni undb, wird der Lookup an diesen ¨uber-mittelt.

– Ist beides nicht der Fall, wirdsucc(ni) oderpred(ni) kontaktiert, je nach-dem, welcher der beiden Knoten n¨aher anbliegt.

Es wird also zun¨achst auf dem gleichen Level vorangeschritten und erst in der N¨ahe des zust¨andigen Knotens f¨urb auf die Ring Pointer zur¨uckgegriffen.

Der Aufwand f¨ur einen Lookup ergibt sich zuO(log2N), da jede Phase selbst den Aufwand O(log2N) erzeugt.

Die Speicherung von Datens¨atzen erfolgt wie in Chord (|Nb|= 1).

Join. Beim Eintritt eines neuen Knotens in ein Viceroy-Netzwerk bestimmt dieser zun¨achst seine NodeID ni. Dann startet er einen Lookup nach ni und erh¨alt nrhnii = succ(ni). Von diesem bezieht er die Daten seines direkten Vorg¨angers und setzt seine Ring Pointersucc(ni) undpred(ni) =pred(succ(ni)). Vorg¨anger und Nachfolger aktualisieren zugleich ihre eigenen Ring Pointer. Im n¨achsten Schritt ¨ubertr¨agtnrhniialle Daten anni, f¨ur welche dieser nun verantwortlich ist. Der Levell(ni) wird zuf¨allig gew¨ahlt, wobei die Anzahl der zur Verf¨ugung stehenden Ebenen von der gesch¨atzten Netzgr¨oße N abh¨angt.

Zuletzt ermittelt der neue Knoten noch seine Butterfly Links: lef t(ni) ist der n¨achste

Knoten im Ring, der einen Level l(ni) + 1 hat. right(ni) ist der Knoten im Ring, der ausgehend vom Knoten

succ(ni+ 1 2l(ni))

der n¨achste auf Ebene l(ni) + 1 ist.up(ni) ist der n¨achste Peer im Ring, der auf Ebene l(ni)1 liegt. Der Aufwand f¨ur den Join istO(log2 N).

Leave. Verl¨asst ein Knoten das Netzwerk, so informiert er alle Knoten, die ihn als Ring Pointer, Level Ring Pointer oder Butterfly Pointer referenzieren; diese aktualisieren daraufhin ihre Verweise. Dann ¨ubertr¨agt er alle bei ihm gespeicherten Daten an seinen Nachfolger. Der Aufwand istO(log2 N).

Authentifizierungs- und

Autorisierungsinfrastrukturen

In diesem Kapitel werden zun¨achst die konzeptionellen Grundlagen von AAI vorgestellt, gefolgt von einer Kategorisierung und einer kurzen Einf¨uhrung in einige Beispielsysteme.

Abh¨angig von der Kategorie einer AAI bestehen spezielle Anforderungen an das zugrun-de liegenzugrun-de Datenverwaltungssystem, so dass verschiezugrun-dene AAI-Kategorien verschiezugrun-denen Paradigmen f¨ur die Datenverwaltung zuzuordnen sind. Auf Basis einer erweiterten Zer-tifikatnotation wird ein rollenbasiertes AAI-Modell hergeleitet, welches sp¨ater f¨ur die formale Modellierung (Kapitel 6) wieder aufgegriffen wird.

Die Vorstellung verschiedener AAI-Architekturen bildet einen weiteren Abschnitt. Ab-schließend wird die Status- bzw. R¨uckrufproblematik in AAI eingef¨uhrt und verschiedene Techniken zur Erzeugung von Status- oder R¨uckrufinformationen diskutiert.

3.1 Grundlagen und Definitionen

Definition 3.1 Authentifizierung

Authentifizierung ist ein Prozess, in welchem gepr¨uft wird, ob eine Entit¨at eine von ihr beanspruchte Identit¨at besitzt. Ihr Ergebnis ist die Sicherheit des Pr¨ufers dar¨uber, ob die angegebene Identit¨at authentisch der Entit¨at zugeordnet werden kann.

Ein Beispiel aus der Realit¨at ist die Authentifizierung einer nat¨urlichen Person mit Hilfe ihres Personalausweises. Die enthaltenen Personendaten und das Lichtbild erm¨oglichen einem Pr¨ufer den Abgleich zwischen der realen Person und der Identit¨at, die im Perso-nalausweis zertifiziert ist.

Die Entit¨at, deren Identit¨at gepr¨uft wird, muss nicht zwingend eine Person sein. Beispiels-weise kann sich auch ein Computersystem gegen¨uber einem anderen authentifizieren, z.B.

im Rahmen von IPSec oder SSL [AlS04]. Weiterhin kann sich die Authentifizierung auf ein Pseudonym beziehen, d.h. es muss nicht zwangsl¨aufig eine reale Identit¨at verwendet werden - auch frei w¨ahlbare Benutzernamen oder Rechnernamen sind m¨oglich, solange sie einer Entit¨at zweifelsfrei zuordenbar sind.

Definition 3.2 Autorisierung

Autorisierung ist ein Prozess, in welchem gepr¨uft wird, ¨uber welche Berechtigungen eine 37

Entit¨at im Rahmen einer definierten Umgebung verf¨ugt. Ihr Ergebnis ist die Sicherheit des Pr¨ufers dar¨uber, welche Aktionen eine Entit¨at ausf¨uhren darf.

Die Autorisierung dient dann als Entscheidungsgrundlage f¨ur den Pr¨ufer, ob die Anfrage der betreffenden Entit¨at nach Ausf¨uhrung einer Aktion (z.B. eines Online-Einkaufs) oder nach dem Zugriff auf bestimmte Daten (z.B. auf eine elektronische Zeitschriftenbiblio-thek) positiv beantwortet wird.

F¨ur die sichere Durchf¨uhrung der Autorisierung ist es unerl¨asslich, dass die zu autorisie-rende Entit¨at zuvor authentifiziert wurde. Ansonsten kann kein Abgleich zwischen dem Inhaber der beanspruchten Rechte und der Entit¨at selbst erfolgen.

Definition 3.3 Authentifizierungs- und Autorisierungsinfrastruktur (AAI):

Eine Authentifizierungs- und Autorisierungsinfrastruktur ist ein System von Protokollen, Regeln, Daten, technischen Gegebenheiten und Methoden, welches die Dienste Authen-tifizierung und Autorisierung (A&A) von Entit¨aten gegen¨uber Pr¨ufern, z.B. Ressour-cenanbietern, erm¨oglicht und die daf¨ur notwendigen Daten speichert, verwaltet und zur Verf¨ugung stellt.

Authentifizierungs- und Autorisierungsinfrastukturen sind ein junges Forschungsgebiet, das erst seit dem Jahr 2000 intensiv wissenschaftlich bearbeitet und weiterentwickelt wird.

Viele in diesem Rahmen entstandene Systeme sind bislang noch im Forschungs- und Entwicklungsstadium und nicht oder nur vereinzelt im praktischen Einsatz. AKENTI [AKENT] und PERMIS [PERMI] realisieren nur den Autorisierungs-Anteil der AAI in Form einer zertifikatbasierten Privilege-Management-Infrastruktur und verlangen die Kombination mit einem Authentifizierungssystem wie z.B. Kerberos [KERBE] oder FPKI [FPKI]. SDSI/SPKI [ACM02] [RiL96] hingegen bietet sowohl Authentifizierung als auch Autorisierung auf Basis von Zertifikaten.

SESAME [SESAM] ist ein europ¨aisches AAI-Forschungsprojekt, welches ein Framework f¨ur die Entwicklung konkreter AAI-Produkte bereitstellt, wie beispielsweise von der Fir-ma CoFir-march angeboten [COMAR]. Microsoft .NET Passport [PASSP] wird als Single-Sign-On-L¨osung f¨ur Authentifizierung und Autorisierung auf vielen Internetplattformen genutzt. Das schwerpunktm¨aßig f¨ur die Anwendung im Bildungsbereich entwickelte AAI-System Shibboleth [SHIBB] wird z.B. im Rahmen der InitiativeSwitch AAI als gemein-same AAI f¨ur alle Schweizer Universit¨aten [SWITC] und im Projekt AAR [AAR] der Universit¨atsbibliotheken Freiburg und Regensburg verwendet. AAR soll ab 2008 zur Kon-trolle von Zugriffsrechten auf elektronische Zeitschriften eingesetzt werden.

Aufgrund der allgemein zunehmenden Digitalisierung von Diensten in der Verwaltung wissenschaftlicher und ¨offentlicher Einrichtungen und auch in der Wirtschaft, z.B. im Bankensektor oder im E-Commerce, und der gestiegenen Sicherheitsanforderungen an solche Dienste ist mit einer zunehmenden Verwendung von AAI zur Realisierung von Zugriffs- und Berechtigungskontrollen zu rechnen.