Investigación. Análisis forense de monederos electrónicos
El error de la contraseñacon caracteres especiales de MultiBit
Innumerables MultiBit están seguros de cuál es su contraseña, pero esta no les permite abrir la cartera. El motivo es un error real: la contraseña que realmente bloqueó la cartera no es la que introdujeron.
MultiBit Classic una de las carteras de Bitcoin más populares entre 2011 y 2014, y dejó tras de sí un problema de recuperación muy característico. Las contraseñas que contenían caracteres especiales o no ASCII se modificaban antes del cifrado, por lo que volver a introducir hoy la contraseña «correcta» simplemente no funciona. En esta página se describe ese error y cómo el proceso de recuperación lo soluciona.
Cómo MultiBit una cartera
MultiBit Classic las claves privadas con AES, derivando la clave de encriptación a partir de la contraseña mediante una rutina compatible con OpenSSL (una derivación de clave e IV con sal) a través de la biblioteca criptográfica Bouncy Castle. En condiciones normales de uso, este proceso es seguro: la contraseña se transforma en una clave y la clave descifra el archivo .key. El problema nunca fue la criptografía, sino lo que ocurría con la contraseña antes de que llegara a la fase de encriptación.
El error de truncamiento o distorsión
Cuando una contraseña contenía caracteres especiales o no ASCII —letras acentuadas, símbolos, caracteres fuera del ASCII básico—, la conversión del texto en pantalla a los bytes sin procesar que realmente se sometían al hash fallaba. Los bytes superiores se alteraban o se truncaban, por lo que la secuencia de bytes que cifraba el monedero no se correspondía con los caracteres que el usuario había tecleado. El usuario recuerda la contraseña perfectamente; el monedero se bloqueó con una versión diferente y distorsionada de la misma. Por lo tanto, escribir la contraseña correcta nunca puede funcionar, y es por eso que estos casos parecen imposibles desde fuera.
Cómo reconocerlo
El patrón es sencillo: unClassic MultiBit Classic , una contraseña en la que el propietario confía plenamente y una negativa rotunda a abrirlo —especialmente cuando la contraseña incluía algo más que letras y dígitos simples—. Si la contraseña era ASCII puro, una búsqueda normal suele bastar; en cuanto había caracteres especiales o extranjeros, el error de truncamiento es el principal sospechoso. Es, con diferencia, la razón más habitual por la que falla una MultiBit «sin duda correcta».
Cómo la recuperación revierte esta situación
La recuperación consiste en reproducir el error en lugar de intentar solucionarlo. Tomamos la contraseña prevista por el propietario y aplicamos el mismo procesamiento defectuoso de caracteres a bytes que utilizaba el software antiguo, generando las secuencias de bytes distorsionadas que este habría producido realmente en las codificaciones de caracteres pertinentes. Cada candidato se comprueba sin conexión con una copia del archivo .key o .wallet hasta que uno de ellos descifra una clave válida. Dado que la distorsión es determinista, reproducirla convierte una cartera «imposible» de nuevo en un descifrado sencillo.
MultiBit es un problema distinto
Ten en cuenta que MultiBit HD no tiene nada que ver con esto: utiliza una semilla de 15 palabras y puede sufrir un problema independiente relacionado con la ruta de derivación, por el que una cartera restaurada aparece como vacía aunque contenga fondos; las monedas están bien, pero el software ha derivado direcciones erróneas, y al comprobar las rutas alternativas se revela el saldo. Distinguir Classic HD es el primer paso en cualquier MultiBit , ya que el error de truncamiento solo afecta a Classic.
¿Por qué hay tantas MultiBit que no funcionan hoy?
MultiBit Classic la opción más sencilla para ordenadores de sobremesa en los años anteriores a que las carteras de hardware y las frases de semilla se convirtieran en algo habitual, por lo que un gran número de usuarios pioneros cifraron un archivo .key con una contraseña que nunca pensaron que volverían a necesitar. Posteriormente, KeepKey adquirió MultiBit detuvo su desarrollo, sin ofrecer actualizaciones ni asistencia técnica. Años más tarde, muchas de esas carteras contienen saldos que valen mucho más que cuando se crearon, y sus propietarios vuelven para descubrir que el software ya no existe y que la contraseña «correcta» es rechazada. El error de truncamiento convierte esa situación, ya de por sí estresante, en una aparente imposibilidad; y precisamente por eso merece la pena documentarlo: el obstáculo con el que se topan los usuarios es un error conocido y reversible, no una cartera perdida.
Tras la recuperación: desinstala el software que ya no se utiliza
Dado que MultiBit en desuso, el objetivo no es seguir utilizándolo, sino extraer las claves y salir de allí. Una vez descifrada una clave, debe importarse a un monedero actual y compatible, y deben transferirse los fondos; a continuación, debe hacerse una copia de seguridad de la semilla del nuevo monedero en papel o acero, y guardarse por separado de cualquier dispositivo. Dejar fondos en una aplicación de 2013 que ya no recibe mantenimiento es un riesgo en sí mismo; la recuperación de la clave es el momento de migrar a algo moderno y con copias de seguridad fiables.
¿Puedes arreglarlo tú mismo?
En principio, cualquiera que comprenda exactamente cómo la antigua MultiBit convertía los caracteres en bytes y qué codificaciones se utilizaban podría reproducir la alteración; pero esa es la parte difícil, y no está documentada. Las herramientas de contraseñas comerciales comprueban la contraseña tal y como se teclea, que es precisamente lo que no funciona en este caso, por lo que cualquier intento normal de hacerlo por cuenta propia fracasa sin dar aviso, independientemente del número de variaciones que se prueben. El valor que aportamos es la propia reproducción: generar las secuencias de bytes que el código defectuoso producía realmente, en lugar de las que generaba el teclado. Si un intento directo con una MultiBit que contiene caracteres especiales ya ha fallado, ese fallo es la señal de que te enfrentas al error de truncamiento y no a una contraseña incorrecta.
Nuestra documentación
KeychainX ha reproducido este comportamiento de truncamiento en todasClassic MultiBit Classic afectadas y en todas las codificaciones de caracteres a lo largo de numerosas recuperaciones de clientes, ya que MultiBit comercializarse y ninguna herramienta compatible lo gestiona. Publicamos esta información para que los usuarios comprendan que una MultiBit «correcta» MultiBit que no se abre es un fallo conocido y ya resuelto. Para ver una guía práctica paso a paso, consulta nuestra página MultiBit .
Preguntas frecuentes
Mi MultiBit es correcta, pero no consigo abrir el monedero. ¿A qué se debe?
Casi siempre se trata del error de truncamiento de caracteres especiales: una biblioteca antigua modificaba las contraseñas que contenían caracteres especiales o no ASCII antes de cifrarlas, por lo que la contraseña exacta que introduces ya no coincide con la que se utilizó para bloquear el monedero.
¿Se puede recuperar?
Sí. Dado que el proceso de cifrado es determinista, lo reproducimos a partir de la contraseña que quieres utilizar y comprobamos las contraseñas resultantes con tu archivo de monedero sin conexión hasta que una de ellas descifre el archivo.
¿Esto también afecta a MultiBit ?
No. HD utiliza una semilla de 15 palabras y un problema diferente (relacionado con la ruta de derivación). El error de truncamiento es específico de los archivosClassic key/.wallet MultiBit Classic .
¿Qué archivos necesitas?
Tus archivosClassic MultiBit Classic (.key y/o .wallet) y lo que recuerdes de la contraseña, incluidos los caracteres especiales que contenía.
¿Cuánto cuesta la recuperación?
Basado en los resultados: un porcentaje del valor recuperado solo si conseguimos el dinero, y nada por adelantado.
¿ MultiBit «correcta» MultiBit no funciona?
Si tu contraseña contenía caracteres especiales, es probable que el error de truncamiento la esté bloqueando —que es precisamente lo que solucionamos. Evaluación sincera en un plazo de 24 horas, honorarios en función del resultado.