You are on page 1of 84

Diplomarbeit

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern

Institut f¨r Angewandte Mikroelektronik und Datentechnik u Universit¨t Rostock a

Diplomarbeit

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern
Christoph Becker 20. September 2006

Gutachter:
Prof. Dr.-Ing. Ralf Salomon Universit¨t Rostock a Dipl.-Ing. Sebastian Staamann PrismTech GmbH

Danksagung

Ich bedanke mich bei Prof. Ralf Salomon f¨r die gute Betreuung der Arbeit. u Der Firma PrismTech, insbesondere Sebastian Staamann m¨chte ich f¨r o u das in mich gesetzte Vertrauen und die hilfreiche Unterst¨tzung danken. u Ein herzliches Dankesch¨n verdienen Nicolas Noffke f¨r seinen jederzeit o u sachkundigen Beistand und Thomas Bertow f¨r sein unendliches Reperu toire an aufmunternden Worten w¨hrend der gesamten Bearbeitung. a Allen namentlich nicht erw¨hnten Mitarbeitern von PrismTech Berlin, die a mir bei kleineren oder auch gr¨ßeren Problemen zur Seite gestanden hao ben, m¨chte ich ebenfalls f¨r ihre Hilfsbereitschaft danken. o u Ein besonderer Dank geb¨hrt meiner Lebensgef¨hrtin f¨r ihre moraliu a u sche Unterst¨tzung, ihr Verst¨ndnis und die unerm¨dliche Motivationsbeu a u reitschaft. Meinen Eltern danke ich, weil sie nie das Vertrauen in mich und meine Arbeit verloren haben und wie viele Freunde oft auf mich verzichten mußten.

i

Inhaltsverzeichnis

1 Einleitung 1.1 1.2 1.3 Thematischer Hintergrund . . . . . . . . . . . . . . . . . . . Motivation und Zielstellung . . . . . . . . . . . . . . . . . . Gliederung der Arbeit . . . . . . . . . . . . . . . . . . . . .

1 2 3 3 5 5 10 11 15 17 19 19 22 25 27 28 35 39 41 45 48

2 Grundlagen 2.1 2.2 2.3 2.4 2.5 Was ist CORBA . . . . . . . . . . . . . . . . . . . . . . . . Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . Sicherheitsanforderungen . . . . . . . . . . . . . . . . . . . . Angriffsszenarien . . . . . . . . . . . . . . . . . . . . . . . . Bestehende L¨sungen . . . . . . . . . . . . . . . . . . . . . . o

3 Material, Methoden und Werkzeuge 3.1 3.2 3.3 Betrachtete Produkte . . . . . . . . . . . . . . . . . . . . . Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Ergebnisse 4.1 4.2 4.3 4.4 4.5 4.6 MICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ORBacus . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orbix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sun ORB . . . . . . . . . . . . . . . . . . . . . . . . . . . . Visibroker . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weblogic . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii

. u A. . .8 WebSphere . . . . . . . . . . . . . . . . . . . . . . L¨sungsm¨glichkeiten . . . . . . .Inhaltsverzeichnis 4. . . . . .2 5. . . . . . . . . . . . . . . . . . . . . . . .7 4. . . . . . . . . . . . . . . . . . . . . . . a u 51 53 56 56 58 60 63 65 65 69 5 Diskussion 5. u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern iii . . .1 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o 6 Zusammenfassung A Anhang A. . . a Machbarkeitsstudie . . . . . .1 Quelltextausz¨ge . . . Komplexit¨t der Objektschl¨ssel . . . . . . . . . . .2 Aufbau der Objektschl¨ssel . . . . . . . .3 Komplexit¨t . . . . . . .

. 20 29 29 31 31 36 36 36 37 39 40 40 42 43 43 46 46 47 49 50 51 53 4. . . . . . .1 4. . . . . . . . . . . . . . . . . . .3 4. . . . . . . . . . . . u 4. Transiente MICO Objektschl¨ssel . . . . .8 4. . . . . . . . . . . Transienter ORBacus Objektschl¨ssel . . . . . 4. . . . u 4. .5 4. . .2 4. . . . . . . Transiente Schl¨sselteile verschiedener POAs . u 4. . . . . . . .20 Transienter WebSphere Objektschl¨ssel . . u Persistente MICO Objektschl¨ssel .1 4. .18 Transienter Weblogic Objektschl¨ssel . . . . .16 Persistenter Visibroker Objektschl¨ssel . . u 4. . . .Tabellenverzeichnis 3. . .11 Orbix . . . iv . . . . . . . . . .7 4. . . . . . . . . . . 4. . . . .4 4. . . . . . . . .21 Vergleich der Objektschl¨sselkomplexit¨t u a . Kodierung . u Persistente MICO OKs in POA-Hierarchie . .17 Visibroker Zeitstempel . . . . . . . . u Teile transienter ORBacus Objektschl¨ssel u . . . . . a 4.verschiedene POAs .15 Transienter Visibroker Objektschl¨ssel . u 4. . . . . . . . . . . . . . . . . . . . . . u Zwei Transiente Orbix Objektschl¨ssel . u 4. . . . . . . . u Transiente MICO Objektschl¨ssel mehrerer POA . . . . . . . . . . . . . . . . . . . .13 Transiente SUN Objektschl¨ssel verschiedener POA . . . . . . . . . . . . .12 Transienter SUN ORB Objektschl¨ssel . . .6 4. .9 ¨ Ubersicht der benutzten Request Broker . . . .10 Orbix Objektschl¨sselabschnitte u 4. . . . u . . . . . . . . . . . . . . . . . . . . u Persistenter ORBacus Objektschl¨ssel . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . .14 SUN POA-Namen. . . .19 Weblogic Objektz¨hler . . . . . . .

22 Umrechnung Komplexit¨t in Zeitaufwand . . . . . . . .Tabellenverzeichnis 4. . . a 55 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern v .

. Komponenten der corbaloc-URL . . . . . . . . u Aufbau persistenter Visibroker-Objektschl¨ssel . . . . . .1 2. . . . . . . . .1 4. . u Aufbau von SUN-ORB Objektschl¨sseln . . . . .7 4. . . . .10 Aufbau transienter WebSphere-Objektschl¨ssel . . . . . . . . . . .8 4. . . . . .9 Scheinbarer und tats¨chlicher Weg eines Objektaufrufs . . . . . . u Aufbau transienter Visibroker-Objektschl¨ssel . a Aufbau einer Interoperablen Objektreferenz . . . . .2 4. . . . . . . . . . . . . . . . . . . . u Aufbau persistenter MICO-Objektschl¨ssel . u vi . . . . . u Aufbau transienter ORBacus-Objektschl¨ssel . . . . .4 4. .6 4. . . . . u 6 8 16 24 30 31 37 38 41 44 47 48 50 52 4. . . . . . . . . . . . . . . . . . . u Aufbau Orbix-Objektschl¨ssel . . Aufbau transienter MICO-Objektschl¨ssel . . . . Anordnung der POA .Abbildungsverzeichnis 2. . . .2 2. . u Aufbau transienter Weblogic-Objektschl¨ssel . . . . . . . . . . . .3 3.1 4. . .5 4.3 4. . . u Aufbau persistenter ORBacus-Objektschl¨ssel . .

Fachbegriffe wera den aus dem Deutschen benutzt. die aus der CORBA Spezifikation stammen o und damit auch die darauf basierende Literatur pr¨gen. sowie die Testprogramme die nachfolgend benannt werden. wenn dies m¨glich und sinnvoll ist. werden die verbreiteten englischen Begriffe und Namen verwandt. Die Zugriffssteuerung innerhalb dieser Systeme findet mit Hilfe von Objektreferenzen statt. Dies betrifft in der Hauptsache die W¨rter. Um Problemen mit Begriffsdefinitionen aus dem Weg zu gehen. o Alle Quelltexte und viele der erzeugten Analysedaten.Einleitung 1 Diese Arbeit befasst sich mit der Sicherheit von verteilten Systemen die auf CORBA basieren. In dieser Arbeit werden die Implikationen betrachtet. Diese erm¨glichen den Zugriff o auf andere Objekte innerhalb des Gesamtsystems. befinden sich vollst¨ndig auf a der beigelegten CD-ROM. 1 . die durch die Vergabe dieser Referenzen entstehen und die Erzeugung der Objektreferenzen untersucht.

