Blog
Come recuperare la password di un file keystore / UTC / JSON per Ethereum
In breve
La password di un file keystore UTC/JSON di Ethereum non è leggibile nel file e non si reimposta tramite la blockchain: si recupera solo verificando offline password candidate sul file conservato. Lavori sempre su una copia, partendo da vecchie password, layout della tastiera, maiuscole e varianti probabili. La fattibilità dipende dallo stato del file, dai parametri di cifratura e dalle password plausibili.

Ha il file. Si tratta di un keystore .json, spesso con un nome come «UTC--2018-03-14T…», e contiene il Suo wallet Ethereum. Ciò che Le manca è la password necessaria per aprirlo. Prima di iniziare a digitare tentativi, conviene capire che cos’è questo file, perché da questo dipende la possibilità stessa di recuperare la password del Suo file keystore Ethereum.
Che cos’è effettivamente un file keystore
La password di un keystore non va persa allo stesso modo in cui si perde una frase di recupero. Il file che ha davanti è la Sua chiave privata, racchiusa in un file JSON cifrato, e la Sua password è ciò che lo sblocca. La blockchain non memorizza quella password da nessuna parte: la password serve solo a bloccare questo unico file. Pertanto, ciò che manca non è la Sua chiave, bensì la password della copia che già possiede.
Questa distinzione cambia tutto. Poiché il file è in Suo possesso, può provare una password sul Suo computer, offline, tutte le volte che vuole. Nessun server decide se Le è consentito un altro tentativo. I Suoi ETH restano intatti sulla blockchain, e questo file è soltanto il modo per riaccedervi.
Prima di provare qualsiasi cosa: lavori solo su una copia
Per prima cosa, copi il file. Ne faccia due copie e ne conservi una in un posto che non tocchi mai, perché un keystore è un unico piccolo file che contiene tutto, e i vecchi dischi si guastano proprio nel momento peggiore.
Due errori tolgono l’accesso in modo definitivo:
- Conservi il file originale senza modificarlo e non ne alteri il contenuto. Un keystore deve restare un JSON valido. Cambiare il nome o l’estensione .json non modifica i dati salvati, ma può impedire al software di riconoscere il file. Modificare o eliminare i dati cifrati al suo interno può renderlo inutilizzabile.
- Lo tenga offline e non incolli mai il Suo file keystore, la Sua password o la Sua chiave privata in un sito web che si offra di sbloccarlo. Cloni fasulli di MyEtherWallet e MyCrypto vengono pubblicizzati tramite annunci sui motori di ricerca e sembrano identici agli originali. Nel momento in cui un truffatore ha il file e la password, il wallet viene svuotato. Il vero recupero avviene sul Suo computer, mai in una scheda del browser aperta da un annuncio.
Conosce ancora la password: come aprire il file
È la posizione migliore. Se ricorda davvero la password, non Le serve un recupero. Le serve uno strumento aggiornato, perché quello che questa guida consigliava in passato è ormai superato.
L’app desktop di MyCrypto non viene più mantenuta attivamente, come ammette la stessa MyCrypto, quindi non basi il Suo recupero su di essa. Utilizzi invece una di queste soluzioni:
- MetaMask. Nell’estensione per browser faccia clic sul selettore degli account, poi su Add wallet e Import an account (le voci sono quelle dell’interfaccia inglese). In Select Type scelga JSON File, selezioni il Suo keystore, inserisca la password del file stesso (non la Sua password di MetaMask) e faccia clic su Import (guida all’importazione di MetaMask). L’importazione JSON è disponibile solo nell’estensione. Nelle versioni precedenti l’opzione si chiamava «Import account». È il metodo attuale più semplice.
- MyEtherWallet (MEW). MEW può aprire un keystore, ma scarichi MEW e lo usi offline, invece di digitare la password sul sito online. Una guida a parte tratta i problemi di accesso a MEW.
- geth (go-ethereum). Per chi lavora dalla riga di comando, geth legge i file keystore dalla propria cartella keystore. Le versioni attuali gestiscono gli account tramite Clef, uno strumento di firma separato, e la vecchia opzione
--unlockè deprecata (gestione degli account in geth).
Una volta effettuato l’accesso, abbandoni il vecchio wallet. Un keystore contiene una sola chiave e ora ha inserito la relativa password in un software, quindi trasferisca tutto in un nuovo wallet sotto il Suo controllo. La sezione più avanti su cosa fare dopo l’accesso spiega come procedere in sicurezza.
Ha dimenticato la password: come funziona davvero il recupero
Che sia recuperabile dipende da ciò che ricorda, ed è importante capirne il motivo prima di spendere anche un solo centesimo. La password non è scritta nel file in modo che chiunque possa leggerla: la si trova provando password candidate finché una non decifra la chiave. Poiché il file è Suo e può fare le prove direttamente su di esso, la ricerca avviene offline, senza blocchi e senza limiti di tentativi. È una libertà che una frase di recupero completamente persa non Le garantirà mai.
C’è però un vero ostacolo. Un keystore protegge la Sua chiave con una funzione volutamente lenta, scrypt o PBKDF2, abbinata alla cifratura AES-128-CTR (definizione di Web3 Secret Storage). Il fattore di lavoro è registrato nel file stesso; l’impostazione standard di scrypt in geth è 262.144. Questa lentezza è una misura di sicurezza: ogni tentativo costa tempo di calcolo reale, ed è voluto. Provare qualche migliaio di password plausibili richiede poco tempo. Provare ogni possibile stringa casuale di dieci caratteri, invece, no. Lo spazio di ricerca è di gran lunga troppo vasto per essere esaurito nel corso di una vita umana, anche con hardware potente.
Il brute force alla cieca è quindi escluso; a funzionare è la ricerca mirata. Lo strumento open source per farlo è BTCRecover, che supporta i file keystore UTC di Ethereum e funziona interamente offline. Non deve fornirgli stringhe casuali, ma ciò che ricorda:
- una password di base che ritiene di aver usato, più delle regole per provarne le varianti: una maiuscola, un anno in fondo, un simbolo sostituito con un altro;
- un breve elenco di parole che tende a riutilizzare, provate in ordini diversi;
- la lunghezza e i tipi di caratteri, se li ricorda, per mantenere la ricerca circoscritta.
BTCRecover esamina poi queste candidate in modo sistematico. Per alcuni formati di wallet, gli script di estrazione di BTCRecover consentono a chi si occupa del recupero di lavorare su un piccolo estratto dei dati del wallet, che non può rivelare le chiavi. Per i keystore Ethereum non esiste uno script del genere, quindi la ricerca avviene offline su una copia del keystore stesso.
Il caso migliore è una base familiare con un finale dimenticato: la parola giusta, ma un dubbio su una maiuscola, una cifra o un simbolo finale. È una ricerca piccola e circoscritta. Più ampia è la Sua incertezza, più cresce la ricerca.
I limiti del recupero
Non ricordare alcuna parte della password non esclude automaticamente una ricerca. Su una copia del keystore si può ancora provare un elenco limitato di password comuni e varianti. L’utilità della ricerca dipende dalle candidate scelte, dai parametri di cifratura del file e dalla velocità di verifica misurata. Una password lunga e generata casualmente può essere impossibile da recuperare in pratica; il solo fatto di averla dimenticata non ne indica la robustezza.
L’altro vicolo cieco è non avere affatto il file. Senza keystore, senza una chiave privata salvata e senza frase di recupero, non resta nulla da decifrare e nessuno può accedere al wallet. Preferiamo dirlo chiaramente piuttosto che accettare un caso che sappiamo già non poter funzionare.
File keystore e frase di recupero: non sono lo stesso backup
Spesso si tende a confonderli, ma è proprio la differenza tra i due a determinare le opzioni a Sua disposizione. Un file keystore è una singola chiave privata, cifrata con una password e salvata in formato JSON. Una frase di recupero è un elenco di parole (di solito 12 o 24) che consente di rigenerare un intero insieme di chiavi secondo lo standard BIP-39. Sono backup distinti, con percorsi di recupero distinti.
In pratica: se ha il keystore, per accedere non Le serve la frase di recupero. Le serve la password. E se qualcuno Le chiede la frase di recupero per «recuperare» un keystore, si tratta di uno schema tipico delle truffe, non di un vero passaggio.
Dopo l’accesso: non affidarsi più al keystore
Volti pagina. Un keystore è una singola chiave con una singola password, e una password dimenticata è esattamente ciò che Le ha bloccato l’accesso. Crei un nuovo wallet sotto il Suo controllo, idealmente un hardware wallet, e vi trasferisca i Suoi ETH e i Suoi token. Una configurazione basata su una frase di recupero offre un percorso di recupero che un keystore a file singolo non ha mai avuto.
Se non riesce ad accedere a un keystore, che abbia dimenticato la password o che abbia dubbi sul file, inizi con una valutazione gratuita: un parere onesto sulla possibilità di ricostruire la password, prima di qualsiasi impegno. Crypto Recovers ha portato a termine oltre 200 recuperi dal 2019, lavora secondo il principio «no cure, no pay» e non gestisce mai il Suo denaro.
Se recuperiamo la password, è Lei a sbloccare il keystore e a trasferire gli ETH e i token nel nuovo wallet descritto sopra. Il compenso concordato è un pagamento separato previsto dal contratto e non viene mai detratto dai fondi recuperati.
Domande frequenti
Perché la password del mio keystore di Ethereum viene segnalata come errata, quando ho la certezza che sia corretta?
Un messaggio di password errata non è sempre dovuto al fatto che si sia dimenticata la password. Potrebbe capitare di aprire il wallet sbagliato, di utilizzare una disposizione della tastiera diversa oppure di commettere un piccolo errore di battitura, come l’uso errato di una maiuscola, di un simbolo o di un numero.
È possibile estrarre la chiave privata da un file keystore senza la password?
No. Un file keystore di Ethereum conserva la Sua chiave privata in forma cifrata. Senza la password corretta, la chiave privata non può essere decifrata né resa accessibile.
È possibile recuperare il proprio wallet se si è smarrito il file keystore?
Solo se si dispone di un altro backup, come la chiave privata o la frase di recupero. Se il file keystore è stato cancellato accidentalmente, un software di recupero file potrebbe essere in grado di ripristinarlo dal dispositivo di archiviazione originale.
È sicuro utilizzare MyCrypto per aprire un file keystore di Ethereum?
L’app desktop di MyCrypto non viene più mantenuta attivamente. In linea di massima è più sicuro usare un software di wallet ancora supportato, in grado di importare file keystore JSON, e affidarsi esclusivamente ad applicazioni di wallet ufficiali.
Quanto tempo richiede il recupero della password del keystore di Ethereum?
La durata dipende dalla complessità della password e da quante informazioni ricorda. Alcuni casi si risolvono rapidamente, mentre altri possono richiedere giorni di test o rivelarsi irrecuperabili.
È possibile effettuare un attacco di brute force alla password di un keystore di Ethereum con Hashcat?
Sebbene sia tecnicamente possibile, i file keystore di Ethereum sono progettati per resistere agli attacchi di brute force. Il recupero della password risulta molto più efficace se basato su indizi o su una conoscenza parziale della password originale.
È ancora possibile recuperare vecchi file della presale di Ethereum o file JSON di wallet legacy?
Sì, se il file del wallet esiste ancora e la password si può restringere. I file più vecchi, come i wallet della presale del 2014, usano un formato JSON diverso, ma possono comunque essere testati offline con strumenti che lo supportano; veda la nostra guida ai wallet della presale di Ethereum.
