I’m not sure how to explain this differently, but I believe its about who you trust. The point of the signed/unsigned stuff is that the user:
- knows the identity of the game developer (they chose to run this url … or not)
- does not know the identity of 3rd party code
- …but is automatically safe trusting 3rd party code IFF you (the trusted developer) have vouched for it (by including it in your game) AND the code you vouched for is the same code being run.
From a cryptography perspective, it makes sense - they are insisting on the set of criteria that makes it possible for the user to decide whether or not to trust what you’re peddling. If you’re providing the file, then its the same one you (the developer) assessed and decided was safe.
Off the top of my head (v.tired right now) there is still a problem - whenever you use signed webstart extensions you’d really need to include the signature of the signed extension in your own JNLP to prevent the provider changing the extension and re-signing it. So, in fact, all this (and what follows) may not make sense. Argh.,
AFAICS (and I’m tired right now, so may be missing something) there is one other assumption, which is that you control your own website and the files on it - which is necessary since the alternative is to somehow certify that e.g. the Kev who runs cokeandcode is the same kev who posts on JGO. As there is currently no such thing as a true globally trusted global online identity (despite the many corporations and organizations trying to become the de facto standard for it) - and won’t be until govts start certifying that the holder of SSL cert X is also the person who has passport number / ID card Y who is also Kevin Glass of 14 Acacia Avenue - this assumption is needed to make the whole scheme work.
But it is definitely a flaw, since webstart does nothign to protect you against momentary DNS-hijacking attacks. In all honesty, webstart SHOULD have an extra check for whether the URL you’re going to is being served via SSL, and if not it should warn the user “the code you are about to run MAY NOT BE what you think it is! Run away now! Burn the computer, and flee!” (which would approximately fit in with the tone of most of the webstart warning messages
).
So … actually, it looks like they trieD to make a proper, secure, system, but the security expert was having a day off, and his assistant / friend / colleague thought they could do it without him. YMMV, will re-think in the morning when more awake :(.