[Bluetooth] Reject L2CAP connections on an insecure ACL link
authorMarcel Holtmann <marcel@holtmann.org>
Tue, 9 Sep 2008 05:19:20 +0000 (07:19 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 9 Sep 2008 05:19:20 +0000 (07:19 +0200)
commite7c29cb16c833441fd2160642bb13025f4e7ac70
tree7ba44be60b7bf9c4e7bee459735ebabdc85eb8fd
parent09ab6f4c2376a0fc31abde1e2991513f900ea825
[Bluetooth] Reject L2CAP connections on an insecure ACL link

The Security Mode 4 of the Bluetooth 2.1 specification has strict
authentication and encryption requirements. It is the initiators job
to create a secure ACL link. However in case of malicious devices, the
acceptor has to make sure that the ACL is encrypted before allowing
any kind of L2CAP connection. The only exception here is the PSM 1 for
the service discovery protocol, because that is allowed to run on an
insecure ACL link.

Previously it was enough to reject a L2CAP connection during the
connection setup phase, but with Bluetooth 2.1 it is forbidden to
do any L2CAP protocol exchange on an insecure link (except SDP).

The new hci_conn_check_link_mode() function can be used to check the
integrity of an ACL link. This functions also takes care of the cases
where Security Mode 4 is disabled or one of the devices is based on
an older specification.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/bluetooth/hci_core.h
net/bluetooth/af_bluetooth.c
net/bluetooth/hci_conn.c
net/bluetooth/l2cap.c