La seguridad en los protocolos de control de edificios

Publicado el 20/04/2017, por INCIBE
La seguridad en los protocolos de control de edificios

Hace un tiempo ya se comentaron en este mismo blog determinados aspectos relacionados con los edificios inteligentes y los protocolos que se usan, en el artículo BMS: Edificios inteligentes, ¿y seguros?. Aquí ya se citaban ciertas características sobre los protocolos usados, pero sin hacer demasiado hincapié en la arquitectura de los mensajes de los protocolos y las medidas de seguridad y cómo implementarlas. Este artículo está focalizado en los protocolos BACnet y Lonworks, sobre los que se hace un análisis al estilo del realizado en otros artículos sobre protocolos, como zigbee o bluetooth.

La característica más importante que diferencia a estos dos protocolos domóticos es que Lonworks está más cercano al tratamiento de información proveniente de sensores y actuadores, mientras que BACnet se encuentra más orientado al plano de gestión y presentación de datos al usuario.

BACnet

La arquitectura de BACnet define cuatro capas que se corresponden con las capas físicas, de enlace, de red y de aplicación del modelo OSI, aunque solo la capa de aplicación y la de red son puramente BACnet.

Arquitectura de capas BACnet

- Arquitectura de capas BACnet -

A nivel de capa de enlace y capa física, utiliza diferentes protocolos, como Ethernet, BACnet/IP, ARCNET, MS/TP, LonTalk o PTP; lo que se traduce en la definición de diferentes variantes de BACnet:

  • BACnet/IP: Especificación definida en el Anexo J del estándar de BACnet para poder trabajar con direcciones IP y puertos, lo que permite su uso sobre la arquitectura Ethernet disponible, así como el uso de redes VLAN. El anexo define la utilización de 16 puertos UDP. Se diferencia de BACnet/Ethernet por la utilización de direcciones IP en lugar de direcciones MAC.
  • BACnet/Ethernet: Variante utilizada directamente con redes Ethernet 8802-3. Soporta medios físicos variados, como cable o fibra óptica. Está limitado a una infraestructura física que sólo usa direcciones MAC para establecer las comunicaciones.
  • BACnet MS/TP: BACnet basado en los modos maestro-esclavo o de paso de testigo (token passing) en la capa de enlace. Es un tipo de BACnet que utiliza un canal serie para la comunicación, típicamente RS-485.
  • BACnet PTP (Punto a punto): Este tipo de control de acceso al medio sólo se utiliza en redes telefónicas. El estilo de conexión directa EIA-232 está en desuso tendiendo a utilizarse Ethernet.
  • BACnet over ARCNET: Esta versión permite su uso sobre cable coaxial o cable serie RS-485. Incrementa un poco las prestaciones de BACnet MS/TP, pero está soportado por muy pocos fabricantes.

Nos vamos a centrar en la seguridad del protocolo BACnet, incluyendo claves, modos de cifrado o sistema de autenticación.

Claves

BACnet define 6 tipos de claves diferentes a utilizar dependiendo de la tarea a realizar. Las claves son distribuidas a todos los dispositivos desde el servidor de claves de la red, algunas de ellas incluso son distribuidas de forma conjunta. No es necesario que un dispositivo tenga la funcionalidad de servidor de claves, pero debe existir un servidor que contenga todas las claves y un listado de dispositivos a gestionar. El estándar no define como se implementa este servidor. Los tipos de claves son:

  • General-Network-Access: Utilizada durante la vinculación de dispositivos y objetos, para crear túneles cifrados y para la interfaz de usuario de los dispositivos que no pueden autenticar a los usuarios.
  • User-Authenticated: Clave distribuida a los dispositivos cliente que pueden asegurar la autenticación de los usuarios o a los dispositivos que no disponen de interfaz de usuario.
  • Application-Specific: Proporciona límites de seguridad entre las áreas de las aplicaciones. Solo se distribuye a dispositivos que comparten determinadas aplicaciones.
  • Installation: Clave que solo se distribuye a un conjunto pequeño de dispositivos, típicamente a la aplicación de configuración y a los dispositivos que van a configurarse.
  • Distribution: Esta clave se utiliza para distribuir las claves General-Network-Access, User-Authenticated y Application-Specific de forma segura.
  • Device-Master: Usada únicamente para distribuir la clave Distribution. Esta clave es única para cada dispositivo y debe mantenerse lo más segura posible.

Políticas de seguridad de red

La seguridad en los mensajes BACnet es aplicada en la capa de red, los mensajes sin cifrar de BACnet se sitúan dentro de la parte de datos de un nuevo mensaje seguro. Este cifrado está sujeto a 4 políticas de seguridad de red basándose en si utiliza seguridad física, alguna característica de seguridad del protocolo o nada:

  • Plain-trusted: Requiere seguridad física y no se aplica la seguridad del protocolo.
  • Signed-trusted: La seguridad física no es requerida, es asegurado mediante firmas.
  • Encrypted-trusted: Seguridad física no requerida, asegurado mediante cifrado, realizado con AES.
  • Plain-non-trusted: Sin seguridad física, ni firma o cifrado aplicado. Mensaje en texto plano.

Los mensajes de seguridad de BACnet usan el mismo formato de trama, consistente en un encabezado fijo, un cuerpo opcional y una firma requerida.

Campos de un mensaje de seguridad BACnet

- Campos de un mensaje de seguridad BACnet -

El nivel básico de seguridad que se puede aplicar a un  mensaje para hacerlo de seguridad consiste en la firma de cada mensaje con un HMAC.

