Mit dem Java Critical Patch Update (CPU), das am 16. April 2013 veröffentlicht wurde, hat Oracle nicht nur weitere Sicherheitslücken beseitigt, sondern vor allem ein wichtiges Security-Feature geliefert. Das Signieren von Java-Anwendungen – im Client bisher eine optionale Funktion – wird jetzt deutlich attraktiver.
Das „write once run everywhere“-Paradigma von Java ist eine große Motivation für die Verwendung von Java-Inhalten im Browser. Neben Applets zählen auch Webstart- und JavaFX-Anwendungen dazu. Was mit bewegten Bildern in der Anfangszeit des Internets viele Anwender hat staunen lassen, ist heute vielfach durch Flash- und HTML/Javascript-basierte Webseiten abgelöst. Dennoch bleibt Java gerade im Umfeld der professionellen Anwendungen attraktiv. Die anwendungsseitige Anbindung von Endgeräten am Clients (wie Kartenleser) und die einfache, Browser- und Betriebssystem-übergreifende Verteilung sind die wichtigsten Vorteile.
In Kombination mit speziellen Protokollen und starker Verschlüsselung setzen heute besonders Behörden auf Java. Prominentestes Beispiel in Deutschland ist das Steuerportal Elster. Die in den Populärmedien bei Sicherheitslücken oft gepriesene Empfehlung, Java komplett vom Rechner zu entfernen, bleibt daher eine hilflose Reaktion.
Einstellbare Sicherheit
Mit dem Java 1.7 Update 10 waren Endanwender erstmals in der Lage, den Level der Warnungen im Browser zu verändern. Damit konnte man sich vor der Ausführung von nicht vertrauensvollen Anwendungen vom Browser-Plugin warnen lassen. Das Java 1.7 Update 17 erweiterte das Java Control Panel um einen einfach zu bedienenden Schieberegler zur Einstellung des Sicherheitslevels. Die Einstellungen „niedrig“, „mittel“, „hoch“ und „sehr hoch“ werden dabei angeboten (siehe Abbildung 1). Faustregel: Je niedriger die Sicherheitseinstellung, desto weniger Warnungen für den Anwender.
Die Fähigkeiten von Java werden mit diesem Mechanismus allerdings nicht beschnitten. Mit dem am 16. April 2013 zur Verfügung gestellten Update 21 ändert sich erneut etwas: Der gerade erst eingeführte Schieberegler wird um zwei seiner Funktionen beraubt. Der Level „niedrig“ und die ebenfalls noch möglichen „Einstellungen“ stehen nicht mehr zur Verfügung. Damit ist das Ausführen von unsigniertem Code im Browser nicht mehr ohne Warnung für den Endanwender möglich.
Auswirkungen
Was genau passiert beim Starten von Java-Anwendungen im Browser? Zumeist werden Anwender in erster Instanz bereits vom Browser auf mögliche aktive Inhalte hingewiesen. Je nach Browser sieht das ein wenig anders aus (siehe Abbildungen 2 und 3).
Das geschieht aber allein aufgrund der Tatsache, dass es sich um ein Java-Applet handelt und ist abhängig von der gewählten Sicherheitseinstellung im Browser. Hier spielt weder das eingangs genannte Java Control Panel noch eine andere Sicherheitseinstellung von Java eine Rolle.
Durch die positive Bestätigung des Anwenders startet das Java Plugin die Java Runtime. Erst hier erscheinen die eigentlichen Hinweismeldungen von Java (siehe Abbildung 4).
Die verschiedenen möglichen Meldungen sind ähnlich aufgebaut, unterscheiden sich allerdings in der Farbgebung. Abhängig vom durch Oracle eingeschätztem Risiko-Level weist ein Java-Logo oder ein blaues Schild mit einem „i“ (für Information) auf vertrauenswürdige Inhalte hin (siehe Abbildung 5).
Gelb hinterlegten Ausrufezeichen (Schild oder Dreieck, siehe Abbildung 4) informieren den Anwender über ein entsprechend höheres Risiko. Kurz: ein einheitliches Gelb für alle Dialoge, die auf nicht signierte Inhalte hinweisen. Die Interpretation der Meldungstexte und den Unterschied zwischen Schild und Dreieck mussten sich die Anwender irgendwann aneignen. Mit dem nun vorliegenden Java 7 Update 21 werden diese Dialoge ein wenig konkreter. Eine zusätzliche rote Schrift erscheint bei entsprechender Kombination von Anwendungseigenschaften:
- Signierte beziehungsweise nicht signierte Anwendung
- Nicht vertrauenswürdiges, abgelaufenes oder ungültiges Zertifikat
- Anwendung erfordert Sandbox oder volle Berechtigung
Abbildung 6 zeigt die in Abbildung 4 dargestellt Meldung mit dem neuen Update. Das blaue, vertrauenswürdige Ausrufezeichen und das Java-Logo werden nur noch bei Anwendungen angezeigt, die mit einem gültigen Zertifikat von einer vertrauten CA signiert sind. Eine vollständige Auflistung der verschiedenen Kombinationen und der dazugehörigen Anzeigen steht auf der Webseite von Oracle.
Hintergrund für den Entwickler
Für Entwickler bedeuten diese Änderungen zuallererst einmal, dass die Mehrzahl der Endanwender die Sicherheitsstufe nicht mehr auf „niedrig“ oder individuell einstellen kann. Daraus resultiert, dass es nicht mehr so einfach ungewollt zum Ausführen von nicht signierten Java-Anwendungen im Browser kommen kann. An den Anwendungen selber ändert das nichts. Allerdings ist es nun dringend empfohlen, Java-Anwendungen, die im Browser laufen sollen, mit einem gültigen Zertifikat zu signieren, wenn man ohne die neuen Warnungen auskommen will oder muss.


