¿Cómo puedo importar una clave privada?

Estoy tratando de sacar mis monedas de una vieja billetera clásica MultiBit. Encendí Multibit classic e intenté enviar los fondos a una nueva billetera. Desafortunadamente, mi contraseña no funcionaría. Maldición.

¡Pero! Encontré este script en los foros de soporte de multibit. https://multibit.org/help/v0.5/help_lostOrForgottenPassword.html

#!/bin/bash
echo Usage: apply-guesses.sh [password CSV] [key file] 
echo Password file: $1
echo Key file: $2
for password in $( awk -F , -v OFS=' ' '{print $3}' $1 ); do
   echo ------
   echo Attempting: $password...
   openssl enc -d -p -aes-256-cbc -a -in $2 -out recovered.key -pass pass:$password
   if [ $? -eq 0 ];
     then 
       echo "Success!";
       break;
     else 
       echo "Failed";
   fi
   echo ------
done

¡Ejecuté el script usando un csv de todas mis antiguas contraseñas de bitcoin y tuve éxito!

Devolvió esto: (Cambié todos los números)

Attempting: password123
salt = 9823498243829374
key = 98237890238420938429830394850394
iv = 98743259384793847593844
Success!

Pero cuando probé esa contraseña todavía decía que era incorrecta. :(

¡Pero! también creó un archivo llamado retrieved.key. Abrí el archivo y era un montón de símbolos mal codificados como este: '¦ÀÌÁïûê¿^½”ß/øZÄÑQÛ,i¹´$'

Leí en alguna parte que las claves multibit están codificadas en base 58, así que codifiqué el estilo de base 58 de la clave recuperada y se volvió mucho más legible. Ahora tengo una cadena de letras y números que tiene 611 caracteres y comienza con un '3'. ¿Es esta mi clave privada?

He estado tratando de importarlo a una nueva billetera en MultiBit classic, pero hasta ahora no he tenido suerte. Exporté una clave privada de una nueva billetera vacía y se ve así: (Cambié la clave para esta publicación)

# KEEP YOUR PRIVATE KEYS SAFE !
# Anyone who can read this file can spend your bitcoin.
#
# Format:
#   <Base58 encoded private key>[<whitespace>[<key createdAt>]]
#
#   The Base58 encoded private keys are the same format as
#   produced by the Satoshi client/ sipa dumpprivkey utility.
#
#   Key createdAt is in UTC format as specified by ISO 8601
#   e.g: 2011-12-31T16:42:00Z . The century, 'T' and 'Z' are mandatory
#
L1paCgWAYm2wzRfznmcoy5pbskdhShRVneAzBeuwaj244s7fr9nE 2017-09-04T21:54:32Z
# End of private keys

Cambié la clave en esa billetera con mi clave recuperada base58, pero era mucho más larga que esto, y cuando traté de importarla me dijo "No se pudo entender la dirección en el archivo de importación"

Entonces... tengo una cadena muy larga que creo que es mi clave privada, pero no creo que esté en el formato correcto. También podría ser un idiota. ¿Puede alguien ayudarme?

Respuestas (1)

Este es un descifrado fallido

Desafortunadamente, openssla veces puede responder con un cero incluso cuando el resultado es un descifrado fallido debido al relleno y parece que esto es lo que sucedió aquí.

Tengo más contraseñas para probar...

Sugeriría modificar el script para evitar el break;éxito posterior. Esto asegurará que todos sean probados. Luego puede revisar la salida y probar las alternativas manualmente hasta que vea una salida que coincida con la # KEEP YOUR PRIVATE KEYS SAFE !línea que es la verdadera representación de un descifrado exitoso.

Ninguno de ellos funcionó...

Si no puede desbloquear la billetera con la contraseña, hay dos posibilidades:

  1. Tienes la contraseña incorrecta, más común de lo que pensarías incluso cuando las personas juran a ciegas que la están escribiendo correctamente.
  2. El archivo de billetera/clave se corrompió; es muy raro, pero expone la fragilidad de los archivos cifrados que contienen claves privadas aleatorias.

Los datos no existen a menos que estén en dos lugares, idealmente una copia de seguridad local y una remota. Incluso entonces, los archivos se corrompen solo por problemas de hardware.

Fue por las razones anteriores, y otras, que el equipo de desarrollo de MultiBit instó encarecidamente a las personas durante años a actualizar a MultiBit HD y la frase semilla asociada que mitiga esta situación por completo. Además, al crear claves y escribirlas, MultiBit Classic verifica que los datos se puedan volver a leer con éxito utilizando la contraseña ofrecida.

¿Lo que ha sucedido?

En general, cuando un archivo está cifrado con AES, hay una sección de encabezado que contiene datos específicos de cifrado (clave, sal, vector de inicialización, etc.) y luego viene el cuerpo principal de datos. Una corrupción en la sección del encabezado es un problema muy serio ya que hace que el descifrado de todo el cuerpo sea casi imposible. Una corrupción en la sección del cuerpo permite que la billetera se descifre con éxito, pero podría contener datos erróneos.

¿Qué puedo hacer?

Su primera respuesta debe ser utilizar un software de recuperación de archivos de buena reputación. Es de esperar que esto descubra versiones anteriores de copias de seguridad de archivos de billetera/clave y puede deshacer la corrupción a través de operaciones de reparación.

La forma más rápida de verificar los archivos recuperados es usar OpenSSL de la siguiente manera:

openssl enc -d -p -aes-256-cbc -a -in <ciphertext file> -out <plaintext file> -pass pass:<password>

El archivo de texto sin formato debe contener el texto # KEEP YOUR PRIVATE KEYS SAFE !si se ha descifrado correctamente (como se muestra en la pregunta).

A continuación, encuentre una billetera/intercambio que acepte claves privadas y guarde los bitcoins recuperados en una billetera de hardware protegida por una frase inicial, como Trezor.

eso no funcionó

Si todo lo que tiene es un archivo dañado, su última esperanza es tratar de averiguar cómo se ha dañado el archivo. Si está en la sección de encabezado donde se almacenan la clave, el vector de inicialización, la sal, etc., entonces son malas noticias. Va a costar mucho trabajo reconstruirlos.

Si es más tarde, podría obtener un descifrado parcial pero tener claves privadas incompletas. Bitcoin tiene sumas de verificación razonables, por lo que podría usar un script de recuperación de clave para probar varias combinaciones hasta que una proporcione una suma de verificación que funcione. Luego puede buscar la dirección asociada de la clave pública y verificar sus fondos.

En cualquiera de los casos anteriores de corrupción, deberá ser un codificador muy hábil para reconstruir con éxito los archivos. Es posible que desee considerar enviarlo a un servicio especializado.

¡Muchas gracias! Agradezco la respuesta. Es desalentador que SSL arroje falsos positivos, pero no creo que mi billetera esté dañada. Quiero decir que puedo abrir la billetera en MultiBit Classic y ver mis fondos. Lo pensaré por un tiempo y comenzaré a hacer una nueva lista de posibles contraseñas.