Que nuestras conexiones en internet sean seguras depende del cifrado de los datos que viajan por las redes de comunicaciones. Y para cifrarlos es extremadamente importante que las claves generadas sean aleatorias para que los potenciales atacantes no puedan predecirlas y averiguarlas. Y si hay algo aleatorio, es el funcionamiento de las lámparas de lava. Lo saben muy bien en Cloudflare.
Cloudflare es un gigante de internet. Puede que no la conozcas, pero esta empresa proporciona CDNs (Content Delivery Networks) para que los datos a los que accedemos lleguen lo más rápido posible a nuestros dispositivos, y además ofrece servicios de seguridad en internet a empresas y particulares. Se han convertido en parte integral de la red de redes, y de hecho sus responsables estiman que el 16% de todo el tráfico global de internet pasa por sus infraestructuras.
Que viva el caos. Esa dimensión hace que en esta empresa se tomen muy en serio el cifrado de esos datos, y para ello hacen uso de un componente sorpresa: 100 lámparas de lava que están dispuestas en la pared de su cuartel general. El comportamiento de los fluidos de esas lámparas es prácticamente impredecible, y eso es lo que quieren en Cloudflare, donde para ese apartado buscan la entropía, que en otros ámbitos supondría caos y desorden, pero que en criptografía permite garantizar la imprevisibilidad.
Muro de entropía. Así es como en Cloudflare llaman a esa parede llena de lámparas de lava. Generar números aleatorios es uno de los problemas más complejos en el mundo de la informática, y para intentar lograrlo se usan en otros contextos el movimiento del ratón, por ejemplo. Aquí la empresa combina esa aleatoriedad con los datos generados por dos máquinas basadas en Linux, lo que según ellos permite "maximizar la entropía al crear semillas criptográficas para la encriptación SSL/TLS".
Neumann,PRNGs y Minecraft. En 1946 John von Neumann creó el primer generador de números pseudoaleatorios o PRNG, que partía de un número (semilla) para usarlo en u algoritmo. El concepto es crucial en muchos ámbitos informáticos, y es por ejemplo lo que se usa para generar los mundos de Minecraft: si uno usa la misma semilla, obtendrá el mismo mundo en este videojuego, como explicaban sus desarrolladores hace más de una década.
Bienvenidos al CSPRNG. Esta técnica permite desarrollar su generador de números pseudoaleatorios criptográficamente seguro o CSPRNG, un sistema más estricto que un PRNG estándar. Así, un atacante no puede prededir los resultados del CSPRNG ni teniendo acceso parcial al programa, algo que lo hace especialmente seguro.
¿Y si alguien pasa delante? Una cámara apunta a esas lámparas y saca fotos a intervalos regulares. A partir de ellas se generan cadenas de números totalmente aleatorias que los servidores de Cloudflare pueden usar como punto de partida para crear ese cifrado de datos seguro. Que alguien pase delante de la cámara no supone un problema. Ocurre constantemente, y de hecho añade aleatoriedad al sistema.
Silicon Graphics ya tuvo esa idea. La prestigiosa —pero ahora extinta— Silicon Graphics, que creó un sistema similar llamado "Lavarand" en 1996. La patente del sistema ya expiró, pero desde 1997 a 2001 se puso en macha un sitio web en lavarand.sgi.com que demostraba el funcionamiento de la técnica.
En Xataka | El día en que las máquinas puedan elegir: la paradoja del libre albedrío en robots
*Una versión anterior de este artículo se publicó en diciembre de 2023