Skip to content
Search

Bluetooth

lastmod 2026-03-25created 2016-05-3135 edits

Bluetooth is an industry standard for personal short-range wireless communication, first developed by Ericsson in 1994. It was officially announced on May 20, 1999. The name Bluetooth is an Anglicized form of the Danish king Harald Blåtand. It was proposed by Jim Kardach, who came up with it because he was reading novelist Frans G. Bengtsson's novel called Viking and the historical novel about Harald Blåtand, 'The Long Ships'. Just as Harald Blåtand unified Scandinavia, the idea is to unify wireless communication with Bluetooth. In 1998, a Bluetooth alliance called the 'Bluetooth Special Interest Group' was formed, joined by Ericsson along with Intel, Lenovo, Microsoft, Apple, Nokia, Toshiba, and IBM. Bluetooth lets various devices communicate with each other securely and at low cost using radio frequencies available worldwide. Bluetooth, which uses the IEEE 802.15.1 specification, is also one of the industry standards for PANs. Bluetooth uses the 2.45 GHz ISM band. Versions 1.1 and 1.2 reach speeds of 723.1 kbps, and version 2.0 features EDR, which enables speeds of 2.1 Mbps. Bluetooth is a concept that replaces wired USB, while Wi-Fi is a concept that replaces Ethernet. SAFER is used for encryption. To establish a trusted connection between devices, pairing using a keyword takes place, although in some cases this step is skipped.

Categories

Libraries

Hardwares

Security

  • nRootTag - Turning Bluetooth devices into Apple AirTags without root privileges
  • Bluehood - A Bluetooth scanner built to test what information is exposed externally while Bluetooth is turned on

CVE

Pairing vs Connecting

At a high level, you always use "Connecting" to connect to a device, but you may first need to "Pair" the device.

Bluetooth pairing is a security procedure. It is a one-time provisioning step that prepares two devices by pairing them with a set of shared security keys that can encrypt their communication.

Bluetooth Low Energy devices can have three security levels. The lowest security level requires no pairing, and the next two levels require pairing.

Devices that choose to use No Pairing are the simplest, but obviously have no security. Communication is not encrypted, and other devices can connect.

The two available pairing methods provide the same level of security once connected. However, in the pairing procedure itself, one of the two methods is more secure than the other. Passkey Pairing is the more secure of the two procedures and requires entering a 6-digit number. This protects against machine-in-the-middle(MITM) attacks. Just Works Pairing is not secure, but it is very simple to use because nothing needs to be entered.

Once pairing is set up, you can connect without setting up pairing every time.

A detailed description of the pairing options is available here.

Service

You can check the service status as follows.

$ service bluetooth status

The output is as follows:

● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-07-28 08:42:16 KST; 14min ago
       Docs: man:bluetoothd(8)
   Main PID: 1235 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18403)
     Memory: 1.8M
     CGroup: /system.slice/bluetooth.service
             └─1235 /usr/lib/bluetooth/bluetoothd

Jul 28 08:42:15 yourname-13UD70P systemd[1]: Starting Bluetooth service...
Jul 28 08:42:15 yourname-13UD70P bluetoothd[1235]: Bluetooth daemon 5.53
Jul 28 08:42:16 yourname-13UD70P systemd[1]: Started Bluetooth service.
Jul 28 08:42:16 yourname-13UD70P bluetoothd[1235]: Starting SDP server
Jul 28 08:42:16 yourname-13UD70P bluetoothd[1235]: Bluetooth management interface 1.21 initialized
Jul 28 08:42:16 yourname-13UD70P bluetoothd[1235]: Failed to set mode: Blocked through rfkill (0x12)
Jul 28 08:42:18 yourname-13UD70P bluetoothd[1235]: Failed to set mode: Blocked through rfkill (0x12)
Jul 28 08:42:27 yourname-13UD70P bluetoothd[1235]: Endpoint registered: sender=:1.106 path=/MediaEndpoint/A2DPSink/sbc
Jul 28 08:42:27 yourname-13UD70P bluetoothd[1235]: Endpoint registered: sender=:1.106 path=/MediaEndpoint/A2DPSource/sbc

Or, if you use systemctl:

$ systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-20 08:36:59 KST; 3 days ago
       Docs: man:bluetoothd(8)
   Main PID: 1009 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18399)
     Memory: 2.8M
     CGroup: /system.slice/bluetooth.service
             └─1009 /usr/lib/bluetooth/bluetoothd

Sep 21 18:32:37 yourname-13UD70P bluetoothd[1009]: bt_uhid_send: Invalid argument (22)
Sep 21 18:32:37 yourname-13UD70P bluetoothd[1009]: bt_uhid_send: Invalid argument (22)
Sep 21 18:32:37 yourname-13UD70P bluetoothd[1009]: bt_uhid_send: Invalid argument (22)
Sep 21 18:38:13 yourname-13UD70P bluetoothd[1009]: Pair device timed out for hci0
Sep 22 15:39:34 yourname-13UD70P bluetoothd[1009]: Failed to set mode: Blocked through rfkill (0x12)
Sep 22 15:42:19 yourname-13UD70P bluetoothd[1009]: Pair device timed out for hci0
Sep 22 15:47:14 yourname-13UD70P bluetoothd[1009]: Unable pair since another pairing is in progress
Sep 22 15:47:39 yourname-13UD70P bluetoothd[1009]: Unable pair since another pairing is in progress
Sep 23 09:30:17 yourname-13UD70P bluetoothd[1009]: Endpoint registered: sender=:1.107 path=/MediaEndpoint/A2DPSink/sbc
Sep 23 09:30:17 yourname-13UD70P bluetoothd[1009]: Endpoint registered: sender=:1.107 path=/MediaEndpoint/A2DPSource/sbc

Viewing Bluetooth logs

journalctl -u bluetooth.service

How to read raw Bluetooth data

FAQ

Is a Bluetooth MAC Address unique?

The answer is as follows.

A Bluetooth MAC is designed to be unique, and is traceable to the chip manufacturer. Todays market is flushed with millions of Chinese chip manufacturers that do no follow FCC restrictions and do have matching MAC.

Translated...

블루투스의 MAC은 유니크하게 디자인 되며 칩 제조사를 추적할 수 있다. 하지만(오늘날) 시장의 수많은 중국의 칩 제조사는 더이상 더이상 FCC 제한을 따르지 않는 MAC을 사용한다.

In short, in principle a MAC Address should be unique, but it is not.

When a Bluetooth speaker is connected in Ubuntu but no sound plays

See Ubuntu#When a Bluetooth speaker is connected but no sound plays.

How to fix disconnections in Windows

There are several methods, but in short they come down to two: "don't turn off the power" and "make it easy to find".

  • Device Manager > Bluetooth > Bluetooth mouse > right-click > Properties > Power Management -> Allow the computer to turn off this device to save power > uncheck
  • Control Panel -> Power Options -> Change settings -> Change advanced power settings -> USB settings (USB selective suspend setting) -> On battery : Disabled / Plugged in : Disabled
  • Control Panel -> Bluetooth & other devices -> More Bluetooth options on the right side of the screen -> check Allow Bluetooth devices to find this PC -> Apply -> OK

See also

Favorite site

References


  1. Bluetooth_background.pdf ↩

author Zer0 sitemap