Introducción
LoRaWAN ™ es un protocolo de red de área amplia de baja potencia (LPWAN) que admite comunicaciones bidireccionales seguras, móviles y de bajo costo para Internet de las cosas (IoT), máquina a máquina (M2M), ciudad inteligente e industrial.
El protocolo LoRaWAN ™ está optimizado para un bajo consumo de energía y está diseñado para admitir grandes redes con millones de dispositivos.
Las características innovadoras de LoRaWAN ™ incluyen soporte para operaciones redundantes, de geolocalización, de bajo costo y de bajo consumo.
Los dispositivos pueden incluso funcionar con tecnologías de captación de energía que permiten la movilidad y la facilidad de uso de IoT. Esto es muy importante como hemos mencionado en el artículo anterior para utilizar soluciones menos contaminantes al momento de no utilizar baterías y pilas recargables.
Como la seguridad es una necesidad fundamental en todas las aplicaciones mencionadas, se ha diseñado en la especificación LoRaWAN ™ desde el principio. Sin embargo, el tema de la seguridad abarca múltiples propiedades y, en particular, los mecanismos criptográficos utilizados para implementar la seguridad en LoRaWAN merecen una explicación cuidadosa. Este documento técnico tiene como objetivo presentar la seguridad de la especificación actual de LoRaWAN ™. Primero, presentaremos las propiedades de seguridad incorporadas en las especificaciones de LoRaWAN ™, luego los detalles de su implementación y finalmente algunas explicaciones sobre el diseño de seguridad de LoRaWAN ™. La seguridad de LoRaWAN está diseñada para ajustarse a los criterios generales de diseño de LoRaWAN ™: bajo consumo de energía, baja complejidad de implementación, bajo costo y alta escalabilidad.
A medida que los dispositivos se despliegan en el campo, por períodos largos de tiempo (años), la seguridad debe ser a prueba de cambios futuros. El diseño de seguridad de LoRaWAN se ajusta a los principios del estado del arte: uso de algoritmos estándar, bien examinados, y seguridad de punto a punto. Más adelante, describiremos las propiedades principales: autenticación mutua, protección de integridad y confidencialidad. Se establece autenticación mutua entre un dispositivo final LoRaWAN y la red LoRaWAN como parte del procedimiento de conexión a la red. Esto garantiza que solo los dispositivos auténticos y autorizados se unirán a redes auténticas y genuinas. La MAC LoRaWAN y los mensajes de la aplicación son autenticados desde su origen, su integridad es protegida, respuesta protegida y encriptada. Esta protección, combinada con la autenticación mutua, garantiza que el tráfico de la red no sea alterado, y que provenga de un dispositivo legítimo, y que los datos no sean comprensibles para los intrusos y sea capturado y reproducido fraudulentamente. La seguridad de LoRaWAN implementa además el encriptado de punto a punto para la aplicación en comunicaciones con aplicaciones en servidores o entre dispositivos.
LoRaWAN ™es una de las pocas redes de IoT que implementa el encriptado de extremo a extremo. En algunas redes celulares tradicionales, el tráfico se encripta a través de la interfaz aérea, pero se transporta como texto simple en la red central del operador. En consecuencia, los usuarios finales se sienten agobiados al seleccionar, implementar y administrar una capa de seguridad adicional (generalmente implementada por algún tipo de VPN o seguridad de encriptación de la capa de aplicación, como TLS).Este enfoque no es adecuado para las LPWAN donde las capas de seguridad superiores agregan un considerable consumo de energía adicional, complejidad y costo.
Implementación de la seguridad
Los mecanismos de seguridad mencionados anteriormente se basan en los algoritmos criptográficos AES los cuales son bien probados y estandarizados. Estos algoritmos han sido analizados por la comunidad criptográfica durante muchos años, están aprobados por el NIST y son tomados como la mejor práctica de seguridad para redes y nodos restringidos. La seguridad LoRaWAN utiliza la primitiva criptografía AES combinada con varios modos de operación: CMAC para protección de integridad y CTR para encriptación. Cada dispositivo LoRaWAN se personaliza con una clave AES de 128 bits (llamada AppKey) y un identificador único global (DevEUI basado en EUI-64), ambos se utilizan durante el proceso de autenticación del dispositivo. La asignación de identificadores EUI-64 requiere que el asignador tenga un Identificador Único de la Organización (OUI) de la Autoridad de Registro IEEE. De manera similar, las redes LoRaWAN se identifican mediante un identificador único global de 24 bits asignado por LoRa Alliance ™.
Los datos de la aplicación LoRaWAN ™ siempre están cifradas de punto a punto entre el dispositivo final y el servidor de aplicaciones. La protección de integridad se proporciona en una naturaleza de salto por salto: un salto por el aire a través de la protección de integridad proporcionada por el protocolo LoRaWAN y el otro salto entre la red y el servidor de aplicaciones mediante el uso de soluciones de transporte seguro como HTTPS y VPN.
Autentificación mutua
La Activación por aire (a.k.a. Procedimiento de conexión) demuestra que tanto el dispositivo final como la red tienen el conocimiento de la AppKey. Esta prueba se realiza mediante el cálculo de un AES-MAC4 (usando la AppKey) en la solicitud de conexión del dispositivo y por el último receptor. Luego se derivan dos claves de sesión MUTUAL AUTHENTICATION, una para proporcionar protección de integridad y encriptación de los comandos MAC de LoRaWAN y la carga de la aplicación (la NwkSKey), y otra para la encriptación de punto a punto de la carga de la aplicación (la AppSKey). La NwkSKey se distribuye a la red LoRaWAN para probar / verificar la autenticidad de los paquetes y su integridad. La AppSKey se distribuye al servidor de aplicaciones para cifrar / descifrar la carga útil de la aplicación.AppKey y AppSKey se pueden ocultar del operador de red para que no pueda descifrar las cargas útiles de la aplicación.
Integridad de datos y protección
Todo el tráfico de LoRaWAN está protegido usando las dos claves de sesión. Cada carga útil (payload) está encriptada por AES-CTR y lleva un contador de cuadros (para evitar la reproducción del paquete) y un Código de integridad del mensaje (MIC) calculado con AES-CMAC (para evitar la manipulación indebida de paquetes). Vea al lado de la estructura de un paquete LoRaWAN y su protección:
Seguridad física de un dispositivo LoRaWAN
AppKey y las claves de las sesión se almacenan de forma persistente en un dispositivo LoRa Alliance ™ y su protección depende de la seguridad física del dispositivo. Si el dispositivo está sujeto a amenazas físicas, las claves se pueden proteger en un almacenamiento a prueba de manipulaciones (a.k.a. Secure Element), donde serán extremadamente difíciles de extraer.
Criptografía
Algunas fuentes afirman que la criptografía LoRaWAN ™ solo usa XOR y no AES. De hecho, como ya se mencionó, AES se usa en el modo CTR estandarizado que utiliza las operaciones criptográficas XOR (como muchos otros modos como CBC5). Esto fortalece el algoritmo AES mediante el uso de una clave AES única para cada cifrado de bloque.
Distribución de la llave (key) de sesión
Como AppSKey y NwkSKey se generan a partir de la misma AppKey, se podría argumentar que si el operador LoRaWAN tiene la AppKey, puede derivar la AppSKey y, por lo tanto, descifrar el tráfico. Para evitar esta situación, el servidor que gestiona el almacenamiento de AppKey, la autenticación mutua y la obtención de claves pueden ser ejecutadas por una entidad fuera del control del operador. Para dar a los operadores flexibilidad adicional, una versión futura de la especificación LoRaWAN (1.1) definira dos claves maestras independientes: una para la red (NwkKey) y otra para las aplicaciones (AppKey).
Seguridad de interfaces del lado servidor
Las interfaces de backend implican el control y señalización de datos entre los servidores de red y de las aplicaciones. Las tecnologías HTTPS y VPN se utilizan para asegurar la comunicación entre estos elementos críticos de la infraestructura, de manera muy similar a la que se realiza en cualquier otro sistema de telecomunicaciones.
Fuentes:
Esta nota fue publicada gracias a la autorización de LoRa Alliance™.
«LoRaWAN Security Whitepaper» de LoRa Alliance
Buenas,
¿Qué significa AES1, CMAC2, CTR3, AES-MAC4, etc? Parece un copy-paste de una referencia con documentación.
Saludos
Hola,
Se encuentra explicado bajo el títitulo: “Implementación de la seguridad”.
Saludos.
Buenas,
gracias por responder,
me refiero a los números al lado de cada concepto, por ejemplo, “AES1” creo que no existe, debería ser “AES”. Al igual sucede con el modo de operación “CMAC” (y no CMAC2), “CTR” y no “CTR3”, “AES-MAC” y no”AES-MAC4″, “CBC” y no “CBC5”.
El documento parece una traducción de “LoRaWAN Security Whitepaper” en el que, si te fijas, en ese apartado “Implementación de seguridad”, AES tiene un superíndice “1” porque esta referenciado al pie de página con una breve explicación, lo mismo sucede con el resto de términos.
Saludos y gracias de nuevo por su tiempo.
Reportaremos el problema que parece ser de edición.
Muy buen artículo, gracias!!