Fundamentos de seguridad de la IoT, Parte 5: Conectarse de forma segura a los servicios de la nube de IoT

Por Stephen Evanczuk

Colaboración de Editores de DigiKey de América del Norte

Nota del editor: A pesar de la proliferación de dispositivos de IoT, la seguridad de estos dispositivos sigue siendo una preocupación constante, hasta el punto de que los desafíos de seguridad pueden ser una barrera para la adopción de dispositivos conectados en IoT industrial (IIoT) y aplicaciones de misión crítica donde los datos corporativos y personales pueden verse comprometidos en caso de un ataque exitoso. La seguridad de las aplicaciones de IoT puede ser desalentadora, pero en realidad la seguridad de los dispositivos de IoT se puede construir sobre unos pocos principios relativamente sencillos que se apoyan en los dispositivos de seguridad del hardware. Siguiendo prácticas de seguridad bien establecidas, se pueden abordar estas preocupaciones. Esta serie, que consta de varias partes, ofrece orientación práctica para ayudar a los promotores a asegurarse de que se sigan las mejores prácticas desde el principio. En la Parte 1, se analizan los algoritmos criptográficos que subyacen a los diseños seguros. En la Parte 2, se analiza el papel de las claves privadas, la administración de claves y el almacenamiento seguro en los diseños de IoT segura. En laParte 3, se examinan los mecanismos incorporados en los procesadores seguros para mitigar otros tipos de amenazas a los dispositivos de IoT. En la Parte 4, se identifica y muestra cómo aplicar mecanismos de seguridad en los procesadores avanzados para ayudar a asegurar el aislamiento necesario para mitigar los ataques al entorno de ejecución de los dispositivos de IoT. Aquí, la parte 5 describe cómo la seguridad de la IoT continúa desde los dispositivos de IoT a través de medidas de seguridad de mayor nivel utilizadas para conectar esos dispositivos a los recursos de la nube de IoT.

La seguridad de la Internet de las Cosas (IoT) depende de múltiples capas de protección que se extienden desde la base de hardware del dispositivo de IoT hasta su entorno de ejecución. Sin embargo, sigue habiendo amenazas para cualquier dispositivo conectado y los requisitos típicos de las aplicaciones de IoT para la conectividad de la nube pueden dejar tanto el dispositivo de IoT como los servicios de la nube abiertos a nuevos ataques. Para mitigar estas amenazas, los proveedores de servicio en la nube para IoT utilizan protocolos y políticas de seguridad específicos que, si se usan mal, pueden dejar vulnerables las aplicaciones de IoT. Mediante el uso de placas de desarrollo preconfigurados, los desarrolladores pueden adquirir rápidamente experiencia con los métodos de seguridad utilizados por los principales servicios en la nube para IoT para autenticar conexiones y autorizar el uso de dispositivos de IoT y recursos en la nube.

En este artículo se describen los requisitos de conexión de dos de los principales servicios en la nube, Amazon Web Services (AWS) y Microsoft Azure, y se muestra cómo los desarrolladores pueden utilizar los kits de desarrollo y el software asociado de una variedad de proveedores para conectarse rápidamente con estos servicios.

El papel de los portales de IoT en los servicios en la nube

Cuando un dispositivo de IoT se conecta a un recurso como un servicio en la nube o un host remoto, potencialmente se expone a sí mismo -y por extensión a toda la red de IoT- a amenazas que se hacen pasar por servicios o servidores legítimos. Por el contrario, el propio servicio de la nube se enfrenta de forma similar a la amenaza de ataques de hackers que imitan las transacciones de dispositivos de IoT en un intento de penetrar en las defensas de la nube. Para ayudar a garantizar la protección tanto de los dispositivos de IoT como de los recursos de la nube, los servicios de la nube requieren el uso de protocolos de seguridad específicos para la autenticación mutua de la identidad para el inicio de sesión y la posterior autorización para garantizar el uso permitido de los servicios. Estos protocolos suelen estar incluidos en un conjunto de servicios que proporcionan un portal seguro entre los dispositivos de IoT y los recursos de la nube.

