Seguridad criptográfica en IoT (IV)
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
Normal 0 21 false false false ES JA X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} ATSHA204A.
* Seguridad criptográfica en IoT (I)
* Seguridad criptográfica en IoT (II)
* Seguridad criptográfica en IoT (III)
* Seguridad criptográfica en IoT (IV)
* Seguridad criptográfica en IoT (V)
* Seguridad criptográfica en IoT (y VI)