©1994-2003 Kevin Boone
Home     Section index     K-Zone home Download Java

Site search

Glossary
Confused by computer jargon? Look it up!

Shameless plug


Now available!

Articles
- Ten-minute guide to setting up a WAP site

- Talk like your boss: new developments in managerese

More...

Development
File handling in the Linux kernel

Java development for the Sony-Ericsson P800

SunONE Application Server 7 FAQ

More...

Linux
Using Linux with the Treo 600

- Linux on the Tecra M1

- Some notes on openzaurus

More...

Download
Java stuff

Linux stuff

More...

(Please read the download policy)

Home automation
The X10 system

Linux TW723 driver

More...

The K-Zone
K-Zone computing

K-Zone law

K-Zone education and science

K-Zone motorcycles

K-Zone DIY

K-Zone railways

K-Zone martial arts

About the author

K-Zone home page

 
Download
Computing
JavaChimes
JCalc
PhotoIndex
JavaPopt
SunTimes
FileGate
MailGate
MP3 Web interface
jmix
Wallet - a simple secure personal data manger for mobile devices

What is this?

Wallet is a simple personal data manager for mobile devices with Java (MIDP1.0) support. Its main function is to provide a safe and convenient place to store small snippest of confidential data, such as passwords and credit card details. Many mobile phones and PDAs have utilities to store snippets of information; the problem with these utilties is that they don't necessarily encrypt the data. While this doesn't cause a problem in normal operation, if the device is lost of stolen there is little to protect your data from villains. Wallet uses the IDEA encryption algorithm to scramble the stored data; this algorithm is generally thought to be unbreakable. Even if an unauthorized person does get access to the data stored by the Wallet application, the encryption ensures that it will be gibberish without your password.

Requirements

Wallet needs a Java-enabled device with MIDP (version 1.0) support, and at least 14 kB of nonvolatile memory for application storage. There also needs to be enough storage for your data; obviously the more data you store, the more memory the application will use.

Basic principles

The Wallet application stores data in the form of labelled snippets. Each snippet can be up to 4 kB long (harware permitting), while the label is a short title: up to 32 characters. Until you have entered the password, neither the labels nor the snippets are visible. The number of individual snippets is limited only by the mobile device's memory. In use, the application displays the titles on the main screen; selecting a title reveals the rest of the entry.

How to use

As mobile devices vary enormously in their keypad and button layouts, it is impossible to describe exactly which keys to press. In addition, the screen appearance and layout will vary from one device to another. The description that follows is based on the Motorola i85 mobile phone.

The first time you use Wallet, you will be prompted to enter a pass code:

You will need to enter it twice, so you can't easily enter a duff pass code by mistake. Pass codes must be four to eight digits long (letters won't work - because the pass code is not shown on the screen as you type, it is virtually impossible to enter letters from a phone handset).

After entering the password, you will see a list (initially empty) of items in the database. To create an item, select `New from the menu (the location of the menu will vary from device to device. On some phones the New command will be mapped onto a button, rather than a menu). You can then enter the title of the snippet, and the text. When a number of snippets have been entered, the initial list screen might look like this:

You should be able to view an existing item by navigating through the list of titles, and selecting the one required. Again, the way this is done varies from one device to another. On the Motorola, you can use the arrow keypad to navigate, then press the `lift handset' button to select. You will then see the text of the item.

As well as viewing the item, you can change it. Changes are automatically saved when you select the `OK' buutton or menu.

You will only be prompted to create the wallet database the first time you use the program. Thereafter, you will only have to enter the password once:

Without the password, you won't be able to view or edit anything. As mentioned above, the password doesn't just control access to the program, it is used as the encryption key in the database.

Intallation

Installation depends on your particular mobile device. Your installation software will typically require a JAR file, and possibly a JAD file as well. Both are in the download package wallet.zip, in directory bin.

Source code

J2ME Source code is included in the download package, in the directory src.

Caveats

This software has a number of limitations of which you should be aware.
  • The title you assign to a snippet of information serves to identify it uniquely in the database. You can't have two snippets with the same title, nor can you change the title after creation. You can, of course, delete a snippet and re-create it with a different title.
  • Wallet uses an encryption algorithm that is generally believed to be unbreakable. There are no `back doors'. If you forget your pass code, say goodbye to your data.
  • If you don't view or edit any data within five minutes, the program will shut down. This is a feature, not a bug. Some mobile devices keep programs running even when they are not visible on the screen. Since Wallet is intended to be a security aid, its purpose would be defeated if it continued to run after your mobile phone was stolen. The villain wouldn't have even to guess your password - he could just switch to the running Wallet application. In practice this means that although in principle the text of an item can be 4kB long, in reality you are limited to how much you can type in five minutes.
  • Wallet looks ugly on a sophisticated mobile device like the Ericsson P800. The screen is just too big to suit the inflexible layout imposed by MIDP.
  • The data stored by Wallet is, by its very nature, meaningless to other applications. As a result, you will not be able to synchronize Wallet entries with any other application.

Technical notes

Wallet uses the standard `record store' paradigm of MIDP to store data. This way that MIDP provides for the storage of persistent data, even if the underlying hardware supports a real filesystem. Where the Wallet data ends up being stored on a real device is, therefore, at the discretion of the device vendor, and can't be configured in software. IDEA is a symmetric encryption algorithm with a 128-bit key. In applications where paranoid security is required, it is typically used in cipher feedback (CFB) mode. Wallet does not use CFB, because it significantly increases the computation time - this is likely to be important on a mobile device. In any case, CFB only markedly improves security when there is a substantial amount of data, and Wallet is not really designed to deal with large data volumes.

Legal, etc.

Wallet is copyright ©2003 Kevin Boone. This software is provided free-of-charge in the hope that it proves useful. There is no warranty of any kind. The author accepts no responsibility for any adverse consequences of its use. Encryption is, by its very nature, a way of turning readable data into gibberish. Every possible care has been taken to ensure that this software can convert the gibberish back to meaningful data; but if it doesn't, that's too bad. Please test thoroughly before relying on this software. If you can't accept the foregoing , please don't use this software. You may freely copy this software, or use it in any way you see fit, apart from claiming it as your own work. Please send bug reports, etc., to the author.