Andererseits kann der mehrfache Einsatz gleichartiger Systeme die Ausfallsicherheit erh¨hen.1 Einleitung 1.1 Thematischer Hintergrund Viele Informationssysteme werden heute als verteilte Systeme realisiert. Setzt beispielsweise eine Bank CORBA ein. Einserseits k¨nnen mehrere Rechner f¨r die Erledigung einer Aufgabe zu o u deren Beschleunigung benutzt werden. Sie ist eine weit verbreitete und uber die Jahre gereifte ¨ Architektur f¨r verteilte Systeme1 . o u 1 engl. Die konkrete Realisierung dieser Archiu tektur sind Object Request Broker (ORB). a a Der Anwendungsprogrammierer muss sich nicht mehr um einzelne Protokolle und deren Spezifikation k¨mmern um eine verteilte Anwendung entu wickeln zu k¨nnen. 15] in heterogenen Netzen. Die ORB vermitteln als sogenannte Middleware zwischen mehreren Systemen und vermindern die aus dem Konzept heraus entstehende Komplexit¨t auf ein ertr¨gliches Maß. so ist es nicht nur f¨r o u die Bank wichtig. Eines dieser Konzepte ist die Common Object Request Broker Architecture (CORBA). beispielsweise zur Berechnung komplizierter Sachverhalte wie Wetterprognosen. Durch den Einsatz verteilter Systeme und deren weite Verbreitung muss besonders großer Wert auf die Sicherheit gelegt werden. Durch o die Vervielfachung der Systemkomponenten erh¨ht sich auch die Kompleo xit¨t. um die Auszahlungen ihrer Geldautomaten erfassen zu k¨nnen. sondern auch f¨r den Kunden. Ein verteiltes System ist nach [TvS03] ein Zusammenschluss unabh¨ngiger a Computer. welches sich f¨r den Benutzer als ein einzelnes System pr¨senu a tiert. um Risiken zu minimieren.: distributed computing Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 2 . Um die Systemkomplexit¨t beherrschen zu k¨nnen. dass diese Transaktionen nachvollziehbar sind und nicht manipuliert werden k¨nnen. CORBA selbst spezifiziert im Wesentlichen eine Ordo ” nung zur Realisierung verteilter objektorientierter Anwendungen“ [Say97. wurden neuara a o tige Softwarekonzepte entwickelt. S.

SUN-ORB. illegalen o Zugriff auf entfernte Objekte zu erhalten.2 Praktisch w¨rde dies bedeuten. wie Interoperable Objeku tereferenzen. WebLogic-ORB und WebSphere-ORB verwenden und analysieren. 1. wurde durch mich autorisiert? Im Rahmen dieser Arbeit wird untersucht. nur ist dies nicht der Gegenstand dieser Arbeit. inwiefern die Beschaffung typischerweise nicht gesch¨tzter Informationen. Orbix. Daraus resultierend wird der hierbei durchschnittlich ben¨tigte Aufwand (Zahl der n¨tigen Versuche oder gesch¨tzte Zeit) ero o a mittelt. folgen.3 Gliederung der Arbeit Die Arbeit beginnt mit einer kurzen Einf¨hrung in CORBA und erkl¨rt. Um die praktische Relevanz der theoretisch ermittelten Risiken beurteilen zu k¨nnen. Niemand sonst? Jeder der meine Adresse bekommt. Als repr¨sentative Untersuchungsobjekte wird die Arbeit g¨ngige a a ORB-Produkte wie MICO. es erm¨glicht. die verschiedenen L¨sungsans¨tzen. die Stadtverwaltung und alle von mir benachrichtigten Personen bei einem Umzug meine neue Adresse erhalten. werden Werkzeuge entwickelt. u a was Objektreferenzen sind und woher diese stammen. der Diskussion u 2 Nat¨rlich existiert auch die M¨glichkeit uber einen Namensdienst oder ein Implemenu o ¨ tation Repository eine Referenz zu erhalten. illegal Zugriff auf entfernte. dass ein Zugriff auf CORBA-Objekte nur durch zuvor autorisierte Personen oder Systeme mittels ubergebener ¨ Objektreferenzen stattfinden kann. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 3 . VisiBroker. dass u nur die Polizei.1 Einleitung 1. Im Anschluss daran befinden sich die Ergebnisse der einzelnen Analysen die wiederum im f¨nften Kapitel. die versuchen. Im Anschluss an die Vorstellung dieser Werkzeuge werden Vorschl¨ge zur Verbessung der Sicherheit a ¨ gemacht. mit und ohne Anderungen o a an bestehenden Systemen.2 Motivation und Zielstellung Bis heute ist die Annahme verbreitet. In Kapitel drei werden die untersuchten Programme und die f¨r diese Arbeit notwendigen u Methoden betrachtet. verteilte Systeo mem zu erlangen.

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 4 . Eine Machbarkeitsstudie und deren Ergebnis sind ebenso Teil dieses Kapitels. Die Arbeit schließt mit den u letzten Worten der Zusammenfassung.1 Einleitung zusammengefasst und diskutiert werden. wie L¨sungsvorschl¨ge zur o a Beseitigung der ermittelten Sicherheitsl¨cken.

kurz ORB. Hauptbestandteil des CORBA Standards ist der Object Request Broker.org Middleware wird im Deutschen gelegentlich als Integrationsplattform bezeichnet. sogenannte Objektfernaufrufe3 durchf¨hren zu k¨nnen. standardisierte Architektur zum Aufbau verteilter Systeme.: remote method invocation) 2 1 5 . CORBA ist die Middleware-Plattform2 der OMG. einem internationalen nicht gewinnorientierten Gremium.Zweifel zu haben ist ein unangenehmer. Er tritt als Vermittler auf und versetzt Systemkomponenten (Programme oder deren Teile) in die Lage. Die Hauptziele der OMG sind die Entwicklung und Standardisierung von Softwarekonzepten. sich in Sicherheit zu wiegen ein absurder Zustand.omg. 3 auch bekannt als RMI (engl.1 Was ist CORBA Die Common Object Request Broker Architecture ist eine durch die Object Management Group 1 (OMG). Voltaire Grundlagen 2 2. u o Die einzelnen Systemkomponenten kennen weder den eigenen Standort im http://www.

wie sie auch ohne CORBA miteinander interagieren w¨rden. eine Art Registratur.1 zeigt den prinzipiellen Aufbau eines CORBA-Systems und den Weg. interagieren sie so. Im Folgenden sei der Einfachheit halber angenommen. 5 ISO 14750 6 Beispielsweise C++. noch den des Kommunikationspartners. Das Skeleton simuliert f¨r den Server das Clientobjekt bzw. den sogenannten Stub. u 4 In der Literatur auch als Ortstransparenz [HJS01. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 6 .6 Abbildung 2. als w¨rde der Client direkt mit ihm kommunizieren. Aus Sicht der Objekte. bei der das Serverobjekt vom Programmierer angemeldet wurde. Der Client stellt seine Anfrage in CORu BA aber an einen Stellvertreter des Serverobjektes. ¨ dass der ORB die Adresse des Zielobjektes kennt. 12] bezeichnet. dass die Anfrage dann an das Serverobjekt stellt.2 Grundlagen Gesamtsystem. S. Mit IDL ist eine einfache Abstraktionsprache gefunden worden. dessen Schnittstellen.4 Ein weiterer Bestandteil ist die Interface Definition Language 5 (OMG IDL) als abstrakte Sprache zur Schnittstellenbeschreibung. den ein Objektaufruf nimmt. S.1: Scheinbarer und tats¨chlicher Weg eines Objektaufrufs a Abbildung 2. Dem Server eru scheint ein Aufruf so. 14] oder location transparency“ ” [Sie96. Ein Clientobjekt will auf die von einem anderen Objekt (Server) bereitgestellte Funktionalit¨t zugreia fen. Dieser setzt die Anfrage in ein generisches ORB-Format um und ubergibt ¨ sie an den ORB. Java oder Python. 306][BVD01. S. Der POA leitet die Anfrage an ein Stellvertreterobjekt (Skeleton) weiter. Uber diese Addresse findet er den passenden Portable Object Adapter (POA). die jederzeit ein Quelltextgrundger¨st f¨r u u eine Anwendung in vielen Programmiersprachen erzeugen kann.

2 Grundlagen H¨tte der ORB keine Addresse f¨r das Zielobjekt erhalten. Dadurch erh¨lt es innerhalb des POAs eine eindeua tige Addresse. Wo kommen Stubs und Skeletons her? Die in der Interface Definition Language verfassten Objektdefinitionen werden mit Hilfe eines IDLCompilers in Quelltexte f¨r die jeweils gew¨nschte Programmiersprache u u umgewandelt. sind Teil einer Dom¨ne. ohne sich auf Transportprotokolle festzulegen [BVD01. anhand des vom Client verlangten Objekttyps o (TypeId bzw. Deshalb kommt f¨r die Kommunikation dieser verteilten Systeme o u das General Inter-ORB Protocol (GIOP) zum Einsatz. Diese. es ist die Anschrifft des Objeku tes innerhalb des ORBs7 . auch Ger¨ste genannten Quelltexte. 128][OMG04.1 von einem Objekt zum anderen vermittelt werden kann. so gibt es in a u CORBA die M¨glichkeit. 15. Das Internet Inter-ORB Protocol (IIOP) ist eine GIOP-Erg¨nzung. S. Mit ihm ist ein Zugriff auf das Objekt m¨glich. 81f]. also von ihm erzeugt o wurden. RepositoryId ) ein passendes Objekt heraus zu suchen. Doch wo wird die Adresse festgelegt? Zun¨chst wird ein Serverobjekt bei einem Objektadapa ter (POA) registriert. Damit die Anfrage in Abbildung 2. GIOP definiert ein einfaches Format. muss diese adressiert werden. o Damit Objektaufrufe in verteilten (und gegebenenfalls vernetzten) Systemen funktionieren. a die GIOP auf TCP/IP abbildet [Kli00. Der POA selbst ist innerhalb des ORB ebenfalls eindeutig identifizierbar. dienen beim Obu jektaufruf dazu.2]. Dies geschieht in der Regel durch einen Namen. a a a 8 engl. Man bezeichnet diese h¨ufig auch als ORB-Dom¨ne. dem Client die Schnittstelle des Servers zur Verf¨gung u stellen zu k¨nnen und umgekehrt. Damit u o (wie in Abbildung 2.1) Client 1 und Client 2 auf das Serverobjekt zuAlle Objekte und Objektadapter die zu einem ORB geh¨ren. m¨ssen die Vermittler miteinander kommunizieren u k¨nnen. Die Objektadresse innerhalb eines ORB ist der Objektschl¨ssel 8 . um Anfragen und Antworten von Client und Servant zu transportieren. Dieser Mechanismus wird uber ein Implementation Repository bereitgestellt und ¨ ist optional. S. Der ORB erzeugt f¨r jedes Objekt eine Adresse.: object key 7 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 7 .

u u Die Definition der IOR ist im Anhang in den Quelltexten A. ist eine ORB-¨bergreifende Adressierung notwendig. Bei ihm k¨nnen Kind-POAs o registriert werden.9 Der Fokus dieser Arbeit liegt auf dem Objektschl¨ssel (rot) innerhalb der u IOR.2 graphisch dargestellt. IdAssignmentPolicy 11 LifespanPolicy 10 9 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 8 . wie der POA Objekte benennen. Zur Veranschaulichung ist die IOR in Abbildung 2.2: Aufbau einer Interoperablen Objektreferenz F¨r die Generierung jedes Objektschl¨ssels ist der jeweilige Portable u u Object Adapter (POA) verantwortlich. An einem Objektadapter (POA) k¨nnen nicht nur Objekte. F¨r o u u diese Adressierung und Zustellung von Anfragen uber ORB-Grenzen hin¨ weg und zur Zusammenarbeit mit den ORB anderer Hersteller. Bei der Namensgebung unterscheidet man zwischen vom System vergebenen Objektschl¨ssel und vom Benutzer vergebenen Objektschl¨sseln. o wodurch der Aufbau einer Hierarchie m¨glich ist. also den Objektschl¨ssel erzeugen soll10 und wie der Lebenszyklus11 der Objekte definiert u ist.1 und A. In IIOP existieren die Objektschl¨ssel als Bestandteil einer Inteu roperable Object Reference (IOR). sondern auch andere POA registriert werden. wird IIOP benutzt. der Interoperablen Objektreferenz. Diese legen fest.2 zu finden. Abbildung 2. Objektadapter werden mit sogenannten Policies initialisiert.2 Grundlagen greifen k¨nnen. Die Wurzel dieser Hiero archie bildet immer der sogenannte RootPOA.

u auf dem das Objekt zu finden ist. Um einen u Eindruck davon zu bekommen. Aktiv heisst in diesem Kontext. als der POA.[OMG04.6.8. automatisch durch diesen aktiviert. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 9 . 13. Der Erste o a nennt sich transient und bedeutet. Ein Beispiel12 f¨r eine corbaloc-Adresse ist: u corbaloc:iiop:1. dabei werden Objekte. Persistent o nennt man Objekte. wie eine IOR aussieht.10. steht 555xyz. Daneben bezeichnet mypoa/object0001 12 Das Beispiel ist fiktiv.2] Des Weiteren befinden sich Objekte im aktiven“ oder inakti” ” vem“ Zustand.3.1 dem Protokoll und desa sen Version entspricht.6. auch das f¨r u Menschen besser verst¨ndliche corbaloc URL-Format [OMG04. dass das Objekt benutzt werden kann und nicht. ist nachfolgend eine IOR eines ORBacus Objektes abgebildet: IOR:000000000000001749444c3a48656c6c6f4170702f48656c6c6f3a312 e30000000000001000000000000007800010200000000166c6f63616c686f 73742e6c6f63616c646f6d61696e00975a0000002aabacab3131313436343 233313539005f526f6f74504f41006e756c6c0000cafebabe445507770000 0000000000000001000000010000001c00000000000100010000000200010 020050100010001010900000000 Um auf ein Objekt zu verweisen kann alternativ zur IOR. dass es aktiv etwas tut.2 Grundlagen Objekte haben ferner zwei m¨gliche vorbestimmte Lebensl¨ufe. die l¨nger existieren k¨nnen. Meist wird die sogenannte Implizite Aktivierung benutzt.1] a benutzt werden.com/mypoa/object0001 W¨hrend corbaloc: dem Format und iiop:1. a o 11.9]. 13.1@555xyz. dass das Objekt aufh¨rt zu existieren. Wie gelangt man an die Objektreferenzen um diese weitergeben zu k¨nnen? Durch die ORB-Funktionen object to string() und string to o object() kann eine Objektreferenz in eine Zeichenkettenform und wieder zur¨ck in eine Referenz konvertiert werden [OMG04.com f¨r die Addresse des Rechners. o wenn der POA bei dem es registriert wurde aufh¨rt zu existieren. wenn sie bei einem POA registriert werden.

2 Grundlagen das Objekt. es wird weder SSL noch eine andere Verschl¨sselung u benutzt. also der Datentransport. Zun¨chst ben¨tigt der Client eine M¨glichkeit. mitgeteilt wird. wurde die Common Data Representation (CDR) eingef¨hrt. dass ein Objektaufruf mit Hilfe des Objektschl¨ssels in der IOR u u oder der corbaloc Adresse auch an die richtige Inkarnation eines Objektes weitergeleitet wird. Er hat a nun alle notwendigen Daten. 2. Das heisst.2 Anwendungsbeispiel ¨ Die Ubermittlung der aktuellen Messdaten einer Wetterstation erfolgt beispielsweise zwischen Client und Server. o Der Zugriff ist uber die IOR gew¨hrleistet. Dieser a ¨ k¨mmert sich selbstst¨ndig um die R¨ckwandlung dieser Daten. der mit einer Datenbank gekoppelt ist. Der Einfachheit halber kann man annehmen. die auf jeweils verschiedenen Rechnern laufen. Der POA und der ORB sorgen ¨ daf¨r. soll mit Hilfe von CORBA realisiert werden. Somit u a u entstehen keine Probleme mit der Anordnung der Bytes (Little vs Big Endian) und der Datenstrom ist klar definiert. den Server physisch zu a o o erreichen. wobei es sich um den Objektschl¨ssel handelt. Zwischen beiden besteht eine ungesicherte Netzwerkverbindung. Die Daten¨bermittlung soll von dem in der Wetterstation beu findlichen Client auf den Server. Der logische Zugriff. um mit dem Server interagieren zu k¨nnen. Der Client-ORB wandelt alle Daten in u dieses Format um und ubertr¨gt sie an den ORB der Gegenseite. Er kann Inu formationen uber seinen POA enthalten. Damit ein Objektaufruf zwischen ORB verschiedener Hersteller auf verschiedenen Rechnerarchitekturen funktioniert. Diese Teststellung w¨re unter anderem f¨r eingebettete Systeme a u realistisch. Desweiteren geht man davon a ¨ Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 10 . die die IOR enth¨lt. erfolgen. Der Client ben¨tigt also die Adresse des Servers in Form der Objektreo ferenz. Diese ist durch die Netzwerkverbindung gesichert. dass dem Client die Adresse in Form einer Datei.

welches eine IOR besitzt oder dass die Vergabe einer IOR eine Autorisierung darstellt. Diese Anforderungen sind gleichzeitig auch Ziele. Im Besonderen interessieren Anforderungen an die Zugriffssicherheit wie Autorisierung und Authentifikation. diese Dienste in Anspruch zu nehmen oder der Server geeignete Mechanismen besitzt. Das Vorlegen o Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 11 . 2. 2. a Im Bereich eingebetteter Systeme geht man oftmals davon aus. ob und wie Dritte (z. Dies wirft nat¨rlich die Frage auf. an eine g¨ltige Objektreferenz o u zu gelangen. B. Findet eine Autorisierung statt? Wenn ja wie? Wie sicher ist diese und kann sie umgangen werden? Analoge Fragen stellen sich auch zur Authentifikation. Jedoch besteht ein Unterschied insofern. die bei der Integration der Software zu erreichen sind. Dieser Umfang ist jedoch nicht immer erw¨nscht u oder zweckm¨ßig. dass es mit vertretbarem Auswand nicht m¨glich ist. Identifizierung und Authentifikation werden oft synonym benutzt. eine Berechtigung zu pr¨fen.3. Diese Annahme ist als implizite Autorisierung bekannt und basiert auf der Annahme. Derartige Kontrollmechanismen ben¨tigen h¨ufig eine umfangu o a reiche Implementierung.2 Grundlagen aus.1 Authentifikation Authentifikation ist die Indentit¨ts¨berpr¨fung (oder -kontrolle) einer Gea u u genstelle.3 Sicherheitsanforderungen An informationsverarbeitende Systeme werden heute hohe Sicherheitsanforderungen gestellt. dass dasjenige Objekt autorisiert ist. dass bei der Authentifikation eine Identit¨t uberpr¨ft wird und bei der Identifizierung nur das a ¨ u Vorhandensein einer Indentifizierungseigenschaft n¨tig ist. dass entweder der Client berechtigt ist. Angreifer) u ¨ ohne legitime Ubergabe einer IOR in deren Besitz gelangen k¨nnen und o somit Zugriff auf das entsprechende Objekt erhalten.

es sei denn.13 Sie kann explizit oder implizit erfolgen. die PIN). dem das signierte Zertifikat vorgelegt wird. Eine Certification Authority (CA) kontrolliert die Identit¨t des Antragstellers und best¨tigt mit a a der eigenen Signatur. die a des Antragstellers ist. Diese Form der Autoriu ¨ sierung setzt Authentifikation voraus. Dies ist das Prinzip des vera trauensw¨rdigen Dritten. dass der Polia u u zist der Ausgabestelle des Personalausweises und dem Dokument an sich.org/wiki/Autorisierung. Beispiel: PIN. Zu beachten ist hierbei. via Wissen (man u ¨ weiß etwas. der die Identit¨t best¨tigt hat. Verbindlichkeit oder Autorisierung.2 Grundlagen eines Personalausweises ist beispielweise die Identit¨tsbehauptung (Indena ¨ tifikation).man hat etwas.3. es gibt die Zulassung f¨r u 13 http://de. wenn zwei dieser M¨glichkeiten kombiniert werden (Beispiel: o Geldautomat . dass ein Mechanismus einem Nutzer (oder auch einem Prozess) den Zugriff auf ein definiertes Objekt erlaubt hat. Die verbeitete 2-Faktor-Authentifizierung findet statt. 20. Stand 09:54. Zum a ¨ einen uber Besitz (man hat etwas wie einen Schl¨ssel). Dies kann gegebenenfalls uberpr¨ft werden.wikipedia. die Karte und man weiss etwas. a Der Nachweis der eigenen Identit¨t kann uber viele Wege erfolgen. die Korrektheit der CA-Signatur zu uberpr¨fen. die Uberpr¨fung durch einen Polizisten hingegen eine Authenu tifizierung (Identit¨ts¨berpr¨fung). Dies wird beiu a a spielsweise bei SSL-Zertifikaten so gehandhabt. 2. dass die im Zertifikat vorgegebene Identit¨t. dass heisst dessen Integrit¨t trauen muss. Explizite Autorisierung bedeutet. muss der CA trauen und Mechanismen besitzen.2 Autorisierung In der Informationstechnologie bezeichnet Autorisierung die Zuweisung ¨ und Uberpr¨fung von Zugriffsrechten auf Daten oder Diensten an Nutu zern. Passwort) oder uber k¨rperliche (biometrische) o ¨ Merkmale (man ist/kann etwas). Jul 2006 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 12 . Derjenige. Dann kann er auch der vorgelegten Inu ¨ dentit¨tsbehauptung trauen. Authentifizierung ist die Grundlage f¨r andere Anforderungen wie Veru traulichkeit.

wird meist Role Based Access Control 15 (RBAC) eingesetzt. in denen es trotzdem Sinn hat die eigene Identit¨t zu beweisen. Ein Kassenpr¨fer wird aber auch als Angestellter gef¨hrt .ubt u u u ¨ also auch diese Rolle aus.3. dass die VergaWenn anonym Zugriff erlangt werden kann. sondern seine Aufgabe und die daf¨r n¨tigen Rechte. u o Mit Rollen k¨nnen auch sogenannte Rollenhierarchien erzeugt werden. u 2. dass die Subjekte (Nutzer) nur in die f¨r sie vorgesehenen Rollen schl¨pfen k¨nnen. durch a u den er Zutritt zu allen R¨umen mit Ausnahme der B¨ror¨ume eines B¨roa u a u hauses hat. S. sei unbestritten. Ein Firmenchef. a 15 Oftmals Rollenbasierte Systeme genannt. Es muss nun sichergestellt werden. der eine Etage gemietet hat.[Eck06. Er hat in der Rolle des Angestellten auch das Recht. Die Rechte des Hausmeisters a a resultieren aus seinen Aufgaben und begr¨nden sich nicht auf die Person u an sich. Dass Anwendungen denkbar sind.14 u Zur Vereinfachung von Autorisierungsmechanismen. dass Berechtigungen zur Nutzung gesch¨tzer Komponenten dieu rekt an Rollen bzw. Der u u o Nutzer selbst steht im RBAC nicht im Mittelpunkt.2 Grundlagen anonyme Benutzer. Als Beispiel einer Rollenhierarchie bekommen in einer Bank bekommen alle Angestellten einen Hausschl¨ssel. Die Aufgaben werden durch u die Rollen modelliert. Dem Rollensystem liegt die Idee zugrunde. 245] 14 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 13 . bekommt Zugang zum Geb¨ude und allen gemieteten R¨umen. einen Hausschl¨ssel zu besitzen.3 Verbindung zu CORBA Bei der Realisierung von CORBA-basierten Applikationen wird von Anwendungsprogrammierern oftmals die Annahme gemacht. o Explizite Autorisierung auf einer Hierarchiestufe kann eine implizite Autorisierung auf anderen Hierarchiestufen bewirken. Aufgaben gekn¨pft ist. so ist eine Authentifikation der eigenen Person prinzipiell sinnfrei. aber nur Kassenpr¨fer einen Tresoru u schl¨ssel. Beispiel einer Rolle: Ein Hausmeister erh¨lt einen Generalschl¨ssel. Dieser Fall kann Autorisierung an sich ad absurdum f¨hren.

Eine Objektreferenz kann ebenfalls als Capability angesehen werden. Siehe u RFC4120. S. Er k¨mpft also mit den Schw¨chen einer a a auf Capabilities basierenden Autorisierung.und Stehpl¨tze). a ¨hnlich einer Capability darstellt. Kerberos kann beispielsweise auch beim sogenannten Single-Sign-on benutzt werden. So u kann man auf weitere Authentifizierungsmaßnahmen verzichten. Diese Information ist auf der Kara te vermerkt. Um die Capabilities f¨lschungssicher a zu machen. 17 http://www. Der Veranstalter versucht u aber f¨lschungssichere Farbb¨nder zu produzieren. die sich nicht vom Bea a sucher (Subjekt) trennen lassen. k¨nnen o sie in einfacher Weise weitergegeben werden. so erh¨lt man das Recht zur Interaktion mit diesem Objekt. Ein weiteres Einsatzgebiet f¨r Zugriffsausweise ist Kerberos16 . Ein gr¨nes Band ist nun der Ausweis f¨r den VIP Status. der Zugriff auf das benannte Objekte gestattet und gleichzeitig auch die Berechtigungen regeln kann. das den Zugang zu gesch¨tzen Systemen kontrolliert. or why capabilities might have been inven” ted“ 17 . Eine Capability ist nach [Eck06. dass eine Objektreferenz illegal erlangt werden kann. Eiu u ne erneute Berechtigungspr¨fung erfolgt nicht. wenn keine a Kerberos ist ein Protokoll. Ein nach u der Authentifizierung erhaltenes Ticket dient als Capability und somit als Ausweis und Legitimation gegen¨ber anderen Diensten und Prozessen. Weitere Informationen zu Capabilities und deren Notwendigkeit findet man in The Confused Deputy. Nimm man nun an.cis. Damit nun das Personal am Getr¨nkestand nicht jedesmal die a Karten kontrollieren muss.edu/∼KeyKOS/ConfusedDeputy. Da Capabilities nicht an Subjekte gebunden sind. 555] als gesch¨tzter Zugriffsausweis u definiert. werden zunehmend Verschl¨sselungs. o Beispielsweise werden f¨r ein Musikkonzert verschiedene Eintrittskarten u verkauft (VIP.und Signaturmechanisu men eingesetzt. Eine kontrollierte Weitergabe ist nicht m¨glich. werden am Einlass die Karten gegen Farbb¨nder a getauscht. Sitz.html 16 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 14 .2 Grundlagen be einer Objektreferenz an ein Nutzerobjekt eine implizite Autorisierung.upenn.

auch zu erwartende Ausnahmen (Exceptions). Eiu ne solche ergibt. W¨hrend die a a Bestandteile der IOR wie Netzwerkadresse und Portnummer in der Regel aus der Kenntnis des Anwendungsszenarios gewonnen werden k¨nnen.1. Dadurch lassen sich weitere Schl¨ssel erraten und es werden u nicht autorisierte Zugriffe auf Objekte des gleichen ORBs erm¨glicht. 2. a Diese Annahme wirft die Frage auf. corbaloc-URL). o erfordert die Bestimmung des Objektschl¨ssels detaillierte Analysen. dass IORs oder Obu jektschl¨ssel nicht erraten oder gef¨lscht werden k¨nnen. Dies o stellt eine potentielle Sicherheitsl¨cke dar. die IOR systemweit. Die einzig fehlende Information ist der u Objektschl¨ssel (Siehe Abbildung 2. u F¨r die Zugriffskontrolle ist es zwingend notwendig.3. Ob und wie man diese selbst produzieren a 18 Die Signatur ist hier im Kontext der funktionalen Programmiersprachen zu sehen.2 Grundlagen zus¨tzlichen Zugriffskontrollmechanismen vorhanden sind.4]. Die Kenntnis von Host und Port. In CORBA identifiziert der Objektschl¨ssel jedes o u Objektes innerhalb einer ORB-Dom¨ne. Host und Port k¨nnen o gegebenenfalls durch Netzwerkscans ermittelt werden . man denke nur an eine Wissensabwanderung durch nat¨rliche Mitarbeiterfluktuation. 2. dass Objektschl¨ssel h¨ufig durch einfache Mechanisu a men generiert werden. die die Vorhersage weiterer Objektschl¨ssel zulassen u [SB06][Bec06]. Diese Forderung u a o ergibt sich aus ihrer Verwendung als Capabilities. Dieses Wissen ist u per se nicht geheim.die Signatur ist f¨r eine aktive Nutzung des Objektes jedoch essentiell. Sie beinhaltet die Anzahl und Typen der Methodenparameter und den Typ des R¨ckgabewertes. ob und wie solche Objektreferenzen erzeugt werden k¨nnen. u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 15 . welche M¨glichkeiten ein nicht autorisierter o Angreifer besitzt. sowie der Signatur18 des anzugreifenden Objektes kann man als gegeben hinnehmen. ggf. u Dieser ist durch die OMG nicht standardisiert worden und somit herstellerabh¨ngig [OMG04.4 Angriffsszenarien Im Folgenden wird betrachtet.

Nach Jay Beale20 kann Closed Source hier nur helfen. sind eine leichtere Beute als Cloo sed Source Produkte. So ist 19 20 Dies wird oft auch als security by obscurity“ bezeichnet. so besitzt man alle Daten f¨r den Objektzuu griff. ” http://www. Die Algorithmen sind nat¨rlich im Quelltext zu finden.html Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 16 . ist der Schwerpunkt dieser Arbeit und wird im Hauptteil eingehend er¨rtert. Evaluiert man die Mechanismen. also ansprechbar. Im weiteren Verlauf der Arbeit wird gezeigt.2 Grundlagen Abbildung 2. Durch fehlerhafte Implementierung des ORBs kann man u bereits mit einfachen Mitteln einen Dienst außer Gefecht setzen. die Objektschl¨ssel. Zuvor wurde davon ausgegangen. Anhand einer IOR oder auch nur eines Objekta schl¨ssels ist es m¨glich. Mit Hilfe dieser kann illegal der Zugriff eru langt werden. Open u Source ORBs. Ein Weg hinein u findet sich immer. als auch Erzeugungszeiten beider zu ermitteln.3: Komponenten der corbaloc-URL kann.bastille-linux. woher der ORB stammt. Allein mit diesen Daten ist es m¨glich einen Denial-of-Service (DoS) Angriff o durchzuf¨hren. selbst g¨ltige u o u Objektschl¨ssel zu erzeugen. dass es a f¨r den Angreifer unerheblich ist. ja in bea u liebiger Menge erzeugt werden k¨nnen und somit auf den Algorithmus o dahinter schließen lassen. Doch eine Geheimhaltung“ des Algorithmus19 hilft ” in diesem Fall nur m¨ßig. da das Ergebnis. die solche Objektschl¨ssel erzeugen u und kann man diese nachstellen. o Ist man bereits im Besitz einer IOR und ist das referenzierte Objekt immer noch aktiv. so k¨nnte man annehmen. potentielle Sicherheitsl¨cken oder sogenannte Geheimnisse etwas u l¨nger zu bewahren.org/jay/obscurity-revisited. sowohl den ORB-Typ und den POA-Namen oder u o die -Hierarchie. F¨r den Zugriff auf andere Objekte muss h¨ufig nur ein Zugriffspau a rameter ge¨ndert werden. so m¨sste es m¨glich sein. dass Host und Port bekannt sind.

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 17 . 2. welches nackt“ uber ¨ffentliche o ¨ ” Netze erreichbar ist.12 ohne Security Fix 001. wenn hier wieder Daten hereinkommen (Antwort). f¨hrt die nachtr¨gliche Integration von Sicherheitsl¨sungen u a o ” in bestehende Java. dass viele Objektschl¨ssel Zeitstempel besitzen. das hinter einer gut konfigurierten Firewall steht oder eines. Bei CORBA a erfolgt diese Portzuweisung jedoch dynamisch und f¨hrt deshalb zu Probleu men. um dadurch eine bessere Ausgangsposition zu erhalten. ist diese Maßnahme geeignet u den Zeitpunkt des ORB-Starts oder der Objekterzeugung minutengenau vorhersagen zu k¨nnen. o Die Frage. Als L¨sung wird hier auf sogenannte IIOP-Proxies oder Application o Security Gateways als Application Level Firewalls verwiesen. Wie in [BS02] daro gelegt wurde. 21 Betrifft Mico 2. m¨ge sich jeder selbst beantworten. die durch vorhandene Firewall-Infrastrukturen noch verst¨rkt werden. In Anbetracht der Tatsache.und CORBA-basierte Anwendungen h¨ufig zu praka tischen Problemen. dass bereits Probleme bei der Sicherheit exisu tieren und weitere vermutet werden k¨nnen.3. einen ORB gezielt o o zum Absturz zu bringen. welches System per se sicherer ist – eines. Ein Angriffsziel k¨nnte sein. wenn auf einem Port ausgehender Verkehr (also eine Anfrage von innerhalb des gesch¨tzten Bereiches nach Außen) stattfindet.5 Bestehende L¨sungen o Durch den Absturz von MICO und der Existenz von Sicherheitsl¨sungen o f¨r CORBA wird deutlich.2 Grundlagen es gelungen. so ist u zul¨ssig. durch einen zuf¨llig gew¨hlten Objektschl¨ssel einen MICOa a u Server-ORB21 zum Absturz zu bringen. da die Fehlerbehandlung f¨r dieu sen eher seltenen Fall fehlerhaft war.“ Herk¨mmliche Firewalls arbeiten in der Regel Porta o basiert.

dass eine a solche Firewall oder ein Gateway vorhandene Objektreferenzen gegen eigene austauscht die besonders gesichert sind. Darin erfolgt eine Spezifizierung folgender Funktionalit¨t: Identifikation und Authentifizierung.24 Beim Eintreffen einer Anfrage von Außen. So w¨re es m¨glich. der versucht. Eine IIOP-Firewall implementiert Zugriffskontrollmechanismen die ein.2 CORBASec Eine weitere L¨sung ist die CORBA Security (CORBASec) Spezifikation. kann somit gepr¨ft werden.22 Diese Firewall agiert dann auf h¨heren Schichten23 als TCP/IP indem es o GIOP-Nachrichten analysiert und ver¨ndert. u Bezogen auf das im ISO/OSI Schichtenmodell. Allerdings hat sich CORBASec bis heute am Markt nicht durchsetzen k¨nnen und keine Verbreitung erfahren. o 22 23 Wenn die maximale Geldmenge f¨r Auszahlungen EUR 2000 entspricht. und die Administration a aller der genannten Policies. u 2.patentstorm.5. Zugriffskontrolle und Autorisiea ¨ rung. Eine IIOP-Firewall kann auch Parameter uberpr¨fen die an Obu u ¨ jektmethoden ubergeben werden. Datenintegrit¨t.5.html Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 18 .und ausgehende IIOP/GIOP Nachrichten einer Dom¨ne kontrollieren und somit die D¨mane zu a o sch¨tzen. http://www.2 Grundlagen 2.us/patents/6981265. Auditing (Uberwachung). o Sie erweitert die CORBA-Spezifikation zus¨tzlich um Schnittstellen f¨r a u Sicherheitsaspekte. eine manipulierten Gelda o automaten zu ermitteln. mehr als EUR 2000 auszuzahlen. ob diese Referenz vom Gateway u selbst erstellt wurde oder nicht. 24 US Patent 6981265. um den u systemspezifischen Belangen gerecht zu werden. So ist es denkbar. wenn sie Kenntnis uber die Objekte und ¨ ¨ deren Schnittstellen besitzt.1 IIOP-Firewalls F¨r CORBA kann eine spezielle IIOP-Firewall eingesetzt werden. Der Aufruf des Objektes wird also sicherer gemacht vergleichen ungepr¨fter Weiterleitung.

1 werden alle betrachteten ORB nach der Offenlegung ihres Quellextes und ihrer Programmiersprache eingeordnet. Im Anschluss findet eine kurze Vorstellung der Methoden und Werkzeuge statt. dann untersuchen. Henry Thomas Buckle Material. 3. Methoden und Werkzeuge 3 In diesem Kapitel werden zun¨chst die im Rahmen dieser Arbeit genutza ten Object Request Broker nach Sprache und Lizenz geordnet vorgestellt. In Tabelle 3.Erst zweifeln. 19 . dann entdecken. mit deren Hilfe die Interoperablen Objektreferenzen analysiert werden.1 Betrachtete Produkte Die analysierten ORB lassen sich in verschiedene Klassen einteilen.

orbacus.1 ” complient“.2 ORBacus Von IONA3 eingekauft wurde der auch als C++ ORB erh¨ltliche ORa Bacus. 2 3.opengroup. Methoden und Werkzeuge ¨ Tabelle 3.com u ¨ bezogen werden. liegt als Quelltext vor u und wird uber IONA kommerziell vermarktet.htm 3 http://www.com http://www.3 Material.org/press/7jun99 a.12 mit und ohne Security Fix 001 gearbeitet.mico.com 2 1 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 20 .3. Speziell der Support ist ¨ bis 2010 auf aktuellen Systemen garantiert.objectsecurity. Er unterst¨tzt den CORBA 2.org heruntergeladen werden. Im Rahmen dieser Arbeit wurde mit der Version ” 2.1: Ubersicht der benutzten Request Broker ORB MICO ORBacus Orbix Sun JDK Visibroker Weblogic WebSphere Open Source ja ja nein ja nein nein nein Sprache C++ Java Java Java Java Java Java 3.iona.1. der von Kay R¨mer und Arno Puder zu Lehrzwecken entwickelt wurde und heute maßgeblich von Object Security1 weiterentwickelt wird.3 wurde f¨r die u Objektschl¨sselanalyse genutzt und kann uber http://www. quelloffener und unter GNU Lizenz vero o ¨ffentlichter ORB. http://www. Die Version 4.1 MICO MICO ist ein zehn Jahre alter.6 Standard. Der Name ist ein rekursives Akronym und steht f¨r u MICO is CORBA“. MICO ist CORBA 2.1. Der Quelltext kann unter http://www.

5. Einerseits als Versionszweig 3. wurde in den Versionen 7 und 6.5. Stand 27. Methoden und Werkzeuge 3. http://en.com bezogen werden. VisiBroker Edition8 .08.3 Orbix Orbix 6 ist der kommerzielle ORB von IONA.2006 7 Vgl.1.5) unterst¨tzt die CORBA u ” 7 Spezifikation und kann als Bestandteil jeder Java-Umgebung unter 2.1. und ist eine von Jau mes Gosling Anfang der 1990er bei Sun Microsystems entwickelte objektorientierte Programmiersprache.iona. Mit CORBA a 2.4 Sun JDK JDK steht f¨r Java Development Kit.1 andererseits f¨r Hochlastsysteme im Bereich Telefonie oder u Banken als Version 6. RMI) 1997.3 http://java.borland.5 Visibroker Der Borland Enterprise Server.wikipedia.x mit der Unterst¨tzung von u CORBA 2. die Enterprise Edition als SOA/CORBA Allesk¨nner.25 kam dann das Language-Mapping IDL/Java und in Java wurde die IIOP Unterst¨tzung integriert.3. Als CORBA 2. Genutzt wurde letztere.org/wiki/Java programming language a Siehe http://www. Das Hauptaugenmerk lag auf dem Erreichen einer hohen Plattformunabh¨ngigkeit4 .org/wiki/Java criticisms.htm 6 Vgl.sun. Jedoch sind sowohl die Lizenzpolitik als auch die Performanz von Java umstritten.wikipedia.com/de/products/visibroker/ Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 21 . 3.6 Das aktuelle Java 5 Tiger“ (eigentlich Java 1. Durch die Einf¨hrung von a u Funktionsfernaufrufen (Remote Method Invocation. der in zwei Varianten gepflegt wird.omg.sun. Java Edition f¨r diese Arbeit analysiert. Unter http://www.6 u kompatibler Application Server ist die CORBA-Unterst¨tzung im Laufe u 4 5 Sinngem¨ß aus http://en.html 8 http://www.org/gettingstarted/history of corba.com/j2se/1. http://java. Mit der Freigabe der Quelltexte erfreut sich u Java einer großen Beliebtheit bei Open Source Entwicklern.0/docs/guide/idl/compliance.3 Material. 3. kurz Java.com/downloads o kann eine Testversion heruntergeladen werden. wurde Java selbst zun¨chst als Gegenpart zu CORBA positioniert.1.

Methoden und Werkzeuge der letzten Jahre durch den WebServices-Hype etwas in den Hintergrund getreten.6 Weblogic Der WebLogic Server von BEA ist ein Allrounder. Ein Evaluationssupport war von Bea trotz mehrfacher Nachfrage nicht zu erhalten. Er bietet eine komplette Portall¨sung f¨r o u Unternehmen und ist nicht als ORB zu sehen.7 WebSphere Der WebSphere Application Server 6 (WAS) ist Teil der WebSphere Produktlinie vom IBM.1.org/wiki/WebSphere Application Server. Im Laufe der Zeit hat sich das Paket immer weiter vergr¨ßert und o schließlich die in dieser Arbeit verwandte Version WAS 6.2 Methoden Um zu analysieren. 25. 3. Eine Testversion kann unter http://borland.3 Material. Als zweite Methode 9 10 Java Platform Enterprise Edition Siehe http://en. 3. Innerhalb der Arbeit konnten deshalb nur transiente Objekte untersucht werden.08. u 1998 hieß der WAS noch Servlet Express10 . Die Version 9. o beiten sich zwei Methoden an.1. war klein und bot nur Servlets an. der auch CORBA unterst¨tzt. bezogen von http://www. 3.software.bea. wie beispielsweise MICO. Die erste liegt klar auf der Hand und ist der Blick in den Quellcode .com bezogen und verursachte massive Probleme beim Testen. Wie Weblogic und Visibroker ist WebSphere eigentlich ein J2EE9 Application Server.com/downloads heruntergeladen werden. erreicht.wikipedia. der sich mittlerweile im WebServices Segment ausbreitet.1 wurde als Evaluationskopie via http://commerce.1. CORBA wird u zum Beispiel f¨r den clientseitigen Anwendungszugriff benutzt.die Quelltextanalyse. ob und wie Objektreferenzen erraten werden k¨nnen.ibm.com/webapp/.2006 Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 22 .

Zun¨chst werden 1000 transiente Objekte mit einem POA a erzeugt. Methoden und Werkzeuge eignet sich die Betrachtung der Ojektreferenzen selbst. F¨r alle lizenzu pflichtigen Systeme11 wurde eine vom Hersteller bereitgestellte Evaluationslizenz genutzt. POA-abh¨ngig ist und welche Teile sich von Obu a jekt zu Objekt unterscheiden. Visibroker. sofern vorhanden. Daraus l¨sst sich ermitteln. unter der mitgelieferten Java VM12 betrieben.3. C++ ORB sind im Vergleich zu den Java Varianten nicht im gleichen Maße portabel. Die Java ORB wurden entweder unter Java 5 oder. Um eine f¨r jeden ORB gleiche Testumgebung sicherstellen zu k¨nnen. o 3. welche aus dem ersten a Schritt vermuteten Teile den ORB und welche den POA identifizieren. dass der zu analysierende ORB f¨r das Testsystem vorhanden ist und gegebenenfalls uber eine Liu ¨ zenz verf¨gt.2) zu entu wickeln.1 Referenzanalyse Die Analyse von Objektreferenzen setzt voraus. welcher Teil des Schl¨ssels ORB. deshalb werden hier ¨hnliche Beispielprogramme a f¨r jeden ORB seperat entwickelt. Weblogic und WebSphere VM steht f¨r Virtuelle Maschine (engl. dass die Objekte jeweils nur durchgez¨hlt werden. Als Testsystem fungiert ein Ubuntu Debian 6. a In einem zweiten Schritt wird mit vier POA gearbeitet. u o ist f¨r die Java ORB eine Testapplikation (siehe Abschnitt 3. um daraus auf den Erstellungsmechanismus schließen zu k¨nnen. die alle Kinder des RootPOA sind.bzw.: virtual maschine) u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 23 .06 System auf u einem AMD Athlon 1800+ mit 512MB Arbeitsspeicher. So kann bereits im ersten Schritt erkannt werden. Aufgrund [SB06] und [Bec06] besteht die Vermutung. a 11 12 Orbix.3 Material. Dieser und alle folgenden Schritte werden jeweils zwei Mal wiederholt. ist eine wohldefinierte Vorgehensweio se erforderlich. Desweiteren kann damit eine Vermutung uber die Form der Objektnummer“ ¨ ” best¨tigt werden. u Um aus den gewonnenen Objektschl¨sseln auf die zugrundeliegenden u Mechanismen schließen zu k¨nnen.2.

Wenn sich die POA-Hierarchie in irgendeiner Form im Objektschl¨ssel widerspiegelt. dies herauszuu finden. Methoden und Werkzeuge Abbildung 3.1) in einer Hierarchie angeordnet.2. Die OpenSource-ORB sind in der jeweils benutzten Version auf der beiliegenden CD vollst¨ndig enthalten weshalb auf eine umfassena de Wiedergabe entsprechende Quelltexte verzichtet und im Regelfall nur darauf verwiesen wird. 3.3 Material. ist a o die POA-Hierarchie im letzten Schritt auf vier POA anzuwenden. so ist diese Methode geeignet. selten auch die des ORB-Kerns. Um abschließend getroffene Vermutungen best¨tigen zu k¨nnen.2 Quellcodeanalyse Insofern der zu untersuchende ORB als Quelltext vorliegt.1: Anordnung der POA Anschließend werden die vier POA (Siehe Abbildung 3.1). dass das System die Schl¨ssel erzeugen soll. u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 24 . Der Blick in den Quelltext und a die Ableitung brauchbarer Ergebnisse setzt Kenntnisse der internen Mechanismen und Programmierparadigmen voraus. w¨hrend a vier weitere direkt dem RootPOA untergeordnet sind (Kombination der Strukturen aus Abbildung 3. Prinzipiell muss nur die POA-Implementierung gefunden und analysiert werden. u F¨r die Bereitstellung eines neuen Objektschl¨ssels ist bei transienten Obu u jekten in der Regel der POA13 zust¨ndig. Die so zur Verf¨gung stehenden acht POA u lassen eine vergleichende Analyse zu und bieten direkte Vergleichsm¨glicho keiten. 13 Die IdAssignmentPolicy ist so eingestellt. werden die Mechanismen zur Erzeugung der Objektschl¨ssel direkt dort nachgeschlagen.

Erzeugung der POA 4. Dies ist insbesondere bei a u vielen POA notwendig. die Erstellungszeit und viele mehr. sich die Objektschl¨ssel sowohl als o o u ASCII-Text (URL-Form).3. Dadurch werden die einzelnen Komponenten f¨r den Menschen besser verst¨ndlich dargestellt. wenn sie nicht in ihre Bestandteile zerlegt wird. Erzeugen der Servants (Objektinkarnationen) 5. Es wird zu einer IOR oder einem Objektschl¨ssel m¨glichst viele Informationen ermitu o teln wie beispielsweise der ORB-Typ.3 Material. als auch als HEX-Darstellung anzeigen zu lassen. Desweiteren ist es m¨glich. Die Variante u a des freien Java ORB JacORB (dior). 3. orbinfo. Ein Programm. Ein zweites Analyseprogramm. Mittels Doppelkreuz (#) ubergebene Kommentare hinter den IORs ¨ bleiben bei der Referenzdekodierung erhalten und erleichtern somit die sp¨tere Zuordnung der Objektschl¨ssel zur IOR. a liegt in der Regel jedem ORB bei. wird f¨r die Ziele dieser Arbeit so u ver¨ndert. Erzeugung des ORB 3. Auswertung der Kommandozeilenargumente 2. ebenfalls basierend auf JacORB. mit dem sich eine IOR dekodieren l¨sst.3.2 Testprogramm Die zu entwickelnden Testprogramme zur Objektschl¨sselgenerierung solu len grunds¨tzlich wie folgt vorgehen: a 1.1 Analyseprogramm Eine IOR in Zeichenkettenform ist schwer zu analysieren. Methoden und Werkzeuge 3. soll anhand der Ergebnisse der Arbeit implementiert werden. Viele davon sind ohnehin f¨r diese Arbeit u uninteressant. Eintritt in die Generatorschleife Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 25 .3 Werkzeuge 3. dass nun auch mehrere IORs in einem Schritt dekodiert werden a k¨nnen.

o Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 26 . da in der Praxis keine gr¨ßeren Mengen an Objekten zur POAo Laufzeit zu erwarten sind. Ebenfalls m¨glich und f¨r das Testen selbsterzeugter o o u Objektreferenzen vorteilhaft. jeo doch nicht gleichzeitig. Methoden und Werkzeuge a) Aktivierung der Objekte b) Ermittlung der Referenz. Desweiteren ist es m¨glich. Eigene Versuche haben gezeigt. der immer nur transiente Objekte verwalten kann. Die Anzahl erzeugbarer Objekte wird programmtechnisch auf 10 6 begrenzt. ist die M¨glichkeit den ORB laufen zu lassen o (ORB->run()) und somit f¨r Anfragen von Außen erreichbar zu machen. die POA in einer o Hierarchie aufzubauen. das auf den Ergebnissen dieser Arbeit basiert und den Zugriff auf andere Objekte mit Hilfe von selbst erzeugten Objektreferenzen erm¨glicht. wenn mehr als ein POA pro Ebene aktiv ist. u Dieses Testprogramm wird in einer Machbarkeitsanalyse die Serverobjekte erzeugen und als Server fungieren.3 Material. Schreiben der IOR c) Deaktivierung der Objekte 6. Aufr¨umen a 7. Weiterhin k¨nnen persistente und transiente Objekte erzeugt werden. dass sich an der ¨ prinzipiellen Systematik keine Anderungen ergeben. Eine Ausnahme hierzu stellt der RootPOA dar. Ausgabe der Statistik Die POA k¨nnen jeweils f¨r das Binden persistenter und transienter Obo u jekte konfiguriert werden. Im Rahmen dieser Analyse wird ein Programm zu entwickeln sein. Um zeitliche Abh¨ngigkeiten a innerhalb der Schl¨ssel besser finden zu k¨nnen. muss eine Einstellung exisu o tieren um die Erzeugung einzelner POAs oder Objektinkarnationen zeitlich steuern zu k¨nnen.

