OPC UA, equilibrio entre ciberseguridad y rendimiento
En la actualidad, con la consagración de la industria 4.0 y el surgimiento de la industria 5.0, el big data y el IIoT, las redes industriales deben procesar una elevada cantidad de información y de datos. Uno de los aspectos más importantes es que todo entorno industrial está formado por una gran cantidad de dispositivos de diferentes proveedores, por lo que la interoperabilidad entre dispositivos supone un reto mayúsculo.
OPC Unified Architecture, o también denominado OPC UA, es el estándar más moderno presentado por la OPC Foundation. Este nuevo estándar se creó con el objetivo de mejorar la seguridad, fiabilidad e interoperabilidad en los intercambios de datos entre diferentes sistemas o equipos en entornos industriales.
- Red OPC UA. Fuente -
En resumen, la OPC Foundation diseñó el estándar OPC UA para mejorar el servicio orientado a la conexión, permitiendo crear nuevas y fáciles formas de comunicarse entre diferentes sistemas operativos. Todo esto, sumado a la cuantiosa mejora en la seguridad de las conexiones, marcada por la autenticación de los usuarios en los clientes y servidores, la autorización dentro de las relaciones de comunicación OPC y la integridad de los datos, hacen del estándar OPC UA, un estándar con todas las especificaciones y funcionalidades de OPC Classic, pero simplificando y solucionando en gran medida los problemas de configuración conocidos del protocolo primario junto con la falta de interoperabilidad y de seguridad.
Características técnicas
Arquitectura cliente-servidor
OPC UA, al igual que la versión Classic del protocolo, tiene una estructura cliente-servidor, en la que ambos tipos de elementos interactúan para realizar intercambios de información. Por lo tanto, cada sistema OPC UA puede tener múltiples clientes y servicios a la vez. Además, cada cliente o servidor puede realizar interacciones simultáneas con uno o varios clientes o servidores.
- Clientes y servidores OPC UA. Fuente -
- Cliente OPC UA: el cliente OPC UA tiene una estructura formada por dos divisiones: la primera, el Client Application, en la que se implementa la configuración y el código del cliente OPC, y otra de Communication Stack, en la que se definen las peticiones de datos. Existen dos formas de realizar peticiones:
- Petición directa: el cliente solicita y el servidor envía.
- Petición por subscripción: el cliente se subscribe y el servidor envía los datos si existe un cambio de parámetros, cuando se sobrepase un valor o cuando se cumple una regla determinada por el cliente y aprobada por el servidor.
- Estructura de un cliente OPC UA. Fuente -
- Servidor OPC UA: el servidor OPC UA está dividido entre tres secciones: OPC UA Server Application, OPC UA Server Api y OPC UA Communication Stack. Existen diferentes secciones dentro de la arquitectura de un servidor OPC:
En la primera se incluye el código implementado para la función del servidor y, además, hay diferentes objetos reales, es decir, variables internas del servidor u otros dispositivos físicos utilizados por el servidor.
- Estructura de un servidor OPC UA. Fuente -
- En el grupo OPC UA AddressSpace están contenidos los nodos, los cuales se pueden definir como objetos particulares utilizados por el servidor OPC UA para representar objetos finales de la pirámide de control. Entre ellos podemos tener variables de diferentes tipos, funciones, objetos reales etc. Además, tenemos el grupo de Monitored Items y de Subscription: el primero almacena los objetos para lectura directa y el segundo los datos de los objetos que funcionan mediante suscripción.
- La sección de Communication Stack o pila de comunicaciones se encarga de recibir la petición o mensaje del cliente OPC y de enviarla a la aplicación del servidor OPC UA.
Intercambio de datos entre cliente-servidor
La configuración entre el cliente y el servidor puede realizarse de múltiples formas, lo que permite personalizar en gran medida las comunicaciones.
La primera forma es a través del propio cliente OPC UA, capaz de utilizar los servicios OPC UA tanto para leer como escribir de forma directa datos de los nodos que se encuentran en el AddressSpace explicado anteriormente.
La segunda forma es más compleja, pero es la que permite configurar totalmente la comunicación, algo necesario si se quiere mantener un alto rendimiento, pero aumentando el nivel de seguridad de la red. Dentro de esta modalidad el cliente OPC UA utilizaría los ya mencionados Monitored Items y las Subscriptions para obtener los cambios de las variables.
Parámetros relevantes para el rendimiento
Como ya se ha mencionado antes, la utilización de los Monitored Items permite configurar diferentes parámetros que otorgan la capacidad de adaptar las peticiones, según sea necesario, para conseguir aumentar el rendimiento y la seguridad de las comunicaciones.
En la siguiente ilustración se pueden ver los diferentes parámetros del modo Monitoring de OPC UA:
- Parámetros del Monitoring Mode de OPC UA. Fuente -
- Publish Interval: intervalo de tiempo marcado por el cliente (dentro de los rangos configurados del servidor) para el que el servidor publica los datos.
- Sampling Interval: tiempo de muestreo utilizado por el servidor para revisar si ha cambiado el valor de una variable o no.
- Filter: criterio establecido por el cliente OPC UA para determinar cuándo una notificación ha de ser generada, es decir, cuando hay un cambio que cumpla los parámetros definidos en el filtro.
- Queue Parameter: tamaño de cola definido por el cliente (dentro de los parámetros del servidor). Este parámetro indica el número de valores que se almacenan en el servidor antes de reportarse al cliente.
Seguridad en OPC UA
La especificación OPC UA viene integrada con un modelo de seguridad superior a las especificaciones clásicas de OPC, contando con la posibilidad de personalizar, en gran medida, la configuración de seguridad que cada usuario quiera seleccionar, pero siempre siguiendo unos mínimos establecidos en el estándar para los servidores OPC UA.
Existen diferentes métodos de seguridad, siendo la seguridad mediante certificado el más utilizado y seguro.
Para utilizar este tipo de seguridad el dispositivo ha de tener un certificado propio instalado con unos requisitos mínimos establecidos en la OPC Foundation. La utilización de certificados sigue la siguiente estructura:
- Seguridad con certificado OPC UA. Fuente -
Además, existen otros tipos de autenticación, como:
- Anonymous: sin ninguna autenticación del usuario.
- Usuario y contraseña: requiere de la creación de un usuario y de una contraseña.
Por otro lado, tenemos las políticas de seguridad, mediante las cuales OPC UA permite definir hasta tres perfiles de seguridad:
- None: no requiere seguridad.
- Sign: permite utilizar la estructura de PKI mediante Basic256.
- Sign & Encrypt: también requiere de una infraestructura PKI y se pueden elegir diferentes variantes, tanto Basic256Sha256 como Aes128-Sha256.
Conclusiones y valoración seguridad/rendimiento
Dada toda la información tanto a nivel de configuración como a nivel de seguridad, es evidente que el protocolo OPC UA permite a los usuarios configurar una gran cantidad de parámetros para obtener un elevado rendimiento tanto a nivel de adquisición de datos como de interoperabilidad entre sistemas, garantizando un alto nivel de seguridad gracias a las diferentes políticas de seguridad que presenta la especificación.
Los valores configurables de Sampling Interval, Queue y Publish Interval permiten adaptar la velocidad de toma de datos y de publicación, dependiendo de los requisitos del usuario y del entorno industrial.
Por otro lado, el método de suscripción permite tener una conexión abierta segura mediante certificado o cualquier otro método elegido por el usuario, lo cual reduce el tiempo global de lectura, ya que solo se realiza un único handshake e intercambio de los datos de seguridad, logrando, además, mantener la seguridad a lo largo de toda la suscripción sin perjudicar el rendimiento, gracias a la posibilidad de configurar los parámetros anteriormente descritos.
En definitiva, OPC UA puede permitir tener un elevado nivel de seguridad a través de la configuración de todas las políticas y métodos de seguridad que contiene la especificación y, además, obtener un elevado rendimiento en la adquisición de datos, sin olvidar la mejora en interoperabilidad entre dispositivos industriales respecto a otros protocolos.