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.
En el comando Pairing Request el campo Secure Connections debería tener valor 0x01.
En el comando Pairing Request el campo Secure Connections debería tener valor 0x01.
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.