Aplicamos tecnología cuántica a casos de uso reales de Blockchain e IoT

11 de diciembre de 2020

Juntar en un título Tecnología Cuántica, Blockchain e Internet de las Cosas parece una fórmula para generar clicks. Sin embargo, es lo que hemos hecho en Telefónica: demostrar la viabilidad y el valor de interconectar las tres tecnologías. Para ello, participamos en el proyecto Q-Secure Net financiado por EIT Digital. Su objetivo global es proporcionar comunicaciones cuánticas con QKD (Distribución Cuántica de Claves por sus siglas en inglés). Como demostrador de la solución, integramos un caso de uso de QKD en TrustOS, nuestro servicio gestionado de Blockchain. Utilizamos QKD para asegurar el tráfico entre un dispositivo IoT y TrustOS registrando telemetría en Blockchain.

Pero antes de ensuciarnos las manos, repasasemos con nivel cuñado para la cena de Navidad los retos que nos planteamos. Empecemos repasando el concepto de QKD.

Qué es la distribución cuántica de claves (QKD)

Básicamente, QKD utiliza propiedades cuánticas para intercambiar claves criptográficas secretas entre dos puntos. Podemos hacer que la misma secuencia de números aleatorios aparezca simultáneamente en dos lugares separados. Procesando esa secuencia se obtienen una claves completamente aleatorias. Luego esas claves se usan para encriptar los mensajes que se comunican a través de un canal inseguro. Convertimos por tanto ese canal en inviolable. La seguridad se basa en una característica fundamental de la mecánica cuántica: es imposible observar un sistema cuántico sin perturbarlo. Por tanto, ambos extremos de la comunicación tienen la garantía de que nadie ha perturbado la información que reciben. Si alguien lo hiciese, dejaría huella y los destinatarios desestimarían la información "contaminada" hasta reconstruir la información con información "limpia".

De esta manera, QKD permite que dos usuarios intercambien una clave segura incluso en presencia de un observador. El intercambio se produce a través de un canal óptico que conecta ambos puntos. Precisamente la cobertura de fibra óptica es uno de los activos de la red de Telefónica.

Seguridad en dispositivos IOT

Para construir una solución de IoT segura y confiable, debemos empezar garantizando la integridad y la identidad del dispositivo. Es decir, por un lado, hay que verificar que nadie ha manipulado el HW o el SW (integridad). Por otro, debo estar seguro del dispositivo con el que estoy comunicándome (identidad) y autenticarle sin lugar a dudas. Otra característica a tener en cuenta es la confidencialidad de las comunicaciones. Es decir, ningún observador malintencionado que reciba o acceda a las comunicaciones debería descifrar su contenido.

Para cada uno de estos problemas existen soluciones más o menos sofisticadas en la industria. La mayoría de ellas pasan por combinaciones de elementos HW seguros y técnicas criptográficas. Sin embargo, la mayoría de dispositivos presentan restricciones en cuanto a capacidad de procesamiento o coste. Estas restricciones hacen inviables técnica o económicamente a algunas de las soluciones. Especialmente si involucran operaciones criptográficas computacionalmente costosas, como el cifrado o la generación de claves temporales, que requieren mucho tiempo.

El reto de la gestión de claves criptográficas en los dispositivos

Pero incluso con dispositivos suficientemente potentes, existe el problema de crear, distribuir y gestionar las claves secretas en el dispositivo. Los fabricantes deben garantizar que nadie no autorizado acceda a las claves durante toda la cadena de fabricación y distribución. Hay que tener en cuenta que hay que provisionar claves diferentes y únicas en un dispositivo concreto. Una vez almacenadas en el dispositivo tampoco pueden ser accesibles.

El escenario más extendido implica la instalación de certificados en el dispositivo y disponer de una infraestructura de clave pública. La integridad en los dispositivos la garantizan sectores seguros de arranque verificando la validez de la firma del SW. El dispositivo utiliza su certificado para firmar las comunicaciones y demostrar su identidad. Respecto a la confidencialidad e integridad de la comunicación suele garantizarse extremo a extremo utilizando protocolos de red tipo TLS. Estos protocolos dependen a su vez de combinar múltiples algoritmos de claves simétricas y asimétricas.

