Criptografía Ligera para un mundo doblegado bajo el peso del IoT

Gonzalo Álvarez Marañón    16 marzo, 2020
Criptografía Ligera para un mundo doblegado bajo el peso del IoT

No te creas que todos los dispositivos IoT son tan potentes como los asistentes inteligentes controlados por voz del salón o como las pulseras de actividad. De hecho, la inmensa mayoría de dispositivos IoT desplegados por el mundo apenas poseen memoria, ni CPU, ni energía.

Y tampoco entienden de seguridad: carecen de los recursos necesarios para conectarse a Internet cifrando el tráfico, para gestionar certificados digitales o para calcular hashes. La preocupación surge cuando estos “dispositivos constreñidos” gestionan información potencialmente sensible. ¿Cómo protegerlos si la criptografía convencional les está vetada? Usando Criptografía Ligera (Lightweight Cryptography).

La criptografía tradicional no sirve de mucho en el mundo IoT

Los “dispositivos constreñidos” son aquellos que ven seriamente limitados su conectividad, memoria, CPU, latencia, throughput y suministro de energía. Entre los más comunes te sonarán las etiquetas RFID, las redes de sensores inalámbricos, los controladores industriales y los dispositivos embebidos. Se trata de dispositivos sencillos, baratos y poco glamurosos.

Utilizan microcontroladores de 4, 8 o 16 bits. Sus memorias RAM rondan los 64 bytes o incluso tan solo los 16 bytes. Sus conjuntos de instrucciones son también muy reducidos. Algunos, como las etiquetas RFID, no tienen ni batería y se alimentan de la energía electromagnética transmitida por el propio lector al acercarlo. O bien sus baterías no pueden reemplazarse con facilidad, como en un marcapasos.

Nombre RAM ROM
Clase 0 (C0) << 10 KB << 100 KB
Clase 1 (C1) ≈ 10 KB ≈ 100 KB
Clase 2 (C2) ≈ 50 KB ≈ 250 KB

Tabla 1. Clases de dispositivos constreñidos

En estas condiciones, como puedes imaginar, tratar de implantar un AES o un RSA sería imposible. Hay que entender que los estándares y protocolos criptográficos convencionales fueron diseñados para servidores y equipos de escritorio, incluso para tablets y smartphones, pero no aplican en este mundo caracterizado por la escasez de energía, de CPU y de memoria.

Tabla 2. Tipos de criptografía en función del tipo de dispositivo
Tabla 2. Tipos de criptografía en función del tipo de dispositivo

Si el dispositivo constreñido no almacena ni transmite información, como por ejemplo un termómetro que mide la temperatura corporal y la muestra en un display, entonces no existe verdadera necesidad de criptografía. Pero si el termómetro comunica estos datos a otro dispositivo, como un smartphone, la película cambia, al igual que con otros dispositivos IoT en medicina, como glucómetros, bombas de insulina, cápsulas endoscópicas, marcapasos, etc.

Además de en medicina, en otros ámbitos de IoT se da la misma situación: sensores de vehículos, carreteras inteligentes, microcontroladores en procesos industriales (IIoT), tecnologías vestibles, ciudades inteligentes, agricultura de precisión y un largo etcétera. No todos ellos necesitan protección criptográfica, ni mucho menos, pero en algunas aplicaciones se requerirá proteger los datos en reposo o en tránsito, y aquí es donde aparece en escena la Criptografía Ligera.

No se puede tener todo: el despiadado compromiso de seguridad en IoT

La criptografía en IoT exige un compromiso entre seguridad, rendimiento y coste. El rendimiento se refiere al consumo de energía, latencia y throughput; el coste, a memoria y CPU. Cuanto más seguro sea un algoritmo o protocolo, mayor impacto negativo ejercerá sobre el coste y sobre el rendimiento. Del mismo modo, si se quiere mejorar el rendimiento o bajar el coste, se impactará negativamente en la seguridad.

