21.3.2. One-Time Password Hardware
There are also systems for generating nonreusable passwords in
hardware. The systems in common use are small cards, about the size
of miniature calculators. You install software and/or hardware on the
computer, and a user who wants to log in uses information generated
by the card as part of the process. In order to prevent attackers
from simply stealing the card, there is usually a "something
you know" component, which is either a fixed password used to
unlock the card itself, or a fixed password added to the generated
information as part of the login process.
These systems use a variety of different ways to generate passwords.
Some of them vary the password based on the time; some of them work
their way through a one-time password list; and some of them use a
challenge-response system, where the computer provides a challenge
that the user types into the card, and the card provides a response
for the user to give the computer.
Although the card-based systems have different strengths and
weaknesses, they share the same general advantages and disadvantages.
On the good side, they provide a guaranteed level of protection
without requiring special reader hardware; on the bad side, there are
considerable hardware costs for the cards, and you have to alter
login software on the machines that you want to protect. Most
authentication systems now contain support for the popular cards, but
you will still need to install vendor libraries.
Card-based tokens are something of a hassle for their users, who have
to carry the device, type things into it, read things from it, and
protect a small and expensive object from being damaged or lost.
Printed one-time password lists also present a certain number of user
annoyances; there's nothing like turning over your list to
discover that the print has worn off the next password you need.
Other hardware "something you have" options avoid many of
these problems. For instance, smart cards, which put a small amount
of information into a chip suitable for embedding in a credit
card-sized object, are cheaper, easier to carry, and don't have
keypads or readouts to fiddle with. The "secret encoder
ring", which puts a small transmitter into a device that will
pass for a chunky ring or a smallish ornament for your keys, is still
a small, valuable object that you have to protect, but it
doesn't have a keypad or a readout, and it's emotionally
very satisfying. However, all of these options require reader
hardware at the location where the user needs to authenticate. Smart
card readers are becoming more prevalent, and smart cards are the
most likely of these options to be practical for widespread use.
While it's unlikely that Internet cafes and terminals in
airports will provide smart card readers soon, it's relatively
easy to get them for laptop computers.
You can also use hand-held computers like Palm Pilots and Windows CE
machines to generate one-time passwords. It is very convenient for
people who already have these devices, but it is not as secure as
using devices that are designed to be security tokens.
General-purpose hand-held devices do not provide hardware protection
(they can be taken apart, so that people have access to the data).
ost of them don't provide significant software protection,
either; you can set a password, but it's generally easy to
guess, and if you back the device up to a larger computer, the data
is usually completely unprotected on the larger computer. If you use
these devices for one-time passwords, you should consider adding
additional access protection beyond that provided with the device.