Al igual que otras plataformas de servicios de nube de IoT disponibles, AWS y Azure proporcionan cada una un portal de entrada específico que los dispositivos de IoT deben utilizar para interactuar con el conjunto completo de recursos de nube de cada proveedor, como las máquinas virtuales (VM) y las ofertas de software como servicio (SaaS). Utilizando un conjunto de mecanismos y capacidades funcionalmente similares, Hub de IoT de Azure y IoT de AWS proporcionan este portal para sus respectivas ofertas de nubes empresariales.

Como mínimo, estos y otros portales de IoT utilizan protocolos de autenticación específicos implementados a través del kit de desarrollo de software (SDK) de cada proveedor para crear una conexión segura. Para AWS, los dispositivos de IoT se conectan mediante autenticación mutua con una puerta de enlace de dispositivos. La pasarela de dispositivos conecta el dispositivo de IoT con otros servicios de apoyo de IoT, utilizando la información contenida en un registro de dispositivos para almacenar un identificador de dispositivo único, credenciales de seguridad y otros metadatos necesarios para gestionar el acceso a los servicios de AWS (Figura 1). En Azur, el registro de identidad cumple una función similar.

El diagrama de AWS proporciona a los desarrolladores un conjunto de servicios especializadosFigura 1: Al igual que otros proveedores de nubes, AWS proporciona a los desarrolladores un conjunto de servicios especializados diseñados para mejorar la seguridad y la eficacia de las transacciones entre los dispositivos de IoT y los servicios de nubes empresariales. (Fuente de la imagen: Amazon Web Services)

La IoT de AWS y la IoT de Azure proporcionan cada una un servicio que mantiene la información de estado en un dispositivo virtual asociado a cada dispositivo físico de IoT. En la IoT de AWS, las sombras de los dispositivos proporcionan esta capacidad para la IoT de AWS, mientras que los dispositivos gemelos proporcionan capacidades similares para la IoT de Azure.

Esta noción de un portal de seguridad se extiende a los servicios de IoT como AWS Greengrass o Azure IoT Edge. Estas ofertas de servicios de borde llevan algunos servicios y capacidades de la nube a la red local, donde los sistemas de borde se colocan físicamente cerca de los dispositivos y sistemas de IoT en implementaciones a gran escala. Los desarrolladores pueden utilizar un servicio como Azure IoT Edge para implementar la lógica de negocio de la aplicación o proporcionar otras capacidades funcionales necesarias para reducir la latencia o proporcionar servicios a los operadores locales, como en la automatización industrial (Figura 2).

Diagrama de los proveedores de servicios en la nube ofrecen servicios especializados para apoyar la computación de puntaFigura 2: Para apoyar la computación de borde, los proveedores de servicios de nube ofrecen servicios especializados como Microsoft Azure IoT Edge, que acerca algunos servicios en la nube de IoT de Azure a los dispositivos físicos asociados con la aplicación de IoT. (Fuente de la imagen: Microsoft Azure)

Tratar con los requisitos de conectividad del portal de IoT

Ya sea que se conecten a través de un sistema de borde o directamente con el servicio de IoT del proveedor, los dispositivos de IoT típicamente necesitan satisfacer una serie de requisitos para conectarse a través del portal de IoT del proveedor y utilizar los servicios en la nube del proveedor. Aunque los detalles difieren, los dispositivos de IoT deben proporcionar como mínimo, algún elemento como una clave privada, un certificado X.509 u otro token de seguridad. La clave, el certificado o la ficha proporciona al portal de la IoT un certificado o prueba de la identidad del dispositivo de IoT durante la fase de autenticación de la secuencia de conexión del dispositivo a la nube. Además, los servicios en la nube de IoT suelen requerir una especificación de las políticas utilizadas para definir los derechos de acceso para las interacciones entre los dispositivos de IoT y los servicios en la nube.

Al igual que en el caso de otros requisitos informáticos de las empresas, la información de certificación para la autenticación y la información sobre políticas para la gestión del acceso deben proporcionarse utilizando formatos y procedimientos específicos especificados por los principales servicios en la nube de IoT, como la IoT de AWS y la IoT de Azure. Estos servicios admiten como mínimo la autenticación basada en certificados, pero también apoyan el uso de otras formas de atestación. Por ejemplo, los desarrolladores pueden utilizar métodos de autenticación basados en un token web JSON (JWT) para la IoT de AWS, o un token de firma de acceso compartido (SAS) para la IoT de Azure.

