K1 - Generic Access Profile
This profile defines the generic procedures
related to discovery of Bluetooth devices (idle mode procedures) and link
management aspects of connecting to Bluetooth devices (connecting mode
procedures). It also defines procedures related to use of different
security levels.
Essentially this profile describes how the lower
layers (LMP and Baseband) are used, along with some higher layers.
For more details : Download the K1
Specification from the SIG website, or visit the Documents
Page.
1.1.1 Profile Stack
The main purpose of this profile is to describe the
use of the lower layers of the Bluetooth protocol stack (LC and LMP). To
describe security related alternatives, also higher layers (L2CAP, RFCOMM
and OBEX) are included.
1.1.2 Configurations/Roles
For the descriptions in this profile of the roles that the
two devices involved in a Bluetooth communication can take, the generic
notation of the A-party (the paging device in case of link
establishment, or initiator in case of another procedure on
an established link) and the B-party (paged device or acceptor)
is used. The A-party is the one that, for a given procedure, initiates the
establishment of the physical link or initiates a transaction on an
existing link.
The initiator and the acceptor generally operate the
generic procedures according to this profile or another profile referring
to this profile.
1.1.3 User
Requirements/Scenarios
The Bluetooth user should in principle be able to connect
a Bluetooth device to any other Bluetooth device. Even if the two
connected devices don’t share any common application, it should be
possible for the user to find this out using basic Bluetooth capabilities.
1.1.4 Profile Fundamentals
This profile:
- States the requirements on names, values and coding schemes used for
names of parameters and procedures experienced on the user interface
level.
- Defines modes of operation that are not service- or
profile-specific, but generic to all profiles.
- Defines the general procedures that can be used for discovering
identities, names and basic capabilities of other Bluetooth devices
that are in a mode where they can be discoverable. Only procedures
where no channel or connection establishment is used are specified.
- Defines the general procedure for how to create bonds between
Bluetooth devices.
- Describes the general procedures that can be used for establishing
connections to other Bluetooth devices
1.1.5 Conformance
Bluetooth devices that do not conform to any other
Bluetooth profile shall conform to this profile to ensure basic
interoperability and co-existence.
The generic access profile specifies
the generic terms that should be used on the user interface level.
1.2.1 Bluetooth
Parameter Representation
Bluetooth Device Address (BD_ADDR):
- The BD_ADDR is the unique address of a Bluetooth device
It is received from a remote device during the device discovery
procedure. At the UI level this it is referred to as 'Bluetooth Device
Address' and is defined at Baseband level as a 48-bit address (12
hexadecimal characters)
Bluetooth Device Name (User Friendly Name):
- The bluetooth device user-friendly name is a character string
returned in LMP_name_res as a response to a LMP_name_req. At the UI
level it is referred to as the 'Bluetooth Device Name' and can be up
to 248 characters, although it should not be assumed that a remote
device can handle more than the first 40 characters.
Bluetooth Pass-Key (PIN Number):
- The Bluetooth PIN is used to authenticate two Bluetooth devices
(that have not previously exchanged link keys) to each other and
create a trusted relationship between them. The PIN may be entered on
UI level but may also be stored in the device. At the UI level it is
referred to as the 'Bluetooth Passkey'
Bluetooth Class of Device (Device Type)
- Class of device is a parameter received during the device discovery
procedure, indicating the type of device and which types of service
that are supported. The information within the Class of Device
parameter should be referred to as ’Bluetooth Device Class’ (i.e.
the major and minor device class fields) and ’Bluetooth Service
Type’ (i.e. the service class field).
1.2.2 Pairing
Two procedures are defined that make use of the
pairing procedure defined on LMP level . Either the
- user initiates the bonding procedure and enters the passkey
with the explicit purpose of creating a bond (and maybe also a secure
relationship) between two Bluetooth devices, or
- the user is requested to enter the passkey during the
establishment procedure since the devices did not share a common link
key beforehand.
In the first case, the user is said to perform ’bonding
(with entering of passkey)’ and in the second case the user is said
to ’authenticate using the passkey’.
1.3.1 Discoverability Modes
With respect to inquiry, a Bluetooth device shall be
either in non-discoverable mode or in a discoverable mode. (The
device shall be in one, and only one, discoverability mode at a time.) The
two discoverable modes defined here are called limited discoverable
mode and general discoverable mode.
Non-discoverable Mode:
- When a Bluetooth device is in non-discoverable mode, it shall never
enter the INQUIRY_RESPONSE state.
- Device is 'non-discoverable' or in 'non-discoverable mode'.
Limited discoverable Mode:
- The limited discoverable mode should be used by devices that need to
be discoverable only for a limited period of time, during temporary
conditions or for a specific event. The purpose is to respond to a
device that makes a limited inquiry
- Device is 'discoverable' or in 'discoverable mode'.
General discoverable Mode:
- The general discoverable mode shall be used by devices that need to
be discoverable continuously or for no specific condition. The purpose
is to respond to a device that makes a general inquiry (inquiry using
the GIAC).
- Device is 'discoverable' or in 'discoverable mode'.
1.3.2 Connectability Modes
With respect to paging, a Bluetooth device shall be
either in non-connectable mode or in connectable mode. When a Bluetooth
device is in non-connectable mode it does not respond to paging. When a
Bluetooth device is in connectable mode it responds to paging.
Non-connectable Mode
- When a Bluetooth device is in non-connectable mode it shall never
enter the PAGE_SCAN state.
- Device is 'non-connectable' or in 'non-connectable mode'
Connectable Mode
- When a Bluetooth device is in connectable mode it shall periodically
enter the PAGE_SCAN state.
- Device is ’connectable’ or in ’connectable mode’.
1.3.3 Pairing Modes
With respect to pairing, a Bluetooth device shall be
either in non-pairable mode or in pairable mode. In pairable mode the
Bluetooth device accepts paring – i.e. creation of bonds – initiated
by the remote device, and in non-pairable mode it does not.
Non-pairable Mode
- When a Bluetooth device is in non-pairable mode it shall respond to
a received LMP_in_rand with LMP_not_accepted with the reason pairing
not allowed.
- Device is ’non-bondable’ or in ’non-bondable mode’ or
"does not accept bonding".
Pairable Mode
- When a Bluetooth device is in pairable mode it shall respond to a
received LMP_in_rand with LMP_accepted (or with LMP_in_rand if it has
a fixed PIN).
- Device is ’bondable’ or in ’bondable mode’ or "accepts
bonding".
Security is guaranteed in the generic
access profile by two methods, an authentication process and a choice of
security modes
1.4.1 Authentication
The generic authentication procedure describes how
the LMP-authentication and LMP-pairing procedures are used when
authentication is initiated by one Bluetooth device towards another,
depending on if a link key exists or not and if pairing is allowed or not.
Note: The device that initiates
authentication has to be in security mode 2 or in security mode 3.
1.4.2 Security Modes
Security Mode 1
- When a Bluetooth device is in security mode 1 it shall never
initiate any security procedure (i.e., it shall never send
LMP_au_rand, LMP_in_rand or LMP_encryption_mode_req).
Security Mode 2
- When a Bluetooth device is in security mode 2 it shall not initiate
any security procedure before a channel establishment request
(L2CAP_ConnectReq) has been received or a channel establishment
procedure has been initiated by itself.
Security Mode 3
- When a Bluetooth device is in security mode 3 it shall initiate
security procedures before it sends LMP_link_setup_complete.
The inquiry and discovery procedures described here
are applicable only to the device that initiates them (A).
1.5.1 General Inquiry
- The purpose of the general inquiry procedure is to provide the
initiator with the Bluetooth device address, clock, Class of Device
and used page scan mode of general discoverable devices (i.e. devices
that are in range with regard to the initiator and are set to scan for
inquiry messages with the General Inquiry Access Code). Also devices
in limited discoverable mode will be discovered using general inquiry.
- The general inquiry should be used by devices that need to discover
devices that are made discoverable continuously or for no specific
condition.
- In order to receive inquiry response, the remote devices in range
have to be made discoverable (limited or general).
1.5.2 Limited Inquiry
- The purpose of the limited inquiry procedure is to provide the
initiator with the Bluetooth device address, clock, Class of Device
and used page scan mode of limited discoverable devices. The latter
devices are devices that are in range with regard to the initiator,
and may be set to scan for inquiry messages with the Limited Inquiry
Access Code, in addition to scanning for inquiry messages with the
General Inquiry Access Code.
- The limited inquiry should be used by devices that need to discover
devices that are made discoverable only for a limited period of time,
during temporary conditions or for a specific event. Since it is not
guaranteed that the discoverable device scans for the LIAC, the
initiating device may choose any inquiry procedure (general or
limited).
- In order to receive inquiry response, the remote devices in range
has to be made limited discoverable.
1.5.3 Name Discovery
The purpose of name discovery is to provide the
initiator with the Bluetooth Device Name of connectable devices (i.e.
devices in range that will respond to paging). It can be done in 2 ways:
Name Request:
- Name request is the procedure for retrieving the Bluetooth Device
Name from a connectable Bluetooth device. It is not necessary to
perform the full link establishment procedure in order to just to get
the name of another device.
Name Discovery:
- Name discovery is the procedure for retrieving the Bluetooth Device
Name from connectable Bluetooth devices by performing name request
towards known devices (i.e. Bluetooth devices for which the Bluetooth
Device Addresses are available).
1.5.4 Device Discovery
- The purpose of device discovery is to provide the initiator with the
Bluetooth Address, clock, Class of Device, used page scan mode and
Bluetooth device name of discoverable devices.
- Devices discovered during device discovery must be both discoverable
and connectable.
1.5.5 Bonding
- The purpose of bonding is to create a relation between two Bluetooth
devices based on a common link key (a bond). The link key is created
and exchanged (pairing) during the bonding procedure and is expected
to be stored by both Bluetooth devices, to be used for future
authentication.
- Before bonding can be initiated, the initiating device (A) must know
the Device Access Code of the device to pair with.
Before establishment procedures are initiated, the
information provided during device discovery (in the FHS packet of the
inquiry response or in the response to a name request) has to be available
in the initiating device. This information is:
- The Bluetooth Device Address (BD_ADDR) from which the Device Access
Code is generated;
- The system clock of the remote device;
- The page scan mode used by the remote device.
1.6.1 Link Establishment
The purpose of the link establishment procedure is
to establish a physical link (of ACL type) between two Bluetooth devices.
It typically involves 2 stages: Paging, and Link Setup
1.6.2 Channel Establishment
The purpose of the channel establishment procedure
is to establish a Bluetooth channel (a logical link) between two Bluetooth
devices.
Channel establishment starts after link establishment is
completed when the initiator sends a channel establishment request
1.6.3 Connection
Establishment
The purpose of the connection establishment
procedure is to establish a connection between applications on two
Bluetooth devices.
1.6.4 Establishment
of Additional Connections
When a Bluetooth device has established one connection
with another Bluetooth device, it may be available for establishment of:
- A second connection on the same channel, and/or
- A second channel on the same link, and/or
- A second physical link.
Note , the above text contains excerpts from the Bluetooth
SIG's Specification, as well as various interpretations of the Specs. For
complete details of the various sections, consult the actual Bluetooth
Specification.
|