Kernel Watch
Jon Masters summarises the latest happenings in the Linux kernel, so that you don’t have to.
Linux turned 28 years old in August. As it happens, the anniversary aligned perfectly with the announcement of 5.3-rc6, so Linus reprised his original announcement with a few contemporary changes:
“Hello everybody out there using Linux – I’m doing a (free) operating system (more than just a hobby) for 486 AT clones and lot of other hardware. This has been brewing for the last 28 years, and is still not done”. The original Linux announcement had mentioned 386 AT clones, but support for the original 386 was dropped a number of years ago. With the release of the final 5.3 imminent, our attention will turn to 5.4 next month.
Another month, another security vulnerability affecting the industry. Bluetooth as a protocol comes in several flavours, including the classic BR/EDR (Bluetooth Basic Rate/enhanced Data Rate) and the more modern BLE (Bluetooth Low Energy) aka Bluetooth 4.0. The former is impacted by KNOB or Key Negotiation of Bluetooth, where an attacker can force devices to communicate insecurely.
Bluetooth is a very complex protocol encompassing many different layers. It’s designed to be implemented in modular components, separating the radio hardware in your laptop (the controller) from the host OS, such as Linux. The two communicate using HCI (Host Controller Interface), which enables Bluez (Linux) or Bluedroid (Android) software to communicate with compliant-controller hardware. This separation is good, but it also means that parts of the stack are implemented purely in hardware, not the OS.
One of those lower-level parts is the Link Manager Protocol (LMP), used to bring up links between devices in Bluetooth networks – known as piconets. LMP includes key negotiation during which the two communicating devices can agree upon various parameters. One of these is how many bits of random entropy to use.
Unfortunately, this number is not protected against a MITM (Man In The Middle) attack, during which a third party can force it to a low value. The fix is to change the Bluetooth specification in order to require stronger minimum entropy. While the LMP happens transparently to the OS, it is possible to determine how many bits of entropy are being used through an HCI call to the hardware.
Linux kernels have actually contained workarounds for KNOB for several months, these having silently been added back in April. The patches, which include “Align minimum encryption key size for LE and BR/ EDR connections”, seek to ascertain the number of bits being used, failing any connection that is created with insufficient security.