Sicherheit in verteilten Web-Applikationen durch aspektorientierte Programmierung
Abstract
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 Zugriffskontrollund Au- thentifikationssystem modular zu bestehenden webbasierten Systemen hinzugefügt werden kann. Das System muss hierfür nicht im Sourcecode vorliegen. In einer Trainingsphase wird das Modul an die zu schützende Applikation angepasst. Dies wird durch den Einsatz von aspektorientierter Programmierung in Form des AspectJ Frameworks erreicht. Für die Authentifikation kommt das Liberty Alliance Protokoll, ein zukünftiger Industriestandard, zum Einsatz, welches ein Single-Sign-On Protokoll unter Verwendung von Identity Federation implementiert. Eine mögliche Verwendung von Hardwaretoken in diesem Framework wird demonstriert und eine Weg vorgestellt, ein proaktives Verhalten in das Systems zu integrieren. Die Auslagerung der IT-Infrastruktur hat sich zu einer verbreiteten Technik für Firmen und Behörden entwickelt, die unter dem Druck der Rationalisierung zentrale Teile ihrer Abläufe an externe Dienstleister vergeben. Dies ist unter Sicherheitsüberlegungen als kritisch zu beurteilen, besonders, wenn Mitarbeiter externer Firmen und Aussendienstmitarbeiter beschränkten aber direkten Zugriff auf die firmeninternen Daten erlangen [1, 2]. So hat die Distributed Management Task Force einen umfassenden Kanon an Standards veröffentlicht, welcher durch SUN im Rahmen des Toolkit für \?Web-based Enterprise Management“ implementiert wird [3]. Aber auch unter Verwendung dieser Frameworks ist ein beträchtlicher Aufwand für die Anwendung dieser expliziten Sicherheitspolitik auf ein komplettes System, besonders wenn bestehende Systeme eingebunden werden müssen[4]. Dies vereint sich besonders bei kleinen und mittleren Unternehmen mit dem Verlangen nach Effizienz bei der Auslagerung der Geschäftsprozesse. Im Folgenden wird ein Ansatz und dessen prototypische Umsetzung vorgestellt, in dem eine bestehende Web-Dienstleistung mit den drei fundamentalen Sicherheitseigenschaften Authentifikation, Autorisation und Accounting erweitert wird (AAA). Die besonderen Vorteile der vorgestellten Methode stellen sich in ihrer Universalität, Flexibilität und Skalierbarkeit dar. Es werden frei verfügbare und erprobte Technologien unter Verwendung der aspektorientierten Programmierung [5] kombiniert und nur ein minimales Wissen über das zu schützende System, besonders den Sourcecode, voraussetzt. In Abbildung 1 wird die Architektur vorgestellt, in der die Wirtsapplikation beim Service Provider (SP) mit dem generischen Sicherheitsmodul, dem security aspect, unter Verwen- Nicolai Kuntze, Thomas Rauch, Andreas U. Schmidt Abbildung 1: Aspektorientierte Sicherheitsarchitektur dung des AspectJ Frameworks verwoben wird. Das Verweben findet an definierten Punkten statt, durch die das Modul Kontrolle über alle für eine AAA-Funktionalität wichtigen Teile erlangt und als zentrale Schnittstelle zu dem Identity Management System dient. Hierfür wird die Referenzimplementierung SourceID verwendet, welche das Liberty Al- liance Protokoll unter anderem realisiert [6]. Dieses webbasierte Single-Sign-On (SSO) und Abrechnungssystem des Identity Providers (IDP) vereint alle Aufgaben der Autorisation und Benutzerverwaltung und stellt daher die Basis für ein rollenbasiertes Zugriffskontrollsystem [7], welches durch den SecurityAspect dem System hinzugefügt wird und alle Benutzerzugriffe kontrolliert. Die für Anmeldung (IDB) und Zugriffskontrolle (ACDB) benötigte Datenbasis wird durch eine intuitive Methode interaktiv erzeugt. Der Produktionsphase der Software wird eine Trainingsphase vorgeschaltet, in der die Arbeitsabläufe der Benutzer erlernt werden. Ein Arbeitsablauf wird in Form einer Sequenz von Webseiten und dort eingegebenen Werten beschrieben. Die Arbeitsabläufe werden Rollen zugewiesen. Das Sicherheitssystem ist auch in der Wahl der verwendeten Authentifikationsmethoden flexibel. Beispielhaft wurde die Kombination einer Benutzenamen/Passwort-Kombination mit einer Authentifikation durch Besitz, hier ein USB Token [8], demonstriert. Es können verschiedenste Methoden zur Authentifikation zum Einsatz kommen und mit den Rollen verbunden werden. Hierdurch werden verschiedenste Kombinationen dieser Kriterien erzeugt, da jeder Benutzer unterschiedliche Kombinationen von Rollen besitzen kann. Der Einsatz von Hardwaremerkmalen ermöglicht die Verwendung von proaktiven Verfahren, die einer Erhöhung des Sicherheitsniveaus auf der Client-Seite dienen, indem in regelmäs- sigen Abständen eine Reauthentifikation verlangt wird. In Kapitel 1 wird ein Überblick über das verwendete Liberty Alliance Protokoll gegeben. Im darauf folgenden Kapitel 2 wird die Verwendung des Hardwaremerkmals und der proaktiven Komponente beleuchtet. Kapitel 3 beschäftigt sich mit dem Einsatz der aspektorientierten Programmierung und deren Verwendung im zentralen Sicherheitsmodul. Das RBAC-Modell wird in Kapitel 4 vorgestellt und auf die Zusammenhänge von Be- nutzern, Rollen und Arbeitsabläufen eingegangen. Das resultierende Gesamtkonzept wird in Kapitel 5 vorgestellt und im Kapitel 6 des Implementierung betrachtet. Abschliessende Betrachtungen finden sich in Kapitel 7.
Full Text: PDF