Como todo compromiso, no tiene respuesta sencilla. Puedes llegar a alcanzar dos objetivos simultáneamente, pero no los tres: si quieres que el dispositivo sea barato y rápido, no resultará seguro; si lo quieres seguro y barato, no funcionará rápido; y si lo quieres seguro y rápido, no te saldrá barato. Con dispositivos IoT constreñidos, los criptógrafos tienen que apañárselas para conseguir la máxima seguridad posible partiendo de severas restricciones de rendimiento y de coste.

Figura 1. Compromiso entre seguridad, rendimiento y coste en IoT
Figura 1. Compromiso entre seguridad, rendimiento y coste en IoT

Criptografía Ligera no es sinónimo de criptografía débil, sino de eficiencia y robustez

En el último decenio los criptógrafos han propuesto diversas primitivas criptográficas ligeras que ofrecen un compromiso razonable entre seguridad, rendimiento y coste con respecto a la criptografía convencional:

  • Cifradores en bloque: son algoritmos utilizados para cifrar los datos en un intento de reemplazar a AES, aunque obteniendo niveles de seguridad comparables. Existen docenas de propuestas, que trabajan con tamaños de bloque más reducidos, por ejemplo, 64 bits en lugar de 128; claves más pequeñas, por ejemplo, 80 bits en lugar de 128 o 256; menor número de vueltas y diseño de vueltas más sencillo; programación de claves más simple e implementaciones mínimas, que no soportan complejos modos de operación. Destacan los algoritmos PRESENT, CLEFIA y SIMON.
  • Funciones hash: son algoritmos utilizados para crear resúmenes criptográficamente seguros de los datos. Igualmente, se han propuesto numerosas funciones ligeras de hash, como PHOTON y SPONGENT, caracterizadas por tamaños más reducidos tanto de salida como de estado interno. Eso sí, con el riesgo de sufrir colisiones y tamaños de mensaje también menores, por ejemplo, de hasta 256 bits.
  • Códigos de autenticación de mensajes (MAC): generan un código a partir de un mensaje y de una clave secreta que se utiliza para verificar la autenticidad y la integridad del mensaje. Se recomienda que el tamaño del código sea de al menos 64 bits para las aplicaciones típicas. También se han realizado algunas propuestas para estas funciones, como Chaskey, TuLP o LightMAC.
  • Cifradores en flujo: se cuentan entre las primitivas más prometedoras para entornos constreñidos, ya que desde siempre los cifradores en flujo se han orientado a la eficiencia: elevados niveles de seguridad con alto rendimiento y bajo coste. Existen numerosas propuestas, entre las que destacan Grain, Trivium y Mickey.

¿Y qué pasa con la criptografía de clave pública para intercambiar claves? Pues lo cierto es que todavía no ha surgido ninguna propuesta apropiada para entornos altamente constreñidos, como los dispositivos de Clase 0. Aparte de variantes algo más ligeras de ECC, se barajan opciones totalmente diferentes, como fabricar los dispositivos constreñidos con claves precargadas que solo conocerán los dispositivos pesados con los que interactúen.

¿Cómo conciliar todo esto?

Por supuesto, los dispositivos más potentes tendrán que implantar estos algoritmos de Criptografía Ligera, para poder comunicarse de forma segura con los constreñidos. Puede utilizarse una pasarela intermedia o un agregador, que se comunica con dispositivos constreñidos usando sus algoritmos y protocolos ligeros, y que luego reenvía a los dispositivos más pesados, como servidores en la nube, la información procedente del dispositivo debidamente protegida usando la criptografía convencional.

Como puedes imaginar, ante el crecimiento explosivo de dispositivos IoT e IIoT, el interés por esta criptografía no ha parado de aumentar en los últimos años. De hecho, tanto el Instituto de Estándares y Tecnología Americano (NIST) como la Organización Internacional de Estándares (ISO/CEI) están trabajando intensamente en la búsqueda, prueba y estandarización de métodos que puedan utilizarse con garantías para la Criptografía Ligera.

Todo sea por un futuro con dispositivos IoT interconectados, ¡pero con seguridad!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *