Geth. Keystore di Ethereum
Ripristino del portafoglio Geth
Se hai gestito un nodo Geth nei primi anni di Ethereum, i tuoi ETH sono quasi certamente bloccati all’interno di un file keystore protetto da una password che non ricordi più. Con quel file, di solito è possibile recuperarli.
Geth — go-ethereum, il client ufficiale di Ethereum — era il modo in cui molti dei primi possessori conservavano i propri ETH prima che esistessero MetaMask e i portafogli hardware. Quando si creava un account, Geth salvava su disco un file keystore crittografato e lo proteggeva con una password. A distanza di anni, quella password rappresenta il problema principale: il file è intatto, gli ETH sono visibili sulla blockchain, ma il portafoglio non si apre. Si tratta di una delle situazioni più facilmente risolvibili, a condizione che si disponga ancora del file keystore.
Il tuo file keystore (UTC / V3)
Geth stores each account as a JSON keystore file with a name like UTC–2015-08-14T…–<address>. Inside is your private key, encrypted to the Ethereum Web3 Secret Storage V3 standard. This is the single most important thing to find and protect — it is what makes recovery possible. Without it, there is nothing to decrypt; with it and a password hint, the odds are good.
Posizioni tipiche della cartella keystore:
- Linux: ~/.ethereum/keystore/
- macOS: ~/Libreria/Ethereum/keystore/
- Windows: %APPDATA%\Ethereum\keystore\
I file non hanno estensione e iniziano con UTC–. Se in passato hai utilizzato Geth, Mist o la vecchia app Ethereum Wallet, è qui che si trova la tua chiave.
Come viene crittografato l'archivio delle chiavi
Un keystore V3 non memorizza la password dell’utente, ma la utilizza per derivare una chiave che decrittografa la chiave privata, con un carico di calcolo deliberatamente elevato nel processo. Geth utilizza per impostazione predefinita la funzione di derivazione delle chiavi scrypt (con parametri N, r e p elevati), sebbene alcuni file utilizzino invece PBKDF2; la chiave effettiva viene quindi crittografata con AES-128-CTR e un MAC verifica se una password candidata è corretta. Proprio quella complessa funzione KDF è il motivo per cui il recupero dipende da indizi validi piuttosto che dalla velocità pura: ogni tentativo è oneroso per come è progettato, quindi restringere il campo di ricerca è fondamentale.
Come recuperare una password di Geth
Il recupero consiste in una ricerca mirata e offline della tua password. Leggiamo i parametri KDF dal tuo file keystore, generiamo password candidate sulla base di ciò che ricordi — lunghezza, frammenti, le parole e i numeri che tendi a usare, l’anno e il dispositivo su cui l’hai impostata — e le testiamo su hardware GPU dedicato utilizzando le modalità “Ethereum wallet” di hashcat (15700 per i keystore scrypt, 15600 per PBKDF2). Nel momento in cui una password candidata soddisfa il MAC, la password viene confermata e la chiave privata torna di tua proprietà. Non viene inserito nulla su alcun sito attivo e la tua chiave non viene mai gestita in chiaro finché non ti viene restituita.
Geth, Mist e il keystore della prevendita
È importante sapere quale formato hai effettivamente, perché sono diversi. Il keystore di Geth (V3) è quello che ottieni creando un account nel client. Non è lo stesso del portafoglio della prevendita del 2014, che utilizza un proprio formato encseed: se il tuo file risale alla prevendita, consulta invece quella pagina. La vecchia app Mist / Ethereum Wallet utilizzava internamente lo stesso keystore V3 di Geth, quindi anche questi casi vengono trattati qui. Indicandoci quale client hai utilizzato, ci aiuterai ad applicare immediatamente il metodo corretto.
Perché una password Geth non funziona
La maggior parte dei casi in cui si è “certi che sia corretta” si riduce a piccole differenze: una maiuscola o una cifra finale che si è dimenticata, un carattere speciale o accentato memorizzato con una codifica diversa da quella che si utilizza oggi, oppure una differenza nella disposizione della tastiera rispetto al computer su cui è stato creato l’account. Gli utenti della riga di comando, inoltre, a volte avevano una password salvata con spazi finali o peculiarità di escape della shell. Riproduciamo sistematicamente tutte queste situazioni: la password di solito era corretta, ma non nella forma esatta in cui la stai reinserendo.
Come individuare il keystore su un vecchio computer
Poiché Geth girava su un computer anziché su uno smartphone o su un account in hosting, il file keystore si trova spesso su un dispositivo che non usi da anni: un vecchio portatile, un desktop in disuso, un disco esterno o un backup che hai creato al momento dell’aggiornamento. L’indirizzo dell’account presente nel nome del file ti permette di confermare di aver trovato quello giusto prima di qualsiasi altra cosa. Se l’unità è guasta, è stata formattata o il file è stato cancellato, non è necessariamente la fine: possiamo acquisire un’immagine forense del supporto e estrarne il keystore, per poi recuperare la password dal file ricostruito. Se pensi che il file sia andato perso, non formattare né continuare a utilizzare l’unità: ogni operazione di scrittura riduce le possibilità di recupero. Conserva il supporto e lascia che siamo noi a esaminarlo per primi.
Cosa non possiamo fare
Se il file keystore è andato perso, non c'è nulla da decriptare e nessuno può recuperarlo: la chiave crittografata esiste solo in quel file. Se disponi solo dell'indirizzo pubblico, non è recuperabile. E se davvero non ricordi nulla di una password lunga e completamente casuale, il costo di scrypt potrebbe rendere la ricerca impraticabile; te lo diremo onestamente prima che tu confermi la richiesta. Non chiediamo mai pagamenti anticipati.
Domande frequenti
Di quale file hai bisogno per ripristinare un portafoglio Geth?
Il file JSON dell'archivio chiavi — quello denominato UTC–…–address nella cartella dell'archivio chiavi. Contiene la tua chiave privata crittografata. Senza di esso non c'è nulla da decrittografare.
Dove è salvato il mio keystore Geth?
Su Linux, ~/.ethereum/keystore/; su macOS, ~/Library/Ethereum/keystore/; su Windows, %APPDATA%\Ethereum\keystore\. I file iniziano con UTC– e non hanno estensione.
Ho dimenticato la mia password di Geth: è possibile recuperarla?
Di solito, se si dispone del file keystore e si ricorda almeno in parte la password, leggiamo le impostazioni scrypt o PBKDF2 del file ed eseguiamo una ricerca offline basata sugli indizi fino a quando non viene individuato un candidato corrispondente.
Un keystore Geth è la stessa cosa di un portafoglio di prevendita?
No. Il keystore di Geth utilizza il formato V3, mentre il portafoglio della prevendita del 2014 utilizza il proprio formato encseed. Richiedono metodi diversi: indicaci quale possiedi e provvederemo a indirizzarlo correttamente.
Il mio vecchio file del portafoglio Mist / Ethereum — potete aiutarmi?
Sì. Mist e l'app Ethereum Wallet utilizzavano lo stesso keystore V3 di Geth, quindi il recupero avviene allo stesso modo.
Quanto costa il recupero di Geth?
Basato sul risultato: una percentuale del valore recuperato solo se riusciamo a sbloccare il portafoglio, senza alcun pagamento anticipato.
Non riesci ad accedere a un keystore Geth?
Send us your UTC / V3 keystore file and what you remember of the password. Honest assessment within 24 hours, and you pay only on success. Our experienced technical staff will examine your request and suggest next steps.
