Seguridad de los canales OOB en Bluetooth

BR/EDR

BLE

En Bluetooth es necesario establecer una clave de enlace compartida entre dos dispositivos para autenticarlos entre sí posteriormente o cifrar las comunicaciones. El procedimiento de emparejamiento “presenta” a ambos dispositivos entre sí y establece la clave compartida mediante diferentes métodos. Algunos dispositivos Bluetooth utilizan métodos de emparejamiento utilizando datos fuera de banda (OOB Data), que son datos intercambiados a través de otras tecnologías, como NFC o WiFi.

A través de un mecanismo OOB se intercambian datos identificativos de cada dispositivo, necesarios para el proceso de autenticación durante el emparejamiento. Es un proceso equivalente al intercambio manual de números PIN.

Una vez se han intercambiado los datos identificativos, se asume que el emparejamiento está protegido ante MitM y que ambos dispositivos son conocidos por el usuario. Sin embargo, un mecanismo de comunicación OOB inseguro puede llevar a un atacante a capturar el tráfico y comprometer el emparejamiento. Un método de comunicación OOB adecuado debe tener protección ante sniffing.

El método de comprobación de este control depende del mecanismo OOB utilizado.

Descripción

Debe realizarse una captura de los datos de anuncio/emparejamiento de un dispositivo para verificar que un dispositivo desea usar OOB data para su emparejamiento.

Si este es el caso, es necesario analizar el canal externo que se va a usar para el intercambio de los datos. Durante este análisis se ha de certificar que el canal usado es confidencial.

Caso de ejemplo

Un dispositivo puede compartir con otro mediante un procedimiento fuera de banda (OOB) los datos necesarios para el establecimiento de una conexión. Estos datos tienen que tener el formato que ha pre-fijado el estándar de Bluetooth.

Usaremos Wireshark con BTVS (btvs.exe -Mode wireshark) para realizar la captura de paquetes para su análisis.

Cuando se negocia una conexión el comando Pairing Request o Pairing Response tienen un campo llamado OOB data, y puede presentar dos valores:

Valor Nombre Descripción
0x00 Data Not Present No hay datos OOB disponibles
0x01 Data Present Hay datos OOB disponibles y que deben ser considerados en el proceso de comunicación o emparejamiento.

Wireshark OOB data not present

Cuando el dispositivo tenga valor 0x01 (Data Present) se ha de auditar el mecanismo de intercambio de datos OOB para garantizar que se realiza de manera segura, por lo general a traves de wifi o RFID.

Recursos relacionados

Para comprobar este control, pueden ser útiles los siguientes recursos:

ID Descripción
BSAM-RES-08 Descubrimiento de dispositivos