Seguridad criptográfica en IoT (II)

jueves, 5 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.

Hardware criptográfico para el IoT

Es posible encontrar diferentes dispositivos criptográficos análogos al SIM y DNIe (que analizamos en la entrada anterior), tanto de clave simétrica como asimétrica y en diferentes formatos discretos. Destaca de forma especial la familia de hardware criptográfico de ATMEL, tanto por su facilidad de uso y documentación, como la accesibilidad a kits de desarrollo y librerías de código abierto.




Tomaron especial relevancia cuando Sparkfun reunió varios de ellos en una tarjeta como accesorio de la placa BeagleBone, intensamente utilizada por Josh Datko en su libro de 2014 BeagleBone for Secret Agents. Ese año realizó una demostración en la prestigiosa conferencia DEF CON 22.

Poco después comenzaron a aparecer gadgets similares, especialmente para placas como la Raspberry PI, por su accesibilidad al bus I2C y SPI por el que suelen comunicarse estos dispositivos. Y finalmente, volvió a ser Sparkfun quien reuniera los mismos elementos en una Crypto Shield para Arduino, que se puede utilizar en un UNO convencional.

Junto a un reloj de tiempo real (RTC), incorpora cuatro elementos criptográficos:
  • Un módulo TPM Atmel AT97SC3204T, para el cifrado y firma asimétrica RSA.
  • Un autenticador Atmel ATAES132, para la autenticación y cifrado simétrico AES.
  • Un autenticador Atmel ATSHA204, para la autenticación MAC/HMAC SHA-256.
  • Un autenticador Atmel ATECC108, para la autenticación y cifrado mediante algoritmos de Curva Elíptica ECDSA.

La presencia de un dispositivo criptográfico hardware basado en algoritmos de curvas hiperbólicas, concretamente de Curva Elíptica ECDSA, parece marcar el camino a seguir.

Criptografía de Curvas Elípticas

Las curvas hiperbólicas se conocen y estudian desde hace más de un siglo. Pese a que su aplicación en criptografía tuvo detractores en sus inicios, hoy en día es uno de los campos más prometedores dentro de las modernas técnicas de cifrado asimétrico.

Si bien su complejidad teórica es relativamente elevada, presentan ciertas ventajas respecto a algoritmos tradicionales basados en la factorización, como RSA. Su implementación resulta muy eficiente por la propia aritmética de las curvas elípticas, y sobre todo, logra alcanzar niveles de seguridad óptimos con tamaños de clave muy reducidos. Esta propiedad hace de la criptografía con curvas elípticas ("ECC") la candidata ideal para ser implementada en dispositivos con escasa capacidad de cálculo, como los que nos encontramos en el ecosistema del IoT.

A día de hoy, los algoritmos de curva elíptica están ampliamente recogidos en las principales regulaciones y certificaciones de ámbito internacional.



De hecho, el software criptográfico más popular, OpenSSL soporta los algoritmos de curva elíptica ECDH y ECDSA para el intercambio de claves, cifrado y firma digital, desde su versión v0.9.8 mediante una amplia variedad de curvas. Pueden consultarse con el comando:

openssl ecparam -list_curves

Siendo ya los algoritmos ECC plenamente compatibles con la mayoría de servidores y navegadores del mundo web, reputadas entidades de certificación como DigiCert, Entrust, GlobalSign y especialmente Symantec, disponen de certificados raíz firmados con algoritmos ECC, así como de plenas capacidades para su emisión y distribución.

Aunque el primer uso a gran escala de la criptografía de curva elíptica lo encontramos en la cripto-divisa Bitcoin, que desde su aparición en 2009 utiliza ECDSA para la firma de transacciones.

Dispositivos IoT

La necesidad de disponer de capacidades criptográficas en mundo del IoT, está llevando a los fabricantes ha incluir hardware específico en dispositivos de propósito general destinados al ecosistema de makers.


Uno de los primeros en hacerlo fue la italiana Axel Electtronica, que en su Smarteverything consigue reunir sobre el esquema de un Arduino M0+ un gran número de sensores, destacando un receptor GPS y un módulo de red inalámbrico SIGFOX (868 Mhz), junto a un Crypto-Authenticator Atmel SHA204a.

En esta misma línea, la matriz oficial de Arduino ha anunciado un nuevo modelo especialmente pensado para el IoT conocido como MKR1000, que entre otras muchas características como un módulo de red WIFI 802.11 b/g/n, contará con un Crypto-Authenticator de Curva Elíptica Atmel ECC508a.

Aunque las fechas iniciales de comercialización apuntaban hacia febrero de 2016, todavía no hay ningún anuncio oficial al respecto, más allá del reto lanzado junto a Microsoft.

A la tendencia natural de facilitar mecanismos de conexión inalámbrica, se le suma ahora, la de incluir elementos de autenticación criptográfica. Todavía pasará algún tiempo hasta que esta práctica se extienda de forma generalizada, hasta que se convierta en un requisito imprescindible. Mientras esto ocurre, será habitual conectarlos de forma discreta, como módulos independientes.

Esto es posible agracias a los accesibles estándares de comunicación que utilizan, generalmente un bus I2C o SPI, y la abundante documentación que publican los fabricantes. Prácticamente cualquier sistema o plataforma que disponga de un bus I2C puede incorporar hardware criptográfico muy fácilmente; por ejemplo, todas las basadas en el entorno Arduino mostradas en la siguiente tabla:



En la siguiente entrega ahondaremos en otros aspectos interesantes de la criptografía y el hardware para IoT.

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)


Jorge Rivera
jorge.rivera@11paths.com

No hay comentarios:

Publicar un comentario