Uso de cifrado forzado

BR/EDR

BLE

El uso de cifrado en las conexiones Bluetooth es opcional.

El uso de mecanismos de cifrado es muy recomendable para el acceso a cualquier servicio que exponga información sensible o permita controlar el dispositivo de forma no autorizada.

No utilizar cifrado expone los datos de una conexión a ataques de sniffing y permite el uso de ataques como BIAS para extraer datos del dispositivo sin compartir o conocer la clave de enlace.

Descripción del proceso

Para comprobar si el uso de cifrado es requerido, deben clasificarse primero los servicios que requieren confidencialidad.

Una vez listados los servicios sensibles según su funcionalidad, se prueba a conectarse a ellos sin disponer de la clave de enlace.

Este control se considerará satisfactorio si no se permite la lectura de datos, acceso a funciones o control del dispositivo.

Recursos relacionados

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

ID Descripción
BSAM-RES-04 Sniff de una conexión Bluetooth
BSAM-RES-05 Captura de una conexión Bluetooth
BSAM-RES-06 Modo depuración en controladores Bluetooth
BSAM-RES-07 Envío y recepción de mensajes HCI
BSAM-RES-09 Cambiar los atributos de un controlador

Otra documentación relacionada:

ID Descripción
Documentación Modo de conexión en Bluetooth LE

Caso de ejemplo

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

Se procede a comprobar el emparejamiento entre unos auriculares Bluetooth y un ordenador. Se solicita la conexión con la aplicación de gestión de dispositivos Bluetooth integrada en el sistema operativo del ordenador.

En la captura de Wireshark se debería de poder localizar el proceso de emparejamiento completo con un comando Pairing Request seguido del comando de respuesta Pairing Response y para finalizar debería de confirmarse el emparejamiento con el comando Pairing Confirm.

Wireshark Pairing Process

En el comando Pairing Request el campo Secure Connections debería tener valor 0x01.

Wireshark Pairing Request

En el comando Pairing Request el campo Secure Connections debería tener valor 0x01.

Wireshark Pairing Response

De esta forma se fuerza el cifrado entre ambos dispositivos y se establece una generación de claves seguras.

Si en los mensajes de Pairing Request y Pairing Response inmediatamente anteriores al Pairing Confirm tiene el campo Secure Connections un valor diferente a 0x01 este control habrá fallado.

El resultado del control será FAIL si alguno de los dos dispositivos presenta campo Secure Connections con valor 0x00 y se establece la conexión.