What is the firewall?

Julien SIMON

The firewall is a software feature of the Java Card platform, which isolates applets from each other. In other words, even if an applet succeeds in obtaining a reference to an object belonging to another applet, the platform guarantees that any attempt to use this reference will trigger an exception.

The firewall attaches a memory context to package present on the card: thus, the context of an applet is the context of the package in which the applet lives. When an object is accessed, the Java Card Virtual Machine compares the object context (i.e. the context of the applet that created it) to the context of the current applet. If they don't match, the VM throws a SecurityException.