Seguridad en Bluetooth: fortalezas y debilidades

Publicado el 29/09/2016, por INCIBE
Seguridad en Bluetooth fortalezas y debilidades

Tal y como se describía en el artículo “Analizando Bluetooth” esta tecnología inalámbrica tiene diferentes vulnerabilidades que podrían ser explotadas por usuarios maliciosos para comprometer sistemas. Los entornos industriales que cuentan entre sus comunicaciones con dispositivos que hacen uso del protocolo Bluetooth pueden ser víctimas de ataques orientados específicamente a explotar estas vulnerabilidades, como serían:

  • Envío de señales con paquetes específicos, que podrían causar trastornos en el proceso de emparejamiento y comunicaciones.
  • Robo de información, debido al uso de la tecnología Bluetooth por parte de los dispositivos sin ser conscientes de ello. Esto último sólo aplica a dispositivos que utilicen una versión de Bluetooth anterior a la 4.2, ya que a partir de esta ningún dispositivo Bluetooth puede ser rastreado sin consentimiento previo.

Para verificar diversos aspectos relativos al protocolo se han realizado una serie de pruebas con Bluetooth Low Energy (BLE) versión 4.0, con objeto de probar la robustez del protocolo si se aplican todas sus capacidades de seguridad.

Laboratorio de pruebas

El entorno de laboratorio utilizado para realizar las pruebas consta de un kit de desarrollo comercial compuesto por 3 dispositivos: dos placas de evaluación que incorporan módulos BLE y un dispositivo USB que también permite la comunicación Bluetooth.

Entorno de pruebas

- Entorno de pruebas -

Estos 3 dispositivos pueden ser programados y configurados para cubrir diferentes necesidades. Para estas pruebas, las configuraciones utilizadas permiten analizar las medidas de seguridad incorporadas en las transmisiones y se ha capturado el tráfico para comprobar los resultados.

Además, se han utilizado diferentes herramientas, desde las utilizadas para para la captura de tráfico de red (Packet sniffer), a herramientas centradas en el protocolo y su funcionalidad como Btool, o la suite de herramientas para Bluetooth de la distribución Kali Linux.

Pruebas de comunicación

Para realizar estas pruebas se han utilizado los tres dispositivos, uno configurado como esclavo, otro como maestro y un tercero que realiza la captura del tráfico de la comunicación.

Establecimiento de la comunicación

El establecimiento de la comunicación entre 2 dispositivos Bluetooth consta de una fase de asociación entre los dos elementos de una red Bluetooth (en este caso, punto a punto al disponer sólo de dos dispositivos, pero es posible realizar conexiones punto multipunto con más dispositivos).

El esclavo envía continuamente tramas de señalización para notificar de su presencia a un posible maestro y poder establecer una comunicación.

Tramas de señalización enviadas por el esclavo

- Tramas de señalización enviadas por el esclavo -

Para establecer una comunicación, el maestro realiza una fase de descubrimiento SDP (Service Discovery Protocol) con el objetivo de listar todos los dispositivos esclavos a su alcance, identificados gracias a la trama de señalización, para posteriormente enviar un paquete de establecimiento a aquellos con los que quiera comunicarse. 

Establecimiento de la conexión maestro/esclavo

- Establecimiento de la conexión maestro/esclavo -

Utilizando la herramienta BTOOL se puede ser capaz de analizar detalladamente esta fase de establecimiento:

Establecimiento de la conexión maestro/esclavo

- Establecimiento de la conexión maestro/esclavo -

Se puede observar la dirección MAC del dispositivo esclavo tanto en la trama Bluetooth capturada, como en la interpretación de BTOOL. La primera petición (en verde) representa el intento de establecimiento por parte del maestro, a la que corresponden 2 respuestas (en azul): en la primera se observa la interacción entre el host y el controlador en el esclavo para tratar la petición realizada por parte del maestro, mientras que en la segunda se produce finalmente el establecimiento de la conexión.

Una vez establecida la conexión se sincroniza el reloj y se determina el orden de salto en los canales de frecuencia mediante el protocolo L2CAP. Se intercambia información de forma ininterrumpida siguiendo las especificaciones de la tecnología Bluetooth con saltos constantes de canal. Este tipo de redes de dispositivos Bluetooth recibe el nombre de piconet.

Una vez establecida la conexión se observa que en la comunicación se utilizan los saltos de frecuencia característicos del protocolo Bluetooth. El patrón de dichos saltos se repite, por lo que no ofrece seguridad adicional frente a un observador externo sino que más bien sirve para mejorar el aprovechamiento de la banda de transmisión.

Lectura de datos

Posteriormente al establecimiento de sesión ya es posible realizar intercambios de información entre el maestro y el esclavo. Esto implica la posibilidad de leer y escribir en determinados valores o direcciones de memoria del esclavo.

Lectura de parámetros sin ninguna seguridad aplicada

- Lectura de parámetros sin ninguna seguridad aplicada -

