Investigación. Análisis forense de monederos electrónicos
El cifrado de Armory y el KDF de ROMIX
Armory se creó pensando en los usuarios de Bitcoin preocupados por la seguridad, y su proceso de derivación de claves —deliberadamente lento y que consume mucha memoria— es precisamente la razón por la que, para recuperar una contraseña de Armory, es necesario aplicar el método adecuado en lugar de recurrir a la fuerza bruta.
Armory fue una de las primeras carteras de Bitcoin más respetadas, muy apreciada para el almacenamiento en frío. Parte de esa reputación se debía a su cifrado: una función de derivación de claves deliberadamente costosa y exigente en memoria, basada en ROMIX. Esta página explica lo que eso significa para alguien que intente recuperar la contraseña de una cartera de Armory.
Qué hace una función de derivación de claves
Cuando se cifra un monedero con una contraseña, el software no utiliza la contraseña directamente, sino que la procesa a través de una función de derivación de claves (KDF) para generar la clave de cifrado real. Una buena KDF es deliberadamente lenta, de modo que probar cada posible contraseña cuesta tiempo y dinero reales, lo que hace que el ataque de fuerza bruta resulte poco viable. El coste de la KDF es el obstáculo que un atacante —o un servicio de recuperación— tiene que superar para cada contraseña candidata.
El diseño ROMIX / memory-hard de Armory
Armory utilizaba un KDF «memory-hard» basado en ROMIX (la estructura central que también se utiliza en scrypt). «Memory-hard» significa que cada intento no solo requiere tiempo, sino también una gran cantidad de RAM, lo que frustra deliberadamente el hardware masivamente paralelo que utilizan los atacantes: no es posible realizar millones de intentos en paralelo de forma económica si cada uno de ellos necesita una cantidad significativa de memoria. Armory incluso calibró el KDF para la máquina en la que se creó, de modo que el coste por intento refleja las características de ese hardware.
Qué significa esto para la recuperación
La consecuencia práctica es que la recuperación en Armory está limitada por el número de intentos, no es instantánea. Comprobar cada contraseña candidata supone un gran coste, por lo que un ataque de fuerza bruta a ciegas y sin estructura sobre una contraseña larga es sencillamente inviable: nunca se terminaría. Por lo tanto, el éxito o el fracaso de la recuperación depende de la calidad de la lista de candidatas: cuanto más se ajuste la búsqueda a lo que el propietario recuerda realmente, menos intentos costosos se necesitarán. En este caso, unas buenas pistas son mucho más importantes que el hardware en sí.
Por qué son importantes los parámetros del KDF
Para comprobar correctamente las conjeturas, debes reproducir exactamente los parámetros KDF de Armory —el coste de memoria y de iteraciones con el que se configuró—, ya que la clave derivada depende de ellos. Esos parámetros se almacenan junto con el monedero, por lo que parte del trabajo forense consiste en leerlos y reconstruir fielmente la misma derivación. Si te equivocas en los parámetros, todas las conjeturas fallarán incluso si la contraseña es correcta, la misma trampa en la que caen los usuarios de otros monederos con formatos específicos.
Un enfoque realista de la recuperación
El enfoque viable consiste en tratarlo como una búsqueda de precisión en lugar de un barrido: extraer los parámetros del KDF, reproducir la derivación «memory-hard» y ejecutarla con una lista de candidatos elaborada a partir de todo lo que el propietario recuerde —longitud, estructura, fragmentos, hábitos— en un hardware con memoria suficiente para ejecutar el KDF de forma eficiente. Es más lento por intento que una cartera ligera, pero con una lista bien elaborada sigue siendo totalmente factible, y las carteras Armory suelen proteger carteras sustanciales a largo plazo que justifican el esfuerzo.
Cuando las carteras de Armory se bloquean
La propia aplicación Armory se volvió difícil de manejar al dejar de recibir mantenimiento activo, por lo que muchos usuarios se ven impedidos de acceder a ella no solo por una contraseña olvidada, sino también porque la aplicación ya no se inicia correctamente en los sistemas modernos. La recuperación suele implicar trabajar directamente con el archivo del monedero y reproducir su criptografía fuera del software original, lo que permite eludir el problema de la aplicación obsoleta sin dejar de respetar el KDF con el que se cifró el monedero.
Si tienes una cartera antigua de Armory
Si tienes un monedero Armory con fondos y una contraseña de la que no estás seguro, la buena noticia es que el KDF de memoria compleja, que ralentiza la recuperación, también significa que tu monedero estaba realmente bien protegido; y, si recuerdas más o menos la contraseña, la recuperación es factible. Una vez recuperadas, exportar las claves a un monedero moderno y actualizado evita el problema recurrente de tener que utilizar software obsoleto.
Comparación de Armory con otras carteras
Esto ayuda a situar a Armory en el espectro de dificultad de recuperación. Una cartera ligera con un KDF rápido se puede rastrear a una velocidad enorme, por lo que incluso un recuerdo difuso de la contraseña suele dar resultado. Armory se sitúa en el extremo opuesto: su derivación, que exige un gran uso de memoria, hace que cada intento resulte costoso, por lo que la búsqueda debe ser concisa y bien fundamentada. Esto no hace que sea más difícil recuperar una contraseña que se recuerda bien —una pista sólida permite terminarla rápidamente en cualquier caso—, pero sí significa que un espacio de conjeturas vago y extenso que podría funcionar en una cartera rápida resulta inviable en Armory. En resumen, Armory premia la precisión: cuanto mejor pueda describir el propietario la contraseña, más decisivamente dejará de ser el KDF un obstáculo.
Nuestra documentación
KeychainX documenta aquí el KDF de Armory como parte de nuestro análisis forense del formato de monedero, ya que reproducir fielmente una derivación basada en la memoria —y adaptar la búsqueda a la memoria del propietario— es lo que distingue una recuperación viable de Armory de una imposible. Se suma al resto de nuestras investigaciones sobre el formato en esta sección. Si no puedes acceder a un monedero de Armory, el KDF es un obstáculo, no un callejón sin salida.
Preguntas frecuentes
¿Qué se necesita para iniciar un proceso de recuperación de Armory?
El archivo de la cartera de Armory (que almacena los parámetros KDF) y lo que recuerdes mejor de la contraseña: longitud, estructura, fragmentos, hábitos. Cuanto mejor sea la pista, más factible será la búsqueda basada en la memoria.
¿Por qué tarda tanto en recuperarse la contraseña de Armory?
Armory utiliza una función de derivación de claves ROMIX, que consume muchos recursos de memoria, y que hace que cada intento de adivinar una contraseña requiera deliberadamente mucho tiempo y mucha memoria RAM. Esto frustra los ataques de fuerza bruta a ciegas, por lo que la recuperación depende de una lista de candidatos bien elaborada.
¿Se puede recuperar una cartera de Armory?
Sí, siempre y cuando recuerdes lo suficiente de la contraseña. Reproducimos los parámetros exactos del KDF de Armory y realizamos una búsqueda basada en la memoria a partir de tus pistas, en un equipo con suficiente RAM para ejecutar el KDF.
¿Necesito el programa Armory para que funcione?
No necesariamente. La recuperación suele realizarse directamente desde el archivo del monedero, reproduciendo su criptografía fuera de la aplicación original, lo que además evita el problema de que Armory ya no funcione correctamente en los sistemas modernos.
¿Por qué no me acepta la contraseña, aunque es correcta?
Si los parámetros del KDF no se reproducen exactamente, la clave derivada es errónea e incluso la contraseña correcta no funciona. Leer los parámetros almacenados y reconstruir fielmente la derivación forma parte del trabajo.
¿Cuánto cuesta la recuperación?
Basado en los resultados: un porcentaje del valor recuperado solo si conseguimos el dinero, y nada por adelantado.
¿No puedes acceder a tu monedero de Armory?
El KDF con alta exigencia de memoria es un obstáculo, no un callejón sin salida: con una memoria de contraseñas adecuada, se puede recuperar. Dinos qué tienes y te daremos una valoración sincera en un plazo de 24 horas.