Hechos clave:
-
El error fue detectado por un bloguero que hizo la acusaciĂłn por Twitter.
-
En 2018 IOTA tuvo que cambiar su algoritmo al detectar que generaba colisiones.
El usuario de Twitter @SoatokDhole presentó en su blog una investigación en la que demostraba que el algoritmo criptográfico Kerl, que actualmente utiliza IOTA para cifrar sus operaciones, estaba generando colisiones en la salida.
Una colisiĂłn es un hecho ocurre cuando un algoritmo de encriptaciĂłn genera salidas iguales ante entradas diferentes. Esto es especialmente delicado si el algoritmo se utiliza para generar direcciones de carteras, donde se almacenan los fondos de un usuario.
Si dos personas diferentes tienen acceso a una misma direcciĂłn debido a una colisiĂłn, significarĂa que cualquiera puede hacer uso de los fondos asociados a esta. Que un algoritmo genere colisiones es un despropĂłsito para la criptografĂa.
En su publicación, Soatok explica que Kerl es una variación de otro algoritmo criptográfico: Keccak-384. Keccak tiene comprobada efectividad, pero, en el caso de IOTA, presenta problema de colisión.
La razĂłn es que IOTA tiene la caracterĂstica de codificar sus entradas en sistema de numeraciĂłn ternario {-1,0,1} en vez de un sistema binario {0,1}. En los sistemas de numeraciĂłn ternarios balanceados, como el que usa IOTA, la mĂnima unidad de informaciĂłn se llama trit (trinary digit), y serĂa equivalente a un bit en un sistema binario.
El bloguero explica que las colisiones que encontró parecen ser una consecuencia de siempre poner a cero el último “trit” antes de pasar la entrada a Keccak-384. Luego publica un set de entradas que generan el error, aunque pueden haber muchas más.
¿Qué responden los representantes de IOTA sobre el error?
La fundación IOTA, por medio de un tweet de su Director de Alianzas, Holger Köther, ha respondido ante estas acusaciones. La respuesta vino de un post en Reddit donde Wolfgang Welz, un usuario que se denomina “Investigador Computacional Senior” presenta una explicación.
Según Welz “el algoritmo Kerl posee resistencia a las pre-imágenes debido a que corre sobre una función Keccak tradicional. Sin embargo, es correcto que Kerl no es una función hash criptográfica general y no debe usarse para fines generales fuera del Protocolo IOTA”.
ÂżQuĂ© responde quien descubriĂł el error en la criptografĂa?
One of many reasons not to use #iota — These two inputs to their Kerl hash function collide:
GYOMKVTSNHVJNCNFBBAH9AAMXLPLLLROQY99QN9DLSJUHDPBLCFFAIQXZA9BKMBJCYSFHFPXAHDWZFEIZ
GYOMKVTSNHVJNCNFBBAH9AAMXLPLLLROQY99QN9DLSJUHDPBLCFFAIQXZA9BKMBJCYSFHFPXAHDWZFEIH
— soatok@home~$ (@SoatokDhole) July 15, 2020
«Una de las muchas razones para no usar IOTA: estas dos entradas a sus funciones hash Kerl colisionan», twitteó Soatok.
Para el bloguero, esto es importante porque forma parte de un patrĂłn que tienen los desarrolladores de IOTA. Soatok plantea tres posibles explicaciones:
- Es una puerta trasera diseñada para ser explotada por quienes diseñaron la red IOTA. Esto pasó con su anterior algoritmo, el Curl-P-27.
- Cometieron un error crĂtico en diseño del algoritmo Kerl. Este puede ser explotable en alguno de los lugares donde usan Kerl.
- Es cierta la justificaciĂłn que dan los representantes de IOTA, y no hay forma de explotar esta vulnerabilidad.
Pero Soatok es insistente y declara “incluso si esto no es explotable dentro de Iota, sigue siendo un gran error en el diseño de Kerl.”
Desde el 2018, IOTA se ha visto afectada por denuncias de vulnerabilidad. Ese año fue que se descubriĂł que el algoritmo Curl-P-27, que utilizaban originalmente, presentaba colisiones a la salida. Ese año CriptoNoticias publicĂł que IOTA habĂa cambiado su algoritmo y ofrecĂa recompensas a quienes fueran capaces de vulnerar su red.
Este año la red fue hackeada otra vez y estuvo casi un mes desconectada. El proyecto sigue teniendo defensores y detractores. Sin embargo, no se ha podido recuperar de la crisis de reputación de 2018, donde se criticó el ego de los desarrolladores.