Ergebnisse 4 Die durch die Analyse gewonnenen Ergebnisse werden nach ORB getrennt betrachtet. aus denen u o 1 2 Bezogen auf die Chomsky-Hierarchie ist die Grammatik G ∈ Typ2 . Eine Zusammenu fassung der Ergebnisse f¨r alle ORB erfolgt im letzten Abschnitt dieses u Kapitels. Die angegebenen Zahlen f¨r die verschiedenen M¨glichkeiten. 27 . Die Erweiterte Backus-Naur-Form ist in ISO/IEC 14977:1996(E) standardisiert.man.html#EBNF. Des Weiteren sind bei den OpenSource-ORB die Ergebnisse der Referenzanalyse und die der Quelltextanalyse nicht seperat angef¨gt. Das Format der Objektschl¨ssel wird zun¨chst graphisch dargestellt und u a im Anhang mit Hilfe einer kontextfreien Grammatik1 .ac.uk/∼pjj/bnf/bnf. Siehe auch http://www.cs. Zur u besseren Vergleichbarkeit der Aufwandsabsch¨tzung f¨r das reverse engia u ” neering“ der zugrunde liegenden Algorithmen wurde zun¨chst jedoch f¨r a u alle Request Broker die Referenzanalyse durchgef¨hrt. beschrieben. der Erweiterten Backus-Naur-Form 2 (EBNR).

urls Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 28 . so kann man schnell auf den Mechanismus u schließen.iors -u > datei-fuer. u wie lange man maximal ben¨tigt. der einzelne Objekte voneinander unterscheidet. da offensichtlich der gesamte Schl¨ssel als Zeichenkette behandelt wird. Die Zahlen geben die jeweils maximal vermuteten M¨glichkeiten o wieder.1. die aus u 3 4 Der Suchraum ist der gesamte Wertebereich f¨r m¨gliche g¨ltige Schl¨ssel. Im Interesse der Ubersichtlichkeit wird auf eine allzu detaillierte Darstellung verzichtet und auf die der Arbeit beiliegenden Analyserohdaten verwiesen. wenn Gleichverteilung vorliegt. u den Stellen hinter dem letzten Schr¨gstrich. a 4. a u Dies folgt aus der Natur eines Z¨hlers. die Zeiten dahinter stellen lediglich einen Anhaltspunkt daf¨r dar. um den gesamten Suchraum3 zu durcho suchen. Im weiteren Analyseverlauf wird nur noch die URL-Form benutzt. Dies dient im u Rahmen dieser Arbeit der besseren Vergleichbarkeit der ORB untereinander. dass die Suche am Ano fang des Wertebereiches bei Z¨hlern mit fr¨hen Erfolgen verbunden ist.4 Um eine Vorstellung von einem MICO-Objektschl¨ssel zu bekommen. u ist nachfolgend einer in HEX. sind mit Annahmen versehen.1 beschriebenen ¨ Verfahren vorgegangen. In der Realit¨t wird. nur die H¨lfte a a davon ben¨tigt werden. Versuche haben gezeigt.1 MICO 4. 5 Aufruf: dior -f datei-mit.1 unterscheiden sich nur in der letzten Stelle bzw.1 Transiente Objekte Bei der Referenzanalyse wird nach dem in Abschnitt 3. Die Objektschl¨ssel in Tabelle 4.2.und URL-Darstellung zu sehen: 2F 31 35 37 32 2F 31 31 35 31 33 33 36 32 31 32 2F 30 2F 5F 30 /1572/1151336212/0/ 0 Erzeugt man mit Hilfe des Testprogramms viele IOR und extrahiert den Objektschl¨ssel in URL-Form5 . Dies ist ein Z¨hler f¨r das a a u laufende Objekt.4 Ergebnisse ein Schl¨ssel bestehen kann. u o u u Siehe CD am Ende dieser Arbeit.

