Los dispositivos IoT utilizados tanto en entornos industriales, como en el entorno doméstico, pueden compartir aspectos de software pero en términos de comunicación son muy diferentes. A continuación se explican algunos de los protocolos utilizados a nivel doméstico e industrial
Entorno doméstico:
Cada día son más los hogares que disponen de uno o varios dispositivos IoT y frente a ello se presentan multitud de empresas que fabrican estos dispositivos; Donde cada uno de ellos puede tener su propio protocolo de comunicación y aunque no es mucha la información que suelen facilitar (pues hay algunos que no son protocolos de código abierto), los más conocidos son:
AllJoyn
fue lanzado por The AllSeen Alliance, compuesta por Haier, LG, Microsoft, Panasonic, Qualcomm, Sharp, Silicon Image, Technicolor y TP-Link. Es un estándar de código abierto, que facilita la comunicación entre dispositivos y aplicaciones, para todo tipo de protocolos de la capa de transporte.
HomePlug y HomeGrid
son protocolos cuya comunicación se realiza a través de la red eléctrica. Esta tecnología de comunicación la implementan numerosas marcas. Dependiendo del producto adquirido, el tipo de cifrado es diferente, incluso algunos dispositivos transmiten la información sin cifrar.
MFi
Made For iPhone/iPod/iPad) es un protocolo de comunicaciones propio de Apple diseñado para interactuar con estos dispositivos. Los dispositivos y elementos de conexión de Apple incorporan un chip mediante el cual verifican que tanto los dispositivos, como los cables de conexión son originales
OCF
(Open Connectivity Foundation) es un protocolo impulsado por Samsung, Intel, Microsoft, Qualcomm, Electrolux entre otras. Es un proyecto de código abierto que ofrece interconectividad con la filosofía just-works. Este protocolo pretende garantizar la interoperabilidad de millones de dispositivos, gracias a una implementación de referencia (IoTivity) y un programa de certificación.
Thread
(network protocol) fue creado por el conjunto de empresas denominado Thread Group. Es una tecnología basada en las comunicaciones por red mediante IPv6 que utiliza cifrado AES. Por ello y por la flexibilidad que ofrece, es un protocolo muy seguro y está preparado para el futuro.
Entorno industrial:
Con la aparición de los dispositivos IoT, surge el concepto de industria 4.0 (en pocas palabras como la digitalización completa a través de la integración de tecnologías de procesamiento de datos, software inteligente y sensores, desde los proveedores hasta los clientes ). En donde dispositivos deben poder comunicarse, tanto entre sí, como hacía el exterior. Por ello comentamos algunos de los protocolos de comunicación existentes en la industria.
AMQP
(Advanced Message Queuing Protocol) es un protocolo del nivel 7 del modelo OSI para aplicaciones distribuidas que soporta comunicaciones punto-a-punto y de tipo publicación/suscripción. Proviene del sector de servicios financieros y tiene presencia en el ámbito de TI y en el sector industria, siendo bastante limitada en este último. Ofrece un modelo robusto de comunicaciones que soporta transacciones y puede garantizarlas de forma completa. Ofrece seguridad a través de la autenticación y cifrado mediante SASL o TLS.
CoAP
(Constrained Application Protocol) fue creado por IETF (Internet Engineering Task Force) para proveer la compatibilidad de HTTP con una mínima carga. Es un protocolo cliente/servidor, es similar a HTTP pero usa UDP/multicast en lugar de TCP, además de simplificar el encabezado reduce el tamaño de cada requerimiento. Desde el punto de vista de la seguridad utiliza DTLS (Datagram Transport Layer Security), que básicamente consiste en aplicar seguridad en la capa de transporte para proteger las comunicaciones.
DDS
(Data Distribution Service) es un protocolo de tipo publicación/suscripción concebido para sistemas de tiempo-real. Es un estándar abierto y descentralizado. Los nodos de DDS se comunican directamente punto a punto a través de UDP/multidifusión (multicast). DDS es una buena solución para aplicaciones que requieren intercambio de datos en tiempo real como el control del tráfico aéreo, gestión de redes inteligentes, vehículos autónomos, robótica, sistemas de transporte, generación de electricidad, etc. Ofrece seguridad a través de TLS, DTSL y DDS.
HTTP
(Hypertext Transfer Protocol) es un protocolo cliente/servidor sin conexión presente en las TIC y en la web. Es un protocolo muy accesible por ser de código abierto, además de poseer numerosas librerías. Es efectivo para enviar grandes cantidades de información, como por ejemplo lecturas de sensores minuto a minuto o cada hora; aunque no es adecuado ni para enviar actualizaciones en periodos de tiempo del orden de milisegundos ni para enviar información de video. Es muy recomendable asegurar la información transmitida aplicando el protocolo criptográfico SSL/TLS sobre HTTP, lo que genera el protocolo de aplicación HTTPS. No obstante, el método más seguro consiste en incluir en el dispositivo IoT solo un cliente HTTP, no un servidor HTTP, de manera que el dispositivo IoT pueda iniciar conexiones a un servidor web, pero no sea capaz de recibir solicitudes de conexión.
MQTT
(Message Queuing Telemetry Transport) es un protocolo de tipo publicación/suscripción de nivel de aplicación con una versión para redes no basadas en TCP/IP (p. ej. Zigbee) denominada MQTT-SN. Este protocolo ha sido implementado en múltiples aplicaciones de IT, IoT y OT, como por ejemplo, el Messenger de Facebook, MS Azure IoT hub o para entornos de generación de electricidad mediante fuentes renovables. Puesto que MQTT envía credenciales de conexión en claro y no incluye en su diseño medidas de seguridad (p. ej. autenticación o cifrado) es recomendable usarlo con TLS para asegurar las comunicaciones en su versión sobre TCP, así como los mecanismos propios compatibles de comunicaciones no basadas en TCP/IP.
OPC UA
es un estándar de nueva generación que surge a partir del OPC, el cual es conocido por proveer una interfaz estándar para comunicarse con los PLC. OPC UA es un protocolo cliente/servidor multiplataforma, donde los clientes se conectan, navegan, leen y escriben al equipamiento industrial. Ofrece un modo binario y otro basado en SOAP (Web Service). Las tecnologías y metodologías innovadoras, como los nuevos protocolos de transporte, los algoritmos de seguridad, los estándares de codificación o los servicios de aplicación pueden incorporarse en OPC UA mientras se mantiene la compatibilidad retroactiva para los productos existentes. Es una opción para conectar información de sensores y PLC en las aplicaciones industriales existentes como sistemas MES (Manufacturing Execution System) y SCADA (Supervisory Control And Data Acquisition). Este estándar implementa medidas de seguridad para las comunicaciones, como son autenticación de la aplicación, autenticación y autorización del usuario, disponibilidad del servidor, auditabilidad del sistema y confidencialidad e integridad, lo que lo convierte en un protocolo muy seguro. OPC UA ofrece seguridad nativa que incluye autenticación y autorización, cifrado e integridad de datos vía firmas. Para la versión SOAP hace uso de la especificación de seguridad para Web Service desarrollada por IBM, WS-SecureConversation, mientras que en la versión binaria hace uso de una implementación específica de la anterior. Soporta certificados X.509 para la autenticación y se puede integrar con directorio activo y PKI.
XMPP
(Extensible Messaging and Presence Protocol) es un protocolo abierto, escalable y descentralizado basado en XML, originalmente diseñado para mensajería instantánea. Las características de XML en cuanto a adaptabilidad y sencillez de XML han sido heredadas por el protocolo XMPP. Los servidores que utilizan este protocolo pueden estar aislados de la red pública XMPP, y poseen robustos sistemas de seguridad como SASL y TLS. Gran parte de los cortafuegos están configurados para permitir el trafico TCP del puerto utilizado por HTTP, pero bloquean el puerto utilizado por XMPP, para solucionarlo XMPP utiliza HTTP para permitir el acceso a los usuarios que se encuentran tras un cortafuegos.