Bernhard Löwenstein

Java EE Security

ISBN: 978-3-86802-424-1
© 2012 entwickler.press
Ein Imprint der Software & Support Media GmbH

1 Java SE 7 Security – Playing it safe

Jeder, der Software entwickelt, muss sich zwangsläufig mit dem Thema Sicherheit beschäftigen und sich darüber Gedanken machen, wie er seine Anwendungen und Daten absichern kann, damit sie nicht ausspioniert oder manipuliert werden. Auch Java-Entwickler können sich dieser Verantwortung nicht entziehen. In letzter Zeit war vermehrt von Angriffen auf IT-Systeme in den Medien zu lesen. Speziell die Gruppe Anonymous schaffte es immer wieder ins Rampenlicht und demonstrierte der Welt, dass sich jede Menge Schwachstellen in den Computersystemen finden und missbrauchen lassen. Teilweise offenbarten sie dabei auch, dass so mancher Softwarehersteller bei der Entwicklung seiner Komponenten grobe Fehler begangen haben muss.

Wir wollen uns deshalb in diesem shortcut ansehen, wie es um das Thema Sicherheit bei Java bestellt ist. Konkret geht es im ersten Kapitel um die Java SE 7 (Java Standard Edition 7), die Kapitel 2 und 3 widmen wir der Java EE 6 (Java Enterprise Edition 6) und im abschließenden vierten Teil werden wir uns ansehen, welche Sicherheitsfeatures es in Verbindung mit Web Services gibt. Vorab ist festzuhalten, dass aus Platzgründen stets nur einige wenige ausgewählte Themen behandelt werden können. In diesem Kapitel steht die Java SE 7 im Mittelpunkt. Diese Ausgabe enthält eine große Anzahl an APIs (Application Programming Interfaces), Werkzeugen und Implementierungen von Sicherheitsalgorithmen, -mechanismen und -protokollen [1]. Mit Kryptographie, PKI (Public Key Infrastructure), sicherer Kommunikation, Authentifizierung und Zugriffskontrolle deckt sie die wichtigsten Bereiche ab und stellt dem Entwickler ein leistungsfähiges Framework zur Entwicklung sicherer Anwendungen bereit. Als die wichtigsten Packages lassen sich java.security, javax.security und javax.crypto nennen.

1.1 Security Manager

Wir wollen es gemütlich angehen und uns anfangs nochmal mit den Grundlagen beschäftigen. Von zentraler Bedeutung in Verbindung mit Java ist das Sandkastenprinzip. Applikationen werden innerhalb einer sogenannten Sandbox ausgeführt und dürfen nur Aktionen durchführen, für die sie die notwendigen Berechtigungen haben. Der Security Manager wacht darüber. Bei typischen Standalone-Applikationen ist er von Haus aus deaktiviert, das heißt, es sind alle Aktionen erlaubt. Das Beispiel aus Listing1, bei dem einfach der Inhalt einer Datei ausgelesen und auf der Standardkonsole ausgegeben wird, würde demnach problemlos ausgeführt werden. Das krasse Gegenteil ist bei Applets der Fall. Der hierbei laufende Sicherheitsmanager schränkt die Rechte des Nutzers massiv ein und verbietet beispielsweise den Zugriff auf lokale Dateien. Die Ausführung des gleichen Quellcodes würde mit einer von abgeleiteten Ausnahme enden.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!