Michael Juntao Yuan (
Juntao@mail.utexas.edu)
Texas University Austin
Electronic Commercial Research Center
Deputy researcher
Please note this article, which discusses some security challenges and solutions for J2ME-based actions and solutions. In particular, J2ME developers Michael Yuan and Ju Long discussed the most common but the lack of security J2ME Profile
? MIDP's challenge development challenges. This includes an overview of J2ME relative to Thin Client, and the advantages of this unit, and discussions about the advantages and disadvantages of J2ME current and future security frameworks. In addition, emerging web services are gradually incorporated into an important component in the area of the Internet, so please find out more about it, and how this new technology may affect your J2ME development strategy. As a commercial application has gradually become a reality from a fashionable slogan, safety is an important aspect for action users and wireless application developers. The intensity of the overall security of the Internet depends on its weakened link, and in the actions of the commercial network, the weakening link is the client device. The interception nature of the wireless signal and most of the handheld equipment have limited memory and computing power, so that the wireless system is extremely susceptible to the attack of the data thief.
However, the client is not a unique weak link on the business network. As web service technology has become an increasingly important component in the field of Internet, the wireless network will face some new weaknesses. Web services use open communication protocols and run outside the organization's firewall, which will cause a very practical security threat when deploying these systems in your organization.
The solution is being formed, although it is still time. In particular, the Web service itself can be used to provide security solutions. New Web Services Specification Planning Standardization and Integrated Advanced Security Solutions (such as Kerberos Authentication and Authorization, Digital Certificates, Digital Signatures,). Interoperable Web services can use security solutions for a class of practical programs for products and service providers. But even if these promising solutions are, the selection of development platforms will always play a pivotable role in how you have a new network that effectively protects your wireless app and running your application.
In this article, we will focus on the advantages and disadvantages developed on Java 2 Platform, Micro Edition (J2ME). We first make a brief summary of the basic concepts and advantages of J2ME. Next, we will in-depth research based on J2ME-based applications relative to other wireless alternative applications, such as WAP and native applications). We will explain the application security model available on the J2ME platform, and the platform for some of the pre-contemporary trends. As part of the discussion, we will propose possible possible methods for enhancing J2ME applications. At the end of the part, we will summarize the feasibility of using J2ME technology to develop advanced security applications for minimal wireless devices. In the entire article, we will focus on the current and upcoming (2.0) MIDP specification, assuming that MIDP is the most widely used J2ME Profile.
Because the Web service is committed to playing an important role in the development of a mobile commerce and wireless security, we will discuss technology containing Web services in the entire article. We will spend some time to study the impact of Web services to your J2ME development strategy. However, we will not discuss this topic deeply.
J2ME basic knowledge
The maximum advantage of using the Java platform for wireless devices is to produce a movable transplanted code that can be run on a variety of platforms. But even if there is this advantage, the difference in capacity difference between the memory, processing power, battery life, showing screen size, and network bandwidth is still quite large. It is impossible to transplant all functions running on a planned set-top box to a mobile phone. Even for similar devices such as PDAs and advanced smart phones, it is often used to make an overload of a device and another device is not sufficient. Real portability can only be achieved between multiple sets of similar devices. Because it is recognized that a specification is not suitable for all devices, J2ME is carefully designed to take a balance between portability and availability. J2ME is divided into several different configurations and profile. The configuration contains the Java language core library for a series of devices. There are currently two configurations: Connected Device Configuration (CDC)) is designed for relatively large and powerful devices (such as high-end PDAs, set top boxes and network devices); limited connection device configuration (Connected Limited Device Configuration (CLDC)) Designed for small resources for small resources (such as action phones and low-end PDAs). CDC security, computing power and I / O function are much higher than CLDC.
There are several profiles above each configuration. PROFILE defines a higher, devices-specific API library, including GUI, networks, and APIs. Each profile has its own runtime environment and is suitable for a range of similar devices. The Java application written for a particular Profile can be transplanted between all hardware / OS platforms supported by the Profile. Action Information Device Profile (Mobile Information Device Profile (MIDP)) and PDA Profile files are two important profile files for CLDC. Foundation Profile and Personal Profile are two important Profile files for CDC.
Personal Profile is built on the foundation profile to run on the high-end PDA. Personal Profile is configured with VM implementation of Java 2. Personal Profile Applications You can utilize all Java 2-based (J2SE) domain security managers, as well as a large number of cipherographic and security libraries available for J2SE applications. In short, personal Profile file provides a mature security solution that is similar to those solutions for J2SE applications.
It is difficult to achieve safety MIDP applications, because the mathematical computing power of CLDC is limited and many underlying equipment has insufficient processing capabilities. However, MIDP devices are the most widely used wireless devices, so they are important to enable security applications on those devices. In this article, we focus on discussing the security challenges of the MIDP application and the currently available or in development.
J2ME vs. WAP
Our experience is that in terms of feature or security, this machine application and J2ME application provides much more features than those built by wireless application agreements (WiReless Application Protocol (WAP)). But WAP is a Thin Client Development Agreement, J2ME is a developing platform dedicated to smart app. Whether the application is built with J2ME or the technology technology, smart applications have provided the following security advantages than WAP applications:
Due to the intermediate without WAP brakes, the smart application can provide expansible end-to-end security from the back end to the wireless device. This is especially important when developing into a message-driven Web service framework. Smart apps can store and handle data locally, thus reducing network traffic. This not only saves valuable radio bandwidth and reduces delay time, but also reduces the possibility of critical information being intercepted or blocked (eg, through the denial of service attack). Smart app effectively utilizes device processing capabilities. The fat client can establish a comprehensive level of security according to the content, rather than encrypting all content in the same key intensity whether it is necessary. Because the wisdom application is much better than the WAP page, running smart applications does increase the risk of soft Crash and / or virus attacks. Next, we will discuss that the processing and security advantages of the J2ME application compared to those equipment native applications.
J2ME vs. platform
As we have mentioned, the main advantage of the Java platform is that it allows us to write portable applications. The portability of the Java platform comes from its execution model. Specifically, it is due to the use of JVM to use JVM to process the Java bit element code as a machine code, and thus a compatibility layer is provided on the hard body. The implementation model of the Java platform has also introduced some important security advantages in the equipment native application. These advantages are as follows:
JVM Verify All classes in the class loader and make sure the application does not perform any hazardous operations. Because of the MIDP VM, the runtime class verification is high in the calculation, so the MIDP has a special two-step meta-component verification mode. We will discuss this solution in the later section. JVM is used to prevent the monitoring mechanism of the application error. Garbage collector is a good example. JVM can automatically clean up the application memory bodies at runtime. This helps to avoid memory leaks, memory leakage is the main reason for the collapse of this machine. JVM can provide security managers or Sandbox for applications. Virus and other hostile programs that are accidentally downloaded from the Web may cause serious safety risks. On the Java platform, you can perform a digital signature for the entire application (such as JAR).
Bit element code verification
As we have discussed, JVM provides services to prevent malicious code from entering the enterprise system. The bit element code verification process guarantees that the application cannot access memory space or use resources outside its domain. Bit element code verification also prevents the application to overload the Java language core library, which is a method that can be used to bypass other application level security measures.
However, due to this highly calculation overhead, the MIDP VM does not perform a complete bit element code verification at runtime. Instead, the application developers must preordinate classes on the development platform or on the area before deploying the application to the action device. Pre-verification process Optimize the execution stream, create a stack mapping of the instruction directory in the application, and then add a stack map to the pre-verified class file. At runtime, the MIDP VM rapidly performs linear scan on the bit element code, matching each valid instruction with the appropriate stack map.
Since MIDP lacks a complete security model, some J2SE features are disabled in MIDP to minimize potential security risks. For example, in order to prevent illegal overloading of the core class, the MIDP VM does not allow the user to define the category. MIDP does not support Java Native Interface (JNI) or reflection. Even properly adopted these security measures, it is not yet running the program code that passes through the bit element component verification. The program code signature is the next important element in the J2ME application security policy.
Program code signature
To get an example of action, we only need to study the Java Applet, which uses digit signatures and security Sandbox to ensure that the program is secure on the Web. This is a brief overview of the principle of Applet security work: Before transfer, the Applet server is signed with its digital certificate. When receiving, the Fire Charter Java Security Manager verifies the signature and determines whether the sender and integrity of the application are credible. If you can't verify that a digit signature is not verified, you run out and give an error message. If you can verify the signature, the Security Manager uses a digital certificate to determine the licensing power field of the entity through the query client or through the usage table. After successfully completing the verification process, the application code is passed to the client.
The J2ME / CDC-based action program code can be signed and passed in the same way as Java Applet. In theory, the MIDP application can also be protected by the same method. However, domain-based security managers cannot be used in the MIDP 1.0 specification due to limited processing capabilities and memory. Current MIDP VM can only provide minimal security SANDBOX. For example, a MIDlet kit can only access persistent record storage it created himself.
Online and data security
Network and data security can be guaranteed through the establishment of point-to-point secure connection. SSL / TLS (Secure Socket Layer / Transport Layer Security • After SSL is simply referred to as SSL) This security agreement allows us to open the security socket between the Internet host. SSL uses public key algorithms and digital certificates to establish trust and exchange private keys for current sessions between the parties of the individual. Thus, the SSL communication parties use a fast private key algorithm to encrypt and decrypt communication materials. SSL Agreement Support Certification, Data Integrity and Confidentiality. In an electronic commercial application, SSL-based secure HTTP (HTTPS) has become a standard agreement for transmission sensitive information.
J2SE provides excellent and transparent support for HTTPS with its General Connection Framework. All J2ME / CDC applications have access to HTTPS features, but HTTPS support is not officially required in the MIDP 1.0 specification. Considering that HTTPS is obvious in action, many MIDP device vendors have added support for HTTPS to their own MIDP runtime implementations. Sun Microsystems also adds HTTPS support in its J2ME Wireless Toolkit version 1.0.2 and subsequent versions. HTTPS support will become formal demands in the MIDP 2.0 specification that is about to be introduced.
Protection content rather than connection
Although the HTTPS / SSL protocol is very popular and it is very powerful, they are originally designed for wired internet. When we start to apply SSL to a new generation of dynamic wireless applications, there will be many serious problems, as shown below:
The aliquot group and subscribed multicast application will become the main model of future smart wireless applications. As a one-on-one agreement, SSL does not support multicast applications well. SSL is a point-to-point agreement that protects the direct connection between the main unit. However, the emerging internet field is based on web services. Therefore, it requires multiple subscribers to assist in processing and deliver XML-based service requests. Then there is a need for end-to-end security solutions. SSL is a point-to-point agreement that protects the direct connection between the main unit. However, the emerging internet field is based on web services. Therefore, it requires multiple subscribers to assist in processing and deliver XML-based service requests. Then there is a need for end-to-end security solutions.
When a commercial network extension, the problem related to SSL will only become more serious. In order to solve these problems, we need an end-to-end security model with a flexible encryption solution to meet a range of different needs. We need to pay attention to protection content rather than connection. We will end this discussion through several promising (for implementing end-to-end wireless security) content format, security protocols, and tools. XML advantages
The J2ME application can communicate with the backend servers and other J2ME applications on the HTTP agreement. Unfortunately, all of those additional markers have become a fairly large format for limited wireless bandwidth. Despite this, XML still provides some important advantages. XML is a very robust, easy to understand. This is also a communication data format selected for the new generation of open, interoperable web services. Therefore, the wireless device using J2ME must have the ability to process XML to access the world of Web services. At this time, the advantages of using XML are far better than its BandWidth overhead.
It is difficult to support XML based on MIDP-based applications because the string function in the CLDC basic category is very limited. Fortunately, the MIDP application has several XML parsers available. KXML (developed by ENHYDRA) provides a simple API (SIMPLE API for XML (SAX)) and a limited file object model (DOM)) capabilities for XML. The KXML package also includes a special utility called KSOAP for resolving the SOAP message for web services. Original plans will have built-in feather-level XML parses for MIDP 2.0 specification, but recently changed this. The JSR 118 Expert Group has decided to include XML resolution support in the upcoming JSR 172 J2ME Web service specification (see Resources), which will contain XML-based remote program calls for CDC and CLDC applications (RPC) ).
Configuration through safety XML
XML is the format selected between our J2ME wireless app and backend services. In order to provide point-to-point security, we need to ensure the security of the XML file. Therefore, we need special XML standards to associate security metabits with a single file.
Several XML security agreements have been proposed to support communication data security in the XML application. It has the following agreements:
Security Assert Markup Language (SAML) is an agreement to transmit authentication and authorization information in XML messaging. It can be used to provide a single sign-on web service. XML digital signatures define how to sign some or all of the XML files to ensure data integrity. The public key that is distributed together with the XML digital signature in the XML key management specification (XKMS)) format. XML encryption allows the application to encrypt some or all XML files using references to pre-conventional symmetric keys. Web Services Security XML Agreement (WS-Security) is a complete solution that provides security to Web services by IBM and Microsoft. It is based on XML digital signature, XML encryption, and similar authentication and authorization schemes similar to SAML.
All of the above security protocols can be bound to the web service message delivery agreement. For example, we can embed the SAML segment into the SOAP message header to authenticate and authorize access to the requested service. We can also embed the XML digital signature segment into the SOAP header to authenticate the credit card number in the message.
Because the lack of XML and password API, the current MIDP 1.0 specification does not support a secure XML standard. In fact, even MIDP 2.0 will also contain universal password APIs. This allows developers to support secure XMLs in the MIDP application depending on the third-party library (such as Bounce Castle feather code) For CDC and CLDC devices, JSR 177 proposes APIs for security and trust services using SIM cards. Plus SAML or WS-Security, the new API can support automatic logo and single sign-on Web service. Conclusion
Although the situation is complex, we can conclude that J2ME does provide many advantages compared to WAP and native applications, including security advantages. At high-end, CDC Personal Profile gives a full function of J2SE to wireless applications, including the ability to achieve mature applications in strict security requirements in most cases.
In terms of security API, the current MIDP 1.0 specification does not provide adequate support. But with the help of third-party libraries and supplier support, we find that you can use MIDP 1.0 to implement a secure application. Moreover, as we have seen, the MIDP 2.0 specification promised to provide a core security API, which should allow us to create a commercial commercial application with more advanced and flexible security features.
One of the most important factors to consider when developing a mobile application, how will they adapt to a web service domain. Web service technology is rapidly developing, and the entire network area also develops. We have already spent some time discussing Web services technology applications based on J2ME-based applications. We encourage you to start from some reference materials in the reference information.
Reference
For J2ME just started, please download the J2ME Wireless Toolbox (J2ME Wireless Toolkit). For more J2ME information, start learning from a formal J2ME website. Wireless Java developers are the total directory of J2ME reference materials. For more information on the upcoming J2ME Web service specification, see the Java Community Process JSR page.
Note: IBM DW Taiwan Province in this article