By John Viega Java's sandbox model for applet security is often too restrictive to be useful. For example, the sandbox model doesn't allow applets to write to the user's local computer, even if there is a valid reason to do so.
Code signing is a way to step out of the sandbox.
The idea behind code signing is that if you trust the person vouching for a piece of code, you may be willing to take a risk and run the code that person has created. A person vouches for code by digitally signing it. That signature can be tested for authenticity on your local machine. If the signature is authentic, then you have the option of letting the attached code out of the restrictive sandbox, in part or in full. Unfortunately, there are three different, largely incompatible systems for signing Java.