Actualizado el 16/07/2019

icon Facebook icon Twiiter icon RSS icon EMAIL

Blockchain PKI y vehiculos autonomos

Escrito por Emma Sanchez el 11/12/2018 a las 23:49:09
5791

(Security Evaluator Engineer Applus)

Uno de los temas más candentes en cuánto a nuevas tecnologías que están naciendo en los últimos años, y que van ganando terreno de manera exponencial, son los coches autónomos. La controversia que se ha generado alrededor de este tema es: ¿son realmente seguros?

 

La principal idea para el desarrollo de este tipo de vehículos es precisamente reducir el número de accidentes de tráfico, principalmente causados por errores humanos, mediante el continuo intercambio de información sobre el entorno y el tráfico. Para ello, es necesario construir una red segura y fiable de comunicación entre vehículos. En este caso, se propone la autenticación de los nodos usando una Infraestructura de Clave Pública (PKI, de sus siglas en inglés).

 

Actualmente, el sistema que gestiona las claves públicas y los certificados digitales que las autentican, se basa en una arquitectura centralizada, de modo que toda su seguridad recae en un único punto de fallo, haciendo el sistema vulnerable ante posibles atacantes. ¿Se imaginan lo peligroso que sería ir por la autopista a 120km/h y que de repente, el coche se detuviera bruscamente?

 

Una posible solución sería implementar la PKI siguiendo un modelo descentralizado. Si bien es cierto que ya se han propuesto algunas implementaciones siguiendo este tipo de arquitectura, como por ejemplo, la Web of Trust, y aunque estas solucionen los principales inconvenientes de la PKI centralizada, ninguna reúne los requisitos necesarios para una red de vehículos autónomos.

 

Gracias a las redes blockchain, es posible reestructurar este sistema de clave pública, dotándolo de todos los requerimientos necesarios para una red de vehículos autónomos, como lo son la fiabilidad, la trazabilidad de los datos y la seguridad mediante una arquitectura distribuida.

 

Una red blockchain es una base de datos inmutable que contiene bloques de información ordenados cronológicamente y que se basa en una red peer-to-peer, donde todos los nodos están interconectados entre ellos. Este tipo de redes proporcionan fiabilidad por su diseño, dado que la base de datos está replicada en todos los nodos que conforman la red y es accesible para todos ellos. Además, para añadir nuevos bloques de información, es necesario que todos los nodos de la red los acepten, utilizando algoritmos de consenso.

 

En este caso, se propone usar la blockchain Ethereum, dado que nos permite desarrollar Smart Contracts para implementar la PKI distribuida en cuestión. En pocas palabras, un Smart Contract es un script que se publica en un sistema distribuido, como es el caso de una red blockchain, y se ejecuta automáticamente cuando se dan ciertas condiciones previamente definidas.

 

De esta manera, conseguiríamos tener una red distribuida de vehículos autónomos, sobre la cual podríamos desplegar aplicaciones distribuidas que nos permitirán implementar herramientas como la PKI que se propone, asegurando así una comunicación fiable y segura.

 

Aunque a priori esta solución pueda parecer la implementación perfecta, aún hay problemas por resolver. Por improbable que pueda parecer, una red blockchain no proporciona privacidad, por lo que los datos contenidos en ella, estarán expuestos a todos los nodos que la forman. Además, no se ha probado en términos de escalabilidad. Si bien es cierto que se han realizado algunas pruebas de concepto a pequeña escala, el mayor reto será ver el funcionamiento de esta herramienta en una red con miles de nodos conectados. Otro problema emergente será la compatibilidad entre el antiguo sistema centralizado y el nuevo sistema distribuido que se propone. Además, sería interesante hacer pruebas en otras blockchains que no fueran Ethereum y que quizás sean más adecuadas para el escenario que se propone.

 

En conclusión, aunque la idea tenga muchos puntos a favor, aún hay detalles que pulir y mucha investigación que hacer por delante.