Password Storing Programs on Palm-based PDAs

March 18, 2002

A common use for PDAs is store useful passwords (and similar kinds of confidential information, such as credit card numbers). Ideally, of course, you wouldn't use a PDA or paper to store passwords - you should memorize all your passwords. For many this is impractical, because they have too many passwords to remember.

Here are some suggestions for open source software / free software (OSS/FS) available for the Palm, For more information on the advantages of OSS/FS, see Why OSS/FS? Look at the Numbers!

If you choose to store passwords on a PDA, there is the risk of someone else getting your passwords by stealing the PDA or reading the PDA's database backups. Thus, if you use a PDA to store important passwords, you must use a program specifically designed to store passwords. You should not store important passwords on your PDA using the ``hide'' command, because these can be easily unhidden. The built-in password protection for hidden text is useless, because the data isn't actually encrypted. Password protecting the entire PDA doesn't really help either - most PalmOS systems support a ``debug'' command that bypasses the PalmOS login screen (for more about this and other PalmOS security weaknesses, see Security Analysis of the Palm Operating System and its Weaknesses Against Malicious Code Threats by Kingpin and Mudge, Usenix Security 2001).

For storing passwords, there's a wonderful problem - there are three programs that meet this need reasonably well. They all work the same way: they encrypt all the passwords and related data using a single ``master'' password, so instead of having to remember many passwords you only need to remember one. This means that the major weakness for any of these programs is the master password - you must choose a good, hard-to-guess master password or any of these programs can be quickly subverted, and you must remember the master password! A good password has at least 8 characters, includes uppercase, lowercase, a digit, and a punctuation mark, and isn't a dictionary word. Computers can rapidly try out different passwords, which is why short passwords are usually vulnerable to attackers.

Here are the three OSS/FS programs that do this, with some comments about each. These programs are worthless if they're not secure, so I'll particularly emphasize any clues to how secure they are:

I have not spent the time to do a thorough security analysis of the programs' actual code, because such analyses take a long time. Fundamentally, developers of these kinds of programs have to make sure that certain things are done right. For example, they need to make sure that they erase any memory that ever had passwords. This is why having the source code and an active community that reviews it is so important, to find and resolve such things.

Now, for those of you who think one of these programs will make you the next James Bond: forget it. Triple-DES and AES algorithms probably won't be broken in the near-term given current technology, but these programs won't counter assailants with many resources. The program in your PDA could be modified (e.g., by another program on the PDA, by someone briefly stealing your PDA, or via the computer the PDA syncs to). Someone could observe you entering your password (say through a micro video camera), or specialized equipment could get that information using the PDA's electromagnetic emissions. And of course, if an assailant pointed a gun to your head, you'd probably give them the password! But all of these attacks require more effort or gaul than the typical attacker most people are worried about. So for most people, these kinds of programs are good enough.

The bottom line is that I think Strip is the best. Strip's user interface isn't quite as convenient as the others (requiring 2-3 selections instead of one to see an entry), but it's easy to understand, has the most features, and doesn't have the more concerning security issues of the other two programs. In general Keyring is a close second and very worthy alternative, but its warning about being beta, its lose-everything crash that I experienced, and its way of leaving passwords open while the program isn't running causes me to rank it lower. Lockbox is the worst of the three; you'd be better off using one of the other two. Lockbox's inability to generate random passwords and hide the master password while you're entering it are serious weaknesses, and the ``disappearance'' of its source code gives me more concerns. If you use any of these programs, be paranoid (for example, turn off beaming by default and limit what programs you load onto your PDA).

About the Author

David A. Wheeler is an expert in computer security and has written several articles on open source software / free software (OSS/FS). He's the author of Secure Programming for Linux and Unix HOWTO, Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!, More than a Gigabuck: Estimating GNU/Linux's Size, and The Most Important Software Innovations. Mr. Wheeler's web site is at https://dwheeler.com.