Como se mencionó anteriormente, estos servicios utilizan registros para guardar los metadatos de cada dispositivo IoT. Junto con la seguridad y otra información, estos registros almacenan las políticas de derechos de acceso que deben definirse para conectar un dispositivo de IoT. Aunque se especifican de diferentes maneras para diferentes servicios de nube, estas definiciones de política describen los derechos de acceso para diferentes canales de comunicación y entidades. Por ejemplo, una política sencilla de derechos de acceso a la IoT de AWS utilizaría un formato JSON para indicar que un dispositivo de IoT con un nombre de "cosa" determinado en el registro de dispositivos de IoT de AWS podría conectarse y publicar mensajes sólo en un canal con el mismo nombre de cosa asociado (Lista 1).

Copiar
{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action":["iot:Publish"],
        "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}"]
      },
      {
        "Effect": "Allow",
        "Action": ["iot:Connect"],
        "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"]
      }
    ]
}

Lista 1: Los desarrolladores usan un formato JSON para describir las políticas de derechos de acceso a la IoT de AWS para sus dispositivos de IoT. (Código fuente: AWS)

Kits de desarrollo listos para la nube

Aunque los proveedores de la nube ofrecen especificaciones detalladas de esos formatos y procedimientos, los foros de apoyo de los proveedores suelen estar repletos de preguntas de los desarrolladores que se tropiezan con algún detalle pequeño, pero vital que impide la autenticación y la gestión del acceso. Tal vez incluso peor, desde el punto de vista de la seguridad, el uso indebido no intencionado de la certificación o la definición incompleta de las políticas de acceso pueden dejar los dispositivos, redes y aplicaciones de IoT abiertos a los ataques. La disponibilidad de placas de desarrollo estándar y de los paquetes de software que las acompañan permite a los desarrolladores navegar rápidamente por estos procedimientos de conexión, utilizando ejemplos proporcionados por los proveedores para conectarse rápidamente a las nubes de IoT. Por ejemplo, kit de IoT ESP32-Azure IoT Kit deEspressif Systems o el kit para desarrollador de IoT AZ3166 de Seeed Technology incluyen placas con certificación Azure diseñadas para conectarse fácilmente con la nube de Microsoft.

Microsoft proporciona demostraciones completas paso a paso, incluyendo la autenticación y las credenciales de acceso para los kits de desarrollo compatibles. Con el tablero AZ3166, por ejemplo, los desarrolladores presionan los botones de la placa para iniciar la conexión con su red Wi-Fi local. Una vez conectados, pueden usar el banco de trabajo de dispositivos de IoT Azure que se encuentra dentro del paquete de extensión Azure IoT Tools extension pack para Microsoft Visual Studio Code para desarrollar, depurar e interactuar con el Hub IoT Azure. Utilizando este conjunto de herramientas y sus paquetes de código de muestra, los desarrolladores crean un objeto para el dispositivo de IoT en el Hub de IoT de Azure y utilizan un archivo suministrado para dotar al registro de identidad asociado de las credenciales y otros metadatos necesarios para conectar la placa de IoT al hub de IoT de Azure (Figura 3).

Imagen del código de muestra y las credenciales proporcionadas en el Microsoft Azure IoT Device WorkbenchFigura 3: El código de muestra y las credenciales proporcionadas en el Microsoft Azure IoT Device Workbench ayudan a los desarrolladores a completar el aprovisionamiento para conectar el kit de desarrollo de IoT de AZ3166 de de Seeed Technology al Hub de IoT de Azure. (Fuente de la imagen: Microsoft Azure)

El Azure IoT Device Workbench proporciona software de soporte adicional y metadatos que permiten a los desarrolladores cargar rápidamente la placa AZ3166 con el código de muestra y comenzar a transmitir las mediciones del sensor de temperatura y humedad de la placa al Hub de IoT de Azure.

Los pasos necesarios para crear una representación del dispositivo físico de IoT en la nube de IoT y para el aprovisionamiento del registro asociado son necesarios sólo para conectar los dispositivos con la nube de IoT. Sin embargo, para aprovechar los servicios en la nube, el Hub de IoT de Azure necesita una política de derechos de acceso. Para monitorear los mensajes de un dispositivo a la nube provenientes del sensor AZ3166, los desarrolladores pueden simplemente utilizar la pantalla de políticas de acceso compartido Azure para seleccionar una política preconstruida diseñada para habilitar rápidamente los derechos de acceso requeridos (Figura 4).

