Seguridad en comunicaciones ZigBee

Publicado el 26/04/2016, por INCIBE
Fábrica que usa el protocolo inalámbrico ZigBee

ZigBee es un protocolo inalámbrico, desarrollado por la ZigBee Alliance que adopta el estándar IEEE 802.15.4 para las capas bajas del modelo OSI

De este modo ZigBee, se asienta sobre  la capa física y de enlace (subcapa de acceso al medio MAC), operando directamente por encima de estos niveles.

 

 

Pila ZigBee

- Capas ZigBee/802.15.4 -

Sectores como el de la salud o el transporte en los que ZigBee tiene presencia están evolucionando incorporando cada vez más este protocolo. Además las ciudades inteligentes también se están beneficiando de este tipo de comunicación inalámbrica.

Entre las principales características de este protocolo es interesante destacar su bajo consumo de energía y la posibilidad de usar topología de red en forma de malla que proporciona gran robustez a las comunicaciones, característica que permite que Zigbee sea un protocolo adecuado también para su utilización en entornos industriales.

Además de lo mencionado y desde el punto de vista de la escalabilidad, ZigBee aporta mayores posibilidades frente a otros protocolos inalámbricos como Bluetooth, ya que permite usar hasta 65535 nodos distribuidos en subredes de 255 nodos, frente a los 8 nodos máximos posibles en una subred Piconet (Bluetooth). Por otro lado, dado que su velocidad de transmisión no es alta (250 kbps frente a 1 Mbps en Bluetooth), su empleo en la industria se decide en función de las necesidades de cobertura, gasto energético, coste y fiabilidad.

En cuanto a la seguridad, y como veremos en este artículo, ZigBee aporta unas características que sumadas a las posibilidades de seguridad que posee el protocolo, hacen de ZigBee un buen aliado en las comunicaciones inalámbricas dentro de entornos industriales.

Roles y redes ZigBee

Las redes ZigBee, según la disposición de los nodos, permiten tres tipos de topología de red: en malla, árbol o estrella siendo ésta última la más interesante por sus posibilidades de reorganización en caso de fallo de alguno de los nodos. Los nodos pueden asumir a su vez, tres roles distintos:

  • Coordinador: realiza las funciones de inicio, control y enrutamiento, por lo que requiere memoria y gran capacidad de comunicación. El coordinador, es único en cada red y se sitúa en el centro de una red en estrella o en la raíz de una red en árbol. Ejerce un papel clave en las funciones de gestión de la seguridad de las comunicaciones actuando como Centro de Confianza (Trust Center). Este Centro de Confianza representa para el resto de dispositivos el origen de confianza encargado de realizar la distribución de las claves de seguridad utilizadas en el cifrado de las comunicaciones.
  • Router: Su función es la de gestionar las rutas de comunicación entre los dispositivos. Entre las situaciones que pueden darse existe el caso de congestión en la red o problemas dentro de esta durante el enlace entre nodos. En una red Zigbee puede haber más de un router.
  • Dispositivo final (End Device): Son aquellos dispositivos que únicamente se comunican con un nodo padre, pudiendo ser este un router o el coordinador, y no tiene capacidad para gestionar otros nodos finales.

Cualquier nodo puede ejercer cualquiera de las tres funciones dependiendo de la configuración y de la infraestructura de red. Aunque existen nodos que vienen configurados con un solo tipo de función, en general todos los dispositivos comerciales pueden ser configurados para asumir cualquiera de los roles.

Red ZigBee

- Ejemplo de red ZigBee (topología malla) -

La seguridad: un punto fuerte

La seguridad en la comunicación es uno de los puntos fuertes de ZigBee. Implementando su modelo de seguridad siguiendo el definido en IEEE 802.15.4, el diseño del protocolo proporciona tanto mecanismos de control de acceso de los dispositivos a la red (autenticación) como de cifrado (utilizando criptografía de clave simétrica) así como de integridad, asegurando que las tramas transmitidas no han sufrido manipulación con comprobaciones de integridad de mensaje (MIC).

Los aspectos relacionados con las claves criptográficas en ZigBee son elemento fundamental en la seguridad que merece la pena tratar en detalle.

Criptografía: claves y gestión

ZigBee fundamenta su arquitectura de seguridad en la utilización de criptografía de clave simétrica contando con un elaborado protocolo para la gestión de claves. Zigbee utiliza 3 tipos distintos de claves según se asocien a una red, a un grupo de dispositivos o bien a un enlace entre dos elementos:

  • Clave maestra (master key): Clave a partir de la cual se generan las diferentes claves de enlace. Dada su importancia, la clave maestra inicial ha de obtenerse por medios seguros (preinstalación o transporte de claves, ambos medios se detallan más adelante dentro de este artículo).
  • Clave de enlace (link key): Cifra las comunicaciones punto a punto a nivel de aplicación, y sólo es conocida por los elementos que participan en dicho enlace. Esta clave sólo se comparte entre dos elementos de la red y varía para cada pareja de elementos. La clave de enlace es utilizada para minimizar los riesgos de seguridad relacionados con la distribución de la clave maestra.
  • Clave de red (network key): Clave utilizada a nivel de red y conocida por todos los elementos pertenecientes a ésta. La clave de red también se utiliza en agrupaciones de más de dos elementos dentro de una red.

Gestión de claves

