One of the biggest problems in Java security is figuring out how to preserve type safety while at the same time allowing dynamic class loading. If you can confuse the virtual machine about the types of objects it is manipulating, you can break the security model. In this way, Card Java is less risky than regular Java. Card Java does allow multiple applications to be resident on the same smart card. The firewalls must be perfectly implemented to allow safe use of multiple applets.
Plans are in the works for smart card applications that cooperate with each other.
Imagine, for example, a card that works both as a debit card and as a frequent flyer card. Such plans may introduce more security risk than they are worth. This makes it an especially tempting target for attack. The JCRE must be perfectly implemented for a Java Card to be secure. Conclusions New functionality in the form of smart cards promises to help solve some tough real-world problems and address important security concerns.