Funded by: Defense Advanced Research Projects Agency
By 2004, there are expected to be over one billion users of wireless devices. Current wireless platforms integrate voice telephony, data, and streaming multimedia in multi-function rich-content capable devices. In this paradigm, code will be exchanged transparently with data over wireless links. Wireless devices will eventually have the processing power and memory of today's desktop workstations. Wireless devices will also have direct access to file servers and network services behind corporate firewalls. Furthermore, wireless devices will have the ability to ship and execute mobile and itinerant code such as software agents that act on the user's behalf. For example, cell phones will be extensible in such a way that interactive games, banking and ticketing applications, as well as wireless collaboration software can be downloaded and run on the go. While all of these advances in technology give the end user significant freedom and power, they also raise serious security and privacy concerns.
While traditional security approaches have proven to be somewhat effective and represent promising future defenses, unfortunately we do not know how effective they will be on a highly resource-constrained platform such as a PDA or cellular phone. For example, we know that the Java 2 Standard Edition (J2SE) provides strong type safety, stack inspection, a run-time verifier, and a security manager — all key components of the Java security sandbox. However, to believe that all kinds of Java code will run under these constraints is a fallacy. The fact is, the particular Java Virtual Machine on which the Java code runs determines its security constraints and the available security enforcement mechanisms.
To this end, we are working on a two-part project for investigating the security properties of extensible systems on highly resource-constrained wireless devices. The first part of the project is an investigation into the secure execution properties of a widely-deployed extensible system for wireless devices. The obvious platform choice for our work is Java 2 Micro Edition (J2ME). We intend to investigate the secure execution properties of the K Virtual Machine (KVM) included as part of the J2ME release. The second part of the project will be the development of a secure system for executing untrusted third party code in a particular constrained environment. Our work in this part is based on the results of our previous findings.