Por tanto, parece razonable utilizar claves simétricas para garantizar la seguridad de la información a nivel de las aplicaciones. Resultaría más sencillo y eficiente que gestionar infraestructura de claves públicas. Sin embargo, la gestión de claves simétricas es más problemática, ya que deben distribuirse y almacenarse en los dos extremos. Utilizar QKD para obtener esas claves simétricas mejora la integridad de las mismas al eliminar la necesidad de distribuirlas previamente.

Blockchain e Internet de las Cosas

Ya contamos en este blog como se realimentan estas dos tecnologías cuando las utilizamos conjuntamente en un proceso de negocio. Hablábamos de la posibilidad de que los dispositivos registren la información de los sensores que gestionan directamente en blockchain. Lo más cerca de la fuente que genera el dato. Pero para que ese dato sea fiable tenemos que garantizar que no se alteró antes de registrarlo en la blockchain. Es decir, como cualquier otro servidor con el que se conecte el dispositivo, necesitamos un canal de comunicaciones seguro.

La forma clásica de hacerlo es con protocolos TLS, lo que supone que el dispositivo debe tener instalado un certificado. En su lugar, podemos utilizar un canal inseguro y cifrar la información con una clave simétrica suficientemente segura. Pero en cualquiera de los casos ya se repiten los retos asociados a la gestión de las claves secretas.

¿Cómo mejora QKD las comunicaciones desde el dispositivo?

Fundamentalmente, QKD permite eliminar el riesgo de exposición de las claves privadas en el proceso de fabricación. Tampoco hay que informar de las claves al otro extremo con el que vamos a comunicarnos. En este caso los nodos de blockchain. La clave simétrica generada por QKD es completamente aleatoria. Además se genera de forma simultanea en los dos extremos de la comunicación. Los fundamentos de mecánica cuántica y la distribución por el canal óptico garantizan que una comunicación resistente a “espías” (evedroper). Además, la clave tiene el mismo tamaño que el mensaje y se usa una sola vez para encriptar ese mensaje. Esta técnica de encriptado es la que se conoce como one-time-pad (OTP). Si la clave es totalmente aleatoria (como ocurre con QKD) se ha demostrado matemáticamente que el encriptado OTP es irrompible. Por tanto, la clave simétrica obtenida de QKD es más segura, ya que:

  • es resistente a ataques de fuerza bruta, al no basarse en funciones matemáticas difíciles de resolver (como RSA o EC)
  • es resistente a pruebas de claves posibles ya que se tardaría un tiempo exponencial respecto al tamaño de la clave
  • no se intercambian entre los extremos de la comunicación, eliminando el riesgo de fugas
  • no se almacena en el dispositivo de manera permanente, evitando exposiciones no deseadas

¿Podemos usar QKD hoy?

A día de hoy, los dispositivos cuánticos en general son caros e inaccesibles para casos de uso masivos. Sin embargo, la tecnología QKD está evolucionando a pasos firmes y grandes. Por ejemplo CV-QKD (QKD con variable continua) hace uso de tecnologías y componentes comerciales de comunicaciones ópticas. También permite que convivan canales cuánticos con clásicos sobre la misma fibra óptica. En 2018, ya anunciábamos una experiencia piloto utilizando CV-QKD y SDN (Software Defined Networking) en redes ópticas comerciales. Más allá del piloto, hoy está integrándose a nivel pan europeo mediante el proyecto openQKD. Según avance la tecnología, bajarán los precios de los dispositivos y van a miniaturizarse cada vez más. De hecho, en proyectos como CIVIQ se está trabajando en embeberlos como accesorios conectados en los puertos de equipos genéricos.

Mientras tanto, se sigue trabajando en extender las distancias que pueden separarse los dispositivos conectados con una fibra óptica. No sólo directamente, sino también añadiendo relays o trusted nodes (una red china alcanza los 2000 Km mediante QKD satelital). Este tipo de experiencias nos permitirán aplicar la tecnología en topologías de red cada vez más complejas. Por ejemplo, también utilizamos QKD para garantizar el consenso en una red blockchain. En lugar de recurrir a costosos e ineficientes protocolos como el Proof Of Work. Se trata de casos reales donde la tecnología cuántica resuelve problemas de manera más eficiente que otras tecnologías.

