This project is maintained by valerio-vaccaro
La verifica delle firme crittografiche è una pratica di sicurezza fondamentale che ogni utente di software open-source dovrebbe inserire nelle routine delle buone abitudini.
Open source è per sua natura modificabile e ciò significa che chiunque può, a livello teorico, introdurre backdoor, attacchi o codice malevolo nelle applicazioni che usi per esercitarti, intanto che impari il protocollo Bitcoin.
Come utente che sta approfondendo lo studio, hai la possibilità di verificare personalmente se il software scaricato è stato manomesso, e lo dovresti fare prima di installarlo e usarlo.
Prima di iniziare, portiamo anche in Officine Bitcoin un classico delle presentazioni: il meme. Non sarà una presentazione pesante, ma decomprimiamo l’atmosfera già da subito.

Gli sviluppatori rilasciano le nuove versioni di software accompagnandole sempre con una firma crittografica. Significa che - oltre ad aver aggiornato il software - lo rilasciano certificando di averlo vincolato con una specifica impronta digitale. Reminder: la firma digitale prodotta con la chiave privata, è unica e non modificabile.
Tutto ciò di cui hai bisogno è la suite GPG per procedere alla verifica della firma.

.asc, .sig o un checksum.
Qui ci sono due chiavi correlate tra loro: una chiave pubblica e una privata. Come suggeriscono i nomi:
I dati cifrati con la chiave pubblica possono essere decifrati solo dalla chiave privata corrispondente. Ciò consente a chiunque di inviare dati crittografati al proprietario della coppia di chiavi, senza previa condivisione della parte segreta.
La crittografia a chiave pubblica è più lenta della crittografia simmetrica e non è adatta a cifrare dati di grandi dimensioni. Tuttavia, consente la distribuzione sicura delle chiavi di crittografia. Alcuni algoritmi comunemente utilizzati per la crittografia a chiave pubblica includono RSA, ECC, ElGamal e DSA.
Lo sviluppatore rilascia il codice open source, per sua natura non cifrato.
Ne fa un hash crittografico (e questo genera il checksum) e cifra il digest con la sua chiave privata: questo crea la firma, quel file .sig o .asc anticipato prima.
Dopo tale processo, lo sviluppatore carica sul sito o su un repository Github entrambi i file. È lì che inizia il tuo download.

Poi ti servirà la chiave pubblica dello sviluppatore. A volte si trova nel repository Github, a volta su server pubblici (keyserver). Anche se la ricerca può richiedere sforzi, la chiave pubblica è un elemento indispensabile per verificare il software, quindi impegnati per ottenerla.
In caso di difficoltà, fai domande sul gruppo Telegram di Officine Bitcoin, dove troverai le indicazioni per ottenere una specifica chiave pubblica.

Per verificare l’integrità dei dati, il destinatario decifra la firma utilizzando la chiave pubblica del mittente, ottenendo un risultato:
a. i dati sono considerati autentici e non modificati durante il transito. b. i dati sono stati potenzialmente manomessi.
Crittografando il valore hash con la chiave privata, le firme PGP garantiscono che il checksum stesso sia protetto e collegato all’identità del mittente. Ciò impedisce la falsificazione delle firme su dati alterati.
Le firme possono essere utilizzate per verificare qualsiasi cosa: file, e-mail , documenti e download di software . Quando si controlla una firma PGP, si dimostra che i dati provengono realmente da una fonte affidabile e sono integri.
Ed è la verifica di un apk per cellulare che potrai verificare adesso.
Usiamo ad esempio il download di Phoenix, wallet LN non-custodial, così da trattarlo nello specifico in una prossima serata di Officine Bitcoin.
Se sei già stato sul sito di Acinq, lo sviluppatore di Phoenix, sai già che il download è disponibile sugli store ufficiali per Android ed iOS. Magari non ci hai mai fatto caso, ma per Android è disponibile anche il file apk.

Andiamoci! per trovare file apk e Signature che scaricherai con wget.
Nel caso di Phoenix il file che contiene la firma per la verifica è denominato SHA256SUMS.ASC.

Nello stesso repository ci sono anche le indicazioni per scaricare la chiave pubblica corrispondente alla signing key E04E48E72C205463 (impronta digitale unica delle chiavi di Drouinf).
Copia il link e scaricala con wget, oppure segui le istruzioni suggerite nell’apposita sezione del repo.

⚠️La chiave pubblica deve essere importata, oltre che scaricata. ⚠️ Il download dei file deve avvenire nella stessa directory.
Con il terminale, posizionati nella directory dove sono stati scaricati l’apk e il file SHA256SUMS.ASC ed esegui i comandi nell’ordine.


Quando la verifica ha restituito esito positivo, potrai trasferire l’apk sul cellulare e installare l’app.
Ci possono essere diversi motivi per cui la verifica delle firme non è agevole, e sono quasi sempre da imputare al disordine o all’esperienza:
Possono invece capitare altre situazioni, per le quali - anche operando correttamente - la verifica non riesce. È importante verificare l’errore che compare a terminale, copiarlo e iniziare una ricerca su internet per la soluzione.
Se invece utilizzi già Sparrow Wallet, puoi procedere a verificare i download con questo software, il cui download e installazione devono essere preceduti da un’attenta e rigorosa verifica con GPG.
Lancia Sparrow wallet e cerca nel menu Tools -> Verify Downloads.

Si apre un’interfaccia che chiede di inserire i file appena scaricati. Cliccando su Browse si apre il file manager, per caricare ogni file nel campo richiesto.

A volte il form dell’interfaccia si completa da solo. Se non lo fa, riempi tutti i campi con i file appropriati.

L’esito, positivo, è mostrato graficamente dalle spunte verdi e dalla conferma Ready to install + < nome file >.
Se hai partecipato alla presentazione in diretta Telegram, puoi considerarla un ulteriore passo verso la tua personale sovranità (non solo finanziaria). Se te la sei persa non disperare: questi appunti servono appunto per recuperare e, inoltre, devi sapere che la riproporremo ancora su Officine.
Per non perdere la prossima presentazione, unisciti al gruppo Telegram, così da rimanere in aggiornamento costante.

Puoi inoltre cercare il Satoshi Spritz più vicino a te. Un Satoshi Spritz è un meetup locale dove si parla solo di Bitcoin, dove puoi portare le tue domande e farti rispondere da altri bitcoiner esperti. Al link troverai la mappa della penisola.

Infine, se non trovi il meetup vicino a te, puoi approfittare delle dirette settimanali di SatoshiSpritz Connect, un meetup virtuale creato per chi non può partecipare ai Satoshi Spritz, o per aiutare i meetup più piccolini a prendere appunti e trovare ispirazione per le proprie presentazioni.
