10.10.2013 Aufrufe

Full paper (pdf) - CDC - Technische Universität Darmstadt

Full paper (pdf) - CDC - Technische Universität Darmstadt

Full paper (pdf) - CDC - Technische Universität Darmstadt

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!