Imagen de los servicios de nubes de Azure con los datos de los sensores del kit para desarrolladores de IoT AZ3166 de  Seeed Technology (haga clic para ampliar)Figura 4: Los desarrolladores pueden usar políticas preconstruidas para autorizar fácilmente el uso de los servicios de la nube de Azure con los datos de los sensores del Kit de desarrollo de IoT AZ3166 de Seeed Technology. (Fuente de la imagen: Microsoft Azure)

Cuando se trabaja con la IoT de AWS, los desarrolladores pueden recurrir a kits de desarrollo como el kit Zero Touch Provisioning AT88CKECC-AWS-XSTK-B de Microchip Technology y el software que lo acompaña para evaluar rápidamente la conectividad de las nubes. Esta versión actualizada de un kit anterior de Microchip Zero Touch Provisioning viene precargada con credenciales de autenticación. Utilizando los scripts adicionales proporcionados con el kit, los desarrolladores pueden conectar rápidamente la placa a la IoT de AWS sin tener que lidiar con claves privadas y certificados (ver "Take the Zero-Touch Approach to Securely Lock Down an IoT Device").

Otros kits de desarrollo, entre ellos el kit RTK5RX65N0S01000BE RX65N de Renesas y el kit AWA IoT KITXMC48IOTAWSWIFITOBO1 de Infineon Technologies, amplían el apoyo a la conectividad de IoT de AWS con el apoyo al rápido desarrollo de aplicaciones basadas en Amazon FreeRTOS. AWS proporciona instrucciones detalladas para registrar las placas, crear credenciales de autenticación y cargar las políticas JSON necesarias para conectarse a la IoT de AWS y utilizar los servicios de AWS.

Simplificación del aprovisionamiento para implementaciones de IoT a gran escala

Los kits de desarrollo como los descritos anteriormente sirven como plataformas eficaces tanto para la creación rápida de prototipos de aplicaciones de IoT como para explorar los requisitos de conexión del servicio de IoT en la nube. Sin embargo, en la práctica, los desarrolladores normalmente tendrán que recurrir a enfoques más avanzados diseñados para simplificar el suministro de dispositivos de IoT en aplicaciones del mundo real. Tanto la IoT de Azure como la IoT de AWS admiten una amplia variedad de métodos que permiten un aprovisionamiento más automatizado de dispositivos individuales o un gran número de dispositivos de IoT en una implementación a gran escala.

Con la IoT de AWS, por ejemplo, los desarrolladores pueden utilizar un método de arranque para el suministro de certificados. En este caso, el producto inteligente se envía con un certificado de arranque asociado a los derechos de acceso mínimos necesarios para solicitar y acceder a un nuevo certificado (Figura 5).

El diagrama de la IoT de AWS soporta un método para el aprovisionamiento de certificados de arranque en los dispositivos de IoT.Figura 5: IoT de AWS soporta un método de aprovisionamiento de certificados de Bootstrap en dispositivos de IoT. (Fuente de la imagen: DigiKey, de Amazon Web Services)

Utilizando el certificado de Bootstrap, el dispositivo se conecta a la nube ("1" en la Figura 5), solicita ("2") un nuevo certificado, recibe ("3") el URL del certificado generado por una función Lambda sin servidor de AWS, y recupera ("4") ese certificado de un cubo de AWS Simple Storage Services (S3). Usando ese nuevo certificado, el dispositivo vuelve a conectarse a la IoT de AWS ("5") para proceder con las operaciones normales.

AWS ofrece otros servicios en la nube que apoyan el aprovisionamiento dinámico de tokens de autenticación utilizando recursos de ejecución como las funciones Lambda de AWS. Por ejemplo, una aplicación en el sector de la automoción podría basarse en una serie de conexiones efímeras en las que el uso de un token es a la vez más práctico y más seguro. Aquí, después de que un módulo AWS para la autenticación y autorización de IoT aprueba la solicitud de un token, el AWS Security Token Service (STS) genera un token para ser entregado a los sistemas del vehículo. Utilizando ese token, esos sistemas pueden acceder a los servicios de AWS sujetos a la validación del servicio de gestión de la identidad y el acceso de AWS (IAM) (Figura 6).

