Hi Luiz,
On 4/24/25 6:18 PM, Luiz Augusto von Dentz wrote:
Hi Ludovico,
On Thu, Apr 24, 2025 at 12:03 PM Ludovico de Nittis
<ludovico.denittis@xxxxxxxxxxxxx> wrote:
This series adds a new "CablePairing" property to allow us to
indentify devices that have been paired using a custom USB cable
cable method and that don't support the canonical bonding with
encryption. With that information, we can dynamically enforce
encryption to drastically reduce the attack surface, compared to just
disabling the "ClassicBondedOnly" property.
The "CablePairing" property is exposed via D-Bus to allow
clients to potentually show this information to end users.
As far as I can tell, starting the listening input server with
BT_IO_SEC_LOW and then bumping it in `hidp_add_connection()` should not
have any negative effect regarding the overall security. However,
please let me know if it turns out not being the case.
Addresses https://github.com/bluez/bluez/issues/1165
Changes in v2:
- Start the listening input server with BT_IO_SEC_LOW only if we
actually have a known sixaxis device
Changes in v3:
- Change the property from being sixaxis specific to a generic
"CablePairing"
- Remove the manual validation of Sixaxis HID report descriptor
because we already replace it with a pre-dermined SDP record
in `sixaxis.c`
Changes in v4:
- Instead of setting the server security level in adapter.c, we
do it when registering the input devices, during probing
Ludovico de Nittis (6):
src: Add new CablePairing property
client: Print CablePairing property
sixaxis: Set CablePairing when pairing a Sixaxis with USB
adapter: Add btd_adapter_has_cable_pairing_devices()
input: Automatically use sec level low when using a cable paired
device
sixaxis: Set security level when adding a sixaxis device
client/main.c | 1 +
doc/org.bluez.Device.rst | 7 +++++
plugins/sixaxis.c | 8 ++++-
profiles/input/device.c | 20 +++++++++++--
profiles/input/manager.c | 3 +-
profiles/input/server.c | 63 ++++++++++++++++++++++++++++++++++++++--
profiles/input/server.h | 3 +-
src/adapter.c | 17 +++++++++++
src/adapter.h | 1 +
src/device.c | 40 +++++++++++++++++++++++++
src/device.h | 2 ++
11 files changed, 157 insertions(+), 8 deletions(-)
--
2.49.0
Looks like CI has found something not quite right still:
https://github.com/bluez/bluez/pull/1191#issuecomment-2828175923
Oops, it should be fixed in the v5.