Un aspecto característico de ZigBee es, como se ha comentado, la variedad de mecanismos para el establecimiento de claves:

  • Preinstalación: Este método solo aplica a claves maestras. El fabricante incorpora una clave maestra en el propio dispositivo. El usuario puede seleccionar alguna de las claves instaladas mediante un conjunto de jumpers en el dispositivo (en aquellos en los que se haya preinstalado más de una).
  • Transporte de clave: El dispositivo hace una petición a un Centro de Confianza para que le envíe una clave. Este método es válido para la petición de cualquiera de las tres claves disponibles. El Centro de Confianza tiene 2 modos de operación:
     
    • Modo comercial: El propio Centro de Confianza mantiene una lista de dispositivos, claves maestras, claves de enlaces y claves de red. En este modo, el espacio de memoria que se requiere en el Centro de Confianza, aumenta con la cantidad de dispositivos asociados a la red.
    • Modo residencial: El Centro de Confianza sólo mantiene la clave de red y controla el acceso a la red, el resto de información es almacenada en cada nodo. La memoria requerida por el Centro de Confianza no depende del tamaño de la red. En este caso, no se hace ningún control para verificar si algún intruso modificó el número de secuencia.
  • Establecimiento de clave sin comunicación: Es un método local para generar claves de enlace a partir de la clave maestra para dos dispositivos sin necesidad de comunicarlos. Este servicio ZigBee se basa en el protocolo SKKE (Symmetric-Key Key Establishment). Los dispositivos involucrados en la comunicación deben disponer de la clave maestra, que pudo haber sido obtenida de acuerdo al método de preinstalación o de transporte de clave.

Debilidades en ZigBee

La principal debilidad que existe en la implementación de mecanismos de seguridad en ZigBee, deriva directamente de la limitación de recursos en los nodos, debido a que la mayoría de ellos se alimenta mediante baterías, tienen poco poder de cálculo y poca memoria.

Las claves utilizadas en los dispositivos ZigBee se guardan en memoria, por lo que un intruso puede simplemente leer la clave directamente de la memoria si tienen acceso físico al mismo (con software específico) y no se encuentran implementados mecanismos de seguridad, así como acceso al software de seguridad. Para evitar este tipo de problemas es recomendable el uso de un microcontrolador para la autenticación segura eliminando así el riesgo de manipulación física.

Análisis de laboratorio: verificando la seguridad en las comunicaciones

Para mostrar de manera práctica el tráfico intercambiado entre dispositivos ZigBee, se analizan a continuación algunas capturas de tráfico de red correspondientes a operaciones de lectura y escritura de parámetros en un nodo de una red ZigBee. Esta prueba se realiza primero sin aplicar medidas de seguridad (cifrado) y posteriormente se repite utilizando una configuración con cifrado.

En la siguiente imagen se representa el montaje realizado en el laboratorio donde encontramos un Coordinador (C), dos routers (R) y dos dispositivos finales (E). Todos ellos forman la red en la que se han realizado las pruebas desarrolladas en este apartado.

Red del entorno de pruebas

- Entorno de red ZigBee montado en laboratorio de pruebas -

Comunicación sin cifrado

Cuando un coordinador (C) realiza una petición de lectura de parámetros a un dispositivo final (E), sin aplicar cifrado, el tráfico capturado con la herramienta wireshark aparece en la siguiente trama.

Petición del campo ID sin cifrar

- Petición del parámetro ID con datos sin cifrar -

Tal y como se observa en la imagen superior, en la trama aparecen campos cuyo valor fija la activación de la seguridad, tanto a nivel de red como de aplicación. En este caso, ambos valores están a 0, lo que significa que no se aplica seguridad. Esto hace que la trama de datos se envíe sin cifrar, y por tanto permite identificar en la captura de tráfico la operación solicitada (solicitud de variable “ID”) al dispositivo final.

Respuesta a la petición del campo ID sin cifrar

- Respuesta del dispositivo final a la petición del parámetro ID sin cifrar -

En la respuesta a la petición inicial, se puede ver que la comunicación mantiene los valores correspondientes a la seguridad a cero y que el valor correspondiente para la variable “ID” es el valor “00 00 00 00 00 00 00 00 A3” en hexadecimal.

Comunicación cifrada

Una vez analizadas tanto la petición como la respuesta sin cifrado, se analizan estas mismas peticiones con cifrado.

Petición del campo ID con cifrado

- Petición del parámetro ID con datos con cifrado -

Tal y como muestra esta captura de petición, cuando el campo de seguridad en la capa de red está activado, los datos enviados ya se encuentran cifrados con lo que no es posible conocer los detalles de la petición que está realizando el coordinador al dispositivo final.

Respuesta a la petición del campo ID con cifrado

- Respuesta del dispositivo final a la petición del parámetro ID con cifrado -

Ahora, en la respuesta del dispositivo final, gracias a la clave de red que comparte información proporcionando seguridad en las capas superiores, los datos capturados en la trama no están accesibles.

Para analizar más en profundidad este protocolo, se adjuntan las dos capturas de tráfico en formato pcapng utilizadas en el ejemplo anterior.

Conclusión

Tal y como se ha visto en el artículo, independientemente de la robustez de un protocolo de comunicaciones, la seguridad depende directamente de una correcta configuración de los dispositivos. Zigbee incorpora unas características de eficiencia energética, de red y de seguridad que permiten llevar comunicaciones inalámbricas a entornos con altas exigencias como son los industriales. Sin embargo, prestar atención a la integración y la configuración de los dispositivos conforme a las necesidades del sistema es algo imprescindible para conseguir comunicaciones seguras.