Turnpike delivered code analysis tools and formal verification algorithms to perform efficient and complete authorization checks in Java-based enterprise software based on declaratively specified authorization policies.
Es sollen Methoden und Werkzeuge entwickelt werden, die für typische betriebliche Anwendungen einerseits eine lückenlose Zugriffskontrolle für alle möglichen Ausführungshistorien garantieren, dabei aber gleichzeitig nur einen möglichst geringen Aufwand (Laufzeit, Speicherplatzbedarf, Entwicklungszeit) für die Durchführung der Zugriffskontrolle erfordern. Ein weiteres Ziel ist die Trennung von Anwendungslogik, Spezifikation der Zugriffsrechte und Realisierung der Zugriffskontrolle.
Java-basierte betriebliche Anwendungen zeichnen sich durch eine reguläre Schichtenarchitektur, eine anfrage- und dokumentorientierte Realisierung der angebotenen Dienste sowie ein objektorientiertes Datenmodell der persistenten Geschäftsobjekte aus.
Zugriffskontrolle besteht grundsätzlich aus zwei Bausteinen: der Zugriffsentscheidung und der Zugriffsdurchsetzung (siehe ISO-Norm 10181-3). Während es bereits verschiedene Ansätze in der Literatur und Praxis zur Bündelung und Strukturierung der Zugriffsentscheidung durch Bibliotheken und Werkzeuge gibt, ist das Problem der lückenlosen Zugriffskontrolle für anwendungsspezifische Berechtigungsmodelle noch weitgehend unerforscht.
In dieser Arbeit wird in einem ersten Teil ein ausdrucksmächtiges Berechtigungsmodell entwickelt, mit dem auch für anspruchsvolle betriebliche Anwendung notwendige komplexe Berechtigungsanforderungen modelliert werden können. Hierbei werden die Geschäftsobjekte als zu schützende Ressourcen betrachtet. Das entwickelte Berechtigungsmodell basiert direkt auf dem der Anwendung zugrunde liegenden Datenmodell, so dass die Konsistenz zwischen Berechtigungsdefinition und der tatsächlich vorhandenen Ressourcentypen und Beziehung der Ressourcentypen untereinander gegeben ist. Geschützte Operationen sind hierbei Operationen, die auf der Datenbank ausgeführt werden können (Anlegen und Löschen von Geschäftsobjekten und deren Beziehungen, sowie das Lesen und Schreiben von Geschäftsobjekten).
In zweiten Teil der Arbeit wird ein Zugriffskontrollframework entworfen und prototypisch implementiert, welches die Vollständigkeit und Effizienz der Zugriffskontrolle dadurch zusichert, dass Aufrufe der Zugriffsentscheidungsfunktionen basierend auf dem für die Anwendung deklarativ festgelegten Berechtigungsmodell und dem Ergebnis einer abstrakten Interpretation des Java-Quelltextes der betrieblichen Anwendung automatisch generiert werden. Die Generierung sichert einerseits eine lückenlose und konsistente Zugriffskontrolle auf allen möglichen Ausführungspfaden, eliminiert redundante Zugriffskontrollüberprüfungen und versucht gleichzeitig, den Zeitpunkt der Zugriffskontrolle möglichst vor den Beginn der Ausführung der Geschäftslogik jeder Anfrageausführung zu verschieben.
Technical Reports