 features could be used to pro- vide security services for applications such as e-payments, mobile commerce, and SO on. An SE can be (1) deployed as a smart card in wireless phones (e.g., SIM PKI cards) or, (2) can be implemented by a handset itself (e.g., embedded chips or special security features of the hardware) or (3) may be entirely implemented in software [10]. The support for cryptographic smart cards is of particular interest to developers writing J2ME applications for smart phones. Keys and certificates can be stored on the smart card and data can be signed without the private key ever leaving the card. High-end smart cards are tamper resistant and provide authentication schemes, such as requiring a PIN or a password before access to the smart card is granted. In this way, security is dependent on the smart card not being compromised. Private keys do not have to be stored on diverse insecure clients, enabling vendors to focus on keeping the smart card secure from physical tampering and, just as important, smart card API exploitation [11,12]. 11.4.5 Java Mobile Client The Java mobile client used for communication with an SWEB platform is devel- oped by using a J2ME CDC1.1 platform. According to this, a lot of technologies that exist in J2SE have been employed in the J2ME application. On Secure JAVA Mobile Application Figure 11.9 describes the forms (screens) on mobile phone application used to perform communication with an SWEB platform. The order of form appear- ance according to the button pressed is presented only for the most important functions. The first form is "Logon form." The user should enter the username and pass- word after which verification will be passed to the next form. Also, the language that will be used in whole application can be chosen on this form. After successful verification of username and password, "Functions form" will be passed to the user. This is the main form for the user, where a task that needs to be done can be chosen. Logon New Password Username Old Password Password