KeyStone
Formulario
EN ES
← Qué puedo y qué no puedo recuperar

Ethereum · Keystore JSON

Recuperar la contraseña de un keystore JSON de Ethereum

Es el formato más duro de los cuatro, y conviene saberlo antes de gastar dinero: el keystore estándar usa scrypt con parámetros pensados para que probar una sola contraseña cueste casi un segundo. Aquí el diagnóstico honesto es más importante que en ningún otro caso.

Cómo se llama y qué contiene

Es un fichero de texto con nombre largo, del tipo UTC--2017-06-11T09-22-41.000Z--a1b2c3…, y dentro lleva un JSON con la clave privada cifrada en crypto.ciphertext, la función de derivación en crypto.kdf, sus parámetros en crypto.kdfparams y un mac que permite comprobar si una contraseña es la correcta. Lo generan geth, MyEtherWallet, MyCrypto y casi cualquier herramienta que te diera un «fichero de cartera» para Ethereum.

Ábrelo con un editor de texto y dime solo estos valores: lo que ponga en kdf, y los números de n, r, p, c y dklen. No son secretos, no dan acceso a nada, y con ellos sé el coste exacto por intento. Es la mitad del diagnóstico y te la puedo dar en el mismo día.

Los parámetros lo deciden todo

Lo que pone en el ficheroQué significaIntentos por segundo
kdf: scrypt, n: 262144Parámetros estándar: 256 MiB de memoria por intento1 – 10
kdf: scrypt, n: 4096Parámetros «light», usados por algunas carteras de móvil10² – 10³
kdf: pbkdf2, c: 262144Sin coste de memoria: la GPU sí ayuda10³ – 10⁴

La diferencia entre la primera fila y la tercera es de tres órdenes de magnitud, y no depende de ti ni de mí: la fijó la herramienta que generó el fichero. Con scrypt estándar, un espacio de un millón de candidatas son días de cómputo; con diez millones, ya no.

Cuándo tiene solución

  • Recuerdas la contraseña a trozos y el espacio de candidatas se queda en unos miles o unas decenas de miles.
  • El fichero usa parámetros «light» o pbkdf2, y entonces caben muchos más intentos.
  • Tienes tres o cuatro candidatas concretas: probarlas es cuestión de minutos aunque sea scrypt estándar.
  • Era una variante de una contraseña que sigues usando o recordando.

Cuándo no

  • scrypt con parámetros estándar y ninguna pista sobre la contraseña. Con uno a diez intentos por segundo, incluso un millón de candidatas son semanas; ocho caracteres aleatorios son cientos de miles de años.
  • Perdiste el fichero. La contraseña sin el keystore no sirve para nada.
  • El JSON está incompleto o le falta el mac: sin él no se puede verificar si una contraseña acierta.
  • No puedes demostrar que la cartera es tuya.
El keystore ya está cifrado, así que puede viajar por correo como adjunto. Tus contraseñas candidatas no: esas se dictan en videollamada. Está explicado en cómo funciona un caso.

Otros formatos