Full paper (pdf) - CDC - Technische Universität Darmstadt
Full paper (pdf) - CDC - Technische Universität Darmstadt
Full paper (pdf) - CDC - Technische Universität Darmstadt
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5.3.2 Konzept von Java<br />
Die Autorisierung in Java, genauer die JAAS-Autorisierung, basiert auf der Vergabe<br />
von sogenannten ‚Permissions’ und ist auf die vorausgegangene JAAS-<br />
Authentisierung angewiesen. Bei ‚Permissions’ handelt es sich sind um Java-Klassen,<br />
welche die abstrakte Klasse java.security.Permission implementieren bzw.<br />
erweitern. ‚Permissions’ werden ausgewählten ‚Principals’ in einer<br />
Konfigurationsdatei, der Java-Policy-Datei, erteilt und zur Laufzeit an betroffenen<br />
Programmstellen überprüft. Für den ordnungsmäßigen Einsatz der JAAS-<br />
Autorisierung ist damit der Betrieb von Java mit sogenanntem „SecurityManager“<br />
erforderlich, der die Information aus Policy-Datei im System verfügbar macht. 91 Die<br />
Konfiguration der ‚Permissions’ erfolgt nach folgendem Schema: 92<br />
grant [signiert von], [Herkunft des Codes], [Verweis auf einen<br />
Principal] {<br />
permission [Permission-Klasse] [Zielobjekt], [Aktion];<br />
....<br />
permission [Permission-Klasse] [Zielobjekt], [Aktion];<br />
};<br />
Das Vorkommen und die Reihenfolge der drei Bezeichner hinter dem Schlüsselwort<br />
‚grant’ ist optional. Für dieses Projekt sind nur Einträge mit einem Verweis auf einen<br />
‚Principal’ von Interesse. Ein ‚Permission’-Eintrag beginnt mit dem Schlüsselwort<br />
‚permission’ gefolgt von dem vollständigen Klassennamen der erteilten ‚Permission’.<br />
Die Angabe eines Zielobjekts bzw. einer Aktion ist von der erteilten ‚Permission’<br />
abhängig. Der Verweis auf einen ‚Principal’ hat die folgende Form:<br />
principal [Principal-Klasse] [Principal-Name]<br />
Ein ‚Principal’ wird anhand seines Namens identifiziert, der durch den Aufruf der<br />
Methode ‚getName’ erhältlich ist.<br />
Damit eine Überprüfung stattfinden kann, muss der zuvor authentisierte ‚Subject’, mit<br />
dem aktuellen ‚Access Control Context’ 93 verknüpft werden, wodurch die gehaltenen<br />
‚Principals’ dem Laufzeitsystem bekannt werden. Dies erfolgt über den folgenden<br />
Aufruf:<br />
Subject.doAs(subject, privilegedAction)<br />
Der Parameter ‚subject’ ist eine Referenz auf den bereits authentisierten ‚Subject’.<br />
Der Parameter ‚privilegedAction’ verweist auf die Instanz einer Klasse, welche die<br />
Schnittstelle java.security.PrivilegedAction implementiert. Diese Schnittstelle<br />
besteht aus einer einzigen Methode ‚run’, die den Code, der mit dem ‚Subject’<br />
verknüpft wird, kapseln soll. Die eigentliche Überprüfung der Existenz einer<br />
entsprechenden ‚Permission’ erfolgt über den folgenden Aufruf:<br />
AccessController.checkPermission(permission)<br />
91<br />
Vgl. Java 1.4 Security Web, 2002a<br />
92<br />
Die vollständige Syntax der Java-Policy-Datei wird unter Java 1.4 Security Policy Web, 2002c,<br />
beschrieben<br />
93<br />
Dabei handelt es sich im Wesentlichen um den Stack des aktuell ausgeführten Threads. Für weiteres<br />
zu diesem Konzept vgl. Java 1.4 Security Architecture Web, 2002b<br />
- 33 -