Web start sandboxing and security

Jacob Wisor gitne at gmx.de
Sat Dec 7 08:25:12 PST 2013


Hello!

Andy Lutomirski wrote:
> This is an attempt to turn bug #1264
> (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1264) into a
> real discussion.
> 
> When I start a Java Web Start app, I get asked "Do you want to run the
> application?" means.  It is far from obvious what that means.  I
> researched it a bit, and AFAICT it means: if the application is signed
> (by anyone at all), then run it with full permissions; if the
> application is unsigned, then run it sandboxed.
> 
> This is an awful state of affairs.  For one thing, it means that I'd
> rather run an unsigned app than a signed app -- just because I believe
> that a certain company wrote the app does *not* mean that I want to
> trust that app with full rights to my computer.
> 
> There are several improvements that could be made:
> 
> 1. The dialog box could be much clearer.  It could say "Do you want to
> grant this application unrestricted access to your computer?" in the
> signed case and "Do you want to run this application?  It will not
> have access to your data." in the unsigned case.

Indeed, the text has some rather unfortunate wording (like many other messages 
in IceTea-Web). But, as mentioned in an other thread I am uncomfortable with 
"unrestricted access to your computer" because it scares users away instead of 
actually helping them to assess the risk.

> 2. Even if the app is signed, there should still be a way to run it in
> the sandbox.  I've yet to encounter a JNLP app in the wild that has
> any legitimate reason to do anything other than access the internet,
> create some temporary files, and occasionally use the file picker.
> Let me run it in the sandbox, please.

I guess what you are asking for is a policytool. In fact, OpenJDK has a tool 
called "policytool" that lets you setup policies based e.g. on its codebase or 
its signature that works for apps as well as applets. But, that is just one part 
of the story...

I have never comprehended why Sun has put all that fancy permissions framework 
into Java but has not made it conveniently accessible to the average user just 
like Android does. Not only that Sun's and now Oracle's JRE policytool has not 
changed ever since but it also lacks commercial grade quality. It is a pain to 
use, even for admins.
What I have always dreamed of for Java apps and applets is something similar 
like Android does. The user starts an app or applet, gets a dialog box with all 
permission the app or applet requests to check or uncheck, saves it and the app 
or applet is ready to go. Saved permission settings could be reconfigured in 
Java's system control panel. That's it! I cannot think of a simpler work flow. 
Oh, and of course admins could also setup permissions that users are able to 
setup in order to prevent users just giving the AllPermissions permission to all 
apps. Really, Sun and now Oracle are here to blame because this has been on the 
list to be fixed for decades. It is a product design problem indeed.

Well, IcedTea-Web could provide such a workflow, at least for applets. Question 
is whether IcedTea-Web devs want to work on that. ;-)

Jacob


More information about the distro-pkg-dev mailing list