Segunda parte del artículo técnico escrito por Dinyar Dastoor, Vicepresidente de Gestión de Producto para sistemas operativos de la compañía Wind River sobre la forma de empezar los diseños asegurando los dispositivos en el IoT, y en el que habla de la forma de diseñar con una seguridad suficiente.
El diseño de seguridad en dispositivos para aplicaciones IoT plantea diferentes desafíos, desde el software corporativo a las redes. Los dispositivos embebidos generalmente tienen un pequeño tamaño y los recursos informáticos están limitados. Una “demasiada” seguridad puede dificultar el rendimiento del propio equipo o del sistema e incrementar el coste total de desarrollo. En cambio, una “escasa” seguridad puede dejar puntos críticos desprotegidos. El truco está en encontrar la “suficiente” seguridad para mitigar una brecha y el reto para los desarrolladores consiste en descubrir cuánto es lo justo (ver Figura 1).

La respuesta depende de tres criterios esenciales:
- El entorno en el que el dispositivo se desplegará: No es lo mismo en un centro comercial, a la vista de miles de personas y con riesgo de sabotaje, que detrás de unas puertas cerradas con llave en una instalación segura. Estos escenarios opuestos tienen diferentes tipos de consideraciones.
- Cómo se conectará y comunicará el dispositivo: Aquí habría que preguntarse lo siguiente: de qué forma se une el equipo a una red, ¿comunicará de manera inalámbrica (over the air) a través de un protocolo como ZigBee o Wi-Fi?, qué puede necesitar en lo relativo a la encriptación, ¿cuenta con el respaldo de un cortafuegos (firewall)?, ¿se conecta a una red pública (Internet) o a una red privada (Intranet)? o dónde sería menos vulnerable a la interferencia.
- El tipo de datos que almacena el dispositivo: las preguntas incluyen si el equipo recopila datos sensibles, como información financiera o sanitaria, o captura datos menos sensibles como condiciones ambientales. Si fuera el segundo caso se requeriría un menor nivel de seguridad que en el primero.
Las respuestas a estas cuestiones ayudarán a determinar las funciones que deben integrarse en el sistema operativo del dispositivo para garantizar el nivel de seguridad apropiado. Para aumentar la flexibilidad en esta decisión, resulta útil usar un sistema operativo en tiempo real que no encierre un conjunto de características de seguridad prescritas, pero que sí dote de un menú de funcionalidades entre las que se puedan elegir las requeridas.
Los cuatro pilares para diseñar con una seguridad suficiente

Además de abordar estos tres criterios a la hora de determinar el nivel adecuado, los desarrolladores tienen que pensar en la seguridad de cada fase de la vida del dispositivo (ver Figura 2).
- Diseño: Al principio, es fundamental impedir la introducción de código malicioso durante el proceso de desarrollo. Las medidas de prevención podrían incluir entrega de señal binaria (signed binary delivery), asegurando la autenticidad y la no-alternación de código y dotando de una plataforma de software que ha sido certificada bajo estándares de seguridad industriales como IEC 62443 e IEC 27034.
- Ejecución: En la fase de ejecución, el fin es establecer una “base de confianza – root of trust” para evitar la presencia de binarios desconocidos y así garantizar que se instala el software adecuado en el hardware adecuado y pueden confiar el uno en el otro. Esta “root of trust” podría conllevar el uso de tecnología boot segura y firmas de clave criptográfica para impedir la ejecución de código no deseado.
- Operación: Se pueden tomar múltiples medidas a la hora de prevenir ataques maliciosos en modo operación, incluyendo controles para impedir el acceso no autorizado y asegurando redes mediante el uso de cifrado.
- Apagado: Cuando el dispositivo está en reposo, medidas como almacenamiento encriptado y contenedores de datos securizados deberían estar presentes para evitar acceso de datos onboard.
Siga leyendo en Un enfoque escalable para la seguridad