Vulnerabilidad para las firmas digitales de Bitcoin, Ethereum y Ripple en implementaciones defectuosas
Los investigadores identificaron recientemente vulnerabilidades en las firmas criptográficas de Bitcoin, Ethereum y Ripple, que permitieron a los atacantes calcular claves privadas y, en consecuencia, robar cualquier criptografía en esa billetera.
En total, los investigadores calcularon cientos de claves privadas de Bitcoin y docenas de claves privadas de Ethereum, Ripple, SSH y HTTPS utilizando esta forma única de ataque criptoanalítico.
Los investigadores utilizan un método para calcular claves privadas mediante el análisis de firmas de Bitcoin. Los investigadores también pudieron aplicar estas técnicas a Ethereum y Ripple.
Dicho esto, estas vulnerabilidades solo se producen en casos perimetrales en los que los desarrolladores no implementan el código de forma adecuada, o probablemente se produjeron debido a un hardware de firma múltiple defectuoso. La investigación enfatiza la capacidad de recuperación de los esquemas criptográficos utilizados por las criptomonedas, y destaca la importancia de una implementación adecuada.
Antecedentes de la investigación
Cada vez que los titulares de criptografía realizan una transacción, deben crear una firma criptográfica utilizando un algoritmo de firma digital de curva elíptica (ECDSA). En este algoritmo, el software viene con un número arbitrario que se usa solo una vez para la comunicación; este número se llama nonce.
Es fundamental que el software firme cada transacción con una entidad diferente, de lo contrario, los piratas informáticos pueden (y con bastante facilidad) encontrar y calcular la clave privada de los firmantes. Incluso hay evidencia de que los piratas informáticos monitorean continuamente la cadena de bloques para este tipo de repeticiones, extrayendo dinero de las claves comprometidas.
Lo que es menos conocido es que los atacantes pueden calcular claves a partir de firmas que usan diferentes fuentes similares. Por ejemplo, si los nonces tienen caracteres que son similares al principio de la firma, o si el nonce tiene caracteres que son similares al final de una firma, entonces ocurrirá una gran cosa terrible.
Lo que dicen los investigadores
La Dra. Nadia Heninger es profesora asociada de ciencias de la computación en la Universidad de California. Joachim Breitner, es un investigador senior en DFINITY. Según el Dr. Heninger, la vulnerabilidad fue descrita como sigue:
“El algoritmo de firma digital ECDSA requiere generar un número aleatorio para cada firma, que a menudo se denomina “nonce” (esto es diferente de los nonces utilizados en la minería de criptomonedas). Si estos valores aleatorios utilizados en las firmas no se generan correctamente, en algunos casos, un atacante puede calcular las claves de firma privadas. Los tipos de vulnerabilidades de nonce que explotamos fueron implementaciones que generaron valores mucho más cortos de lo que deberían haber sido, o valores que compartían los bits más o menos significativos».
Y, utilizando algunos cálculos matemáticos avanzados llamados celosías, los dos pudieron descifrar algunas de estas direcciones de billetera y encontrar las claves privadas:
“Los algoritmos de red nos permiten encontrar pequeñas soluciones para sistemas de ecuaciones lineales sin restricciones. Hay una serie de técnicas criptoanalíticas que utilizan algoritmos de red como un bloque de construcción».
Como se indica en el documento, cualquier falta de uniformidad en la generación de estas firmas puede revelar información de clave privada. Dado un número suficiente de firmas, los piratas informáticos pueden calcular claves privadas y obtener acceso a la billetera de un usuario y agotar sus fondos.
¿Los usuarios de Crypto necesitan preocuparse?
Según el Dr. Heninger y Breitner, la gran mayoría de los usuarios de la criptomoneda no deben preocuparse:
«La única razón por la que esto sucedería es si hay algún tipo de error en el código de la firma digital».
Además, siempre que los desarrolladores utilicen las técnicas adecuadas y los métodos documentados para garantizar la seguridad del usuario, el esquema de firma se considera seguro:
“Por lo que sabemos, ECDSA es un algoritmo de firma digital seguro si se implementa correctamente. Concluimos que estas no eran implementaciones comunes basadas en el hecho de que solo encontramos unos pocos miles de firmas vulnerables de los casi mil millones de firmas de Bitcoin que examinamos».
Además, estas vulnerabilidades son solo «específicas de distintas implementaciones. Además, los autores especulan que la implementación defectuosa podría ser el resultado de algunos dispositivos de seguridad multifactoriales:
“La mención de la seguridad multifactorial es específica para el caso de las firmas que encontramos con nonces de 64 bits en la cadena de bloques de Bitcoin. Casi todos ellos formaban parte de direcciones multisig, lo que no es el caso habitual en la cadena de bloques, por lo que suponemos la fuente. Desde entonces ha habido algunas especulaciones adicionales sobre la implementación específica».
Ahora, hay maneras en que los desarrolladores pueden implementar ECDSA sin las vulnerabilidades descritas en el documento, incluso para dispositivos de hardware. Según Breitner:
«Los clientes oficiales de la cadena de bloques tienen su criptografía correcta… desde 2016, el cliente de Bitcoin usa firmas deterministas (RFC6979) que elimina completamente la necesidad de aleatoriedad en el proceso [eliminando la posibilidad del tipo de ataque empleado por los investigadores]. Si está utilizando bibliotecas no estándar, o si escribe sus propias rutinas criptográficas… debe asegurarse de que usen RFC6979. Esto es aún más importante en dispositivos integrados o tokens de hardware, donde podría ser difícil encontrar una buena fuente de aleatoriedad».
¿Rentable para los atacantes?
En última instancia, este tipo de ataques no son rentables dada la cantidad de tiempo, electricidad y potencia computacional necesaria para realizarlos, incluso con esta nueva herramienta agregada a su arsenal:
“Dado que los atacantes ya están explotando otras vulnerabilidades criptográficas para comprometer las billeteras, parece probable que esto se agregue a su arsenal. Sin embargo, si uno tiene que pagar por el tiempo de cómputo para realizar el cálculo, probablemente no sea un ataque rentable dados los saldos que encontramos asociados con las claves vulnerables».
Al final del día, la investigación confirma a los usuarios de la criptomoneda que la criptografía que subraya Bitcoin y otras monedas digitales es sólida. Con decenas de miles de personas que examinan el código subyacente para estos sistemas, es un testimonio de que los esquemas de seguridad principales, si se usan adecuadamente, aún protegen adecuadamente al usuario, por ahora.