Los dispositivos BACnet seguros son configurados con una política de seguridad de dispositivo base que determina el nivel mínimo de seguridad para el envío o la recepción de mensajes por parte del dispositivo.

Autenticación

Siempre que la seguridad se elimine de un mensaje, ya sea en el dispositivo final o porque se encamina hacia un destino con una política de seguridad diferente, los mensajes deben ser autenticados. Esta autenticación consiste en la validación de la MAC de origen, un ID de mensaje único, un sello de tiempo y la firma del mensaje.

En cuanto a autenticación de usuarios, la arquitectura de seguridad de BACnet permite múltiples métodos, pero sólo uno está definido: la autenticación de usuario por proxy. Se prevé que en el futuro se definan más métodos de autenticación.

Principales amenazas

Las características comentadas anteriormente, propuestas en “Addendum g to BACnet Standard 135-2008”, permiten evitar unas serie de ataques sobre las redes BACnet. Entre ellos destacan:

  • BACnet spoofing: Ataque similar al ARP spoofing o IP spoofing llevado a cabo en entorno TI. Los dispositivos comprometidos generan mensajes falsos que fuerzan a otros equipos a enviar sus mensajes a través del dispositivo atacante.
  • Denegación de servicio: Ataque llevado a cabo mediante la técnica de inundación de la red BACnet. El atacante envía mensajes broadcast sin especificar un listado de dispositivos objetivo, por lo que todos los dispositivos deben contestar, generando tráfico innecesario en la red.
  • Ataque a la propiedad de escritura: Cambia el valor actual de la propiedad del objeto BACnet. El resultado de la acción puede variar según el objeto afectado y su propiedad.
  • Deshabilitar conexiones de red: Puede realizarse mediante varios servicios de BACnet. Las tablas de enrutamiento de la red BACnet pueden ser corrompidas por un dispositivo comprometido que comparte información de enrutamiento defectuosa. También es posible realizar desconexiones de red mediante el envío de determinados mensajes falsos.

Lonworks

A diferencia de BACnet, LonWorks es una tecnología propietaria que requiere de un chip de Echelon específico llamado Neuron. A pesar de ello, LonWorks es utilizado por millones de dispositivos dentro de la automatización de edificios dado su bajo coste y su flexibilidad a la hora de mezclarse con componentes de otros fabricantes.

LonWorks define al conjunto de la tecnología, el protocolo utilizado se conoce como LonTalk, con especificación abierta ISO/IEC 14908. La tecnología se comporta de forma similar a una red LAN, de donde deriva su nombre: LON (Local Operating Network – Red de Operación Local).

A nivel de infraestructura física, LonWorks puede funcionar sobre par trenzado, Ethernet, cable de conducción eléctrica (PLC), fibra, radio, etc., lo que le confiere una gran versatilidad de uso.

La arquitectura de la tecnología está pensada para funcionar en modo parejas, de manera que cualquier dispositivo puede hablar con cualquier otro sin ningún tipo de restricción, por ello se permiten las topologías en bus, anillo, estrella o mixtas.

Formato de trama de protocolo LonTalk

- Formato de trama de protocolo LonTalk -

Seguridad

El protocolo LonTalk no implementa cifrado de datos, solo se dispone de la autenticación de remitente como medida de protección. El cifrado de datos se utiliza comúnmente para ocultar los datos mientras que la autenticación de remitente se utiliza para verificar que el remitente de un mensaje es un remitente autorizado.

Esta comprobación se basa en una clave única de 48 bits para cada dispositivo, que debe ser colocada antes o durante la instalación, llamada clave de autenticación, que no se puede leer fuera del chip Neuron y no se puede modificar sin conocerla. Cada dispositivo debe conocer la clave de cada uno de los miembros de la red. El dispositivo mandará todos los mensajes autenticándose, de manera que el receptor responderá a cada mensaje con un reto en forma de número aleatorio de 64 bits. El receptor del reto realizará una transformación de autenticación basándose en su clave privada y devolverá la respuesta a las operaciones al receptor del mensaje original, que habrá realizado las mismas operaciones usando la clave que conoce del dispositivo emisor. Si ambos resultados coinciden entonces se procesará el mensaje original.

En ningún momento se transmite la clave de autenticación. Una captura de tráfico solo mostraría el mensaje, seguido del número aleatorio y de una transformación. Matemáticamente, dado el número aleatorio y la transformación, es prácticamente imposible determinar la clave.

Aunque a nivel de seguridad el mecanismo es adecuado para autenticar al emisor, debe tenerse en cuenta que el mensaje sigue transmitiéndose en claro, lo que permite realizar escuchas del tráfico de la red aunque no se puedan insertar nuevos mensajes.

A nivel de tráfico de datos debe tenerse en cuenta que se incrementa notablemente el intercambio de información, debido a los paquetes del desafío-respuesta.

En abril de 2015 se publicó un informe sobre criptoanálisis en el que se indicaba que el algoritmo utilizado por la norma ISO/IEC 14908, en la que se basa LonTalk entre otros muchos protocolos, era inseguro por defecto. La solución pasa por utilizar cifradores de autenticación como AES-CCM o AES-GCM

Desde el año 2014 se permite utilizar BACnet sobre LonTalk, uniendo las tecnologías de dos grandes rivales en la domótica. Esto permite poder utilizar BACnet en toda la automatización, desde la gestión hasta el control de los sensores y actuadores; aplicando las características de seguridad que ofrece BACnet mejorando las características de LonWorks.