Uso de cifrado forzado

BR/EDR

BLE

Por defecto, el cifrado en conexiones Bluetooth es opcional. No obstante, el cifrado debe habilitarse siempre al acceder a servicios que expongan información sensible o que puedan permitir control no autorizado del dispositivo. Sin cifrado, los datos de la conexión son vulnerables a ataques de escucha, que podrían permitir la extracción de datos sin poseer la clave de enlace.

Para validar este control, los servicios sensibles se identifican según su funcionalidad y se intenta acceder a ellos sin poseer la clave de enlace. La verificación es satisfactoria si no se puede leer ningún dato ni acceder a funciones o controles del dispositivo.

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.