Java hat sich als Plattform fur verteilte, objektorientierte Applikationen, bei denen das Thema Sicherheit wichtig ist, etabliert. Das Sicherheitsmodell von Java basiert auf Capabilities: Ein Objekt kann nur uber eine Objektreferenz (=Capability) angesprochen werden. Zusatzlich konnen Klassen auch selbst Zugriffsschutz abhangig vom Aufrufer implementieren (Zugriffslisten-Implementierung). Bei Java ist die Sicherheitskonfiguration nicht von der Implementation der Applikationsklassen getrennt, sondern mus in die Applikationsklassen hineinimplementiert werden. Das Hauptproblem bei Capabilities ist die Verbreitungskontrolle: Da bei objektorientierten Systemen oft Objektreferenzen ubergeben werden, ist es schwer, die Kontrolle zu behalten, wer auf welche Referenz zugreifen kann. Zugriffslisten haben andererseits den Nachteil, das es einer boswilligen Applikation moglich sein kann, fremden, privilegierten Subjekten (Programmteilen, Domanen) Objektreferenzen unterzuschieben (Unix s-Bit Problem). Wir stellen ein Sicherheitsmodell vor, das diese Probleme lost. Durch spezielle Sicherheitsmetaobjekte trennen wir die Sicherheitsstrategie von der Implementierung der Applikationsklassen. Ein Sicherheitsmetaobjekt kann an eine Objektreferenz geheftet werden und schutzt diese Referenz, indem es Zugriffe (Implementation von konfigurierbaren Capabilities) und Parameter- und Ruckgabewerte uberwacht, um die versehentliche Herausgabe von Referenzen zu verhindern bzw. herausgegebene Referenzen mit Zugriffsbeschrankungen zu versehen (Implementation von transitiven Capabilities).
[1]
Butler W. Lampson,et al.
A note on the confinement problem
,
1973,
CACM.
[2]
Robbert van Renesse,et al.
Using Sparse Capabilities in a Distributed Operating System
,
1986,
ICDCS.
[3]
Ralph Martinez,et al.
Application of the Open Software Foundation (OSF)distributed computing environment to global PACS
,
1994,
Medical Imaging.
[4]
Pattie Maes,et al.
Computational reflection
,
1987,
The Knowledge Engineering Review.
[5]
M. Golm,et al.
MetaJava : An Efficient Run-Time Meta Architecture for Java TM
,
1996
.
[6]
Jack B. Dennis,et al.
Programming semantics for multiprogrammed computations
,
1966,
CACM.
[7]
J. Kleinoder,et al.
MetaJava: an efficient run-time meta architecture for Java/sup TM/
,
1996,
Proceedings of the Fifth International Workshop on Object-Orientation in Operation Systems.
[8]
William A. Wulf,et al.
HYDRA
,
1974,
Commun. ACM.
[9]
Jürgen Kleinöder,et al.
Meta Objects for Access Control: Role-Based Principals
,
1998,
ACISP.
[10]
Franz J. Hauck,et al.
Meta objects for access control: extending capability-based security
,
1998,
NSPW '97.
[11]
Jerome H. Saltzer,et al.
The protection of information in computer systems
,
1975,
Proc. IEEE.
[12]
Dan S. Wallach,et al.
Extensible security architectures for Java
,
1997,
SOSP.
[13]
John T. Kohl,et al.
The Kerberos Network Authentication Service (V5
,
2004
.