Click here to load reader

Diplomarbeit Sicheres Outsourcing mit verteilten ... · PDF file Sicheres Outsourcing mit verteilten Webservices Konzepte der Zugriffskontrolle und ihre Umsetzung in aspektorientierter

  • View
    1

  • Download
    0

Embed Size (px)

Text of Diplomarbeit Sicheres Outsourcing mit verteilten ... · PDF file Sicheres Outsourcing mit...

  • Diplomarbeit

    Sicheres Outsourcing mit verteilten

    Webservices

    Konzepte der Zugriffskontrolle und ihre Umsetzung in aspektorientierter

    Programmierung

    Prof. Dr. Claudia Eckert

    Fachgebiet Sicherheit in der Informationstechnik

    Fachbereich Informatik

    Betreuer: Dr. Andreas U. Schmidt

    Thomas Rauch Nicolai Kuntze

    17. Februar 2005

  • c© Copyright 2005 Nicolai Kuntze, Thomas Rauch Alle Rechte vorbehalten Gesetzt in LATEX

  • Vorwort 3

    Vorwort

    Im März 2003 wurde von Frau Prof. Eckert und der Firma Guard24 eine Di- plomarbeit ausgeschrieben, deren Inhalt die Entwicklung und Umsetzung eines Sicherheitskonzepts für eine webbasierte ASP-Logistiksoftware war. Der Hinter- grund dieser Ausschreibung war der Wunsch der Firma Guard24 eine neue Logis- tiksoftware entwickeln zu lassen, die alle Geschäftsprozesse der Firma, inklusive dem Kontakt zu Endkunden, Logistikpartnern und andere Firmen, umfassen soll. Als Plattform wurde J2EE favorisiert und der Betrieb durch eine externe Server- farm angestrebt. Es sollte untersucht werden, wie eine hohe Betriebssicherheit und ein optimaler Schutz der Daten erreicht werden können, unter Einbeziehung der hohen Anzahl an Schnittstellen zu Drittanbietern.

    Von diesem Szenario ausgehend haben wir im April 2004 angefangen, ein abstrahiertes Modell zu entwerfen und eine Sicherheitsarchitektur zu entwickeln. Hierbei standen eine maximale Unabhängigkeit des Entwurfs von der zu schützen- den Applikation und eine hohe Flexibilität im Mittelpunkt unserer Betrachtung.

    Wir haben diese Ziele durch den Einsatz von aspektorientierter Programmie- rung und dem Liberty Alliance Framework erreicht.

    Da diese Diplomarbeit in einem kleinen Team bearbeitet wurde, gilt es auf- zuzeigen, wer für welche Teile der Arbeit verantwortlich zeichnet. Nicolai Kuntze hat die Kapitel 1, 3, 4, 6, 7 bis 7.2 und 8 bis 8.7 , Thomas Rauch die Kapitel 2, 5, 8.8 bis 8.10 und Kapitel 9 verfasst. Das Kapitel 10 und das Kapitel 7.3 sind gemeinsam entstanden.

    Wir möchten uns auch an dieser Stelle bei unserem Betreuer Dr. Andreas U. Schmidt und Frau Prof. Eckert bedanken. Ohne deren Geduld, Hilfe und Anre- gungen wäre diese Arbeit nicht entstanden. Desweiteren bedanken wir uns beim SIT, deren Mitarbeiter uns stets so gut es ging unterstützten.

    Weiter müssen wir uns für die unermüdliche Arbeit von Dominique Mähler und Elvira Rauch bedanken, die eine unendliche Anzahl von Fehlern entdeckten, die wir schon nicht mehr sahen.

    Nicolai Kuntze und Thomas Rauch, 17. Februar 2005

  • 4

    Zusammenfassung

    Identity Management erlangt eine immer größere Bedeutung, da immer mehr Firmen ihre IT-Systeme für Partner, Lieferanten oder Kunden öffnen. Die Diplomarbeit stellt einen Ansatz vor, durch den ein Zugriffskontroll- und Authentifikationssystem modular zu bestehenden webbasierten Syste- men hinzugefügt werden kann. Das System muss hierfür nicht im Sourceco- de vorliegen. In einer Trainingsphase wird das Modul an die zu schützende Applikation angepasst. Dies wird durch den Einsatz von aspektorientier- ter Programmierung in Form des AspectJ Frameworks erreicht. Für die Authentifikation kommt das Liberty Alliance Protokoll, ein zukünftiger In- dustriestandard, zum Einsatz, welches ein Single-Sign-On Protokoll unter Verwendung von Identity Federation implementiert. Eine mögliche Verwen- dung von Hardwaretoken in diesem Framework wird demonstriert und eine Weg vorgestellt, ein proaktives Verhalten in das Systems zu integrieren.

    Abstract

    Identity Management is becoming more and more important in busi- ness systems as they are opened for third parties including trading part- ners, consumers and suppliers. This thesis presents an approach securing a system without any knowledge of the system source code. The security module adds to the existing system authentication and authorisation based on aspect oriented programming and the liberty alliance framework, an up- coming industrie standard providing single sign on. In an initial training phase the module is adapted to the application which is to be secured. Moreover the use of hardware tokens and proactive computing is demon- strated. The high modularisation is achived through use of AspectJ, a programming language extension of Java.

    Keywords: Identity Mangement, aspect oriented programming, single sign on, lib- erty alliance, pro active computing, aspectj, identity federation

  • INHALTSVERZEICHNIS 5

    Inhaltsverzeichnis

    1 Einleitung 8

    2 Single-Sign-On 13 2.1 Identity Management in bisherigen Systemen . . . . . . . . . . . . 14

    2.1.1 .NET Passport . . . . . . . . . . . . . . . . . . . . . . . . 14 2.1.2 Web Services Federation Language (WS-Federation) . . . . 15 2.1.3 Shibboleth . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1.4 Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.5 Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.6 Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.2 Liberty Alliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Schlüsselkomponenten von Liberty . . . . . . . . . . . . . . . . . 19 2.4 Protokollaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5 Sicherheitsbetrachtung . . . . . . . . . . . . . . . . . . . . . . . . 28 2.6 SourceID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    3 Aspektorientierte Programmierung 36 3.1 Die Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    3.1.1 Die Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.1.2 Der Weaver . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    3.2 Einsatzbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.2.1 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.2.2 Sicherheit für eine einzelne Anwendung . . . . . . . . . . . 42 3.2.3 Policy Enforcement . . . . . . . . . . . . . . . . . . . . . . 43 3.2.4 Exception Softening . . . . . . . . . . . . . . . . . . . . . 44

    3.3 Verwendung in Ant . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.4 Integration in Tomcat . . . . . . . . . . . . . . . . . . . . . . . . 44 3.5 Vorteile und Probleme . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6 Javasicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    4 Referenzmonitor 49 4.1 Implementierung eines Referenzmonitors . . . . . . . . . . . . . . 49 4.2 Sicherheitsstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3 Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4 Kombination aus Workflows und RBAC . . . . . . . . . . . . . . 54

    5 Authentifikation im Webumfeld 58 5.1 Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    5.1.1 Authentifikation . . . . . . . . . . . . . . . . . . . . . . . . 59 5.1.2 Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . 61 5.1.3 JAAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

  • 6

    5.2 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.2.1 Authentifikationsverfahren . . . . . . . . . . . . . . . . . . 62 5.2.2 Reauthentifikation . . . . . . . . . . . . . . . . . . . . . . 65

    5.3 Wibu-Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    6 Serverabsicherung 69

    6.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.2 Sicherheitsmaßnahmen auf Betriebssystemebene . . . . . . . . . . 70 6.3 Tomcats Sicherheitskonzept . . . . . . . . . . . . . . . . . . . . . 71 6.4 Beurteilung von Sicherheit . . . . . . . . . . . . . . . . . . . . . . 73

    7 Konzept und Sicherheitsbetrachtung 77

    7.1 Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.2 Feinkonzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3 Sicherheitsbetrachtung des Konzepts . . . . . . . . . . . . . . . . 83

    8 Spezifikation und Implementierung 90

    8.1 Trainingssuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 8.2 XML Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . 93 8.3 Sicherheitsdatenbank . . . . . . . . . . . . . . . . . . . . . . . . . 95 8.4 Datenbanktool . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.5 SecurityAspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.6 Referenzmonitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8.7 HtmlRewriterAspect . . . . . . . . . . . . . . . . . . . . . . . . . 104 8.8 Identity Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    8.8.1 Kanalverschlüsselung . . . . . . . . . . . . . . . . . . . . . 107 8.9 Wibu-Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    8.9.1 WibukeyApplet . . . . . . . . . . . . . . . . . . . . . . . . 112 8.10 ProAktivApplet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    9 Beispielablauf des Demonstrators 116

    9.1 Erzeugen der Sicherheitsbeschreibung . . . . . . . . . . . . . . . . 116 9.2 Manuelles Bearbeiten der Beschreibung . . . . . . . . . . . . . . . 122 9.3 Konvertierung in eine relationale Datenbank . . . . . . . . . . . . 122 9.4 Produktiveinsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

    10 Fazit und Ausblick 126

    A Erklärung zur Diplomarbeit 131

    B Abbildungsverzeichnis 132

    C Listingverzeichnis 134

  • INHALTSVERZEICHNIS 7

    D Abkürzungsverzeichnis 135

    E Literaturverzeichnis 137

  • 8

    1 Einleitung

    Out

Search related