Tras la petición (verde) de lectura que se observa en la imagen, se observan dos respuestas, la primera para el tratamiento de la petición, mostrando que todo se realiza de forma correcta; y la segunda muestra el dato, en este caso 0x0018.

Cuando se establece un canal de comunicación como en este caso, sin seguridad, las lecturas y escrituras realizadas pueden ser fácilmente capturadas. Como solo se realiza una identificación de extremos, cualquiera de ellos podría ser suplantado y se podría continuar con la comunicación.

Emparejado (pairing)

Para añadir un nivel extra de seguridad se establece un intercambio de información de autenticación mediante un proceso de emparejado o pairing. Este proceso proporciona la certeza de que los dispositivos que se intercambian los datos son quienes dicen ser.

Proceso de pairing

- Proceso de pairing -

El proceso de emparejamiento requiere el uso de una clave o PIN (passkey), que debe ser conocida de antemano, evitando así que dispositivos maliciosos se incorporen a la red piconet.

Opción de la herramienta Btool, “envío de Passkey” (PIN)

- Opción de la herramienta Btool, “envío de Passkey" -

Tras el intercambio del PIN se finaliza el proceso de emparejado que proporciona la autenticación de extremos.

Uso de PIN para aumentar la seguridad en el establecimiento de conexión entre dispositivos

- Uso de PIN para aumentar la seguridad en el establecimiento de conexión entre dispositivos -

El PIN es el único secreto usado en la generación de claves que no es transferido en la comunicación inalámbrica ya que se basa en un esquema desafío-respuesta para comprobar el conocimiento de una clave secreta por parte del solicitante. En la imagen es posible ver el PIN en la petición mostrada por BTOOL ya que la herramienta lo muestra, pero en la captura no se puede detectar dado que el dato no se transmite, por lo que no es posible capturarlo.

Gracias al emparejamiento se evitan ataques MiTM y, junto con la implementación de una lista blanca de dispositivos, añade un nivel más de seguridad a la comunicación.

El proceso de emparejamiento sólo autentica usuarios, por lo que las escuchas de tráfico de red siguen siendo realizables al no cifrarse el tráfico.

Cifrado del canal

Existe la posibilidad de cifrar el canal de comunicaciones a través de una clave a largo plazo LKT (Long Term key). La LTK es una clave generada tras el emparejamiento y ha de ser conocida tanto por el maestro como por el esclavo en el momento de activación del cifrado.

Cifrado de las comunicaciones evitando escuchas por parte de posibles atacantes

- Cifrado de las comunicaciones evitando escuchas por parte de posibles atacantes -

Una vez cifrado, hemos repetido la misma prueba de lectura de datos del apartado anterior. En las imágenes siguientes puede observarse las diferencias para una misma transmisión Bluetooth sin cifrar y cifrada:

Lectura SIN cifrado activado

- Lectura SIN cifrado activado -

Lectura CON cifrado activado

- Lectura CON cifrado activado -

Se comprueba que no es posible interpretar la información capturada en el caso de comunicación cifrada. El valor 0x0018, la respuesta del esclavo a la petición tampoco aparece en la comunicación cifrada.

Con el emparejamiento existe la posibilidad de almacenar la clave a largo plazo para cifrar la comunicación. Esta clave persistente, se almacenaría en ambos dispositivos, maestro y esclavo, y se utiliza para conocer previamente a una comunicación entre dispositivos la clave que cifrará la comunicación, pudiendo realizar intercambios de información cifrada sin tener que volver a realizar los pasos previos de emparejamiento y autenticación. La LTK puede ser utilizada por ambos dispositivos siempre y cuando éstos conserven almacenada la clave sin que sea borrada de forma manual.

Consejos de seguridad

De las conclusiones obtenidas en las pruebas de laboratorio pueden extraerse las siguientes recomendaciones para asegurar las comunicaciones vía Bluetooth:

  • Activar el cifrado de las comunicaciones cuando sea posible. El uso de LTK permite cifrar las comunicaciones entre el maestro y el esclavo desde el primer momento. Todos los dispositivos de una red de control que utilicen Bluetooth deberían hacer uso del cifrado.
  • No aceptar conexiones de dispositivos desconocidos. Activar en el maestro la opción de listas blancas y requerir emparejamientos con clave de al menos 5 caracteres, evitando que dispositivos maliciosos puedan conectarse sin permiso.
  • Revisar periódicamente la lista de dispositivos de confianza registrados para evitar la aparición de dispositivos maliciosos.
  • Asignar un nombre a los dispositivos que no refleje información extra como puede ser la marca, el modelo del dispositivo, la ubicación o el servicio del mismo. Así se dificulta que posibles atacantes aprovechen vulnerabilidades asociadas a dispositivos concretos para realizar ataques dirigidos.
  • Mantener la configuración del dispositivo en modo invisible para dificultar la detección por parte de otros dispositivos.