Nuestro caso

En el demostrador de Q-Secure Net, un dispositivo IoT y TrustOS se conectan a sendos equipos de QKD. Cuando el dispositivo quiere iniciar una comunicación, contacta con TrustOS a través de un canal clásico. Ambos recuperan simultáneamente la clave simétrica generada por los equipos QKD. Luego la utilizan cifrar la información de telemetría de los sensores conectados que envían por el canal.

TrustOS recibe la información cifrada que descifra con la misma clave. Si el mensaje descifrado es correcto, le permite a TrustOS verificar la identidad del dispositivo. Como parte de la información enviada, el dispositivo incluye también algún tipo de código de verificación. Este código es un atributo elegido por el dispositivo con el objetivo de verificar su integridad. Por ejemplo, un digest del sector de arranque o una firma del firmware. En sucesivos mensajes, TrustOS almacena ese código en Blockchain, convirtiéndolo en inmutable. Si no cambia entre llamadas podemos asumir que el dispositivo es confiable. Finalmente, TrustOS inicia una transacción para registrar la información enviada en blockchain.

Pero, ¿es viable añadir los equipos QKD a los dispositivos?

Como decíamos más arriba, en la mayoría de las ocasiones, los dispositivos IOT son muy simples. Por tanto, simplificar la gestión de claves tiene sentido pero no tanto incluir equipamiento complejo y grande como equipos QKD. Incluso cuando pudieran conectarse al puerto de un PC.

Sin embargo, muchas arquitecturas de soluciones IoT incluyen concentradores o equipos con una función similar. Son habituales en fabricas, almacenes u hospitales desplegados en el borde de la red con arquitecturas de Edge Computing. Funcionan como agregadores de la conectividad de los dispositivos más simples y ejecutan también cierta lógica. Como parte de esa lógica, ese concentrador aglutina las conexiones con las plataforma IoT o servidores de tercero. Estos equipos pueden ejecutar algorítmica avanzada (pensemos en big data, IA, etc.) que el dispositivo sería incapaz de ejecutar. Gracias a ellos se puede procesar información en tiempo real y enviar ordenes al dispositivo para que actúe en consecuencia.

No es descabellado pensar en añadir un equipo QKD en estos concentradores. Su misión sería la gestión de las claves para todos los dispositivos que se conectan a él. De esta manera, haríamos viable la utilización de QKD en este tipo de soluciones.

¿Entonces?

No debemos obsesionarnos con conseguir canales de comunicación completamente seguros. Tampoco vamos a utilizar QKD a toda costa. Lo que demostramos es que QKD es ya una alternativa viable para garantizar la seguridad e integridad de las comunicaciones. En casos como Blockchain, donde ya utilizamos la tecnología para agregar garantías a un proceso, el encaje es natural. Toda tecnología que añade confianza adicional en la solución extremo a extremo aporta valor. Y QKD, en este caso, lo hace.

La realidad nos dice que este tipo de arquitecturas encaja perfectamente en infraestructuras críticas. Pensamos en hospitales, centrales de energía o de comunicación, equipamiento militar, etc. Estas infraestructuras requieren una seguridad óptima para proteger la integridad, la confidencialidad y la autenticidad de la información. Estos datos ya se están recopilando con dispositivos IoT. A día de hoy permiten hacer más eficientes las operaciones o incrementar el control de los procesos. En estos casos, el extra de confiabilidad de QKD es un plus a tener en cuenta. Y ese plus podemos ya disfrutarlo con la tecnología disponible hoy.

En la redacción de este post han colaborado Carlos Alcaide Pastrana, Fernando de la Iglesia Medina, Antonio Pastor Perales y José Luis Núñez Díaz,

Para mantenerte al día con el área de Internet of Things de Telefónica visita nuestra página web o síguenos en Twitter, LinkedIn y YouTube.