2: Transiente MICO Objektschl¨ssel mehrerer POA u POA 1 2 3 1 2 3 Objekt 0 0 0 1 1 1 Objektschl¨ssel u /1572/1151336212/0/ /1572/1151336212/1/ /1572/1151336212/2/ /1572/1151336212/0/ /1572/1151336212/1/ /1572/1151336212/2/ 0 1 2 3 4 5 Die erste und zweite Stelle des Schl¨ssels (jeweils durch einen Schr¨gu a strich getrennt) lassen Raum f¨r Mutmaßungen.26 ) als a ORB-weiter Objektz¨hler. so kommt man a 6 Aus mico-200606261736.1: Transiente MICO Objektschl¨ssel u Objekt 0 1 2 3 10 99 100 101 Objektschl¨ssel u /1572/1151336212/0/ /1572/1151336212/0/ /1572/1151336212/0/ /1572/1151336212/0/ /1572/1151336212/0/ /1572/1151336212/0/ /1572/1151336212/0/ /1572/1151336212/0/ 0 1 2 3 01 99 001 101 verh¨lt sich bei der Benutzung mehrerer POA (Siehe Tabelle 4.iors. Begibt man sich auf die Suche nach ¨hnlichen Werte. 763. Es handelt sich um einen POA-Z¨hler. W¨hrend der erste Teil u a immer drei. Der gefundene Objektz¨hler a Tabelle 4.bis f¨nfstellig ist (Beispiele: 1572. so u ist der zweite Teil immer konstant zehnstellig und beginnt in der Regel mit 11. a Tabelle 4.4 Ergebnisse einzelnen numerischen Komponenten besteht. 32669. 316. Die vorletzte Stelle wird f¨r die Identifikation a u des POA benutzt.url Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 29 . Dabei ist diese Stelle immer numerisch und unabh¨ngig a vom POA-Namen oder dessen Stellung in einer vermeintlichen Hierarchie.oid. 1246).

3 und A. Die Ursache hierf¨r ist die Korrelation des Wertes mit dem UNIX Timestamp7 korreu liert. dass es sich um einen Zeitstempel handelt. N¨heres ist nur durch die Quella textanalyse zu kl¨ren. da die Objekte am POA registriert werden. andererseits auch bisher Verborgenes an den Tag bringen. Zun¨chst k¨nnte man einen Zua o fallswert in den Grenzen von 1-99999 vermuten.4.06. Der erste Teil w¨chst bei aufeinanderfolgenden Vera suchen stetig. durch die Referenzanalyse nicht aufkl¨rbare Variable. die Startzeit des ORBs.4 Ergebnisse zur Vermutung. Betrachtet man dazu die Quelltexte A.1: Aufbau transienter MICO-Objektschl¨ssel u 4.3 zeigt die ersten drei Schl¨ssel u u 7 8 ¨ Anzahl der Sekunden seit dem Beginn der UNIX Ara am 1. Eine detaillierte Darstellung in EBNF ist im Anhang zu finden. von welcher Qualit¨t die Referenzanalyse a ist und worauf m¨glicherweise bei den nachfolgenden ORB geachtet werden o sollte.1. a Mit diesem Wissen ergibt sich folgender Aufbau f¨r transiente Objektu schl¨ssel des MICO-ORB8 : u Abbildung 4.2 Persistente Objekte Der Aufbau von Schl¨sseln persistenter Objekte ist leicht ver¨ndert geu a gen¨ber dem transienter Objekte. Diese ist die erste.1.1970 1:00Uhr. Umgerechnet ergibt dieser Stempel den 26. a Die Quelltextanalyse kann einerseits die Ergebnisse der Referenzanalyse untermauern. Auch liefert sie Hinweise darauf. Die Suche nach dem Objektschl¨ssel beginnt praktischerweise in der u POA-Implementation. doch steht dies mit der vorhandenen Stetigkeit im Widerspruch. findet man in ersterem einen Z¨hlmechanismus und im zweiten den Hinweis auf die ORB-Erstellungszeit a und die Prozess-ID des ORB. nimmt bei sp¨teren Versuchen jedoch scheinbar willk¨rlich a u einen geringen Wert an und steigt erneut. Tabelle 4. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 30 .2006 um 17:36 Uhr.

4: Persistente MICO OKs in POA-Hierarchie Objektschl¨ssel u Default/eins/ %5C/6940%5C/1157548901 Default/eins/zwei/ %5C/6940%5C/1157548901 Default/eins/zwei/drei/ %5C/6940%5C/1157548901 Default/eins/zwei/drei/vier/ %5C/6940%5C/1157548901 0 1 2 3 die gleichen Quellen wie bereits f¨r die Analyse transienter Objekte. Default“ ist der Standard-ORB-Name. Als Anlaufpunkt dient hier wieder a die POA-Implementation. Man erkennt.1. dass in diesem Fall der Schl¨ssel mit einem Text beginnt. Der hintere Abschnitt folgt u a ¨hnlichen Prinzipien wie in Abschnitt 4. so u best¨tigt sich der vermutete Aufbau. Persistente Objektschl¨ssel des MICO-ORB seu hen damit wie folgt aus: Abbildung 4. Liegt eine POA-Hierarchie vor. so findet man auch die gesamte HierarTabelle 4.1 beschrieben. u ” Ein solcher Name wird zur besseren Identifikation an ORB vergeben.2: Aufbau persistenter MICO-Objektschl¨ssel u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 31 .4 Ergebnisse eines POAs mit solchen Objekten. damit sie sp¨ter auch noch f¨r die Aufrufzustellung auffindbar sind. Nach dem a u Trennzeichen findet man den Namen des POAs an dem der Servant angemeldet ist. Objekt 0 1 2 Objektschl¨ssel u Default/mypoaeins/%5C/23271%5C/1151920396 0 Default/mypoaeins/%5C/23271%5C/1151920396 1 Default/mypoaeins/%5C/23271%5C/1151920396 2 chie im Schl¨ssel wieder (siehe Tabelle 4. anschließend vermutlich wieder die Prozessnummer des ORBs und dessen Erstellungszeit.4).3: Persistente MICO Objektschl¨ssel u lfd. Konsultiert man Tabelle 4.

muss u u bei persistenten Objekten eine POA-Hierarchie erraten“ werden. ¨ Um die Prozess-ID eines ORBs erraten zu k¨nnen. Diese Grenze ist zwar willk¨rlich. ist die Wahrscheinlichkeit9 hier einen Treffer zu landen 1 : 6210 . Der Einfachheit halber sei angenommen. sowie Zahlen besteht. u dass sie uberschritten wird.plus 26 Großbuchstaben plus 10 Ziffern Gemeint ist hier die Zeit zwischen Ein. muss der Bereich in o dem diese ID liegen kann bekannt sein. Da zuvor angenommen wurde. Nimmt ” man an.3 Fazit F¨r das Herausfinden eines MICO Objektschl¨ssels ohne Vorwissen. Die benutzte Debian 3.1 Linux Distribution z¨hlt diese bis a a 216 = 65536 hoch und beginnt wieder von vorn.und Ausschalten des Rechners. Man ist darauf angewiesen. sei dieser auf 103 M¨glichkeiten a o begrenzt. sondern nur ein POA-Z¨hler vorhanden ist. Die POAo Namen k¨nnten beispielsweise durch ehemalige Mitarbeiter bekannt sein. dass o die POA-Hierarchie maximal aus drei Ebenen (unterhalb des RootPOA) besteht und die POA-Namen aus einem Pool von 50 M¨glichkeiten ento nommen werden. 28×106 angesetzt.1. wenige neu erzeugt so ist die Wahrscheinlichkeit am Anfang des Wertebereiches am gr¨ßten und nimmt zum Ende hin ab. Da bei transienten Objekten kein POA-Name. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 32 . dass die gesamte Zeichenkette nicht l¨nger als zehn Zeichen ist und a nur aus Groß. o Die Erstellungszeit des ORB sollte gesch¨tzt werden k¨nnen. das bekannt sein k¨nnte. ¨ Dieser Wert ergibt sich aus der Uberlegung. den Suchbereich der POA-Namen eingrenzen zu k¨nnen.4 Ergebnisse 4. Dieser ist jedoch vom Betriebssystem abh¨ngig. andernfalls ergibt sich eine ¨hnliche Komplexit¨t wie bei a a der POA-Hierarchie. also aussichtslos. jedoch ist nicht anzunehmen. Werden insgesamt zur Lebenszeit des Servers10 nur sehr wenige Prozesse erzeugt bzw. Dies soll einen W¨rterbuchangriff simulieren. dass der Default-Name benutzt wird. dass auch die TypeID bekannt ist o – man will ja mit dem Objekt interagieren – so wird im Folgenden f¨r das u Erraten der Hierarchie eine Wahrscheinlichkeit von 1 : 1.und Kleinbuchstaben. Nimmt a o 9 10 26 Klein. o Bei persistenten Objekten befindet sich der ORB-Name im Objektschl¨ssel u wieder.

Dies soll nachfolgend a außer Acht gelassen werden. die 1000 Mal pro Sekunde einen Schl¨ssel auso u probieren kann. 8 × 1010 . Die jeweilige Objektmenge pro Zeit ist immer abh¨ngig vom Gesamtsystem und dem Gesamtkonzept. dass 10 u Prozent der vermuteten Objekte noch aktiv sind. Der Aufwand. Dahino u u ter ist angegeben. Nimmt man an. o a o Gelangt man aber in den Besitz einer IOR. Die Anzahl der Objekte. 2 × 1016 ≡ 2. dass diese Zahl u a linear abh¨ngig von der Lebenszeit des POAs ist. einen transienten MICO-Objektschl¨su sel zu erraten. so eru geben sich 86400 verschiedene M¨glichkeiten. da viele Variablen bereits gesch¨tzt sind und a das Betrachten dieser Abh¨ngigkeit eine nicht vorhandene Genauigkeit a vort¨uschen w¨rde. so sind folglich die ORB-Zeit. 106 Mal h¨her und liegt damit g¨nzlich im Bereich des Unm¨glichen. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 33 . Untersuchungen dar¨ber existieren nicht und d¨rften u u auch keinen Konsens finden. wenn ein Versuch pro u o Millisekunde durchgef¨hrt werden kann [Bec06]. der durchsucht werden soll. betr¨gt 1 : 2. u Die mittlere Wahrscheinlichkeit. 6 × 1010 ≡ 648d Persistente Objekte: 1. die an einem g¨ltigen POA ausprobiert werden u m¨ssen. Oftmals ist es so. wie lange man daf¨r ben¨tigt. Dabei sei gleichzeitig angenommen. man sei im Besitz a der technischen L¨sung. Bei einem persistenten Objekt ist der Aufwand ca. so w¨rde man durchschnittlich 324 Tage auf das Erraten u verwenden. 3 × 106 a Die Angaben spiegeln jeweils die maximale Anzahl der Versuche wider. Eine g¨ngige Praxis zur Erzeugung von Objekten oder Objektadapa tern gibt es nicht. die n¨tig sind.4 Ergebnisse man daf¨r eine Genauigkeit von einem Tag (86400 Sekunden) an. sei auf 105 begrenzt. a u Die Gesamtkomplext¨t eines MICO Objektschl¨ssels betr¨gt: a u a Transiente Objekte: 65536 × 86400 × 10 = 5. diese Zahl zu o erraten steigt also linear mit dem Zeitraum an. Die Zahl der a Objekte ist insofern willk¨rlich gew¨hlt. 28 × 106 × 65536 × 86400 × 10 = 7. um einen g¨ltigen Objektschl¨ssel zu generieren.

wenn das Objekt nicht existiert. Die M¨glichkeiten reduziert sich auf nachfolgende o Werte und ben¨tigen in etwa: o Objekte am gleichen POA (t3 ): 10 ≡ 10ms 11 12 Exception Man w¨rde hier jedoch erwarten. die POA-Hierarchie und die Prozess-ID bekannt. dass man nicht erkennen kann.12 Ber¨cksichtigt man dies bei obigen Berechu nungen. 6 × 109 ≡ 64. sind viele Variablen gegeben und m¨ssen nicht u mehr evaluiert werden. u Innerhalb von 5ms ist ein weiteres aktives Objekt an diesem POA zu finden. Um alle 105 Objekte zu testen. Die Komplexit¨t. ob ein POA existiert und f¨r jeden (eventuell auch ung¨ltigen) POA alle Objekte ausprobiert werden u u m¨ssten. Man ben¨tigt im o u o Mittel dreieinhalb Stunden um ein g¨ltiges Ergebnis zu erhalten. wenn u nur das Objekt nicht existiert und OBJ ADAPTER in allen anderen F¨llen. Die Wahrscheinlichkeit des Erratens sinkt dramatisch. denn er liefert die Ausnahme11 u OBJECT NOT EXIST. Im umfangreichsten Fall a kann man 1 : 1. im Mittel also 5. wenn keine Daten u bekannt sind: Transiente Objekte (t1 ): 65536 × 86400 = 5. 2 × 1015 ≡ 228310a Falls eine IOR bekannt ist. 8d Persistente Objekte (t2 ): 1. 28 × 106 × 65536 × 86400 = 7. Bei MICO ist dies nicht der Fall. so verringern sich diese um den Faktor 10. also a die Anzahl der maximalen Versuche um ein weiteres Objekt am selben POA zu erraten sinkt f¨r alle Objekte auf 10.4 Ergebnisse der ORB-Namen. o Zum Auffinden von Objekten an einem anderen POA dieses ORBs. a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 34 . wenn der POA nicht existiert und OBJ ADAPTER. dass OBJECT NOT EXIST dann geworfen wird. Die Gesamtkomplext¨t unter Ber¨cksichtigung m¨glicher Optimieruna u o gen eines MICO Objektschl¨ssels ergibt sich wie folgt. 28 × 106 M¨glichkeiten daf¨r ansetzen. muss man zun¨chst nur die POA-Hierarchie variieren. ben¨tigt man 100s. Dies setzt u allerdings vorraus.

Sie legt die Vermutung nahe.4 Ergebnisse Objekte an anderen transienten POAs (t4 ): 103 ≡ 1s Objekte an anderen persistenten POAs (t5 ): 1.oder versions¨ abh¨ngige Zust¨nde oder Ahnliches definieren. Bei der Analyse aufeinander folgender Objektschl¨ssel bemerkt man.6 ist zu sehen. Die Bytes vor der POA-Zeit. Die ersten vier Byte stellen scheinbar ein magic14 dar. dass die letzten Stellen einen u a linaren Z¨hler darstellen. In Tabelle 4.2006 a 20:52Uhr .die Startzeit des ORBs. Die einzelnen Elemente der Hierarchie werden offensichtlich mittels Nullbyte13 verbunden. Umgerechnet ergibt dieser Stempel den 30.2. wird gleichzeitig auf die URL-Form zur¨ckgegriffen. a a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 35 . Man kann erkennen. dass die POA-Hierarchie (RootPOA/null) einen Teil des Schl¨ssels ausu macht. die implementierungs. CA FE BA BE. u o andere g¨ltige Objektreferenzen zu erzeugen. Dort.04. dass sie mit dem UNIX Timeu stamp syncron l¨uft. dass es sich um einen u Zeitstempel handelt. so ist es relativ leicht m¨glich.und URL-Darstellung. u 4. wo es sinnvoll erscheint. Der Grund daf¨r ist.1 Transiente Objekte In Tabelle 4. sind a 13 Ein Nullbyte (0x00) wird in der Programmiersprache C h¨ufig f¨r das Terminieren a u einer Zeichenkette benutzt. dass sich nur ein kleiner Teil des u Schl¨ssels ¨ndert.5 sieht man einen transienten Objektschl¨ssel an POA null“ u ” (Kind von RootPOA) in HEX. 28 × 106 ≡ 21min Ist eine g¨ltige Objektreferenz bekannt. dass den ORB identifiziert. 14 Als magic werden oft Zeichenketten benannt. u 4.2 ORBacus Die Darstellung der ORBacus Objektschl¨ssel erfolgt byteweise als HEXu Wert. Auff¨llig ist auch die Zeichenkette (ab Byte a f¨nf): 1’146’423’159.

5: Transienter ORBacus Objektschl¨ssel u HEX AB AC AB 31 31 31 34 36 34 32 33 31 35 39 00 5F 52 6F 6F 74 50 4F 41 00 6E 75 6C 6C 00 00 CA FE BA BE 44 55 07 77 00 00 00 00 URL ... ob dieu se vom gleichen ORB erzeugt wurden oder nicht. Dabei ist es f¨r diesen Teil belanglos.. Beachtet man a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 36 ..w. Davor sind jeweils zwei Nullbytes vorhanden. so erh¨lt man 1’146’423’150. bereits als Java-magic bekannt und tauchen in allen ORBacus Objektschl¨sseln als Konstante auf.7: Transiente Schl¨sselteile verschiedener POAs u POA 1 2 3 letzten acht Byte 44 55 07 6E 00 00 00 00 44 53 58 98 00 00 00 00 44 55 07 77 00 00 00 00 07 6E) in Dezimaldarstellung.6: Teile transienter ORBacus Objektschl¨ssel u lfd.. Es deutet also darauf hin...4 Ergebnisse Tabelle 4.und die letzten vier der acht Byte Objekt-spezifisch sind. Die letzten vier Byte entsprechen der laufenden Objektnummer innerhalb des POAs. Objekt 0 1 2 16 255 256 letzten acht Byte 44 55 07 6E 00 44 55 07 6E 00 44 55 07 6E 00 44 55 07 6E 00 44 55 07 6E 00 44 55 07 6E 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 02 10 FF 00 Tabelle 4. Es ¨ndern sich jeweils maa ximal vier Bytes.null . Konvertiert man die ersten vier der letzten acht Bytes (0x44 55 Tabelle 4. RootPOA. dass der erste Teil der letzten acht Byte POA.. u Tabelle 4.7 zeigt die letzten acht Byte von Objektschl¨sseln des ersten Obu jektes an verschiedenen POA.11146423159 ..DU..

a Ist 1’146’423’150 ebenfalls die Anzahl der Sekunden seit dem 1..1970. dass Zeitabh¨ngigkeit vorliegt.2006 um 20:52Uhr.2 Persistente Objekte In Tabelle 4. Ab dem f¨nften Byte folgt dann sofort die POA-Hierarchie...oid auf der CD.iors.. dass diese vier Byte st¨ndig wachsen und das sich dieses Wachstum a langsam vollzieht. Es schließt sich die bekannte Kombination aus Java-magic.8: Persistenter ORBacus Objektschl¨ssel u HEX AB AC AB 30 5F 52 6F 6F 74 50 4F 41 00 6E 75 6C 6C 00 00 CA FE BA BE 44 A8 13 6A 00 00 00 00 URL . Betrachtet man mehrere Objektschl¨ssel16 ....1.4 Ergebnisse jedoch. so best¨tigt sich diese Vermutung. so kann man vermuten. so bezeichnet dieser Wert den 30... Daraus schlussfolgernd l¨ßt sich folgender Aufbau15 f¨r transiente ORa u Bacus Objektschl¨ssel feststellen: u Abbildung 4. ebenfalls u durch zwei Nullbytes terminiert.null. Im Vergleich u zum transienten f¨llt auf.8 sieht man einen persistenten Objektschl¨ssel.pers2p. D.2.3: Aufbau transienter ORBacus-Objektschl¨ssel u Die vollst¨ndige und detailliertere Darstellung befindet sich ebenfalls im a Anhang.. Ein persisu a Tabelle 4. tenter ORBacus Objektschl¨ssel kann nach folgender Bildungsvorschrift u 15 16 Darstellung in EBNR. dass das vierte Byte statt 0x30 den Wert 0x31 bea sitzt. Wie in der Datei orbacus 060702 2051...04.0 RootPOA . Dies entspricht dem Zeitpunkt der POA-Erstellung. POA-Zeit und Objekt-Nummer an.. 4. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 37 .

dem Zeitraum. bzw.1. so m¨ssen u in beiden F¨llen nur noch alle Objekte getestet werden. Die Anzahl der a M¨glichkeiten und die Zeit um diese auszuprobieren sinkt auf: o Objekte am gleichen POA (t3 ): 10 ≡ 10ms Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 38 . diese Zahl zu erraten. 6 × 1016 ≡ 3 × 106 a Persistente Objekte (t2 ): 86400 × 1.4: Aufbau persistenter ORBacus-Objektschl¨ssel u 4. Ist nun durch eine a a IOR. Die Anzahl der Objekte ist u wieder auf 105 begrenzt.3 Fazit F¨r das Erraten eines ORBacus Objektschl¨ssels ohne Vorwissen werden u u die gleichen Annahmen wie in Abschnitt 4. 1 × 1012 ≡ 34. der f¨r die Erstellung vermutet wird. die POA-Hierarchie und POA-Zeit bekannt. so w¨re man im Mittel rund 16 Jahre besch¨ftigt. Der Aufwand. 28 × 106 × 10 = 9. Die Erstellungszeit des POA stellt keine große H¨rde dar. 9a Bei object keys persistenter Objekte ist die mittlere Wahrscheinlichkeit 1 : 5 × 1011 . Die Gesamtmenge der M¨glichkeiten sieht wie folgt aus. wenn ORB und o POA-Erstellung auf einen Tag genau vorhergesagt und die POA-Namen eingegrenzt werden k¨nnen: o Transiente Objekte (t1 ): 864002 × 1. steigt also linar mit der Zeit. Ein Tag hat u 86400 Sekunden also 86400 verschiedene POA-Erstellungszeiten.3 getroffen. 28 × 106 × 10 = 1.4 Ergebnisse erzeugt werden: Abbildung 4. Wenn man pro Millisekunde einen Versuch unternehmen kann. die ORB-Zeit.2.

4 Ergebnisse Objekte an einem anderen POA (t4 , t5 ): 86400 × 1, 28 × 106 = 1, 1 × 1011 ≡ 3, 5a Allerdings bleibt hierbei unber¨cksichtigt, dass die Zeit zwischen der Eru stellung beider POA weniger als 24h betr¨gt. Geht man von f¨nf Minuten a u aus, so ist man in (t6 =) 4,4 Tagen am Ziel.17

4.3 Orbix
Durch Probleme bei der Erzeugung persistenter Objekte k¨nnen nur trano siente Objektschl¨ssel betrachtet und in HEX-Darstellung analysiert weru den. Der Analysegegenstand, ein transienter Orbix Objektschl¨ssel ist nachu folgend dargestellt: 3A 3E 02 31 31 0C 78 3B 83 D7 33 46 E8 61 7F 30 D6 B1 08 00 00 00 00 00 00 00 01 Zum besseren Verst¨ndnis vergleicht man (Tabelle 4.9) zwei aufeinandera ¨ folgende Schl¨ssel, die Zugunsten der Ubersicht willk¨rlich zerlegt wuru u den. Man erkennt sofort, dass sich nur die letzte Stelle ver¨ndert hat. Wie a Tabelle 4.9: Zwei Transiente Orbix Objektschl¨ssel u Eins 3A 3E 02 31 31 0C 78 3B 83 D7 33 46 E8 61 7F 30 D6 B1 08 00 00 00 00 00 00 00 01 Zwei 3A 3E 02 31 31 0C 78 3B 83 D7 33 46 E8 61 7F 30 D6 B1 08 00 00 00 00 00 00 00 02

aus Abschnitt 4.1 und Abschnitt 4.2 bereits bekannt, k¨nnte es sich hier o ebenfalls um einen Objektz¨hler handeln. Tabelle 4.10 zeigt die letzten a acht Stellen von Objektschl¨sseln eines POAs. Die Vermutung mit dem u Objektz¨hler hat sich best¨tigt. Als n¨chstes ist die Unterscheidung vera a a schiedener POA von Interesse. MICO und ORBacus haben hierf¨r die u
17

5 × 60 × 1, 28 × 106 = 3, 8 × 108 3, 8 × 108 ÷ 1000 ÷ 3600 ÷ 24 = 4, 444d

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern

39

4 Ergebnisse Tabelle 4.10: Orbix Objektschl¨sselabschnitte u Objektnr. 0 1 2 3 255 256 1024 Schl¨sselabschnitt u 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 04

00 00 00 00 00 00 00

01 01 01 01 FF 00 00

POA-Hierarchie im Klartext in den Schl¨ssel integriert. Bei Orbix ist dies u offensichtlich nicht der Fall. Tabelle 4.11 zeigt f¨nf Schl¨sselabschnitte18 u u verschiedener POA. W¨hrend die ersten sechs Byte konstant sind, trea Tabelle 4.11: Orbix - verschiedene POAs lfd. Nr. 1 2 3 4 5 78 CC 2C E3 CB 3B 31 42 00 9C 83 9B 80 BB EE Schl¨sselabschnitt u D7 33 46 E8 61 7F 3F 69 39 B1 6C 91 B1 85 5F 72 5B E2 09 FA 19 5B 6C 05 5A F7 6B A5 84 34 30 06 E4 F5 1B D6 C7 71 60 67 B1 C1 A4 0A 3A

ten vom siebten bis zum 18. Byte Varianten auf, die keinem Algorithmus zu folgen scheinen. Es k¨nnte sich um eine Zufallsbytefolge handeln oder o aber um den Hash bzw. Teil eines Hashes des POA-Namens oder der POAHierarchie. Erzeugt man aber die gleichen POA nochmal (also mit gleichem Namen), so differiert dieser Wert ebenfalls. Die Bedeutung der ersten sechs Bytes ist momentan noch unbekannt. Sicher ist nur, dass diese f¨r transiente Objektsch¨ssel konstant 3A 3E 02 u u 31 31 0C sind. In einer uber ein Internetforum bezogenen IOR eines per¨ sistenten Objektes ist der Schl¨sselteil 3A 3E 02 31 32 0C. Denkt man u kurz uber die CDR, die Transfersyntax, nach, so f¨llt auf, dass die 02 a ¨
18

Jeweils Byte sieben bis 18 Byte.

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern

40

4 Ergebnisse der L¨nge der nachfolgenden Zeichenkette 31 31 bzw. 31 32 entspricht, a w¨hrend 0C die L¨nge des POA-Schl¨ssels anzeigt. Dementsprechend w¨re a a u a 08 die L¨nge des Objektz¨hlers. Mag dies alles Zufall sein, so funktioniert a a es doch gut.

Abbildung 4.5: Aufbau Orbix-Objektschl¨ssel u

Ein Orbix Objektschl¨ssel bietet nicht viele Dinge, die zu erraten sind. u Die POA-ID ist mit zw¨lf Byte sehr lang und ergibt 25612 = 8 × 1028 o M¨glichkeiten. In diesem Fall ist der Versuch des Erratens vollkommen o zwecklos. Die Chancen verbessernden Annahmen k¨nnen nicht gemacht o werden. Der Objektz¨hler hingegen erlaubt es, alle Objekte eines POAs abzusua chen. Nachfolgend ist die Gesamtzahl der M¨glichkeiten unter den beo kannten Annahmen f¨r die Objekte aufgef¨hrt: u u Transiente und/oder persistente Objekte (t1,4 ): 25612 × 10 = 8 × 1029 ≡ 2, 5 × 1019 a Objekte am gleichen POA (t3 ): 10 ≡ 10ms Orbix kann als resistent gegen¨ber dem Erraten ohne Vorwissen angeseu hen werden. Ebenso ist es, statistisch gesehen, unm¨glich eine POA-ID o zu erraten. Die Ermittlung weiterer Objekte an einem bekannten POA ist allerdings genauso gering, wie bei allen vorgenannten ORB.

4.4 Sun ORB
Bevor mit der Analyse begonnen wird, muss man sich ins Ged¨chnis rufen, a dass der Sun Java ORB bei der Ver¨ffentlichung von Java 1.5 Tiger ein o Redesign erfuhr. Ob dies auch die Objektschl¨ssel betrifft, soll mit Hilfe u von Testdaten der 1.4.2er Version ermittelt werden. Nachfolgend wird nur

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern

41

4 Ergebnisse der 1.5er ORB betrachtet, auf den 1.4.2er wird gegebenenfalls explizit hingewiesen. Zun¨chst betrachtet man in Tabelle 4.12 den Objektschl¨ssel in HEXa u und URL-Darstellung mit jeweils zw¨lf Byte pro Zeile (nicht-druckbare o Zeichen sind durch einen Punkt gekennzeichnet). Man erkennt, dass die POA-Struktur im Schl¨ssel abgelegt wird und selbiger anscheinend mit u einem magic beginnt (Byte 1-3). Tabelle 4.12: Transienter SUN ORB Objektschl¨ssel u HEX C2 47 00 02 41 00 00 00 00 01 14 URL ............ ............ ....RootPOA. ....null.... ............ .

AF 00 00 00 00

AB 00 00 00 00

CB 00 00 00 00

00 01 08 05 08

00 00 52 6E 00

00 00 6F 75 00

00 00 6F 6C 00

20 00 74 6C 01

61 00 50 00 00

F5 00 4F 00 00

Vergleicht man nun Schl¨ssel verschiedener Objekte desselben POA, so u stellt man auch hier fest, dass an einer Stelle (dem vorletzten Byte) hochgez¨hlt wird (Tabelle 4.13). Variiert man zus¨tzlich den POA, so ¨ndert a a a sich das sechste Byte von hinten derart, dass es f¨r jeden neuen POA u inkrementiert. Erzeugt man nun an einem ORB verschiedene POA und f¨r diese jeweils mehrere Objekte, so k¨nnen diese Abh¨ngigkeiten gut u o a gefunden werden. In Tabelle 4.13 sind auf die letzten zehn Byte reduzier¨ te Objektschl¨ssel dargestellt. Byte f¨nf ¨ndert sich pro POA-Anderung u u a und Byte neun pro Objekt¨nderung. Was sich ebenfalls andert, sind die a ¨ POA-Namen im Objektschl¨ssel. Beginnend ab Byte 28 findet sich der u RootPOA und anschließend der jeweils zust¨ndige POA. Es handelt sich a hierbei um CDR kodierte Zeichenketten. Im long-Wert, vier Bytes vor der Zeichenkette, wird deren L¨nge zuz¨glich des Nullbytes kodiert. In Tabelle a u 4.14 werden vier solcher Schl¨sselteile dargstellt. 08 52 6F 6F 74 50 4F u 41 0019 steht f¨r acht Zeichen, dem RootPOA“ plus Nullbyte und wurde u ”
19

Siehe Tabelle 4.12

Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern

42

Dass es sich hier um einen Zeitstempel handelt liegt auf der Hand. Es ist also anzunehmen.14: SUN POA-Namen. Jeweils angeh¨ngte 00“ dienen dem CDRa ” Alignment und Padding [OMG04]. so sind f¨r transiente Objekte die ersten acht Byte immer u u AF AB CB 00 00 00 00 20. Kodierung Schl¨sselabschnitt u 6C 6C 00 00 00 00 65 6F 6E 65 00 00 74 77 6F 00 00 00 68 72 65 65 00 00 POA-Name null oneone twotwotwo threethree 00 00 00 00 00 0A 74 00 00 00 0B 74 00 00 77 68 00 00 6F 72 05 07 74 65 6E 6F 77 65 75 6E 6F 74 in der Tabelle weggelassen.: 59 79 A9 BA) variieren von ORB zu ORB. wachsen stetig und ¨ beginnen bei Uberlauf wieder von vorn. Zeitexperimente belegen.13: Transiente SUN Objektschl¨ssel verschiedener POA u POA 1 2 3 1 2 3 1 2 3 Objekt 0 0 0 1 1 1 16 16 16 Schl¨sselabschnitt u 01 00 00 00 00 14 02 00 00 00 00 14 03 00 00 00 00 14 01 00 00 00 01 14 02 00 00 00 01 14 03 00 00 00 01 14 01 00 00 00 10 14 02 00 00 00 10 14 03 00 00 00 10 14 08 08 08 08 08 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Tabelle 4. so kann man feststellen.java. Zeile 87f. wie ihn System. Byte vier bis u acht spiegelt also die LifespanPolicy des POAs wieder. dass persistente Schl¨ssel immer mit AF AB CB 00 00 00 00 22 beginnen. dass es sich um einen Millisekundenz¨hler handelt. Betrachtet man nun wieder den Start des Schl¨ssels. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 43 .4 Ergebnisse Tabelle 4. Betrachtet man persistente Objektschl¨ssel u oder blickt man in den Quelltext. Die nachfolgenden vier Bya tes (Bsp. Nur mit Hilfe des Quelltextes20 ist dieser Verdacht zu best¨tigen.currentTimeMillis() a 20 In Datei com/sun/corba/se/impl/orbutil/ORBConstants. dass sich der Wert pro Sekunde um 1000 vermehrt.

Ist also ein Informati” onsleck“ aufgetreten oder sind ohnehin IORs bekannt. Transiente und persistente Objekte (t1.2 ): 4. dass man bei transienten Objekten den ORBo Zeitstempel (ORB-ID) und die gesamte POA-Hierarchie err¨t. Der Zeita stempel kann 2564 = 4. so verringern sich diese Zahlen drastisch. dann besteht akuter 21 Sie bezeichnet den Servernamen oder eine Servernummer. dadurch rotiert dieser Wert alle 49. kann aber durch bereits in vorherigen Abschnitten getroffene Annahmen auf 1. Da f¨r persistente Objekte die ORB-ID (als Persistentu ServerId) die gleiche Komplexit¨t aufweist. 3 × 109 verschiedene Werte annehmen. 5 × 1016 ≡ 1. ist es notwendig.6: Aufbau von SUN-ORB Objektschl¨sseln u F¨r persistene Objekte muss keine gesonderte Betrachtung stattfinden. gelangt man zu dem Ergebnis. Betracha tet man jedoch die Wahrscheinlichkeiten. 7 × 106 a Dieses Ergebnis verspricht zun¨chst ein hohes Maß an Sicherheit. wenn bereits eine g¨ltige IOR beu kannt ist. 28×106 M¨glichkeiten o begrenzt werden. u da nur die ORB-ID anders belegt wird. 3 × 109 × 1. wie Server-Id und Server-Port. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 44 . Abbildung 4. Durch Variation der f¨r persistente u POA typischen Einstellungen.7 Tage. treffen diese Annahmen gleia chermaßen zu.4 Ergebnisse bereitstellt. dass dort die PersistentServerId21 statt der Zeitangabe zu finden ist. Durch eine Typumwandlung werden nur die letzten 32 Bit betrachtet. die den ORB sp¨ter bei eia nem Neustart wieder korrekt identifiziert. Dieser Mechanismus ist f¨r den persistenten u Objektaufruf wichtig. 28 × 106 × 10 = 5. In der ORB-Implementierung findet sich auch genau dieser Punkt. Um nun einen SUN Java ORB object key ohne Vorwissen erraten zu k¨nnen. Die POAHierarchie ist theoretisch unendlich komplex.

dass diese Schl¨ssel identisch aufgebaut sind. Innerhalb aller Analysen konnu te kein Unterschied zwischen beiden Versionen festgestellt werden. Die EBNF findet sich. das jedoch auch die LifespanPolicy des POAs anzeigt. Die praktische Sicherheit kann deutlich uber ¨ oder unter dem angegebenen Werten liegen. u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 45 . Der Vergleich mehrerer Objekte eines POAs zeigt außerdem. dass vom Objektz¨hler ebenfalls Gebrauch gemacht wird. Ein Test mit Visibroker 6.5 ergab. Nicht vergessen werden darf jedoch. dass bez¨glich der u Wahrscheinlichkeit f¨r Objekte anderer POAs auch hier bestimmte Anu nahmen vorausgesetzt sind. der u ein an POA null“ gebundenes Objekt referenziert. wird keine Quelltextanalyse und auch keine textuelle Trennung der Schl¨sseltypen vorgenommen.22 Bei den ersten vier Byte handelt es sich wieder um ein magic. Da es sich nicht um ein OpenSource Produkt u handelt und sich transiente von persistenen Schl¨sseln kaum unterscheiu den. Es wird nur noch auf Eigenheiten eingegangen und der Schl¨su selaufbau graphisch dargestellt. wie f¨r alle anderen u Schl¨ssel auch. im Anhang.4 Ergebnisse Handlungsbedarf. den Aufbau der Objektschl¨ssel nicht so detailliert darzustellen. a u wie bisher. Objekte am gleichen POA (t3 ): 10 ≡ 10ms Objekte an anderem POA (t4 . Somit erscheint es zwecku m¨ßig.5 Visibroker Objektschl¨ssel des Borland Visibroker weisen generell die gleichen Merku male wie alle zuvor behandelten Schl¨ssel auf. Tabelle 4. Die einzige Speziaa ” 22 Bezogen auf den Schl¨sselaufbau.15 zeigt einen transienten Visibroker 7 Objektschl¨ssel. t5 ): 1. 28 × 106 ≡ 21min20s 4. Die bereits bekannte POAHierarchie ist ebenfalls beim Visibroker im Objektschl¨ssel wiederzufinu den. u Tabelle 4.16 das ent” prechende persistente Pedant.

. dass 0x02 15 f¨r das Ergebnis relevanter ist25 . dass dieser Wert 23 24 aus Tabelle 4....... Betrachtet man dies jedoch uber einen langen Zeit¨ raum.. Spaltet man nun die acht Bytes in zwei long Werte auf und nimmt an......4 Ergebnisse Tabelle 4. Berechnet man die Differenz der Stempel.16: Persistenter Visibroker Objektschl¨ssel u HEX 00 50 4D 43 00 00 00 04 00 00 00 06 2F 6E 75 6C 6C 00 20 20 00 00 00 04 00 00 00 00 URL .. so st¨ßt man auf eine scheinbar zu o große Zahl.. 102 Tage auseinander liegen..... In Tabelle 4. 0x000002183434ED39 = 2 302 978 354 489 Diese Zahl entspricht keinesfalls den Sekunden oder Millisekunden eines UNIX-Zeitstempels... in Wirklichkeit sind es u aber nur 84 Tage. lit¨t“ ist eine Art Zeitstempel bei transienten Objekten. ..17 o sind zwei Stempel. Die letzten acht a Bytes (zwei Variablen vom Typ long oder ein long long) des Schl¨ssels u beinhalten diesen Stempel. Versucht man jedoch den Timestamp 00 00 02 18 34 34 ED 3923 umzurechnen.. u so m¨ssten diese ca.15 Der Bereich der Sekunden und Millisekunden wurde mit Nullen gef¨llt.. die miteinander die korrekte Zeit ergeben k¨nnten. deren Erstellungszeit und die dazugeh¨rige UNIX-Zeit o in Millisekunden24 aufgef¨hrt./null .. also Vielu fache von 232 darstellt. so kommt man zu der Annahme... da die Erstelu lungszeit nur minutengenau vorliegt.. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 46 . .PMC. dass es sich um zwei long-Werte handelt. so macht man die Beobachtung..9 Tabelle 4../ null..15: Transienter Visibroker Objektschl¨ssel u HEX 00 56 42 01 00 00 00 06 2F 6E 75 6C 6C 00 20 20 00 00 00 04 00 00 00 00 00 00 02 18 34 34 ED 39 URL .VB.: most significant...... 25 Aus engl.

Halbiert man diesen.04. Der Stempel s = l1 l2 folgt also der Formel l1 = t mod 0x7FFFFFFF l2 = t ÷ 0x7FFFFFFF (4.17 analog. der die eigentliche UNIX-Zeit darstellt. multipliziert also mit 231 statt 232 und addiert die restlichen Bytes des zweiten long hinzu. Der persistente Schl¨ssel folgt folgender Erzeugungsu vorschrift: 26 Die Hexadezimalwerte wurden in das Dezimalsystem uberf¨hrt.2) Verf¨hrt man beim zweiten Stempel aus Tabelle 4. so kommt a man zu einem identischen Ergebnis. so erh¨lt man26 a 533 × 231 + 1 283 483 100 = 1 145 892 267 484. Ein transienter Schl¨ssel ist wie folgt u aufgebaut: Abbildung 4. u ¨ Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 47 . Dies ist der bis auf 37s genaue.17: Visibroker Zeitstempel Stempel 00 00 02 15 4C 80 65 DC 00 00 02 18 34 33 7A A4 Erstellungszeit 24.2006 13:43 currentTimeMillis() 1’145’892’230’000 1’141’735’400’000 (232 = 2 289 217 568 768) nahezu das Doppelte des Wertes ist. anhand der bekannten Erstellungszeit erwartete Zeitstempel.4 Ergebnisse Tabelle 4.1) (4.7: Aufbau transienter Visibroker-Objektschl¨ssel u Bei persistenten Objekten wird auf diesen Zeitstempel ersatzlos verzichtet.07.2006 17:24 03. Ein Einfluß der ServerId auf die Schl¨ssel konnte ebenfalls nicht u festgestellt werden.

a a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 48 . Es erfolgt eine N¨herung an die o a Komplexit¨t der Objektschl¨ssel.4 Ergebnisse Abbildung 4. betr¨gt die Anzahl a der M¨glichkeiten f¨r Visibroker Objektschl¨ssel: o u u Transiente Objekte (t1 ): 86 × 106 × 1.5 ): 1. 1 × 1015 ≡ 35 × 103 a Persistente Objekte (t2 ): 1.8: Aufbau persistenter Visibroker-Objektschl¨ssel u Unter der Maßgabe. o u ¨ der Namen getroffen werden. ein potentielles Sicherheitsproblem besteht. In 3. 28 × 106 ≡ 21min Auch hier zeigt sich. dass wenn eine IOR bekannt ist.6 Weblogic Wie bereits beim Visibroker. 4. 28 × 106 . 28 × 106 × 10 = 1. 6h K¨nnen Aussagen uber die POA-Hierarchie bez¨glich des Aufbaus bzw. 27 Ca. maximal 105 Objekte sind vorhanden und die maximale Komplexit¨t der POA-Hierarchie betr¨gt 1. werden an dieser Stelle zur Redundanzvermeidung nur noch die Endergebnisse vorgestellt. 28 × 107 = 3. wenn bereits eine Interoperable Objekta u referenz bekannt ist und weitere Annahmen wie bei den anderen Untersuchungen27 getroffen werden: Objekte am gleichen POA (t3 ): 10 ≡ 10ms Objekte an anderen POAs (t4. 10% der Objekte eines POAs sind aktiv. wird der Wertebereich deutlich verkleinert und man ben¨tigt erheblich weniger Zeit.6 wurde dargelegt.1. 28 × 106 times10 = 1. dass die Erstellungszeit auf einen Tag genau vorhergesagt werden kann und sonst nichts bekannt ist.

...... hier BEA..... u ” Auff¨llig ist. die sich ohne Quelltext nicht kl¨ren l¨sst. Erst in CORBA 2. Gut zu erkennen ist dies in Tabelle 4... sind die letzten a a acht Bytes der siebten Zeile. Tabelle 4. . IDL:HelloApp /Hello:1. Weshalb die RepositoryId in den Schl¨ssel o u integriert wurde...18: Transienter Weblogic Objektschl¨ssel u Zeile 1 2 3 4 5 6 7 8 9 10 11 HEX 00 01 00 17 70 70 00 00 00 01 00 00 F0 BD 49 3A 30 30 00 01 31 URL ..19. Bea u kannt und fast schon erwartet hat man ein ORB-magic.18 zeigt den u Schl¨ssel des zehnten Objektes eines POAs unterhalb des RootPOA“.... . kann nicht gesagt..... In Zeile f¨nf ist im Klartext ein POAu Z¨hler mit dem Offset 258 zu finden..... dass die RepositoryId (TypeId) im Schl¨ssel vorkommt.. Da diese Bytefolge nur“ pro ORB einmalig ist.1 wurde mit IIOP ein Protokoll eingef¨hrt. Die ersten vier Bytes sind entweder alle 00 oder FF w¨hrend die zweite H¨lfte anscheia a nend mit Zufallswerte gef¨llt wird.0.4 Ergebnisse Tabelle 4....... Eine Besonderheit. ” erh¨ht dies leicht die Sicherheit... historische Gr¨nde d¨rfen aber vermuu u tet werden. BEA.. 1 00 00 49 2F 00 42 00 7F 5B 30 42 00 44 48 00 45 00 FF 42 30 45 00 4C 65 00 41 00 FF 3A 30 41 00 3A 6C 04 11 00 02 30 30 08 00 48 6C 32 00 00 00 30 30 01 00 65 6F 35 00 00 00 30 30 03 00 6C 3A 39 00 00 00 30 30 00 00 6C 31 00 36 00 18 30 00 00 00 6F 2E 00 00 73 52 30 00 00 00 41 30 00 00 B2 4D 30 00 dass Probleme bei der Erstellung persistenter Objekte und der Portzuweisung der Servants eine umfangreiche Analyse verhinderten und hier nur die transienten Objektschl¨ssel analysiert werden....259.. u in dem der Objekttyp zu finden ist...s... a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 49 ...6.. Am Ende der vorletzten Zeile steht a die L¨nge des Objektz¨hlers (es wird ORB-weit hochgez¨hlt) dem der Oba a a jektz¨hler selbst in ASCII folgt. Eine Korrelation mit der Zeit konnte u nicht festgestellt werden...BEA.RMI: B:000000000 0000000. ... . hier00 00 00 00 73 B2 F0 BD..

a reduziert sich diese Zahl dramatisch: Objekte am gleichen POA (t3 ): 10 ≡ 10ms 28 Zu den illegalen Mitteln geh¨rt reverse engineering bzw. eine Analyse zu verhindern. Die Erzeugung der ORB-ID konnte mit legalen Mitteln28 nicht nachvollzogen werden.9: Aufbau transienter Weblogic-Objektschl¨ssel u Weblogic object keys sind die mit Abstand kompliziertesten. 10 Prozent aller Objekte die getestet werden. dass bereits eine IOR bekannt ist. so ist dies. Nimmt man aber an. auch die Erzeugungsvorschriften sind komplex und zeigen die Verschachtelung des Schl¨ssels in sich. 3 × 1012 ≡ 136a Diese Zahl ergibt sich aus den Annahmen. Die Anzahl der M¨glichkeiten verdeutlicht o o dies: Transiente Objekte (t1 ): 2564 × 2 × 50 × 10 = 4. Objekt 1 2 9 10 99 100 L¨nge a 00 00 00 00 00 00 00 00 00 00 00 00 Schl¨sselteil u 31 32 39 31 30 39 39 31 30 30 00 00 00 00 00 00 01 01 01 02 02 03 Abbildung 4. Dekompilieren wie es beio spielsweise mit JAD m¨glich ist.19: Weblogic Objektz¨hler a lfd. Sollte beim Design ein Ziel geu wesen sein. Trotzdem ist das Erraten eines g¨ltigen Schl¨ssels u u kein unm¨gliches Unterfangen. o Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 50 . aktiv sind und die ORBID zuf¨llig ist. dass maximal 50 POA existieren. zumindest teilweise.4 Ergebnisse Tabelle 4. gelungen. Nicht allein die Grammatik.

In Zeile eins sieht u ” Tabelle 4. Die folgenden vier Byte sind jeweils zwei short a zwei a Byte. wodurch sich grunds¨tzlich persistente und trana siente Objekte unterscheiden lassen..20 zeigt einen transienten Schl¨ssel am POA null“. dass man bereits beim ersten Zugriffsversuch feststellen kann. .. gemessen ab der Position hinter dieser Angabe.. die POA-Hierarchie und einen Objektz¨hler... Anschließend folgt die vier Byte lange ORB-ID.. o Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 51 ..4 Ergebnisse Objekte an anderem POA (t4 ): 50 ≡ 50ms Beim Ausprobieren der einzelnen POA wird davon ausgegangen.null. eine einem Zeitstemu u ¨ pel ¨hnliche ORB-ID.diese sind f¨r WebSphere Obu jektschl¨ssel spezifisch und stellen ein magic dar. Die Differenz beider Angaben ist immer 29 In diesem Fall doch. Die nachfolgenden vier u Bytes sind die einzigen.. also einschließlich ab Byte 17. ob dieser POA existiert. Sie verf¨gen uber ein magic. u a 4... man die ersten vier Bytes 4C 4D 42 49 ..... deshalb treffen die folgenden Aussagen auf beiderlei Schl¨sselarten zu.. Die gesamte Anzahl m¨glicher Objekte wird also nur bei lebenden“ o ” POA gepr¨ft und k¨me noch hinzu. ist aber meist nicht signifikant29 . . Tabelle a a 4..... da sich die Zeit um 20% erh¨ht.7 WebSphere WebSphere Objektschl¨ssel unterscheiden Persistenz und Transienz nur u anhand einer Variablen.20: Transienter WebSphere Objektschl¨ssel u HEX 4C 4D 42 49 00 00 00 16 C6 D6 EB D8 00 15 00 05 04 6E 75 6C 6C 00 04 00 00 00 00 URL LMBI. u die zuf¨llig erscheint.. Der Erste gibt die absolute Startposition des Objektz¨hlers an und a der Zweite die relative. Byte acht ist f¨r persistente Objekte u 16 und f¨r transiete 15..

28 × 106 ≡ 21m20s Abschließend kann man sagen. muss nur u noch wenig herausgefunden werden: Objekte am gleichen POA (t3 ): 10 ≡ 10ms Objekte an anderem POA (t4. Die zweite Angabe kann man auch als die Gesamtl¨nge der POAa Hierarchie ansehen. Beendet wird der Schl¨ssel mit der L¨nge des Objektz¨hlers u a a (zwei Byte) und dem Objektz¨hler selbst (vier Byte). wurden hierbei ber¨cksichtigt. 28 × 106 × 10 = 5.4 Ergebnisse 0x10. diese folgt n¨mlich nach folgendem Schema: L¨nge des a a POA-Namen (in einem Byte) und der POA-Name selbst. 5times1015 ≡ 174 × 105 a Die bereits in vorherigen Abschnitten getroffenen Annahmen.10: Aufbau transienter WebSphere-Objektschl¨ssel u Der WebSphere ORB nutzt einen Großteil der Mechanismen. dass auch bei diesem ORB keine echte Sicherheit vorliegt und er sich folglich in die Masse der anderen ORB einreiht. Ist eine Objektreferenz bekannt. die ebenfalls von anderen ORB benutzt werden.5 ): 1. Die Anzahl verschiedener Schl¨ssel ist f¨r: u u Transiente und persistente Objekte (t1.2 ): 2564 × ×1. Die Komplexit¨t a a des Schl¨ssels ergibt sich in der Hauptsache aus einer zuf¨lligen ORB-ID u a und der POA-Hierarchie. a Abbildung 4. 50 verschiedene POA-Namen in drei Hierarchieebenen und 10 Prozent aktive Objekte. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 52 . Da diese bereits vorgestellt wurden. wird an dieser Stelle nicht n¨her darauf eingegangen. als ASCII Zeichenkette.

Die Klasse spiegelt die Zehnerpotenz wider.0 9. ergeben sich f¨r u jeden ORB maximal f¨nf Ergebnisse.4 7. die o a die maximale Anzahl der M¨glichkeiten reflektiert.0 3. 6 × 109 o o M¨glichkeiten in die Klasse 10.8 Komplexit¨t der Objektschl¨ssel a u Die Zahlen in Tabelle 4.0 t1 M¨glichkeiten f¨r transiente Objektschl¨ssel unter der Annahme. dass 10 Prozent der Objekte am POA aktiv und diese zus¨tzlich uber den Schl¨ssela u ¨ raum gleichverteilt sind. Aus den untersuchten Varianten resultierend. Die Einzelwerte sind dem Fazit der einzelnen ORB entu ¨ nommen und hier zusammengefasst.2 10. dass es maxiu mal 50 POA-Namen gibt die bekannt und in maximal drei Ebenen miteinander verbunden sind. o u u dass nichts bekannt ist. u Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 53 .4 20. 6 aufgerundet und folglich aus 109 o 1010 wird. desto a o h¨her die Komplexit¨t. Ferner ist angenommen. dass die Anzahl der M¨glichkeiten h¨chstens o o 101 = 10 ist. Zur besseren Ubersicht und Vergleichbarkeit bieten sich Komplexit¨tsklassen an – Je h¨her die Klasse.4 Ergebnisse 4. t2 Wie t1 .21: Vergleich der Objektschl¨sselkomplexit¨t u a ORB MICO ORBacus Orbix SUN ORB Visibroker Weblogic WebSphere t1 10 17 30 17 15 12 16 t2 16 12 – 17 7 – 16 t3 1 1 1 1 1 1 1 t4 3 11 30 6 6 2 6 t5 6 11 – 6 6 – 6 ¯ t 7.3 9. Ist jedoch der POA-Name oder die POAHierarchie Teil des Schl¨ssels. nur f¨r persistente Objekte.21 entsprechen der Anzahl von M¨glichkeiten f¨r o u Objektschl¨ssel. So geh¨ren 5. so wurde angenommen. Dies resultiert aus den untersuchten u Varianten. Klasse 1 bedeutet. Tabelle 4. da 5.

dass ab Klasse neun ein Erraten sinnlos wird.4 Ergebnisse t3 Verschiedene M¨glichkeiten f¨r Objekte am gleichen POA. u t5 Wie t4 . da einerseits Annahmen zu diesen Ergebnissen f¨hrten und anu dererseits nicht bei allen ORB alle Werte verf¨gbar waren. Es wird o gezeigt. t4 Hier ist eine IOR bekannt und es z¨hlt die Anzahl der M¨glichkeiten a o f¨r andere transiente Objekte an anderen POA. 10 Prozent o u der Objekte am POA sind aktiv.6 Milliarden Jahren uberschritten. nur f¨r persistente Objekte. ist diese Beziehung in Tabelle 4. u ¯ t Der Durchschnittswert der Komplexit¨t soll hier in einer Zahl zua sammengefasst werden um einen Vergleich zu gew¨hrleisten Diesem a Anspruch kann dieser Durchschnittswert nur begrenzt gerecht werden.22 dargelegt. Mit Klasse 20 wird das Erdalter von 4. ¨ Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 54 . u Um den Komplexit¨tsklassen maximal ben¨tigte Zeiten f¨r das Erraten a o u zuordnen zu k¨nnen.

4 Erdenleben 3.4 Ergebnisse Tabelle 4.22: Umrechnung Komplexit¨t in Zeitaufwand a Komplexit¨tsklasse a 1 2 3 4 5 6 7 8 9 10 11 12 13 15 20 30 Zeit¨quivalent a 50ms 500ms 5s 50s 8min 80min 13h 6d 58d 578d 16a 158a 1578a 158 Jahrtausende 3. 4 × 1010 Erdenleben Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 55 .

1 Komplexit¨t a Die im Ergebnisteil getroffenen Annahmen bez¨glich der Komplexit¨t der u a POA-Hierarchien haben auf viele Wahrscheinlichkeiten einen sehr großen Einfluss.Diskussion 5 In diesem Kapitel wird er¨rtert. 56 . diese Variable deutlich zu veringern. Gelingt es. o 5. Die POA-Komplexit¨t und die ben¨tigte o a o Zeit f¨r das Erraten sind linear abh¨ngig. Es werden die Komplexit¨t der a Objektschl¨ssel diskutiert und L¨sungen angeboten. Erfahrungen aus der Praxis konnten nicht in die Arbeit integriert werden. so w¨rden sich u die ben¨tigten Zeiten veringern. die die dargelegten u o Schwachstellen beseitigen k¨nnen. Weiterhin ist diese Komplexit¨t u a a nur angenommen. ob die in der Einleitung getroffene Vermuo tung des illegalen Zugriffs zutreffend ist.

die Sicherheitskonzepte entu weder v¨llig ausblendeten oder aber bewusst auf diese verzichteten.2006 1:00 Uhr neu gestartet wurde und dabei alle Dienste neu initialisiert hat. Wichtig ist sicher auch. diese Schl¨ssel wieu u der schnell einem Objekt zuordnen zu k¨nnen. da die Anzahl der notwendigen Versuche um einige Zehnerpotenzen h¨her liegt.2006 1:00 Uhr zeigen. Ist beispielsweise bekannt. Gleiches trifft auch auf die o POA-Hierarchie und den POA zu. einfache Methoden zur u Schl¨sselerzeugung zu nutzen. o Da ein Designziel der meisten ORB die Ausf¨hrungs.1. so ist sicher. u In Tabelle 4. Die Komplexit¨t reduziert sich. liegt es nat¨rlich nahe. u Es wurden also Designziele ber¨cksichtigt. POA und das Objekt in den Objektschl¨ssel einu ¨ gearbeitet und stattdessen auf andere als die vorgestellten Mechanismen zur¨ckgegriffen. die Wahrscheinlichkeit a des Erratens erh¨ht sich. da die meisten ORB die gleichen Mechanismen zur Schl¨sselerzeugung einsetzen. Dies verwundert insofern.21 sieht man. dass ein ORB am 1. mehr oder weniger gut vora hergesagt werden. Der hier immer einu gesetzte Z¨hler beitet keine Sicherheit und l¨dt zum Ausprobieren anderer a a Objekte f¨rmlich ein. o Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 57 . ist ebenfalls viel gewonnen. je u o nach praktischer Auspr¨gung eines Systems. Leider wurde vers¨umt. muss kein aufw¨ndiges Listenmanagement u a innerhalb des ORB f¨r die Zuordnung sorgen. dass die Komplexit¨t der Schl¨ssel stark varia u iert. Orbix geht mit dem Einsatz eines u Hashes f¨r die POA-Identifikation einen eigenen Weg. o a diesen Mechanismus auch f¨r die Objekte einzusetzen.oder Verarbeiu tungsgeschwindigkeit ist.5 Diskussion Weiterhin vorhandene Zeitstempel innerhalb der Schl¨ssel k¨nnen.1. Dieser ist im Veru gleich zu den anderen ORB auch sicherer. Werden keinerlei Zeitstempel oder stringifizierte o Daten uber den ORB. dass diese Zeitstempel alle auf ein Datum kurz nach dem 1. Wird der Weg zum zust¨ndigen POA a gleich mit im Schl¨ssel abgelegt.

com * ************************************************************* found active Object (Obj# 10 POA# 0) corbaloc:iiop:1. die es erm¨glicht. soll dies zuerst versucht werden.4. eine Angriffssoftware zu schreiben. dass MICO-Objektschl¨ssel erzeugen und ausprobieu ren kann. Am Beispiel von MICO wird versucht.2 Machbarkeitsstudie Die f¨r die Objektschl¨ssel ermittelten Komplexit¨ten lassen vermuten. u u a dass man ohne Vorwissen keinen. Die Anzahl der zu untersuchenden POA und Objekte l¨sst sich ubergeben.0@localhost.0 ************************************************************* * I Guess .(C) christoph. Obo jektreferenzen zu generieren und zu testen.3 .0000 -o 1000 -p 1000 \ -t IDL:Hello:1. u Auf der beiliegenden CD befindet sich das Programm iGuess“. mit Vorwissen jedoch schnell und einfach einen Zugriff auf ein Objekt erhalten kann. Da f¨r das Auffinden weiterer Objekte am selben POA durchweg die u geringste Komplexit¨t vorliegt.localdomain:52501//6323/1158735167/0/_01 Type: IDL:Hello:1. Es ist ” ein Java Programm./start -mc IOR:010000000e0000004.becker@prismtech.5 Diskussion 5.Object Key Guessing Tool * * Version 0.. Anschliea ßend sollen Objekte an anderen POA gefunden und uberpr¨ft werden. Wird ein aktives Objekt gefunden. dass der ORB in den Zustand run“ geschaltet wird und min” destens ein weiteres Objekt am selben und eines an einem weiteren POA aktiv sind. so kann man den Objekttyp ebenfalls testen.0 ********************************* Statistic ========= Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 58 . Ein typischer Aufruf mit einer bekannten IOR und a ¨ die Programmausgabe sieht wie folgt aus: $ . F¨r u u ¨ dieses Szenario wird das Tool zur Erzeugung der Objektreferenzen derart modifiziert.. Die IOR eines g¨ltigen aktiven Objektes sei gegeben.

0“. dass Angriffe auf Schl¨su ” sel parallel und auch f¨r andere ORB durchgef¨hrt werden k¨nnen. Jedoch ist zu vermuten. Ebenu u o falls denkbar ist die direkte Kopplung mit einer bisher nicht vorhandenen Schadfunktion“. an seine Leistungsgrenzen stoßen wird. o In Zukunftz kann iGuess“ so erweitert werden. a Jede Firma. dass diese auch genutzt werden k¨nnen. Die verf¨gbare Bandbreite spielt sicher auch eine Rolle. Die TypeID entspricht auch dem gesuchten IDL:Hello:1. Aufgrund der Last. ” Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 59 . hat sich f¨r große Testszenarien (mehr als 10’000 Objekte) best¨tigt.: 999 Comm Failure Ex.5 Diskussion Objects to be tested: 1000000 active/tested Objects: 1/1999 active/tested POAs: 1/1000 -------------------------------Time total: 6243ms Time per Object 3ms -------------------------------known Types: 1 Object not exists: 999 Bad Op Exceptions: 0 Object Adapter E. dass ein Objekt gefunden werden konnte. wurde u aber vernachl¨ssigt. die ein Angriff erzeugt. sind ORB auf schnellen (und damit teureren) Rechnern eher angreifbar als ORB auf alten leistungsschwachen Rechnern. da von guter Vernetzung ausgegangen werden kann. der das u aktive Objekt verwaltet. An ” dieser Stelle k¨nnte man nun mittels eines weiteren Programmes mit dem o gefundenen Objekt interagieren. die verteilte Dienste anbietet oder selbst in Anspruch nimmt. u Ob und inwiefern sich Verbesserungen durch Parallelisierung erreichen lassen. wurde nicht gepr¨ft. Die Aufwandsabsch¨tzung mit der im Verlauf dieser Arbeit gerechnet a wurde. dass der ORB. wird sicherstellen. : 0 System Exceptions: 0 Other Exceptions : 0 ********************************* Man kann hier deutlich erkennen. u a Die Testzeit von 1ms pro Schl¨sseltest ist realistisch.

3 L¨sungsm¨glichkeiten o o Die Machbarkeitsstudie zeigt.3. wie Startzeit zu verhinu dern. Ob das Objekt dann noch existiert? Um das Bekanntwerden eines Zeitstempels im Klartext zu vermeiden und somit die R¨ckgewinnung von Informationen. um den ORB eindeutig identifizieren zu k¨nnen. 6 × 1010 )3 = 6. besitzen aber trotzdem unterschiedliche Merkmale wie Host oder Port.Bereichserweiterung Eine L¨sung. die Ver¨nderungen am ORB vornimmt. ist der Einsatz von Einwegfunktionen zweckm¨ßig. Nimmt man nun an. der Zeitrahmen k¨nnte auf f¨nf Minuten reduziert o u werden. Einerseits wird a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 60 . 4 × 1032 . dann steigt die Komplexit¨t. 7 × 1025 Wird eine g¨ltige Objektreferenz bekannt. als auch u a u f¨r den POA und gegebenenfalls pro Objekt beachtlich. betr¨gt der Wert immernoch: a (3 × 108 )3 = 2. F¨r die Komplexit¨tsklasse u a acht kann ein maximaler Zeitraum von sechs Tagen angenommen werden. Sie betr¨ge u u (8.1 Zeitstempel . dieses Objekt sei innerhalb von f¨nf Minuu ten nach dem anderen Objekt erzeugt worden. Kein Stempel existiert zwei Mal.5 Diskussion 5. Setzt man nun den Zeitstempel im Sekunden oder Millisekundenbereich auf den Nanosekundenbereich um und integriert diese Werte vollst¨ndig in a den Schl¨ssel. verbessert den Umo a gang mit Zeitstempeln. so h¨tte man f¨r ein anderes u a u Objekt desselben POA noch 3 × 108 M¨glichkeiten allein f¨r den Zeitstemo u pel wenn man wieder annimmt. Doch wie kann man diese L¨cken schließen u oder die Sicherheit anderweitig erh¨hen? Muss daf¨r der ORB ge¨ndert o u a werden? 5. Diese werden meist dazu eingesetzt. Zwei o ORB mit selbem Stempel wurden zwar zur selben Zeit erzeugt. sowohl f¨r den ORB. dass die angenommenen Sicherheitsl¨cken u praktische Relevanz besitzen.

ist die implizite Autorisierung durch den Erhalt einer g¨ltigen IOR.5 Diskussion der zur Verf¨gung stehende Wertebereich besser ausgenutzt. u 5. Wenn diese Transaktionsnummern fortlaufend sind. Da beiden Kommunikationspartnern u das Zertifikat des Anderen bekannt ist. andererseits u wird der besagte Stempel gesch¨tzt. Um Replay-Attacken zu vereiteln. besonders wenn die u Informationen uber einen ungesicherten Kanal wie das Internet geschickt ¨ werden m¨ssen. die in die Objektreferenz einfließt und ebenfalls u signiert wird. Allerdings best¨nde der Zugriff dann nur noch auf u u dieses Objekt. Um zu verhindern. kann eine Verschl¨sselung oder Signierung u des Datenverkehrs in beide Richtungen helfen. so darf der Empf¨nger keine Nachrichten verarbeiten. so ist das Erzeugen anderer Schl¨ssel f¨r Außenstehende zwar u u u m¨glich.3. die eine bereits benutzte a Transaktionsnummer besitzen. Alle anderen Objekte w¨ren durch die hohe Komplexit¨t a a gesch¨tzt. Einige OpenSource ORB unterst¨tzen SSL. 5. Somit ist zwar das Abh¨ren o und Wiederholen der Nachrichten m¨glich. jedoch ist immer die Signatur falsch und der Zugriff kann abgeo wiesen werden. dass auch nach u dieser Modifikation besteht. eine Datenver¨nderung w¨rde o a u aber erkannt werden. kommerzielle u u Produkte sind ebenfalls verf¨gbar. dass der Aufruf vom Client zum o Server nicht manipuliert wurde. muss man uber die Objektreferen¨ ¨ zen hinaus Anderungen am ORB vornehmen. den POA) signiert werden w¨rden. Man kann eine Transaktionsnummer einf¨hren.2 ORB-basiertes Signieren Wenn Objektreferenzen durch den ORB (bzw.3. Der Zugriff auf das Objekt anhand einer abgefangenen IOR ist aber noch m¨glich. Das einzige Problem. kann man sogenannte Man-inthe-middle Angriffe erkennen und anschließend wieder eine sichere Lei- Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 61 .3 Verschl¨sselung u Auch bei CORBA ist Verschl¨sselung eine gute Idee.

Nicht vertrauensw¨rdige Partner w¨ren u a Gesch¨ftspartner/-kunden die uber eine Schnittstelle an die eigene Vera ¨ waltungssoftware angeschlossen sind und dadurch beispielsweise Nachbe¨ stellungen erhalten oder Ahnliches. Dies sind Programme. Ist einer der an der Kommunikation Beteiligten u nicht vertrauensw¨rdig. die speziell f¨r CORBA entu u wickelt wurden. a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 62 . die den Verkehr von und zu CORBA-Systemen uberwachen ¨ und gegebenenfalls unterbinden k¨nnen.3. sind Proxies/Firewalls. Diese L¨sung geht davon aus. In diesen Bereich fallen auch Security Gateways. IIOP–Firewall Eine Variante zur Erh¨hung der Sicherheit. aber an Sicheru heit wurde nicht viel gewonnen. ohne Ver¨nderungen am ORB o a vornehmen zu m¨ssen. Einen etwas ¨lteren Vergleich beider Produkte findet man bei [Jet01]. 5. Bekannte Vertreter dieser Softwareklasse sind der Xtradyne Domain Boundary Controller (I-DBC) und IONAs Wonderwall.5 Diskussion tung herstellen. so ist es zwar die Verbindung. Durch Auslesen und Ver¨ndern o a der Felder im IIOP-Protokollkopf ist es diesen Programmen m¨glich. Je nach Produkt k¨nnen sogar einzelne Aufrufparameter begrenzt wero den.4 IIOP–Proxy. Security Application Gateways. Diese Programme sind im Prinzip beides IIOP-Proxies bzw. dass beide Partner jederzeit o vertrauensw¨rdig sind. den o Zugriff auf Objekte in einfacher Art zu kontrollieren und zu manipulieren.

dass es in wenigen Sekunden bis Stunden m¨glich ist. a u u Dieses tr¨gt. L¨sungen. wird einerseits eine gesicherte Umgebung geschaffen und andererseits die Sensibilit¨t f¨r Sicherheitsprobleme erh¨ht. a u o 63 . u Es wurde theoretisch und praktisch nachgewiesen. o o Systemimmanent ist und bleibt ein gewisses Restrisiko. g¨ltige Objektreferenzen zu erzeugen o u und diese zu nutzen. Die scheinbare Unvorhersagbarkeit u der herstellerabh¨ngigen Schl¨ssel vermittelt ein Gef¨hl der Sicherheit. die angeboten wuro den. Alle sicherheitsrelevanten Implikationen auf Basis dieser Referenzen f¨hren zu Problemen. dass Objektreferenzen keinesfalls als Capabilities angesehen werden d¨rfen. m¨glicherweise bessere L¨sungen zu finden. Doch durch den gezielten und vor allem bewussten Einsatz von Schutzprogrammen oder Sicherungsmechanismen.Zusammenfassung 6 Die Ergebnisse der Arbeit zeigen. u In der Zukunft muss versucht werden. umzusetzen oder neue.

Sie kann deshalb auch nicht erreicht werden. a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 64 .6 Zusammenfassung Eine vollkommene Sicherheit gibt es nicht. man kann sich ihr aber n¨hern.

Anhang A. s e q u e n c e <o c t e t > c o m p o n e n t d a t a . A 65 .IOP Definitionen Listing A. s e q u e n c e <T a g g e d P r o f i l e > p r o f i l e s . t y p e d e f s e q u e n c e <T a g g e d P r o f i l e > T a g g e d P r o f i l e S e q . p l u s a t y p e ID .1 IDL . // an I n t e r o p e r a b l e O b j e c t R e f e r e n c e i s a s e q u e n c e o f // o b j e c t − s p e c i f i c p r o t o c o l p r o f i l e s .1. // M u l t i p l e p r o f i l e s would be e n c a p s u l a t e d i n a T a g g e d P r o f i l e . t y p e d e f u n s i g n e d l o n g ComponentId .1: IOP Modul .Profilcontainer module IOP { // IDL typedef unsigned long P r o f i l e I d . }. s e q u e n c e <o c t e t > p r o f i l e d a t a . s t r u c t TaggedComponent { ComponentId t a g . struct TaggedProfile { P r o f i l e I d tag . }.1 Quelltextausz¨ge u A. s t r u c t IOR { string type id .

1102 uid [ 0 ] = ’ 0 ’ .3.A Anhang }. 1 . s e q u e n c e <o c t e t > o b j e c t k e y .2 MICO F¨r diese Arbeit wurde MICO 2. Der gesammte Quelltext ist auf der beigelegten CD verf¨gbar. o c t e t minor . // Added i n 1 . }. 1 unchanged f o r 1 .2: IIOP IOR Profile module IIOP { // IDL e x t e n d e d f o r v e r s i o n 1 .cc 1089 char ∗ 1090 MICOPOA : : UniqueIdGenerator : : new id ( ) 1091 { 1092 char ∗ i d . s t r u c t P r o f i l e B o d y 1 1 {// a l s o u s e d f o r 1 . }. }. t y p e d e f s e q u e n c e <TaggedComponent> TaggedComponentSeq . 1100 u i d = CORBA: : s t r i n g a l l o c ( u l e n ) . 1 . 3 struct Version { o c t e t major . 2 . 1101 a s s e r t ( uid ) . and 1 .1. 3 Version i i o p v e r s i o n . s t r i n g host . u Listing A. }. 1103 uid [ 1 ] = 0 .12 mit und ohne Security Fix 001 beu nutzt. }.3: MICO: new UniqueId. 2 and 1 . Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 66 . 2 and 1 . 1093 1094 /∗ 1095 ∗ Generate a new u n i q u e i d 1096 ∗/ 1097 1098 i f ( u i d == NULL) { 1099 ulen = 1. s t r u c t P r o f i l e B o d y 1 0 {// renamed from P r o f i l e B o d y Version i i o p v e r s i o n . unsigned short port . 3 s e q u e n c e <IOP : : TaggedComponent> components . s t r i n g host . s e q u e n c e <o c t e t > o b j e c t k e y . Listing A. A. unsigned short port . orb/poa impl.

f o r ( i =0. uid [ ulen ] = 0 . o a p r e f i x += xdec ( OSMisc : : g e t p i d ( ) ) . u i d ) . } u i d [ ulen −1] = ’ 1 ’ . i <u l e n . o a p r e f i x += xdec ( c t .A Anhang 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 } else { int i . f o r ( i =0. ∗/ OSMisc : : TimeVal c t = OSMisc : : g e t t i m e ( ) . } i f ( i == u l e n ) { CORBA: : s t r i n g f r e e ( u i d ) . return i d . } else { uid [ i ] = uid [ i ] + 1 . o a p r e f i x = ”/” . i ++) { uid [ i ] = ’ 0 ’ . uid [ i ] = ’ 0 ’ . i f ( p r e f i x ) s t r c p y ( id . assert ( id ) .4: MICO: transient prefix 49 50 51 52 53 54 55 56 57 58 59 60 61 62 // l i n e 2071−2081 − i n s i d e RootPOA c o n s t r u c t o r /∗ ∗ Generate a u n i q u e p r e f i x f o r t r a n s i e n t POAs b a s e d ∗ on t h e PID and t h e c u r r e n t time . p r e f i x ) . } } i d = CORBA: : s t r i n g a l l o c ( u l e n + p f x l e n ) . a s s e r t ( uid ) . // cb : system time i n s Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 67 . } Listing A. i ++) { i f ( u i d [ i ] != ’ 9 ’ ) break . i <ulen −1. // cb : p r o c e s s i d o a p r e f i x += ” / ” . u i d = CORBA: : s t r i n g a l l o c (++u l e n ) . t v s e c ) . s t r c p y ( i d+p f x l e n .

use / <pid > / <time> ∗ as t h e u n i q u e name ∗/ oaid = oaprefix . Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 68 .A Anhang 63 64 65 66 67 68 69 70 // l i n e 2083−89 /∗ ∗ The Root POA has a TRANSIENT L i f e s p a n P o l i c y . ∗ T h e r e f o r e .

<s1 > <ziffer> { <ziffer> }. einseins“ usw. a Transient <MICO-tkey> <process-id> <s1 > <zahl> <zifferOhneNull> <ziffer> <timeorb > <poa> <s2 > <object#> ::= <process-id> <timeorb > <poa> <object#>. Eine ascii-number ist der HEX-Wert einer Ziffer im ASCII-Format. sie wurden nur beispielhaft u an ihm erkl¨rt. <s1 > <zifferOhneNull>.1. "/".2 Aufbau der Objektschl¨ssel u A. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 69 . Die Null entspricht der 0x30. timepoa entspricht ebenfalls der Sekunden seit Beginn der UNIX-Ara. ” ” ¨ bezeichnet.2. "0"| <zifferOhneNull>. typische Werte beginnen mit 0x44. u Dieser Wert ist in der URL-Form im Klartext lesbar.A Anhang A. Diese Hinweise gelten nicht ausschließlich f¨r MICO. 9 * <ziffer>. in dieser Arbeit oftmals null“. ::= ::= ::= ::= ::= ::= ::= ::= ::= <s1 > <zahl>. <zifferOhneNull> { <ziffer> } "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9". 0x45. "/ ". die Eins der 0x31 und so weiter.1 MICO Folgende Definitionen sind bei der Betrachtung der EBNF-Darstellung der Objektschl¨ssel zu beachten: timeorb ist die Anzahl der Sekunden nach dem 1. Der Objektz¨hler object# z¨hlt im Hexadezimalsystem die Ana a zahl der jemals an diesem POA aktivierten Objekte hoch.1970. poa-h entspricht der POA-Hierarchie mit poa als einzelnen POA-Namen. <s2 > <ziffer> { <ziffer> }. wird aber direkt in die HEX-Darstellung umgewandelt. s ist ein Seperator.

dessen Hexwert statt dessen benutzt wird.A Anhang Persistent <MICO-pkey> <orb> <s1 > <poa-h> <poa> <s2 > <object#> <timeorb > <process-id> <s3 > a ::= <orb> <poa-h> <process-id> <time orb > <object#>. A. Auf die Darstellung aller ASCII Zeichen ist an dieser Stelle zu Gunsten der ¨ Ubersichtlichkeit verzichtet worden. <poa> { <s1 > <poa> }. 4 * <byte>. "/ ". "5F". 10 * <ascii-number>. <ziffer> { <ziffer> }. "%5C"b . <ascii-zeichen> { <ascii-zeichen> } <s 2 > .2 ORBacus Transient <ORBacus-tey> ::= <magicorb > <timeorb > <poa-h> <magicjava > <timepoa > <object#>. b Der Aufbau folgt der URL-Form. c Definition im vorherigen Abschnitt. "CA FE BA BE". "/". <magicorb > <timeorb > <ascii-number> <s> <poa-h> <poa> <timepoa > <nullbyte> <object#> <magicjava > ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 70 . "30"|"31"|"32"|"33"|"34"|"35"|"36"|"37"| "38"|"39". "AB AC AB 30". <s1 >. <ascii-zeichen>1 .2. <ziffernOhneNull> 9 * <ziffer> <s2 >. "00". ::= ::= ::= ::= ::= ::= ::= ::= ::= <ascii-zeichen>a { <ascii-zeichen> } <s1 >. 4 * <byte>2 . <s> <poa> { <nullbyte> <poa> } 2 * <nullbyte>. <zahl>c <s2 >. Ausdr¨cke wie %5C“ deuten auf einen nicht daru ” stellbares Byte hin.

"00". "08". 4 * <byte>. "00 5F". 12 * <byte>b . <lenpoa−id >. "0C". Je nachdem. "CA FE BA BE".2. Auf die Darstellung aller ASCII Zeichen ist auch an dieser Stelle verzichtet worden. "AB AC AB 30". <ascii-zeichen>a . <s> <poa> { <nullbyte> <poa> } 2 * <nullbyte>. A. "3A 3E". 8 * <byte>c . a Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 71 .A Anhang Persistent <ORBacus-pkey> <magicorb > <s> <poa-h> <poa> <timepoa > <nullbyte> <object#> <magicjava > a ::= ::= ::= ::= ::= ::= ::= ::= ::= <magicorb > <poa-h> <magicjava > <timepoa > <object#>. "31 31"|"31 32"a . 4 * <byte>. <lenobject# >. ob der POA persistente oder transiente Objekte verwaltet. inkrementierender Z¨hler. Es handelt dich offensichtlich um eine Zufallsfolge.3 Orbix <Orbix-key> <magicorb > <poapolicy > <lenpolicy > <poa-id> <lenpoa−id > <object#> <lenobject# > a b ::= ::= ::= ::= ::= ::= ::= ::= <magicorb > <poapolicy > <poa-id> <object#>. "02". c Als ein bei Null beginnender. <lenpolicy >.

4 SUN-ORB <Sun5-tkey> ::= <magicorb > <poalt−policy > <orb-id> <const1 > <poa-h> <object#> <const2 >. 4 * <byte>. "00 56 42 01". "20"|"22". "2F" <poaname >. 4 * <byte>. "2F" <poaname >.x betrug dieser Wert 0A. "00 00 00 04". Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 72 . "08". <lenpoa−h > <poa> { <poa> }. <poadeep > <poa> { <poa> }. "00 00 00 04".b <magicorb > <poalt−policy > <orb-id> <const1 > <poa-h> <poadeep > <poa> <poastrlen > <poaname > <object#> <lenobject# > <const2 > a b ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= In Java 1. <lenpoa−h > <poa> { <poa> }. Persistent <VB-pkey> <magicorb > <const> <poa-h> <poa> <poaname > <object#> <lenobject# > ::= ::= ::= ::= ::= ::= ::= ::= <magicorb > <const> <poa-h> <object#> . "00 00 00 04". <lenobject# > 4 * <byte>. <ascii-char> { <ascii-char> }. In Java 1. <lenobject# > 8 * <byte> <const2 >.A Anhang A.2. "00 00 00 01 00 00 00 00".2. <t1 > <t2 >. <poastrlen > <poaname >.5 Visibroker Transient <VB-tkey> <magicorb > <poa-h> <poa> <poaname > <object#> <lenobject# > <timepoa > <t1 > <t2 > ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= <magicorb > <poa-h> <object#> <timepoa >. <lenobject# > 4 * <byte>.x betrug dieser Wert AF AB CB 00. 4 * <byte>.a "00 00 00". <ascii-char> { <ascii-char> }. A.4. "14". "AF AB CD 00". 4 * <byte>. 4 * <byte>. "00 56 42 01".4. <ascii-char> { <ascii-char> }.

<lenpart2 > ::= 4 * <byte>. "00 00 00 15"|"00 00 00 16". <magicorb2 > ::= "42 45 41 11". <nullbyte> ::= "00". <poa#> ::= <zifferOhneNull> { <ziffer> }. <lenobject# > 4 * <byte>. "4C 4D 42 49".. <rmi> ::= "00 00 00 18 52 4D 49 3A 5B 42 3A 30 30 30".6 Weblogic Zusammenfassend ergibt sich folgender Schl¨sselaufbau: u <WL-tkey> ::= <magicorb1 > <const1 > <IDL> <poa> <magicorb2 > <lenpart2 > <const2 > <orb-id> <const3 > <object#>.A Anhang A. <object#> ::= <lenobject# > <zifferOhneNull> { <ziffer> }. <byte>. 2 * <byte>. I <poa> ::= <lenpoa# > <poa#>. <const2 > ::= 8 * <nulbyte>.7 WebSphere Der Aufbau in EBNF: <WB-key> ::= <magicorb > ::= <LC-policy> ::= <poa-h> ::= <lenprefix > ::= <lenpoa−h > ::= <poa> ::= <lenpoa ::= <poaname > ::= <object#> ::= <lenobject# > ::= <magicorb > <LC-policy> <poa-h> <object#>. <orb-id> ::= "00 00 00 00"|"FF FF FF FF". "00 04". <lenpoa > <poaname >. <type> ::= ¨DL:" <ascii-char> { <ascii-char> }. <lenIDL > ::= 4 * <byte>. <ascii-char> { <ascii-char> }. <const3 > ::= "7F FF FF 02 rmi>. <magicorb1 > ::= "00 42 45 41".2. 4 * <byte>. <IDL> ::= <lenIDL > <type> <nullbyte>. 2 * <byte>. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 73 . "30 30 30 30 30 30 30 30 30 30 30 00". A. <lenprefix > <lenpoa−h > <poa> { <poa> }.2. <const1 > ::= "08 01 03 00 00 00 00 01"8 * <nullbyte>.

Erkl¨rung a Ich erkl¨re. 20. diese Arbeit selbstst¨ndig angefertigt und die benutzten Una a terlagen vollst¨ndig angegeben zu haben. a Berlin. September 2006 Christoph Becker 74 .

[Jet01] Thomas Jetzler. IIOP firewalls. [Eck06] Claudia Eckert. [BS02] Gerald Brose and Sebastian Staamann. IIOP Complete . pages 50–53. Paul Klinker. Application Security Gateways: Eine Komplettl¨sung f¨r die Sicherheit von Applikao u tionsservern. 2000.Literaturverzeichnis [Bec06] Christoph Becker. Fritz Jobst. and Keith Duddy. Objektspektrum. [HJS01] Johann Hofmann. Oldenbourg. University of Zurich. Programmieren mit COM und CORBA. Java Programming with CORBA. Vorhersage von Objektidentifikationen in CORBA. 3rd edition. [BVD01] Gerald Brose.Understanding CORBA and Middleware Interoperability. IT-Sicherheit: Konzepte – Verfahren – Protokolle. 2001. Master’s thesis. [Kli00] William Ruh. and Roland Schabenberger. Andreas Vogel. Wiley. July 2001. 75 . Addison-Wesley. Studienarbeit. 2006. Thomas Herron. February 2006. July 2002. Hanser. 2001.

0. formal document 04-03-01. http://www. 1996. 1997. Analyse der Sicherheit impliziter Autorisierung durch Referenzenvergabe bei CORBA Object Request Brokern 76 .org/news/meetings/workshops/. version 3. Verteilte Systeme: Grundlagen und Paradigmen.org. Spezifikationen. Wiley. February 2006. K¨ln. Arlington. [Say97] Michael Sayegh. Addison Wesley. CORBA . [TvS03] Andrew S Tanenbaum and Maarten van Steen.Standard. Using corba object references as authorization tokens – using a good idea or not? http://www. March 2004. [Sie96] Jon Siegel.3. O’Reilly Verlag.omg. 2003. Common object re- quest broker architecture: Core specification.Fundamentals ans Programming. CORBA .Literaturverzeichnis [OMG04] Object Management Group OMG.omg. Realtime Workshop. o [SB06] Sebastian Staamann and Christoph Becker. Entwicklung.