1*4882a593Smuzhiyun.. include:: ../disclaimer-ita.rst 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun:Original: :ref:`Documentation/process/maintainer-pgp-guide.rst <pgpguide>` 4*4882a593Smuzhiyun:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun.. _it_pgpguide: 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun========================================= 9*4882a593SmuzhiyunLa guida a PGP per manutentori del kernel 10*4882a593Smuzhiyun========================================= 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun:Author: Konstantin Ryabitsev <konstantin@linuxfoundation.org> 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunQuesto documento è destinato agli sviluppatori del kernel Linux, in particolar 15*4882a593Smuzhiyunmodo ai manutentori. Contiene degli approfondimenti riguardo informazioni che 16*4882a593Smuzhiyunsono state affrontate in maniera più generale nella sezione 17*4882a593Smuzhiyun"`Protecting Code Integrity`_" pubblicata dalla Linux Foundation. 18*4882a593SmuzhiyunPer approfondire alcuni argomenti trattati in questo documento è consigliato 19*4882a593Smuzhiyunleggere il documento sopraindicato 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun.. _`Protecting Code Integrity`: https://github.com/lfit/itpol/blob/master/protecting-code-integrity.md 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunIl ruolo di PGP nello sviluppo del kernel Linux 24*4882a593Smuzhiyun=============================================== 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunPGP aiuta ad assicurare l'integrità del codice prodotto dalla comunità 27*4882a593Smuzhiyundi sviluppo del kernel e, in secondo luogo, stabilisce canali di comunicazione 28*4882a593Smuzhiyunaffidabili tra sviluppatori attraverso lo scambio di email firmate con PGP. 29*4882a593Smuzhiyun 30*4882a593SmuzhiyunIl codice sorgente del kernel Linux è disponibile principalmente in due 31*4882a593Smuzhiyunformati: 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun- repositori distribuiti di sorgenti (git) 34*4882a593Smuzhiyun- rilasci periodici di istantanee (archivi tar) 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunSia i repositori git che gli archivi tar portano le firme PGP degli 37*4882a593Smuzhiyunsviluppatori che hanno creato i rilasci ufficiali del kernel. Queste firme 38*4882a593Smuzhiyunoffrono una garanzia crittografica che le versioni scaricabili rese disponibili 39*4882a593Smuzhiyunvia kernel.org, o altri portali, siano identiche a quelle che gli sviluppatori 40*4882a593Smuzhiyunhanno sul loro posto di lavoro. A tal scopo: 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun- i repositori git forniscono firme PGP per ogni tag 43*4882a593Smuzhiyun- gli archivi tar hanno firme separate per ogni archivio 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun.. _it_devs_not_infra: 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunFidatevi degli sviluppatori e non dell'infrastruttura 48*4882a593Smuzhiyun----------------------------------------------------- 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunFin dal 2011, quando i sistemi di kernel.org furono compromessi, il principio 51*4882a593Smuzhiyungenerale del progetto Kernel Archives è stato quello di assumere che qualsiasi 52*4882a593Smuzhiyunparte dell'infrastruttura possa essere compromessa in ogni momento. Per questa 53*4882a593Smuzhiyunragione, gli amministratori hanno intrapreso deliberatemene dei passi per 54*4882a593Smuzhiyunenfatizzare che la fiducia debba risiedere sempre negli sviluppatori e mai nel 55*4882a593Smuzhiyuncodice che gestisce l'infrastruttura, indipendentemente da quali che siano le 56*4882a593Smuzhiyunpratiche di sicurezza messe in atto. 57*4882a593Smuzhiyun 58*4882a593SmuzhiyunIl principio sopra indicato è la ragione per la quale è necessaria questa 59*4882a593Smuzhiyunguida. Vogliamo essere sicuri che il riporre la fiducia negli sviluppatori 60*4882a593Smuzhiyunnon sia fatto semplicemente per incolpare qualcun'altro per future falle di 61*4882a593Smuzhiyunsicurezza. L'obiettivo è quello di fornire una serie di linee guida che gli 62*4882a593Smuzhiyunsviluppatori possano seguire per creare un ambiente di lavoro sicuro e 63*4882a593Smuzhiyunsalvaguardare le chiavi PGP usate nello stabilire l'integrità del kernel Linux 64*4882a593Smuzhiyunstesso. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun.. _it_pgp_tools: 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunStrumenti PGP 69*4882a593Smuzhiyun============= 70*4882a593Smuzhiyun 71*4882a593SmuzhiyunUsare GnuPG v2 72*4882a593Smuzhiyun-------------- 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunLa vostra distribuzione potrebbe avere già installato GnuPG, dovete solo 75*4882a593Smuzhiyunverificare che stia utilizzando la versione 2.x e non la serie 1.4 -- 76*4882a593Smuzhiyunmolte distribuzioni forniscono entrambe, di base il comando ''gpg'' 77*4882a593Smuzhiyuninvoca GnuPG v.1. Per controllate usate:: 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun $ gpg --version | head -n1 80*4882a593Smuzhiyun 81*4882a593SmuzhiyunSe visualizzate ``gpg (GnuPG) 1.4.x``, allora state usando GnuPG v.1. 82*4882a593SmuzhiyunProvate il comando ``gpg2`` (se non lo avete, potreste aver bisogno 83*4882a593Smuzhiyundi installare il pacchetto gnupg2):: 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun $ gpg2 --version | head -n1 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunSe visualizzate ``gpg (GnuPG) 2.x.x``, allora siete pronti a partire. 88*4882a593SmuzhiyunQuesta guida assume che abbiate la versione 2.2.(o successiva) di GnuPG. 89*4882a593SmuzhiyunSe state usando la versione 2.0, alcuni dei comandi indicati qui non 90*4882a593Smuzhiyunfunzioneranno, in questo caso considerate un aggiornamento all'ultima versione, 91*4882a593Smuzhiyunla 2.2. Versioni di gnupg-2.1.11 e successive dovrebbero essere compatibili 92*4882a593Smuzhiyunper gli obiettivi di questa guida. 93*4882a593Smuzhiyun 94*4882a593SmuzhiyunSe avete entrambi i comandi: ``gpg`` e ``gpg2``, assicuratevi di utilizzare 95*4882a593Smuzhiyunsempre la versione V2, e non quella vecchia. Per evitare errori potreste creare 96*4882a593Smuzhiyunun alias:: 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun $ alias gpg=gpg2 99*4882a593Smuzhiyun 100*4882a593SmuzhiyunPotete mettere questa opzione nel vostro ``.bashrc`` in modo da essere sicuri. 101*4882a593Smuzhiyun 102*4882a593SmuzhiyunConfigurare le opzioni di gpg-agent 103*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104*4882a593Smuzhiyun 105*4882a593SmuzhiyunL'agente GnuPG è uno strumento di aiuto che partirà automaticamente ogni volta 106*4882a593Smuzhiyunche userete il comando ``gpg`` e funzionerà in background con l'obiettivo di 107*4882a593Smuzhiyunindividuare la passphrase. Ci sono due opzioni che dovreste conoscere 108*4882a593Smuzhiyunper personalizzare la scadenza della passphrase nella cache: 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun- ``default-cache-ttl`` (secondi): Se usate ancora la stessa chiave prima 111*4882a593Smuzhiyun che il time-to-live termini, il conto alla rovescia si resetterà per un 112*4882a593Smuzhiyun altro periodo. Di base è di 600 (10 minuti). 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun- ``max-cache-ttl`` (secondi): indipendentemente da quanto sia recente l'ultimo 115*4882a593Smuzhiyun uso della chiave da quando avete inserito la passphrase, se il massimo 116*4882a593Smuzhiyun time-to-live è scaduto, dovrete reinserire nuovamente la passphrase. 117*4882a593Smuzhiyun Di base è di 30 minuti. 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunSe ritenete entrambe questi valori di base troppo corti (o troppo lunghi), 120*4882a593Smuzhiyunpotete creare il vostro file ``~/.gnupg/gpg-agent.conf`` ed impostare i vostri 121*4882a593Smuzhiyunvalori:: 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun # set to 30 minutes for regular ttl, and 2 hours for max ttl 124*4882a593Smuzhiyun default-cache-ttl 1800 125*4882a593Smuzhiyun max-cache-ttl 7200 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun.. note:: 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun Non è più necessario far partire l'agente gpg manualmente all'inizio della 130*4882a593Smuzhiyun vostra sessione. Dovreste controllare i file rc per rimuovere tutto ciò che 131*4882a593Smuzhiyun riguarda vecchie le versioni di GnuPG, poiché potrebbero non svolgere più 132*4882a593Smuzhiyun bene il loro compito. 133*4882a593Smuzhiyun 134*4882a593SmuzhiyunImpostare un *refresh* con cronjob 135*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136*4882a593Smuzhiyun 137*4882a593SmuzhiyunPotreste aver bisogno di rinfrescare regolarmente il vostro portachiavi in 138*4882a593Smuzhiyunmodo aggiornare le chiavi pubbliche di altre persone, lavoro che è svolto 139*4882a593Smuzhiyunal meglio con un cronjob giornaliero:: 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun @daily /usr/bin/gpg2 --refresh >/dev/null 2>&1 142*4882a593Smuzhiyun 143*4882a593SmuzhiyunControllate il percorso assoluto del vostro comando ``gpg`` o ``gpg2`` e usate 144*4882a593Smuzhiyunil comando ``gpg2`` se per voi ``gpg`` corrisponde alla versione GnuPG v.1. 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun.. _it_master_key: 147*4882a593Smuzhiyun 148*4882a593SmuzhiyunProteggere la vostra chiave PGP primaria 149*4882a593Smuzhiyun======================================== 150*4882a593Smuzhiyun 151*4882a593SmuzhiyunQuesta guida parte dal presupposto che abbiate già una chiave PGP che usate 152*4882a593Smuzhiyunper lo sviluppo del kernel Linux. Se non ne avete ancora una, date uno sguardo 153*4882a593Smuzhiyunal documento "`Protecting Code Integrity`_" che abbiamo menzionato prima. 154*4882a593Smuzhiyun 155*4882a593SmuzhiyunDovreste inoltre creare una nuova chiave se quella attuale è inferiore a 2048 156*4882a593Smuzhiyunbit (RSA). 157*4882a593Smuzhiyun 158*4882a593SmuzhiyunChiave principale o sottochiavi 159*4882a593Smuzhiyun------------------------------- 160*4882a593Smuzhiyun 161*4882a593SmuzhiyunLe sottochiavi sono chiavi PGP totalmente indipendenti, e sono collegate alla 162*4882a593Smuzhiyunchiave principale attraverso firme certificate. È quindi importante 163*4882a593Smuzhiyuncomprendere i seguenti punti: 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun1. Non ci sono differenze tecniche tra la chiave principale e la sottochiave. 166*4882a593Smuzhiyun2. In fesa di creazione, assegniamo limitazioni funzionali ad ogni chiave 167*4882a593Smuzhiyun assegnando capacità specifiche. 168*4882a593Smuzhiyun3. Una chiave PGP può avere 4 capacità: 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun - **[S]** può essere usata per firmare 171*4882a593Smuzhiyun - **[E]** può essere usata per criptare 172*4882a593Smuzhiyun - **[A]** può essere usata per autenticare 173*4882a593Smuzhiyun - **[C]** può essere usata per certificare altre chiavi 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun4. Una singola chiave può avere più capacità 176*4882a593Smuzhiyun5. Una sottochiave è completamente indipendente dalla chiave principale. 177*4882a593Smuzhiyun Un messaggio criptato con la sottochiave non può essere decrittato con 178*4882a593Smuzhiyun quella principale. Se perdete la vostra sottochiave privata, non può 179*4882a593Smuzhiyun essere rigenerata in nessun modo da quella principale. 180*4882a593Smuzhiyun 181*4882a593SmuzhiyunLa chiave con capacità **[C]** (certify) è identificata come la chiave 182*4882a593Smuzhiyunprincipale perché è l'unica che può essere usata per indicare la relazione 183*4882a593Smuzhiyuncon altre chiavi. Solo la chiave **[C]** può essere usata per: 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun- Aggiungere o revocare altre chiavi (sottochiavi) che hanno capacità S/E/A 186*4882a593Smuzhiyun- Aggiungere, modificare o eliminare le identità (unids) associate alla chiave 187*4882a593Smuzhiyun- Aggiungere o modificare la data di termine di sé stessa o di ogni sottochiave 188*4882a593Smuzhiyun- Firmare le chiavi di altre persone a scopo di creare una rete di fiducia 189*4882a593Smuzhiyun 190*4882a593SmuzhiyunDi base, alla creazione di nuove chiavi, GnuPG genera quanto segue: 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun- Una chiave madre che porta sia la capacità di certificazione che quella 193*4882a593Smuzhiyun di firma (**[SC]**) 194*4882a593Smuzhiyun- Una sottochiave separata con capacità di criptaggio (**[E]**) 195*4882a593Smuzhiyun 196*4882a593SmuzhiyunSe avete usato i parametri di base per generare la vostra chiave, quello 197*4882a593Smuzhiyunsarà il risultato. Potete verificarlo utilizzando ``gpg --list-secret-keys``, 198*4882a593Smuzhiyunper esempio:: 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun sec rsa2048 2018-01-23 [SC] [expires: 2020-01-23] 201*4882a593Smuzhiyun 000000000000000000000000AAAABBBBCCCCDDDD 202*4882a593Smuzhiyun uid [ultimate] Alice Dev <adev@kernel.org> 203*4882a593Smuzhiyun ssb rsa2048 2018-01-23 [E] [expires: 2020-01-23] 204*4882a593Smuzhiyun 205*4882a593SmuzhiyunQualsiasi chiave che abbia la capacità **[C]** è la vostra chiave madre, 206*4882a593Smuzhiyunindipendentemente da quali altre capacità potreste averle assegnato. 207*4882a593Smuzhiyun 208*4882a593SmuzhiyunLa lunga riga sotto la voce ``sec`` è la vostra impronta digitale -- 209*4882a593Smuzhiyunnegli esempi che seguono, quando vedere ``[fpr]`` ci si riferisce a questa 210*4882a593Smuzhiyunstringa di 40 caratteri. 211*4882a593Smuzhiyun 212*4882a593SmuzhiyunAssicuratevi che la vostra passphrase sia forte 213*4882a593Smuzhiyun----------------------------------------------- 214*4882a593Smuzhiyun 215*4882a593SmuzhiyunGnuPG utilizza le passphrases per criptare la vostra chiave privata prima 216*4882a593Smuzhiyundi salvarla sul disco. In questo modo, anche se il contenuto della vostra 217*4882a593Smuzhiyuncartella ``.gnupg`` venisse letto o trafugato nella sia interezza, gli 218*4882a593Smuzhiyunattaccanti non potrebbero comunque utilizzare le vostre chiavi private senza 219*4882a593Smuzhiyunaver prima ottenuto la passphrase per decriptarle. 220*4882a593Smuzhiyun 221*4882a593SmuzhiyunÈ assolutamente essenziale che le vostre chiavi private siano protette da 222*4882a593Smuzhiyununa passphrase forte. Per impostarla o cambiarla, usate:: 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun $ gpg --change-passphrase [fpr] 225*4882a593Smuzhiyun 226*4882a593SmuzhiyunCreate una sottochiave di firma separata 227*4882a593Smuzhiyun---------------------------------------- 228*4882a593Smuzhiyun 229*4882a593SmuzhiyunIl nostro obiettivo è di proteggere la chiave primaria spostandola su un 230*4882a593Smuzhiyundispositivo sconnesso dalla rete, dunque se avete solo una chiave combinata 231*4882a593Smuzhiyun**[SC]** allora dovreste creare una sottochiave di firma separata:: 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun $ gpg --quick-add-key [fpr] ed25519 sign 234*4882a593Smuzhiyun 235*4882a593SmuzhiyunRicordate di informare il keyserver del vostro cambiamento, cosicché altri 236*4882a593Smuzhiyunpossano ricevere la vostra nuova sottochiave:: 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun $ gpg --send-key [fpr] 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun.. note:: Supporto ECC in GnuPG 241*4882a593Smuzhiyun GnuPG 2.1 e successivi supportano pienamente *Elliptic Curve Cryptography*, 242*4882a593Smuzhiyun con la possibilità di combinare sottochiavi ECC con le tradizionali chiavi 243*4882a593Smuzhiyun primarie RSA. Il principale vantaggio della crittografia ECC è che è molto 244*4882a593Smuzhiyun più veloce da calcolare e crea firme più piccole se confrontate byte per 245*4882a593Smuzhiyun byte con le chiavi RSA a più di 2048 bit. A meno che non pensiate di 246*4882a593Smuzhiyun utilizzare un dispositivo smartcard che non supporta le operazioni ECC, vi 247*4882a593Smuzhiyun raccomandiamo ti creare sottochiavi di firma ECC per il vostro lavoro col 248*4882a593Smuzhiyun kernel. 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun Se per qualche ragione preferite rimanere con sottochiavi RSA, nel comando 251*4882a593Smuzhiyun precedente, sostituite "ed25519" con "rsa2048". In aggiunta, se avete 252*4882a593Smuzhiyun intenzione di usare un dispositivo hardware che non supporta le chiavi 253*4882a593Smuzhiyun ED25519 ECC, come la Nitrokey Pro o la Yubikey, allora dovreste usare 254*4882a593Smuzhiyun "nistp256" al posto di "ed25519". 255*4882a593Smuzhiyun 256*4882a593SmuzhiyunCopia di riserva della chiave primaria per gestire il recupero da disastro 257*4882a593Smuzhiyun-------------------------------------------------------------------------- 258*4882a593Smuzhiyun 259*4882a593SmuzhiyunMaggiori sono le firme di altri sviluppatori che vengono applicate alla vostra, 260*4882a593Smuzhiyunmaggiori saranno i motivi per avere una copia di riserva che non sia digitale, 261*4882a593Smuzhiyunal fine di effettuare un recupero da disastro. 262*4882a593Smuzhiyun 263*4882a593SmuzhiyunIl modo migliore per creare una copia fisica della vostra chiave privata è 264*4882a593Smuzhiyunl'uso del programma ``paperkey``. Consultate ``man paperkey`` per maggiori 265*4882a593Smuzhiyundettagli sul formato dell'output ed i suoi punti di forza rispetto ad altre 266*4882a593Smuzhiyunsoluzioni. Paperkey dovrebbe essere già pacchettizzato per la maggior parte 267*4882a593Smuzhiyundelle distribuzioni. 268*4882a593Smuzhiyun 269*4882a593SmuzhiyunEseguite il seguente comando per creare una copia fisica di riserva della 270*4882a593Smuzhiyunvostra chiave privata:: 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun $ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txt 273*4882a593Smuzhiyun 274*4882a593SmuzhiyunStampate il file (o fate un pipe direttamente verso lpr), poi prendete 275*4882a593Smuzhiyununa penna e scrivete la passphare sul margine del foglio. **Questo è 276*4882a593Smuzhiyuncaldamente consigliato** perché la copia cartacea è comunque criptata con 277*4882a593Smuzhiyunla passphrase, e se mai doveste cambiarla non vi ricorderete qual'era al 278*4882a593Smuzhiyunmomento della creazione di quella copia -- *garantito*. 279*4882a593Smuzhiyun 280*4882a593SmuzhiyunMettete la copia cartacea e la passphrase scritta a mano in una busta e 281*4882a593Smuzhiyunmettetela in un posto sicuro e ben protetto, preferibilmente fuori casa, 282*4882a593Smuzhiyunmagari in una cassetta di sicurezza in banca. 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun.. note:: 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun Probabilmente la vostra stampante non è più quello stupido dispositivo 287*4882a593Smuzhiyun connesso alla porta parallela, ma dato che il suo output è comunque 288*4882a593Smuzhiyun criptato con la passphrase, eseguire la stampa in un sistema "cloud" 289*4882a593Smuzhiyun moderno dovrebbe essere comunque relativamente sicuro. Un'opzione potrebbe 290*4882a593Smuzhiyun essere quella di cambiare la passphrase della vostra chiave primaria 291*4882a593Smuzhiyun subito dopo aver finito con paperkey. 292*4882a593Smuzhiyun 293*4882a593SmuzhiyunCopia di riserva di tutta la cartella GnuPG 294*4882a593Smuzhiyun------------------------------------------- 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun.. warning:: 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun **!!!Non saltate questo passo!!!** 299*4882a593Smuzhiyun 300*4882a593SmuzhiyunQuando avete bisogno di recuperare le vostre chiavi PGP è importante avere 301*4882a593Smuzhiyununa copia di riserva pronta all'uso. Questo sta su un diverso piano di 302*4882a593Smuzhiyunprontezza rispetto al recupero da disastro che abbiamo risolto con 303*4882a593Smuzhiyun``paperkey``. Vi affiderete a queste copie esterne quando dovreste usare la 304*4882a593Smuzhiyunvostra chiave Certify -- ovvero quando fate modifiche alle vostre chiavi o 305*4882a593Smuzhiyunfirmate le chiavi di altre persone ad una conferenza o ad un gruppo d'incontro. 306*4882a593Smuzhiyun 307*4882a593SmuzhiyunIncominciate con una piccola chiavetta di memoria USB (preferibilmente due) 308*4882a593Smuzhiyunche userete per le copie di riserva. Dovrete criptarle usando LUKS -- fate 309*4882a593Smuzhiyunriferimento alla documentazione della vostra distribuzione per capire come 310*4882a593Smuzhiyunfare. 311*4882a593Smuzhiyun 312*4882a593SmuzhiyunPer la passphrase di criptazione, potete usare la stessa della vostra chiave 313*4882a593Smuzhiyunprimaria. 314*4882a593Smuzhiyun 315*4882a593SmuzhiyunUna volta che il processo di criptazione è finito, reinserite il disco USB ed 316*4882a593Smuzhiyunassicurativi che venga montato correttamente. Copiate interamente la cartella 317*4882a593Smuzhiyun``.gnugp`` nel disco criptato:: 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun $ cp -a ~/.gnupg /media/disk/foo/gnupg-backup 320*4882a593Smuzhiyun 321*4882a593SmuzhiyunOra dovreste verificare che tutto continui a funzionare:: 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun $ gpg --homedir=/media/disk/foo/gnupg-backup --list-key [fpr] 324*4882a593Smuzhiyun 325*4882a593SmuzhiyunSe non vedete errori, allora dovreste avere fatto tutto con successo. 326*4882a593SmuzhiyunSmontate il disco USB, etichettatelo per bene di modo da evitare di 327*4882a593Smuzhiyundistruggerne il contenuto non appena vi serve una chiavetta USB a caso, ed 328*4882a593Smuzhiyuninfine mettetelo in un posto sicuro -- ma non troppo lontano, perché vi servirà 329*4882a593Smuzhiyundi tanto in tanto per modificare le identità, aggiungere o revocare 330*4882a593Smuzhiyunsottochiavi, o firmare le chiavi di altre persone. 331*4882a593Smuzhiyun 332*4882a593SmuzhiyunTogliete la chiave primaria dalla vostra home 333*4882a593Smuzhiyun--------------------------------------------- 334*4882a593Smuzhiyun 335*4882a593SmuzhiyunI file che si trovano nella vostra cartella home non sono poi così ben protetti 336*4882a593Smuzhiyuncome potreste pensare. Potrebbero essere letti o trafugati in diversi modi: 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun- accidentalmente quando fate una rapida copia della cartella home per 339*4882a593Smuzhiyun configurare una nuova postazione 340*4882a593Smuzhiyun- da un amministratore di sistema negligente o malintenzionato 341*4882a593Smuzhiyun- attraverso copie di riserva insicure 342*4882a593Smuzhiyun- attraverso malware installato in alcune applicazioni (browser, lettori PDF, 343*4882a593Smuzhiyun eccetera) 344*4882a593Smuzhiyun- attraverso coercizione quando attraversate confini internazionali 345*4882a593Smuzhiyun 346*4882a593SmuzhiyunProteggere la vostra chiave con una buona passphare aiuta notevolmente a 347*4882a593Smuzhiyunridurre i rischi elencati qui sopra, ma le passphrase possono essere scoperte 348*4882a593Smuzhiyunattraverso i keylogger, il shoulder-surfing, o altri modi. Per questi motivi, 349*4882a593Smuzhiyunnella configurazione si raccomanda di rimuove la chiave primaria dalla vostra 350*4882a593Smuzhiyuncartella home e la si archivia su un dispositivo disconnesso. 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun.. warning:: 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun Per favore, fate riferimento alla sezione precedente e assicuratevi 355*4882a593Smuzhiyun di aver fatto una copia di riserva totale della cartella GnuPG. Quello 356*4882a593Smuzhiyun che stiamo per fare renderà la vostra chiave inutile se non avete delle 357*4882a593Smuzhiyun copie di riserva utilizzabili! 358*4882a593Smuzhiyun 359*4882a593SmuzhiyunPer prima cosa, identificate il keygrip della vostra chiave primaria:: 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun $ gpg --with-keygrip --list-key [fpr] 362*4882a593Smuzhiyun 363*4882a593SmuzhiyunL'output assomiglierà a questo:: 364*4882a593Smuzhiyun 365*4882a593Smuzhiyun pub rsa2048 2018-01-24 [SC] [expires: 2020-01-24] 366*4882a593Smuzhiyun 000000000000000000000000AAAABBBBCCCCDDDD 367*4882a593Smuzhiyun Keygrip = 1111000000000000000000000000000000000000 368*4882a593Smuzhiyun uid [ultimate] Alice Dev <adev@kernel.org> 369*4882a593Smuzhiyun sub rsa2048 2018-01-24 [E] [expires: 2020-01-24] 370*4882a593Smuzhiyun Keygrip = 2222000000000000000000000000000000000000 371*4882a593Smuzhiyun sub ed25519 2018-01-24 [S] 372*4882a593Smuzhiyun Keygrip = 3333000000000000000000000000000000000000 373*4882a593Smuzhiyun 374*4882a593SmuzhiyunTrovate la voce keygrid che si trova sotto alla riga ``pub`` (appena sotto 375*4882a593Smuzhiyunall'impronta digitale della chiave primaria). Questo corrisponderà direttamente 376*4882a593Smuzhiyunad un file nella cartella ``~/.gnupg``:: 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun $ cd ~/.gnupg/private-keys-v1.d 379*4882a593Smuzhiyun $ ls 380*4882a593Smuzhiyun 1111000000000000000000000000000000000000.key 381*4882a593Smuzhiyun 2222000000000000000000000000000000000000.key 382*4882a593Smuzhiyun 3333000000000000000000000000000000000000.key 383*4882a593Smuzhiyun 384*4882a593SmuzhiyunQuello che dovrete fare è rimuovere il file .key che corrisponde al keygrip 385*4882a593Smuzhiyundella chiave primaria:: 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun $ cd ~/.gnupg/private-keys-v1.d 388*4882a593Smuzhiyun $ rm 1111000000000000000000000000000000000000.key 389*4882a593Smuzhiyun 390*4882a593SmuzhiyunOra, se eseguite il comando ``--list-secret-keys``, vedrete che la chiave 391*4882a593Smuzhiyunprimaria non compare più (il simbolo ``#`` indica che non è disponibile):: 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun $ gpg --list-secret-keys 394*4882a593Smuzhiyun sec# rsa2048 2018-01-24 [SC] [expires: 2020-01-24] 395*4882a593Smuzhiyun 000000000000000000000000AAAABBBBCCCCDDDD 396*4882a593Smuzhiyun uid [ultimate] Alice Dev <adev@kernel.org> 397*4882a593Smuzhiyun ssb rsa2048 2018-01-24 [E] [expires: 2020-01-24] 398*4882a593Smuzhiyun ssb ed25519 2018-01-24 [S] 399*4882a593Smuzhiyun 400*4882a593SmuzhiyunDovreste rimuovere anche i file ``secring.gpg`` che si trovano nella cartella 401*4882a593Smuzhiyun``~/.gnupg``, in quanto rimasugli delle versioni precedenti di GnuPG. 402*4882a593Smuzhiyun 403*4882a593SmuzhiyunSe non avete la cartella "private-keys-v1.d" 404*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405*4882a593Smuzhiyun 406*4882a593SmuzhiyunSe non avete la cartella ``~/.gnupg/private-keys-v1.d``, allora le vostre 407*4882a593Smuzhiyunchiavi segrete sono ancora salvate nel vecchio file ``secring.gpg`` usato 408*4882a593Smuzhiyunda GnuPG v1. Effettuare una qualsiasi modifica alla vostra chiave, come 409*4882a593Smuzhiyuncambiare la passphare o aggiungere una sottochiave, dovrebbe convertire 410*4882a593Smuzhiyunautomaticamente il vecchio formato ``secring.gpg``nel nuovo 411*4882a593Smuzhiyun``private-keys-v1.d``. 412*4882a593Smuzhiyun 413*4882a593SmuzhiyunUna volta che l'avete fatto, assicuratevi di rimuovere il file ``secring.gpg``, 414*4882a593Smuzhiyunche continua a contenere la vostra chiave privata. 415*4882a593Smuzhiyun 416*4882a593Smuzhiyun.. _it_smartcards: 417*4882a593Smuzhiyun 418*4882a593SmuzhiyunSpostare le sottochiavi in un apposito dispositivo criptato 419*4882a593Smuzhiyun=========================================================== 420*4882a593Smuzhiyun 421*4882a593SmuzhiyunNonostante la chiave primaria sia ora al riparo da occhi e mani indiscrete, 422*4882a593Smuzhiyunle sottochiavi si trovano ancora nella vostra cartella home. Chiunque riesca 423*4882a593Smuzhiyuna mettere le sue mani su quelle chiavi riuscirà a decriptare le vostre 424*4882a593Smuzhiyuncomunicazioni o a falsificare le vostre firme (se conoscono la passphrase). 425*4882a593SmuzhiyunInoltre, ogni volta che viene fatta un'operazione con GnuPG, le chiavi vengono 426*4882a593Smuzhiyuncaricate nella memoria di sistema e potrebbero essere rubate con l'uso di 427*4882a593Smuzhiyunmalware sofisticati (pensate a Meltdown e a Spectre). 428*4882a593Smuzhiyun 429*4882a593SmuzhiyunIl miglior modo per proteggere le proprie chiave è di spostarle su un 430*4882a593Smuzhiyundispositivo specializzato in grado di effettuare operazioni smartcard. 431*4882a593Smuzhiyun 432*4882a593SmuzhiyunI benefici di una smartcard 433*4882a593Smuzhiyun--------------------------- 434*4882a593Smuzhiyun 435*4882a593SmuzhiyunUna smartcard contiene un chip crittografico che è capace di immagazzinare 436*4882a593Smuzhiyunle chiavi private ed effettuare operazioni crittografiche direttamente sulla 437*4882a593Smuzhiyuncarta stessa. Dato che la chiave non lascia mai la smartcard, il sistema 438*4882a593Smuzhiyunoperativo usato sul computer non sarà in grado di accedere alle chiavi. 439*4882a593SmuzhiyunQuesto è molto diverso dai dischi USB criptati che abbiamo usato allo scopo di 440*4882a593Smuzhiyunavere una copia di riserva sicura -- quando il dispositivo USB è connesso e 441*4882a593Smuzhiyunmontato, il sistema operativo potrà accedere al contenuto delle chiavi private. 442*4882a593Smuzhiyun 443*4882a593SmuzhiyunL'uso di un disco USB criptato non può sostituire le funzioni di un dispositivo 444*4882a593Smuzhiyuncapace di operazioni di tipo smartcard. 445*4882a593Smuzhiyun 446*4882a593SmuzhiyunDispositivi smartcard disponibili 447*4882a593Smuzhiyun--------------------------------- 448*4882a593Smuzhiyun 449*4882a593SmuzhiyunA meno che tutti i vostri computer dispongano di lettori smartcard, il modo 450*4882a593Smuzhiyunpiù semplice è equipaggiarsi di un dispositivo USB specializzato che 451*4882a593Smuzhiyunimplementi le funzionalità delle smartcard. Sul mercato ci sono diverse 452*4882a593Smuzhiyunsoluzioni disponibili: 453*4882a593Smuzhiyun 454*4882a593Smuzhiyun- `Nitrokey Start`_: è Open hardware e Free Software, è basata sul progetto 455*4882a593Smuzhiyun `GnuK`_ della FSIJ. Questo è uno dei pochi dispositivi a supportare le chiavi 456*4882a593Smuzhiyun ECC ED25519, ma offre meno funzionalità di sicurezza (come la resistenza 457*4882a593Smuzhiyun alla manomissione o alcuni attacchi ad un canale laterale). 458*4882a593Smuzhiyun- `Nitrokey Pro 2`_: è simile alla Nitrokey Start, ma è più resistente alla 459*4882a593Smuzhiyun manomissione e offre più funzionalità di sicurezza. La Pro 2 supporta la 460*4882a593Smuzhiyun crittografia ECC (NISTP). 461*4882a593Smuzhiyun- `Yubikey 5`_: l'hardware e il software sono proprietari, ma è più economica 462*4882a593Smuzhiyun della Nitrokey Pro ed è venduta anche con porta USB-C il che è utile con i 463*4882a593Smuzhiyun computer portatili più recenti. In aggiunta, offre altre funzionalità di 464*4882a593Smuzhiyun sicurezza come FIDO, U2F, e ora supporta anche le chiavi ECC (NISTP) 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun`Su LWN c'è una buona recensione`_ dei modelli elencati qui sopra e altri. 467*4882a593SmuzhiyunLa scelta dipenderà dal costo, dalla disponibilità nella vostra area 468*4882a593Smuzhiyungeografica e vostre considerazioni sull'hardware aperto/proprietario. 469*4882a593Smuzhiyun 470*4882a593SmuzhiyunSe volete usare chiavi ECC, la vostra migliore scelta sul mercato è la 471*4882a593SmuzhiyunNitrokey Start. 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun.. _`Nitrokey Start`: https://shop.nitrokey.com/shop/product/nitrokey-start-6 474*4882a593Smuzhiyun.. _`Nitrokey Pro 2`: https://shop.nitrokey.com/shop/product/nitrokey-pro-2-3 475*4882a593Smuzhiyun.. _`Yubikey 5`: https://www.yubico.com/product/yubikey-5-overview/ 476*4882a593Smuzhiyun.. _Gnuk: http://www.fsij.org/doc-gnuk/ 477*4882a593Smuzhiyun.. _`Su LWN c'è una buona recensione`: https://lwn.net/Articles/736231/ 478*4882a593Smuzhiyun 479*4882a593SmuzhiyunConfigurare il vostro dispositivo smartcard 480*4882a593Smuzhiyun------------------------------------------- 481*4882a593Smuzhiyun 482*4882a593SmuzhiyunIl vostro dispositivo smartcard dovrebbe iniziare a funzionare non appena 483*4882a593Smuzhiyunlo collegate ad un qualsiasi computer Linux moderno. Potete verificarlo 484*4882a593Smuzhiyuneseguendo:: 485*4882a593Smuzhiyun 486*4882a593Smuzhiyun $ gpg --card-status 487*4882a593Smuzhiyun 488*4882a593SmuzhiyunSe vedete tutti i dettagli della smartcard, allora ci siamo. Sfortunatamente, 489*4882a593Smuzhiyunaffrontare tutti i possibili motivi per cui le cose potrebbero non funzionare 490*4882a593Smuzhiyunnon è lo scopo di questa guida. Se avete problemi nel far funzionare la carta 491*4882a593Smuzhiyuncon GnuPG, cercate aiuto attraverso i soliti canali di supporto. 492*4882a593Smuzhiyun 493*4882a593SmuzhiyunPer configurare la vostra smartcard, dato che non c'è una via facile dalla 494*4882a593Smuzhiyunriga di comando, dovrete usate il menu di GnuPG:: 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun $ gpg --card-edit 497*4882a593Smuzhiyun [...omitted...] 498*4882a593Smuzhiyun gpg/card> admin 499*4882a593Smuzhiyun Admin commands are allowed 500*4882a593Smuzhiyun gpg/card> passwd 501*4882a593Smuzhiyun 502*4882a593SmuzhiyunDovreste impostare il PIN dell'utente (1), quello dell'amministratore (3) e il 503*4882a593Smuzhiyuncodice di reset (4). Assicuratevi di annotare e salvare questi codici in un 504*4882a593Smuzhiyunposto sicuro -- specialmente il PIN dell'amministratore e il codice di reset 505*4882a593Smuzhiyun(che vi permetterà di azzerare completamente la smartcard). Il PIN 506*4882a593Smuzhiyundell'amministratore viene usato così raramente che è inevitabile dimenticarselo 507*4882a593Smuzhiyunse non lo si annota. 508*4882a593Smuzhiyun 509*4882a593SmuzhiyunTornando al nostro menu, potete impostare anche altri valori (come il nome, 510*4882a593Smuzhiyunil sesso, informazioni d'accesso, eccetera), ma non sono necessari e aggiunge 511*4882a593Smuzhiyunaltre informazioni sulla carta che potrebbero trapelare in caso di smarrimento. 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun.. note:: 514*4882a593Smuzhiyun 515*4882a593Smuzhiyun A dispetto del nome "PIN", né il PIN utente né quello dell'amministratore 516*4882a593Smuzhiyun devono essere esclusivamente numerici. 517*4882a593Smuzhiyun 518*4882a593SmuzhiyunSpostare le sottochiavi sulla smartcard 519*4882a593Smuzhiyun--------------------------------------- 520*4882a593Smuzhiyun 521*4882a593SmuzhiyunUscite dal menu (usando "q") e salverete tutte le modifiche. Poi, spostiamo 522*4882a593Smuzhiyuntutte le sottochiavi sulla smartcard. Per la maggior parte delle operazioni 523*4882a593Smuzhiyunvi serviranno sia la passphrase della chiave PGP che il PIN 524*4882a593Smuzhiyundell'amministratore:: 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun $ gpg --edit-key [fpr] 527*4882a593Smuzhiyun 528*4882a593Smuzhiyun Secret subkeys are available. 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun pub rsa2048/AAAABBBBCCCCDDDD 531*4882a593Smuzhiyun created: 2018-01-23 expires: 2020-01-23 usage: SC 532*4882a593Smuzhiyun trust: ultimate validity: ultimate 533*4882a593Smuzhiyun ssb rsa2048/1111222233334444 534*4882a593Smuzhiyun created: 2018-01-23 expires: never usage: E 535*4882a593Smuzhiyun ssb ed25519/5555666677778888 536*4882a593Smuzhiyun created: 2017-12-07 expires: never usage: S 537*4882a593Smuzhiyun [ultimate] (1). Alice Dev <adev@kernel.org> 538*4882a593Smuzhiyun 539*4882a593Smuzhiyun gpg> 540*4882a593Smuzhiyun 541*4882a593SmuzhiyunUsando ``--edit-key`` si tornerà alla modalità menu e noterete che 542*4882a593Smuzhiyunla lista delle chiavi è leggermente diversa. Da questo momento in poi, 543*4882a593Smuzhiyuntutti i comandi saranno eseguiti nella modalità menu, come indicato 544*4882a593Smuzhiyunda ``gpg>``. 545*4882a593Smuzhiyun 546*4882a593SmuzhiyunPer prima cosa, selezioniamo la chiave che verrà messa sulla carta -- 547*4882a593Smuzhiyunpotete farlo digitando ``key 1`` (è la prima della lista, la sottochiave 548*4882a593Smuzhiyun**[E]**):: 549*4882a593Smuzhiyun 550*4882a593Smuzhiyun gpg> key 1 551*4882a593Smuzhiyun 552*4882a593SmuzhiyunNel'output dovreste vedere ``ssb*`` associato alla chiave **[E]**. Il simbolo 553*4882a593Smuzhiyun``*`` indica che la chiave è stata "selezionata". Funziona come un 554*4882a593Smuzhiyuninterruttore, ovvero se scrivete nuovamente ``key 1``, il simbolo ``*`` sparirà 555*4882a593Smuzhiyune la chiave non sarà più selezionata. 556*4882a593Smuzhiyun 557*4882a593SmuzhiyunOra, spostiamo la chiave sulla smartcard:: 558*4882a593Smuzhiyun 559*4882a593Smuzhiyun gpg> keytocard 560*4882a593Smuzhiyun Please select where to store the key: 561*4882a593Smuzhiyun (2) Encryption key 562*4882a593Smuzhiyun Your selection? 2 563*4882a593Smuzhiyun 564*4882a593SmuzhiyunDato che è la nostra chiave **[E]**, ha senso metterla nella sezione criptata. 565*4882a593SmuzhiyunQuando confermerete la selezione, vi verrà chiesta la passphrase della vostra 566*4882a593Smuzhiyunchiave PGP, e poi il PIN dell'amministratore. Se il comando ritorna senza 567*4882a593Smuzhiyunerrori, allora la vostra chiave è stata spostata con successo. 568*4882a593Smuzhiyun 569*4882a593Smuzhiyun**Importante**: digitate nuovamente ``key 1`` per deselezionare la prima chiave 570*4882a593Smuzhiyune selezionate la seconda chiave **[S]** con ``key 2``:: 571*4882a593Smuzhiyun 572*4882a593Smuzhiyun gpg> key 1 573*4882a593Smuzhiyun gpg> key 2 574*4882a593Smuzhiyun gpg> keytocard 575*4882a593Smuzhiyun Please select where to store the key: 576*4882a593Smuzhiyun (1) Signature key 577*4882a593Smuzhiyun (3) Authentication key 578*4882a593Smuzhiyun Your selection? 1 579*4882a593Smuzhiyun 580*4882a593SmuzhiyunPotete usare la chiave **[S]** sia per firmare che per autenticare, ma vogliamo 581*4882a593Smuzhiyunche sia nella sezione di firma, quindi scegliete (1). Ancora una volta, se il 582*4882a593Smuzhiyuncomando ritorna senza errori, allora l'operazione è avvenuta con successo:: 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun gpg> q 585*4882a593Smuzhiyun Save changes? (y/N) y 586*4882a593Smuzhiyun 587*4882a593SmuzhiyunSalvando le modifiche cancellerete dalla vostra cartella home tutte le chiavi 588*4882a593Smuzhiyunche avete spostato sulla carta (ma questo non è un problema, perché abbiamo 589*4882a593Smuzhiyunfatto delle copie di sicurezza nel caso in cui dovessimo configurare una 590*4882a593Smuzhiyunnuova smartcard). 591*4882a593Smuzhiyun 592*4882a593SmuzhiyunVerificare che le chiavi siano state spostate 593*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594*4882a593Smuzhiyun 595*4882a593SmuzhiyunOra, se doveste usare l'opzione ``--list-secret-keys``, vedrete una 596*4882a593Smuzhiyunsottile differenza nell'output:: 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun $ gpg --list-secret-keys 599*4882a593Smuzhiyun sec# rsa2048 2018-01-24 [SC] [expires: 2020-01-24] 600*4882a593Smuzhiyun 000000000000000000000000AAAABBBBCCCCDDDD 601*4882a593Smuzhiyun uid [ultimate] Alice Dev <adev@kernel.org> 602*4882a593Smuzhiyun ssb> rsa2048 2018-01-24 [E] [expires: 2020-01-24] 603*4882a593Smuzhiyun ssb> ed25519 2018-01-24 [S] 604*4882a593Smuzhiyun 605*4882a593SmuzhiyunIl simbolo ``>`` in ``ssb>`` indica che la sottochiave è disponibile solo 606*4882a593Smuzhiyunnella smartcard. Se tornate nella vostra cartella delle chiavi segrete e 607*4882a593Smuzhiyunguardate al suo contenuto, noterete che i file ``.key`` sono stati sostituiti 608*4882a593Smuzhiyuncon degli stub:: 609*4882a593Smuzhiyun 610*4882a593Smuzhiyun $ cd ~/.gnupg/private-keys-v1.d 611*4882a593Smuzhiyun $ strings *.key | grep 'private-key' 612*4882a593Smuzhiyun 613*4882a593SmuzhiyunPer indicare che i file sono solo degli stub e che in realtà il contenuto è 614*4882a593Smuzhiyunsulla smartcard, l'output dovrebbe mostrarvi ``shadowed-private-key``. 615*4882a593Smuzhiyun 616*4882a593SmuzhiyunVerificare che la smartcard funzioni 617*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618*4882a593Smuzhiyun 619*4882a593SmuzhiyunPer verificare che la smartcard funzioni come dovuto, potete creare 620*4882a593Smuzhiyununa firma:: 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun $ echo "Hello world" | gpg --clearsign > /tmp/test.asc 623*4882a593Smuzhiyun $ gpg --verify /tmp/test.asc 624*4882a593Smuzhiyun 625*4882a593SmuzhiyunCol primo comando dovrebbe chiedervi il PIN della smartcard, e poi dovrebbe 626*4882a593Smuzhiyunmostrare "Good signature" dopo l'esecuzione di ``gpg --verify``. 627*4882a593Smuzhiyun 628*4882a593SmuzhiyunComplimenti, siete riusciti a rendere estremamente difficile il furto della 629*4882a593Smuzhiyunvostra identità digitale di sviluppatore. 630*4882a593Smuzhiyun 631*4882a593SmuzhiyunAltre operazioni possibili con GnuPG 632*4882a593Smuzhiyun------------------------------------ 633*4882a593Smuzhiyun 634*4882a593SmuzhiyunSegue un breve accenno ad alcune delle operazioni più comuni che dovrete 635*4882a593Smuzhiyunfare con le vostre chiavi PGP. 636*4882a593Smuzhiyun 637*4882a593SmuzhiyunMontare il disco con la chiave primaria 638*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639*4882a593Smuzhiyun 640*4882a593SmuzhiyunVi servirà la vostra chiave principale per tutte le operazioni che seguiranno, 641*4882a593Smuzhiyunper cui per prima cosa dovrete accedere ai vostri backup e dire a GnuPG di 642*4882a593Smuzhiyunusarli:: 643*4882a593Smuzhiyun 644*4882a593Smuzhiyun $ export GNUPGHOME=/media/disk/foo/gnupg-backup 645*4882a593Smuzhiyun $ gpg --list-secret-keys 646*4882a593Smuzhiyun 647*4882a593SmuzhiyunDovete assicurarvi di vedere ``sec`` e non ``sec#`` nell'output del programma 648*4882a593Smuzhiyun(il simbolo ``#`` significa che la chiave non è disponibile e che state ancora 649*4882a593Smuzhiyunutilizzando la vostra solita cartella di lavoro). 650*4882a593Smuzhiyun 651*4882a593SmuzhiyunEstendere la data di scadenza di una chiave 652*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 653*4882a593Smuzhiyun 654*4882a593SmuzhiyunLa chiave principale ha una data di scadenza di 2 anni dal momento della sua 655*4882a593Smuzhiyuncreazione. Questo per motivi di sicurezza e per rendere obsolete le chiavi 656*4882a593Smuzhiyunche, eventualmente, dovessero sparire dai keyserver. 657*4882a593Smuzhiyun 658*4882a593SmuzhiyunPer estendere di un anno, dalla data odierna, la scadenza di una vostra chiave, 659*4882a593Smuzhiyuneseguite:: 660*4882a593Smuzhiyun 661*4882a593Smuzhiyun $ gpg --quick-set-expire [fpr] 1y 662*4882a593Smuzhiyun 663*4882a593SmuzhiyunSe per voi è più facile da memorizzare, potete anche utilizzare una data 664*4882a593Smuzhiyunspecifica (per esempio, il vostro compleanno o capodanno):: 665*4882a593Smuzhiyun 666*4882a593Smuzhiyun $ gpg --quick-set-expire [fpr] 2020-07-01 667*4882a593Smuzhiyun 668*4882a593SmuzhiyunRicordatevi di inviare l'aggiornamento ai keyserver:: 669*4882a593Smuzhiyun 670*4882a593Smuzhiyun $ gpg --send-key [fpr] 671*4882a593Smuzhiyun 672*4882a593SmuzhiyunAggiornare la vostra cartella di lavoro dopo ogni modifica 673*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674*4882a593Smuzhiyun 675*4882a593SmuzhiyunDopo aver fatto delle modifiche alle vostre chiavi usando uno spazio a parte, 676*4882a593Smuzhiyundovreste importarle nella vostra cartella di lavoro abituale:: 677*4882a593Smuzhiyun 678*4882a593Smuzhiyun $ gpg --export | gpg --homedir ~/.gnupg --import 679*4882a593Smuzhiyun $ unset GNUPGHOME 680*4882a593Smuzhiyun 681*4882a593Smuzhiyun 682*4882a593SmuzhiyunUsare PGP con Git 683*4882a593Smuzhiyun================= 684*4882a593Smuzhiyun 685*4882a593SmuzhiyunUna delle caratteristiche fondanti di Git è la sua natura decentralizzata -- 686*4882a593Smuzhiyununa volta che il repositorio è stato clonato sul vostro sistema, avete la 687*4882a593Smuzhiyunstoria completa del progetto, inclusi i suoi tag, i commit ed i rami. Tuttavia, 688*4882a593Smuzhiyuncon i centinaia di repositori clonati che ci sono in giro, come si fa a 689*4882a593Smuzhiyunverificare che la loro copia di linux.git non è stata manomessa da qualcuno? 690*4882a593Smuzhiyun 691*4882a593SmuzhiyunOppure, cosa succede se viene scoperta una backdoor nel codice e la riga 692*4882a593Smuzhiyun"Autore" dice che sei stato tu, mentre tu sei abbastanza sicuro di 693*4882a593Smuzhiyun`non averci niente a che fare`_? 694*4882a593Smuzhiyun 695*4882a593SmuzhiyunPer risolvere entrambi i problemi, Git ha introdotto l'integrazione con PGP. 696*4882a593SmuzhiyunI tag firmati dimostrano che il repositorio è integro assicurando che il suo 697*4882a593Smuzhiyuncontenuto è lo stesso che si trova sulle macchine degli sviluppatori che hanno 698*4882a593Smuzhiyuncreato il tag; mentre i commit firmati rendono praticamente impossibile 699*4882a593Smuzhiyunad un malintenzionato di impersonarvi senza avere accesso alle vostre chiavi 700*4882a593SmuzhiyunPGP. 701*4882a593Smuzhiyun 702*4882a593Smuzhiyun.. _`non averci niente a che fare`: https://github.com/jayphelps/git-blame-someone-else 703*4882a593Smuzhiyun 704*4882a593SmuzhiyunConfigurare git per usare la vostra chiave PGP 705*4882a593Smuzhiyun---------------------------------------------- 706*4882a593Smuzhiyun 707*4882a593SmuzhiyunSe avete solo una chiave segreta nel vostro portachiavi, allora non avete nulla 708*4882a593Smuzhiyunda fare in più dato che sarà la vostra chiave di base. Tuttavia, se doveste 709*4882a593Smuzhiyunavere più chiavi segrete, potete dire a git quale dovrebbe usare (``[fpg]`` 710*4882a593Smuzhiyunè la vostra impronta digitale):: 711*4882a593Smuzhiyun 712*4882a593Smuzhiyun $ git config --global user.signingKey [fpr] 713*4882a593Smuzhiyun 714*4882a593Smuzhiyun**IMPORTANTE**: se avete una comando dedicato per ``gpg2``, allora dovreste 715*4882a593Smuzhiyundire a git di usare sempre quello piuttosto che il vecchio comando ``gpg``:: 716*4882a593Smuzhiyun 717*4882a593Smuzhiyun $ git config --global gpg.program gpg2 718*4882a593Smuzhiyun 719*4882a593SmuzhiyunCome firmare i tag 720*4882a593Smuzhiyun------------------ 721*4882a593Smuzhiyun 722*4882a593SmuzhiyunPer creare un tag firmato, passate l'opzione ``-s`` al comando tag:: 723*4882a593Smuzhiyun 724*4882a593Smuzhiyun $ git tag -s [tagname] 725*4882a593Smuzhiyun 726*4882a593SmuzhiyunLa nostra raccomandazione è quella di firmare sempre i tag git, perché 727*4882a593Smuzhiyunquesto permette agli altri sviluppatori di verificare che il repositorio 728*4882a593Smuzhiyungit dal quale stanno prendendo il codice non è stato alterato intenzionalmente. 729*4882a593Smuzhiyun 730*4882a593SmuzhiyunCome verificare i tag firmati 731*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732*4882a593Smuzhiyun 733*4882a593SmuzhiyunPer verificare un tag firmato, potete usare il comando ``verify-tag``:: 734*4882a593Smuzhiyun 735*4882a593Smuzhiyun $ git verify-tag [tagname] 736*4882a593Smuzhiyun 737*4882a593SmuzhiyunSe state prendendo un tag da un fork del repositorio del progetto, git 738*4882a593Smuzhiyundovrebbe verificare automaticamente la firma di quello che state prendendo 739*4882a593Smuzhiyune vi mostrerà il risultato durante l'operazione di merge:: 740*4882a593Smuzhiyun 741*4882a593Smuzhiyun $ git pull [url] tags/sometag 742*4882a593Smuzhiyun 743*4882a593SmuzhiyunIl merge conterrà qualcosa di simile:: 744*4882a593Smuzhiyun 745*4882a593Smuzhiyun Merge tag 'sometag' of [url] 746*4882a593Smuzhiyun 747*4882a593Smuzhiyun [Tag message] 748*4882a593Smuzhiyun 749*4882a593Smuzhiyun # gpg: Signature made [...] 750*4882a593Smuzhiyun # gpg: Good signature from [...] 751*4882a593Smuzhiyun 752*4882a593SmuzhiyunSe state verificando il tag di qualcun altro, allora dovrete importare 753*4882a593Smuzhiyunla loro chiave PGP. Fate riferimento alla sezione ":ref:`it_verify_identities`" 754*4882a593Smuzhiyunche troverete più avanti. 755*4882a593Smuzhiyun 756*4882a593SmuzhiyunConfigurare git per firmare sempre i tag con annotazione 757*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 758*4882a593Smuzhiyun 759*4882a593SmuzhiyunSe state creando un tag con annotazione è molto probabile che vogliate 760*4882a593Smuzhiyunfirmarlo. Per imporre a git di firmare sempre un tag con annotazione, 761*4882a593Smuzhiyundovete impostare la seguente opzione globale:: 762*4882a593Smuzhiyun 763*4882a593Smuzhiyun $ git config --global tag.forceSignAnnotated true 764*4882a593Smuzhiyun 765*4882a593SmuzhiyunCome usare commit firmati 766*4882a593Smuzhiyun------------------------- 767*4882a593Smuzhiyun 768*4882a593SmuzhiyunCreare dei commit firmati è facile, ma è molto più difficile utilizzarli 769*4882a593Smuzhiyunnello sviluppo del kernel linux per via del fatto che ci si affida alle 770*4882a593Smuzhiyunliste di discussione e questo modo di procedere non mantiene le firme PGP 771*4882a593Smuzhiyunnei commit. In aggiunta, quando si usa *rebase* nel proprio repositorio 772*4882a593Smuzhiyunlocale per allinearsi al kernel anche le proprie firme PGP verranno scartate. 773*4882a593SmuzhiyunPer questo motivo, la maggior parte degli sviluppatori del kernel non si 774*4882a593Smuzhiyunpreoccupano troppo di firmare i propri commit ed ignoreranno quelli firmati 775*4882a593Smuzhiyunche si trovano in altri repositori usati per il proprio lavoro. 776*4882a593Smuzhiyun 777*4882a593SmuzhiyunTuttavia, se avete il vostro repositorio di lavoro disponibile al pubblico 778*4882a593Smuzhiyunsu un qualche servizio di hosting git (kernel.org, infradead.org, ozlabs.org, 779*4882a593Smuzhiyuno altri), allora la raccomandazione è di firmare tutti i vostri commit 780*4882a593Smuzhiyunanche se gli sviluppatori non ne beneficeranno direttamente. 781*4882a593Smuzhiyun 782*4882a593SmuzhiyunVi raccomandiamo di farlo per i seguenti motivi: 783*4882a593Smuzhiyun 784*4882a593Smuzhiyun1. Se dovesse mai esserci la necessità di fare delle analisi forensi o 785*4882a593Smuzhiyun tracciare la provenienza di un codice, anche sorgenti mantenuti 786*4882a593Smuzhiyun esternamente che hanno firme PGP sui commit avranno un certo valore a 787*4882a593Smuzhiyun questo scopo. 788*4882a593Smuzhiyun2. Se dovesse mai capitarvi di clonare il vostro repositorio locale (per 789*4882a593Smuzhiyun esempio dopo un danneggiamento del disco), la firma vi permetterà di 790*4882a593Smuzhiyun verificare l'integrità del repositorio prima di riprendere il lavoro. 791*4882a593Smuzhiyun3. Se qualcuno volesse usare *cherry-pick* sui vostri commit, allora la firma 792*4882a593Smuzhiyun permetterà di verificare l'integrità dei commit prima di applicarli. 793*4882a593Smuzhiyun 794*4882a593SmuzhiyunCreare commit firmati 795*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~ 796*4882a593Smuzhiyun 797*4882a593SmuzhiyunPer creare un commit firmato, dovete solamente aggiungere l'opzione ``-S`` 798*4882a593Smuzhiyunal comando ``git commit`` (si usa la lettera maiuscola per evitare 799*4882a593Smuzhiyunconflitti con un'altra opzione):: 800*4882a593Smuzhiyun 801*4882a593Smuzhiyun $ git commit -S 802*4882a593Smuzhiyun 803*4882a593SmuzhiyunConfigurare git per firmare sempre i commit 804*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 805*4882a593Smuzhiyun 806*4882a593SmuzhiyunPotete dire a git di firmare sempre i commit:: 807*4882a593Smuzhiyun 808*4882a593Smuzhiyun git config --global commit.gpgSign true 809*4882a593Smuzhiyun 810*4882a593Smuzhiyun.. note:: 811*4882a593Smuzhiyun 812*4882a593Smuzhiyun Assicuratevi di aver configurato ``gpg-agent`` prima di abilitare 813*4882a593Smuzhiyun questa opzione. 814*4882a593Smuzhiyun 815*4882a593Smuzhiyun.. _it_verify_identities: 816*4882a593Smuzhiyun 817*4882a593SmuzhiyunCome verificare l'identità degli sviluppatori del kernel 818*4882a593Smuzhiyun======================================================== 819*4882a593Smuzhiyun 820*4882a593SmuzhiyunFirmare i tag e i commit è facile, ma come si fa a verificare che la chiave 821*4882a593Smuzhiyunusata per firmare qualcosa appartenga davvero allo sviluppatore e non ad un 822*4882a593Smuzhiyunimpostore? 823*4882a593Smuzhiyun 824*4882a593SmuzhiyunConfigurare l'auto-key-retrieval usando WKD e DANE 825*4882a593Smuzhiyun-------------------------------------------------- 826*4882a593Smuzhiyun 827*4882a593SmuzhiyunSe non siete ancora in possesso di una vasta collezione di chiavi pubbliche 828*4882a593Smuzhiyundi altri sviluppatori, allora potreste iniziare il vostro portachiavi 829*4882a593Smuzhiyunaffidandovi ai servizi di auto-scoperta e auto-recupero. GnuPG può affidarsi 830*4882a593Smuzhiyunad altre tecnologie di delega della fiducia, come DNSSEC e TLS, per sostenervi 831*4882a593Smuzhiyunnel caso in cui iniziare una propria rete di fiducia da zero sia troppo 832*4882a593Smuzhiyunscoraggiante. 833*4882a593Smuzhiyun 834*4882a593SmuzhiyunAggiungete il seguente testo al vostro file ``~/.gnupg/gpg.conf``:: 835*4882a593Smuzhiyun 836*4882a593Smuzhiyun auto-key-locate wkd,dane,local 837*4882a593Smuzhiyun auto-key-retrieve 838*4882a593Smuzhiyun 839*4882a593SmuzhiyunLa *DNS-Based Authentication of Named Entities* ("DANE") è un metodo 840*4882a593Smuzhiyunper la pubblicazione di chiavi pubbliche su DNS e per renderle sicure usando 841*4882a593Smuzhiyunzone firmate con DNSSEC. Il *Web Key Directory* ("WKD") è un metodo 842*4882a593Smuzhiyunalternativo che usa https a scopo di ricerca. Quando si usano DANE o WKD 843*4882a593Smuzhiyunper la ricerca di chiavi pubbliche, GnuPG validerà i certificati DNSSEC o TLS 844*4882a593Smuzhiyunprima di aggiungere al vostro portachiavi locale le eventuali chiavi trovate. 845*4882a593Smuzhiyun 846*4882a593SmuzhiyunKernel.org pubblica la WKD per tutti gli sviluppatori che hanno un account 847*4882a593Smuzhiyunkernel.org. Una volta che avete applicato le modifiche al file ``gpg.conf``, 848*4882a593Smuzhiyunpotrete auto-recuperare le chiavi di Linus Torvalds e Greg Kroah-Hartman 849*4882a593Smuzhiyun(se non le avete già):: 850*4882a593Smuzhiyun 851*4882a593Smuzhiyun $ gpg --locate-keys torvalds@kernel.org gregkh@kernel.org 852*4882a593Smuzhiyun 853*4882a593SmuzhiyunSe avete un account kernel.org, al fine di rendere più utile l'uso di WKD 854*4882a593Smuzhiyunda parte di altri sviluppatori del kernel, dovreste `aggiungere alla vostra 855*4882a593Smuzhiyunchiave lo UID di kernel.org`_. 856*4882a593Smuzhiyun 857*4882a593Smuzhiyun.. _`aggiungere alla vostra chiave lo UID di kernel.org`: https://korg.wiki.kernel.org/userdoc/mail#adding_a_kernelorg_uid_to_your_pgp_key 858*4882a593Smuzhiyun 859*4882a593SmuzhiyunWeb of Trust (WOT) o Trust on First Use (TOFU) 860*4882a593Smuzhiyun---------------------------------------------- 861*4882a593Smuzhiyun 862*4882a593SmuzhiyunPGP incorpora un meccanismo di delega della fiducia conosciuto come 863*4882a593Smuzhiyun"Web of Trust". Di base, questo è un tentativo di sostituire la necessità 864*4882a593Smuzhiyundi un'autorità certificativa centralizzata tipica del mondo HTTPS/TLS. 865*4882a593SmuzhiyunInvece di avere svariati produttori software che decidono chi dovrebbero 866*4882a593Smuzhiyunessere le entità di certificazione di cui dovreste fidarvi, PGP lascia 867*4882a593Smuzhiyunla responsabilità ad ogni singolo utente. 868*4882a593Smuzhiyun 869*4882a593SmuzhiyunSfortunatamente, solo poche persone capiscono come funziona la rete di fiducia. 870*4882a593SmuzhiyunNonostante sia un importante aspetto della specifica OpenPGP, recentemente 871*4882a593Smuzhiyunle versioni di GnuPG (2.2 e successive) hanno implementato un meccanisco 872*4882a593Smuzhiyunalternativo chiamato "Trust on First Use" (TOFU). Potete pensare a TOFU come 873*4882a593Smuzhiyun"ad un approccio all fidicia simile ad SSH". In SSH, la prima volta che vi 874*4882a593Smuzhiyunconnettete ad un sistema remoto, l'impronta digitale della chiave viene 875*4882a593Smuzhiyunregistrata e ricordata. Se la chiave dovesse cambiare in futuro, il programma 876*4882a593SmuzhiyunSSH vi avviserà e si rifiuterà di connettersi, obbligandovi a prendere una 877*4882a593Smuzhiyundecisione circa la fiducia che riponete nella nuova chiave. In modo simile, 878*4882a593Smuzhiyunla prima volta che importate la chiave PGP di qualcuno, si assume sia valida. 879*4882a593SmuzhiyunSe ad un certo punto GnuPG trova un'altra chiave con la stessa identità, 880*4882a593Smuzhiyunentrambe, la vecchia e la nuova, verranno segnate come invalide e dovrete 881*4882a593Smuzhiyunverificare manualmente quale tenere. 882*4882a593Smuzhiyun 883*4882a593SmuzhiyunVi raccomandiamo di usare il meccanisco TOFU+PGP (che è la nuova configurazione 884*4882a593Smuzhiyundi base di GnuPG v2). Per farlo, aggiungete (o modificate) l'impostazione 885*4882a593Smuzhiyun``trust-model`` in ``~/.gnupg/gpg.conf``:: 886*4882a593Smuzhiyun 887*4882a593Smuzhiyun trust-model tofu+pgp 888*4882a593Smuzhiyun 889*4882a593SmuzhiyunCome usare i keyserver in sicurezza 890*4882a593Smuzhiyun----------------------------------- 891*4882a593SmuzhiyunSe ottenete l'errore "No public key" quando cercate di validate il tag di 892*4882a593Smuzhiyunqualcuno, allora dovreste cercare quella chiave usando un keyserver. È 893*4882a593Smuzhiyunimportante tenere bene a mente che non c'è alcuna garanzia che la chiave 894*4882a593Smuzhiyunche avete recuperato da un keyserver PGP appartenga davvero alla persona 895*4882a593Smuzhiyunreale -- è progettato così. Dovreste usare il Web of Trust per assicurarvi 896*4882a593Smuzhiyunche la chiave sia valida. 897*4882a593Smuzhiyun 898*4882a593SmuzhiyunCome mantenere il Web of Trust va oltre gli scopi di questo documento, 899*4882a593Smuzhiyunsemplicemente perché farlo come si deve richiede sia sforzi che perseveranza 900*4882a593Smuzhiyunche tendono ad andare oltre al livello di interesse della maggior parte degli 901*4882a593Smuzhiyunesseri umani. Qui di seguito alcuni rapidi suggerimenti per aiutarvi a ridurre 902*4882a593Smuzhiyunil rischio di importare chiavi maligne. 903*4882a593Smuzhiyun 904*4882a593SmuzhiyunPrimo, diciamo che avete provato ad eseguire ``git verify-tag`` ma restituisce 905*4882a593Smuzhiyunun errore dicendo che la chiave non è stata trovata:: 906*4882a593Smuzhiyun 907*4882a593Smuzhiyun $ git verify-tag sunxi-fixes-for-4.15-2 908*4882a593Smuzhiyun gpg: Signature made Sun 07 Jan 2018 10:51:55 PM EST 909*4882a593Smuzhiyun gpg: using RSA key DA73759BF8619E484E5A3B47389A54219C0F2430 910*4882a593Smuzhiyun gpg: issuer "wens@...org" 911*4882a593Smuzhiyun gpg: Can't check signature: No public key 912*4882a593Smuzhiyun 913*4882a593SmuzhiyunCerchiamo nel keyserver per maggiori informazioni sull'impronta digitale 914*4882a593Smuzhiyundella chiave (l'impronta digitale, probabilmente, appartiene ad una 915*4882a593Smuzhiyunsottochiave, dunque non possiamo usarla direttamente senza trovare prima 916*4882a593Smuzhiyunl'ID della chiave primaria associata ad essa):: 917*4882a593Smuzhiyun 918*4882a593Smuzhiyun $ gpg --search DA73759BF8619E484E5A3B47389A54219C0F2430 919*4882a593Smuzhiyun gpg: data source: hkp://keys.gnupg.net 920*4882a593Smuzhiyun (1) Chen-Yu Tsai <wens@...org> 921*4882a593Smuzhiyun 4096 bit RSA key C94035C21B4F2AEB, created: 2017-03-14, expires: 2019-03-15 922*4882a593Smuzhiyun Keys 1-1 of 1 for "DA73759BF8619E484E5A3B47389A54219C0F2430". Enter number(s), N)ext, or Q)uit > q 923*4882a593Smuzhiyun 924*4882a593SmuzhiyunLocalizzate l'ID della chiave primaria, nel nostro esempio 925*4882a593Smuzhiyun``C94035C21B4F2AEB``. Ora visualizzate le chiavi di Linus Torvalds 926*4882a593Smuzhiyunche avete nel vostro portachiavi:: 927*4882a593Smuzhiyun 928*4882a593Smuzhiyun $ gpg --list-key torvalds@kernel.org 929*4882a593Smuzhiyun pub rsa2048 2011-09-20 [SC] 930*4882a593Smuzhiyun ABAF11C65A2970B130ABE3C479BE3E4300411886 931*4882a593Smuzhiyun uid [ unknown] Linus Torvalds <torvalds@kernel.org> 932*4882a593Smuzhiyun sub rsa2048 2011-09-20 [E] 933*4882a593Smuzhiyun 934*4882a593SmuzhiyunPoi, aprite il `PGP pathfinder`_. Nel campo "From", incollate l'impronta 935*4882a593Smuzhiyundigitale della chiave di Linus Torvalds che si vede nell'output qui sopra. 936*4882a593SmuzhiyunNel campo "to", incollate il key-id della chiave sconosciuta che avete 937*4882a593Smuzhiyuntrovato con ``gpg --search``, e poi verificare il risultato: 938*4882a593Smuzhiyun 939*4882a593Smuzhiyun- `Finding paths to Linus`_ 940*4882a593Smuzhiyun 941*4882a593SmuzhiyunSe trovate un paio di percorsi affidabili è un buon segno circa la validità 942*4882a593Smuzhiyundella chiave. Ora, potete aggiungerla al vostro portachiavi dal keyserver:: 943*4882a593Smuzhiyun 944*4882a593Smuzhiyun $ gpg --recv-key C94035C21B4F2AEB 945*4882a593Smuzhiyun 946*4882a593SmuzhiyunQuesta procedura non è perfetta, e ovviamente state riponendo la vostra 947*4882a593Smuzhiyunfiducia nell'amministratore del servizio *PGP Pathfinder* sperando che non 948*4882a593Smuzhiyunsia malintenzionato (infatti, questo va contro :ref:`it_devs_not_infra`). 949*4882a593SmuzhiyunTuttavia, se mantenete con cura la vostra rete di fiducia sarà un deciso 950*4882a593Smuzhiyunmiglioramento rispetto alla cieca fiducia nei keyserver. 951*4882a593Smuzhiyun 952*4882a593Smuzhiyun.. _`PGP pathfinder`: https://pgp.cs.uu.nl/ 953*4882a593Smuzhiyun.. _`Finding paths to Linus`: https://pgp.cs.uu.nl/paths/79BE3E4300411886/to/C94035C21B4F2AEB.html 954