Bluetooth Security — An Overview
that support the Bluetooth system in its
various phases and modes of operation. There
is a distinction between the phase where two
units want to communicate without having
had contact before and the phase where this
communication takes place after the units
already have met before. In the former case the
secret keys have to be established for the first
time, while in the latter case the units can use
the secret keys from the previous
communication instance. Clearly these phases
require different procedures for managing the
keys. Moreover the Bluetooth master may
want to broadcast to some of its slaves instead
of communicating with each of them
separately. This also requires some special key
management. The Bluetooth system provides
a handful of key management functions that
support the basic phases and modes of
operation. For convenience, and also for
underlining the importance of the
authentication key, this key will often be
referred to as the link key.
generated. Whereas the combination key KAB
is the result of a key generation process
involving two units (A and B say), the unit key
K is generated, and therefore dependent on, a
siAngle unit (A say). Typically a unit key is
created during an initialization phase and is
very rarely changed. Bluetooth units that have
little memory may prefer the use of unit keys.
Units that require more security may prefer
combination keys.
The master key Kmaster is a temporary key that
will replace the original link key temporarily
when, for example, a master wants to
communicate with more than one slave
simultaneously using the same encryption
key.
Finally, the initialisation key Kinit is used as the
link key during the initialization phase when
no combination or unit keys are present. It is a
temporary link key only used during
initialization. The generation of this
initialization key involves a Personal
Identification Number (PIN) code. This PIN
can be a number provided with the Bluetooth
unit, e.g. when the unit has no Man Machine
Interface (MMI) as in a PSTN plug.
Alternatively, the PIN can be selected
arbitrarily by the user and entered in both
units that want to meet. This can be done
manually using some MMI or this can be done
by the applications that are using the units.
The Bluetooth specification requires that the
value of the PIN can be changed. The length of
the PIN can be up to 16 octets. This allows, for
example, the implementation of an automatic
PIN code exchange through a Diffie-Hellman
key agreement, see [2], rather than through
manual means.
In order to support the different phases and
modes of operation, four types of link keys
have been defined; 1) the combination key
KAB, the unit key KA, the temporary key
Kmaster, and the initialization key Kinit. A link
key can be semi-permanent, i.e. having a
lifetime that spans more than one session, or
it can be temporary when its lifetime is
limited to only one session. The link key in
use at a particular time will be referred to as
the current link key. The current link key is,
like all other link keys, used for
authentication and generation of encryption
keys. The encryption key, denoted KC, is
derived from the current link key. Whenever
encryption is activated by an LM command
the value of the encryption key will change
automatically.
Link key generation
From the set of four defined link keys, the keys
KAB and KA play functionally the same role.
They differ only in the way they are
It would take us too long to go through all the
different cases of link key generation, so in this
article we will exhibit only the generation of
36
Information Security Technical Report, Vol. 5, No. 3