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.
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.