El diagrama de los principales proveedores de servicios en la nube apoya otras formas de certificación.Figura 6: Los principales proveedores de servicios en la nube apoyan otras formas de certificación para la autenticación, como este proceso para la generación dinámica de tokens de seguridad por el AWS Security Token Service (STS). (Fuente de la imagen: Amazon Web Services)

AWS proporciona una capacidad similar para la asignación dinámica de los derechos de acceso. Aquí, otras funciones Lambda de AWS asignarían un conjunto de políticas asociadas a un token válido (Figura 7).

Diagrama de los desarrolladores pueden utilizar los servicios de la nube para implementar la asignación dinámica de los derechos de accesoFigura 7: Los desarrolladores pueden utilizar los servicios de la nube para implementar la asignación dinámica de los derechos de acceso, lo cual es particularmente útil para aplicaciones con conexiones efímeras u operaciones de corta duración. (Fuente de la imagen: Amazon Web Services)

Otros servicios en la nube para IoT permiten a los desarrolladores ocuparse más eficientemente del aprovisionamiento en implementaciones a gran escala. Por ejemplo, la IoT de AWS proporciona capacidades de aprovisionamiento de la flota, incluido el apoyo para una implementación a mayor escala del tipo de método de bootstrap descrito anteriormente. El servicio de aprovisionamiento de dispositivos de IoT de Azure proporciona una capacidad de inscripción en grupo que permite el aprovisionamiento de un gran número de dispositivos de IoT que comparten el mismo certificado X.509 o token SAS.

Responsabilidad compartida por la seguridad

Los proveedores de nubes de IoT proporcionan una serie de métodos eficaces para mejorar la seguridad de extremo a extremo de las aplicaciones de IoT. No obstante, los desarrolladores de IoT no pueden esperar que esos métodos puedan soportar todo el peso de los requisitos de seguridad para su aplicación particular de IoT. De hecho, los proveedores de servicios en la nube esbozan cuidadosamente su función y responsabilidades específicas en la seguridad de las aplicaciones de IoT con modelos específicos como el modelo de responsabilidad compartida de AWS (figura 8).

El diagrama de AWS describe las responsabilidades que comparte con los usuarios de la nubeFigura 8: Al igual que otros proveedores líderes de nubes, AWS describe las responsabilidades que comparte con los usuarios de la nube para proteger la infraestructura de la nube por un lado y las aplicaciones de los clientes por el otro. (Fuente de la imagen: Amazon Web Services)

Tanto AWS como Microsoft Azure proporcionan documentos de responsabilidades compartidas que describen y explican el papel del proveedor y el del cliente en la seguridad de los recursos, datos y aplicaciones. En su documentación, Microsoft también ofrece una visión general de algunas de las relaciones entre la seguridad compartida y los requisitos de cumplimiento. En última instancia, los proveedores de la nube conservan la responsabilidad de la seguridad de la nube, mientras que los clientes siguen siendo responsables de las aplicaciones, los datos y los recursos utilizados en la nube.

Conclusión:

Las aplicaciones de IoT dependen de capas de seguridad construidas a partir de mecanismos basados en hardware para la criptografía y el almacenamiento seguro de claves. Como con cualquier producto conectado, las amenazas a la seguridad pueden llegar en todo tipo de interacciones cuando los dispositivos de IoT se conectan con los servicios de la nube. Para protegerse a sí mismos y a sus clientes, los proveedores de nubes de IoT dictan requisitos específicos para la autenticación y la gestión de los derechos de acceso. Aunque los proveedores ofrecen documentación detallada sobre esos requisitos y las especificaciones conexas, los desarrolladores pueden comprobar que sus esfuerzos por implantar una conectividad segura a veces dejan los recursos expuestos o, por el contrario, inaccesibles. Mediante el uso de tarjetas de desarrollo y software asociado, los desarrolladores pueden conectarse rápidamente a los servicios en la nube y crear rápidamente prototipos de aplicaciones de IoT con seguridad de extremo a extremo.

DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Acerca de este autor

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Acerca de este editor

Editores de DigiKey de América del Norte