Verifica dell'integrità del firmware del COLDCARD
Come verificare firma PGP ed hash del file firmware prima di installarlo sul COLDCARD
In uno degli scenari peggiori, può succedere che un attore malevolo sostituisca il firmware che Coinkite, azienda produttrice del COLDCARD, ha caricato sul proprio sito, con un firmware creato apposta per rubarti i tuoi preziosi satoshi.
Esiste un modo per tutelarsi da questa evenienza, ed oggi lo analizzeremo.
D’altronde, se utilizzi un COLDCARD, probabilmente sei attento alla sicurezza, ed in tal caso potresti reputare conveniente lo sforzo extra che ti porterà alla tranquillità che si ottiene dal sapere che il firmware sia sicuro e corretto.
Questi passaggi ti mostreranno come verificare l'integrità del file firmware su un desktop Windows utilizzando Kleopatra OpenPGP dal bundle GPG4win. Se stai usando una distribuzione Linux, vorrai usare GnuPG. O se stai usando un Mac, vorrai usare GPGtools. Puoi anche guardare questo video tutorial.
In sostanza, si deve salvare il valore dell'hash del file firmware firmato PGP e verificarlo con la chiave pubblica PGP di Doc Hex (programmatore e cofondatore di Coinkite), per poi calcolare autonomamente il valore hash sul file firmware scaricato per conferma che sia identico a quello che Coinkite aveva caricato sul proprio sito.
Ti consiglio fortemente di non saltare questa verifica del file firmware, ne va della sicurezza dei tuoi fondi, in quanto il COLDCARD custodisce le tue chiavi private.
Se invece ti interessa passare alla parte pratica di aggiornamento sul COLDCARD ho preparato questo articolo.
Verifica della firma PGP
Dal sito Coinkite, clicca sul link per scaricare l'ultima versione del firmware nella parte superiore della pagina. Questo scaricherà automaticamente il firmware, un file con estensione .dfu.
Ora clicca sul seguente link, si aprirà un messaggio firmato PGP contenente i valori hash SHA256 di varie versioni del firmware prodotto da Coinkite.
Ora si deve salvare questo messaggio firmato PGP come .asc, mentre lo visualizzi premi ctrl + S: si dovrebbe aprire una finestra pop-up come quella qui sotto. Assicurati di avere l'opzione “Tutti i file (*.*)” selezionata dal menu a tendina “Salva come:”.
Ora puoi salvare il file con l'estensione . asc. Lo puoi lasciare nominato “signatures”.
IMPORTANTE: ripeti l’operazione precedente (ctrl + S mentre visualizzi il messaggio firmato PGP) e salva lo stesso file anche con l’estensione .txt. Ognuno dei due file “signatures.asc” e “signatures.txt” ci servirà in un momento diverso della nostra guida.
Ora apri il software Kleopatra precedentemente installato e clicca su “Nuova coppia di chiavi”. Si aprirà una finestra, inserisci il tuo nome e clicca su OK.
Questa procedura crea una coppia di chiavi privata/pubblica che possiamo usare, tra le altre cose, per certificare altre firme aggiunte, come stiamo per vedere.
Successivamente, è necessario ottenere la chiave PGP pubblica di Doc Hex e importarla nel portachiavi Kleopatra in modo da poterla certificare.
La chiave pubblica di Doc Hex può essere copiata da questo keyserver qui. Salvala mantenendo il nome originale del file “armored-keys.asc”.
In Kleopatra cliccare su “File” → “Importa” e selezionare il file appena scaricato “armored-keys.asc” quindi fare clic su “Apri”. Praticamente stiamo iniziando la fase di certificazione della chiave pubblica di Doc Hex, che verrà così aggiunta al tuo portachiavi. Clicca ora su “Certifica” come vedi nell’immagine qui sotto e procedi con la lettura.
Ora ti si presenterà questa finestra qui sotto, contenente l’Impronta Digitale ID di Doc Hex che, come ci dice la nota di Kleopatra, identifica chiaramente la chiave ed il suo proprietario.
Ora non cliccare ancora su “Certifica”, ma chiediti: come facciamo a verificare che sia effettivamente di Doc Hex? La nostra fonte fidata di riferimento potrebbe essere una telefonata alla persona, un biglietto da visita, oppure, come nel nostro caso dove non conosciamo direttamente Doc Hex, l’accesso e la consultazione del database delle chiavi PGP presente sul sito KeyBase.
È possibile confermare che l'impronta digitale della chiave pubblica appena importata per Doc Hex corrisponde all'impronta digitale dell'account Doc Hex da KeyBase: tieni questa finestra a metà schermo e confrontala con la finestra di Kleopatra, le due impronte digitali devono combaciare per garantirci che sia la sua chiave pubblica.
Ora, su Kleopatra, puoi cliccare “Certifica”.
Ora che hai importato e certificato la chiave di Doc Hex, puoi verificare che il file contenente i valori hash del firmware sia stato effettivamente firmato da Doc Hex. Apri la cartella contenente il file firmato “signatures.asc”, clicca con il pulsante destro del mouse su di esso, quindi seleziona “More GpgEX options” → “Verify”.
Kleopatra inizierà a calcolare la veridicità della firma e, dopo pochi istanti, dovresti visualizzare una finestra di dialogo che conferma che la firma corrisponde alla chiave pubblica che hai certificato.
A questo punto, hai verificato che il file firmato PGP, contenente i valori hash di riferimento per i vari firmware, sia effettivamente stato firmato da Doc Hex, e che rappresenta quindi una fonte legittima di informazioni.
Ma ora è necessario verificare che il file del firmware .dfu restituisca lo stesso valore hash di quello contenuto nel file firmato e appena verificato.
Conferma dell’hash del firmware
Apri il file signatures.txt precedentemente scaricato così da poterne vedere il contenuto. Apri il Prompt dei comandi di Windows cmd (Start → digita: cmd → premi “invio” sulla tastiera) e aggiusta le finestre in modo da vedere il file del firmware .dfu, il file signatures.txt aperto ed il Prompt dei comandi, come di seguito:
Nel Prompt dei comandi digita: “certutil -hashfile ” (non dimenticarti dello spazio dopo -hashfile), così:
Ora clicca e tieni premuto il tasto sx del mouse sul file firmware “2023-10-10T1735-v5.2.0-mk4-coldcard.dfu” e trascinalo all’interno della finestra del Prompt dei comandi. Rilascia il tasto sinistro, dovresti vedere il percorso del file comparire sotto forma di testo (il tuo percorso file sarà chiaramente diverso dal mio).
Ora digita: “ SHA256” (non dimenticarti dello spazio prima della scritta SHA256).
Se hai seguito bene le istruzioni, dovresti trovarti davanti alla seguente finestra:
Perfetto. Lancia il comando premendo il tasto “invio” sulla tastiera.
Se è stato fatto tutto correttamente, vedrai la conferma a display, con il valore di hash restituito dal Prompt dei comandi come di seguito (evidenziato nel rettangolo rosso):
Visivamente compara il valore di hash appena calcolato che vedi nel Prompt dei comandi, con quello che il file signatures.txt ci dice che dovrebbe essere, cercando il nome del file del firmware nello stesso file (sottolineato in verde):
I due hash corrispondono! Questo significa che il file del firmware scaricato dal sito di Coinkite corrisponde esattamente al file che Coinkite aveva caricato sul proprio sito.
Infatti, se anche solo una virgola del codice che compone il file .dfu fosse differente, questa verifica avrebbe restituito un hash COMPLETAMENTE DIVERSO!
Nessun attore malevolo ha hackerato Coinkite e sostituito la versione originale del firmware con una fraudolenta, e quindi abbiamo appurato che questo firmware è sicuro da installare sul nostro COLDCARD. Vedremo qui come farlo.
Se questo materiale ti è stato utile, fammelo sapere con un tip via Lightning Network a:
bitbaldo@ln.tips
⚡️bitbaldo@getalby.com
Utilizza RELAI per comprare i tuoi Bitcoin!
Scarica l’app cliccando qui e utilizza il codice MATT per risparmiare lo 0,5% in commissioni.
Grazie!