1.2.6 | Sicher |
In verteilten Umgebungen, in denen Code von anderen Rechnern heruntergeladen und lokal ausgeführt wird, muss besonders viel Wert auf die Implementierung von sicherheitsrelevanten Features gelegt werden. Das Laden und Ausführen von Applets von beliebigen Servern im Internet ist nur dann vertretbar, wenn sichergestellt werden kann, dass diese Applets keine Viren enthalten und das lokale Computersystem nicht anderweitig kompromittieren können. Das Gleiche gilt analog auch für in Java erstellte Stand-alone-Applikationen, die Code aus einer entfernten Quelle verwenden.
Da Java-Programme keine echten Binärprogramme für ein bestimmtes Betriebssystem sind, sondern Bytecode für eine virtuelle Maschine, kann dadurch einiges an Sicherheit erreicht werden.
So verwehren die Bytecode-Interpreter in WWW-Browsern den über Netz geladenen Applets standardmäßig sämtliche Zugriffe auf sicherheitskritische Ressourcen, wie das lokale Dateisystem oder Netzverbindungen zu beliebigen anderen Rechnern.
Zusätzlich enthält der Interpreter einen so genannten Bytecode-Verifier, der das Programm vor dem Ablauf nach einigen Regeln hin überprüft.
Um Applets ein größeres Maß an Funktionalität und Flexibilität zukommen zu lassen, wurden in Version 1.1 die signierten Applets eingeführt. Signierte Applets sind mit einer digitalen Signatur versehen und können dieselben Zugriffsrechte wie lokale Applets zugeteilt bekommen, wenn der Benutzer der Signatur vertraut. In den Versionen 1.2 und 1.4 wurde dieses Sicherheitsmodell noch weiter differenziert. Mittlerweile können gezielt einzelne Berechtigungen für ganz bestimmte Ressourcenzugriffe erteilt werden.