Seguridad criptográfica en IoT (IV)

lunes, 30 de mayo de 2016

La proliferación de dispositivos y plataformas de servicios IoT está siendo mucho más rápida que la adopción de medidas de seguridad en su ámbito. Ante la apremiante necesidad de mecanismos que garanticen la autenticación, integridad y confidencialidad, tanto de las comunicaciones como de los propios dispositivos, se tiende a trasladar las soluciones criptográficas contrastadas en la IT tradicional, como son los certificados digitales de clave pública sobre protocolos SSL/TLS. Seguimos avanzando en el estado del arte de las soluciones criptográficas para IoT.

Librerías Open Source 

Junto a una detallada documentación, Atmel facilita librerías de código abierto para el manejo de los dispositivos criptográficos desde su línea de microcontroladores y SoCs.



Partiendo de estas librerías comenzaron a aparecer adaptaciones a diferentes entornos, destacando una vez más el trabajo de Josh Datko, que desde Cryptotronix facilita numerosos ejemplos tanto para Linux como para Arduino.

Sobresale especialmente el driver para Linux del Atmel SHA204A, llamado Hashlet, que ha servido como punto de partida para otros muchos desarrollos.

Para la plataforma de Arduino existen diferentes adaptaciones, cada una de ellas con sus pros y contras, por lo que habrá que seleccionar aquella que mejor se adapte a cada necesidad particular.



Atmel SHA204A 

El Atmel SHA204A es uno de los dispositivos criptográficos más sencillos y fáciles de utilizar, aunque dispone de una gran variedad de funciones de relativa complejidad.

Su funcionamiento se basa en el computo de resúmenes SHA-256, utilizados para generar MAC/HMAC (Message Authentication Code) a partir de claves almacenadas internamente. Dispone de 16 slots para almacenar claves de 256 bits (32 bytes) de longitud, los cuales pueden disponer de diferentes configuraciones de acceso y uso, definidas durante la personalización del dispositivo. Junto a una zona de configuración de 88 bytes y un zona OTP (One Time Programable) de 64 bytes de longitud.

Posee un generador de números aleatorios, con el que implementa operaciones de desafío-respuesta sin exposición de claves (MAC, CheckMac, GenDig). Soportando mecanismos de rotación de claves "Key Rolling" (DeriveKey).Se identifica unívocamente mediante un número de serie (SN) de 72 bits definido de fábrica no modificable.

Cuenta con abundante documentación oficial disponible en internet, junto con un gran número de ejemplos desarrollados por la comunidad Open Source. Pese a que implementa 14 comandos, con tan solo dos de ellos se puede desarrollar un uso completamente funcional, como veremos a continuación.



Personalización 

Antes de poder utilizar cualquier dispositivo criptográfico es necesario establecer sus claves únicas, las opciones de configuración, y bloquear las zonas de configuración y OTP. Este proceso de conoce como "personalización", siendo irreversible; una vez realizado no existe posibilidad de vuelta atrás, los parámetros establecidos permanecerán inmutables.

La personalización del ATSHA204A se puede realizar muy fácilmente desde Linux utilizando el “hashlet” de Cryptotronix, tal y como se describe en su documentación. Una vez ejecutado el comando de personalización, las claves únicas serán definidas y configuradas de la siguiente manera:



Si se dispone de un kit de desarrollo de oficial de Atmel, es posible realizar el proceso de personalización desde las herramientas que incorpora, pero en cualquier caso, se hace imprescindible seguir las indicaciones del fabricante.



En la próxima entrega, veremos cómo funciona técnicamente el cálculo del HMAC en
ATSHA204A.

No hay comentarios:

Publicar un comentario