18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci:Original: :ref:`Documentation/process/maintainer-pgp-guide.rst <pgpguide>` 48c2ecf20Sopenharmony_ci:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it> 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci.. _it_pgpguide: 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci========================================= 98c2ecf20Sopenharmony_ciLa guida a PGP per manutentori del kernel 108c2ecf20Sopenharmony_ci========================================= 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci:Author: Konstantin Ryabitsev <konstantin@linuxfoundation.org> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciQuesto documento è destinato agli sviluppatori del kernel Linux, in particolar 158c2ecf20Sopenharmony_cimodo ai manutentori. Contiene degli approfondimenti riguardo informazioni che 168c2ecf20Sopenharmony_cisono state affrontate in maniera più generale nella sezione 178c2ecf20Sopenharmony_ci"`Protecting Code Integrity`_" pubblicata dalla Linux Foundation. 188c2ecf20Sopenharmony_ciPer approfondire alcuni argomenti trattati in questo documento è consigliato 198c2ecf20Sopenharmony_cileggere il documento sopraindicato 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci.. _`Protecting Code Integrity`: https://github.com/lfit/itpol/blob/master/protecting-code-integrity.md 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciIl ruolo di PGP nello sviluppo del kernel Linux 248c2ecf20Sopenharmony_ci=============================================== 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciPGP aiuta ad assicurare l'integrità del codice prodotto dalla comunità 278c2ecf20Sopenharmony_cidi sviluppo del kernel e, in secondo luogo, stabilisce canali di comunicazione 288c2ecf20Sopenharmony_ciaffidabili tra sviluppatori attraverso lo scambio di email firmate con PGP. 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciIl codice sorgente del kernel Linux è disponibile principalmente in due 318c2ecf20Sopenharmony_ciformati: 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci- repositori distribuiti di sorgenti (git) 348c2ecf20Sopenharmony_ci- rilasci periodici di istantanee (archivi tar) 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciSia i repositori git che gli archivi tar portano le firme PGP degli 378c2ecf20Sopenharmony_cisviluppatori che hanno creato i rilasci ufficiali del kernel. Queste firme 388c2ecf20Sopenharmony_cioffrono una garanzia crittografica che le versioni scaricabili rese disponibili 398c2ecf20Sopenharmony_civia kernel.org, o altri portali, siano identiche a quelle che gli sviluppatori 408c2ecf20Sopenharmony_cihanno sul loro posto di lavoro. A tal scopo: 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci- i repositori git forniscono firme PGP per ogni tag 438c2ecf20Sopenharmony_ci- gli archivi tar hanno firme separate per ogni archivio 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci.. _it_devs_not_infra: 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciFidatevi degli sviluppatori e non dell'infrastruttura 488c2ecf20Sopenharmony_ci----------------------------------------------------- 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciFin dal 2011, quando i sistemi di kernel.org furono compromessi, il principio 518c2ecf20Sopenharmony_cigenerale del progetto Kernel Archives è stato quello di assumere che qualsiasi 528c2ecf20Sopenharmony_ciparte dell'infrastruttura possa essere compromessa in ogni momento. Per questa 538c2ecf20Sopenharmony_ciragione, gli amministratori hanno intrapreso deliberatemene dei passi per 548c2ecf20Sopenharmony_cienfatizzare che la fiducia debba risiedere sempre negli sviluppatori e mai nel 558c2ecf20Sopenharmony_cicodice che gestisce l'infrastruttura, indipendentemente da quali che siano le 568c2ecf20Sopenharmony_cipratiche di sicurezza messe in atto. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciIl principio sopra indicato è la ragione per la quale è necessaria questa 598c2ecf20Sopenharmony_ciguida. Vogliamo essere sicuri che il riporre la fiducia negli sviluppatori 608c2ecf20Sopenharmony_cinon sia fatto semplicemente per incolpare qualcun'altro per future falle di 618c2ecf20Sopenharmony_cisicurezza. L'obiettivo è quello di fornire una serie di linee guida che gli 628c2ecf20Sopenharmony_cisviluppatori possano seguire per creare un ambiente di lavoro sicuro e 638c2ecf20Sopenharmony_cisalvaguardare le chiavi PGP usate nello stabilire l'integrità del kernel Linux 648c2ecf20Sopenharmony_cistesso. 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci.. _it_pgp_tools: 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ciStrumenti PGP 698c2ecf20Sopenharmony_ci============= 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ciUsare GnuPG v2 728c2ecf20Sopenharmony_ci-------------- 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ciLa vostra distribuzione potrebbe avere già installato GnuPG, dovete solo 758c2ecf20Sopenharmony_civerificare che stia utilizzando la versione 2.x e non la serie 1.4 -- 768c2ecf20Sopenharmony_cimolte distribuzioni forniscono entrambe, di base il comando ''gpg'' 778c2ecf20Sopenharmony_ciinvoca GnuPG v.1. Per controllate usate:: 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci $ gpg --version | head -n1 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ciSe visualizzate ``gpg (GnuPG) 1.4.x``, allora state usando GnuPG v.1. 828c2ecf20Sopenharmony_ciProvate il comando ``gpg2`` (se non lo avete, potreste aver bisogno 838c2ecf20Sopenharmony_cidi installare il pacchetto gnupg2):: 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci $ gpg2 --version | head -n1 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ciSe visualizzate ``gpg (GnuPG) 2.x.x``, allora siete pronti a partire. 888c2ecf20Sopenharmony_ciQuesta guida assume che abbiate la versione 2.2.(o successiva) di GnuPG. 898c2ecf20Sopenharmony_ciSe state usando la versione 2.0, alcuni dei comandi indicati qui non 908c2ecf20Sopenharmony_cifunzioneranno, in questo caso considerate un aggiornamento all'ultima versione, 918c2ecf20Sopenharmony_cila 2.2. Versioni di gnupg-2.1.11 e successive dovrebbero essere compatibili 928c2ecf20Sopenharmony_ciper gli obiettivi di questa guida. 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ciSe avete entrambi i comandi: ``gpg`` e ``gpg2``, assicuratevi di utilizzare 958c2ecf20Sopenharmony_cisempre la versione V2, e non quella vecchia. Per evitare errori potreste creare 968c2ecf20Sopenharmony_ciun alias:: 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci $ alias gpg=gpg2 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ciPotete mettere questa opzione nel vostro ``.bashrc`` in modo da essere sicuri. 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ciConfigurare le opzioni di gpg-agent 1038c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ciL'agente GnuPG è uno strumento di aiuto che partirà automaticamente ogni volta 1068c2ecf20Sopenharmony_ciche userete il comando ``gpg`` e funzionerà in background con l'obiettivo di 1078c2ecf20Sopenharmony_ciindividuare la passphrase. Ci sono due opzioni che dovreste conoscere 1088c2ecf20Sopenharmony_ciper personalizzare la scadenza della passphrase nella cache: 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci- ``default-cache-ttl`` (secondi): Se usate ancora la stessa chiave prima 1118c2ecf20Sopenharmony_ci che il time-to-live termini, il conto alla rovescia si resetterà per un 1128c2ecf20Sopenharmony_ci altro periodo. Di base è di 600 (10 minuti). 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci- ``max-cache-ttl`` (secondi): indipendentemente da quanto sia recente l'ultimo 1158c2ecf20Sopenharmony_ci uso della chiave da quando avete inserito la passphrase, se il massimo 1168c2ecf20Sopenharmony_ci time-to-live è scaduto, dovrete reinserire nuovamente la passphrase. 1178c2ecf20Sopenharmony_ci Di base è di 30 minuti. 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ciSe ritenete entrambe questi valori di base troppo corti (o troppo lunghi), 1208c2ecf20Sopenharmony_cipotete creare il vostro file ``~/.gnupg/gpg-agent.conf`` ed impostare i vostri 1218c2ecf20Sopenharmony_civalori:: 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci # set to 30 minutes for regular ttl, and 2 hours for max ttl 1248c2ecf20Sopenharmony_ci default-cache-ttl 1800 1258c2ecf20Sopenharmony_ci max-cache-ttl 7200 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci.. note:: 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci Non è più necessario far partire l'agente gpg manualmente all'inizio della 1308c2ecf20Sopenharmony_ci vostra sessione. Dovreste controllare i file rc per rimuovere tutto ciò che 1318c2ecf20Sopenharmony_ci riguarda vecchie le versioni di GnuPG, poiché potrebbero non svolgere più 1328c2ecf20Sopenharmony_ci bene il loro compito. 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ciImpostare un *refresh* con cronjob 1358c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ciPotreste aver bisogno di rinfrescare regolarmente il vostro portachiavi in 1388c2ecf20Sopenharmony_cimodo aggiornare le chiavi pubbliche di altre persone, lavoro che è svolto 1398c2ecf20Sopenharmony_cial meglio con un cronjob giornaliero:: 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci @daily /usr/bin/gpg2 --refresh >/dev/null 2>&1 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ciControllate il percorso assoluto del vostro comando ``gpg`` o ``gpg2`` e usate 1448c2ecf20Sopenharmony_ciil comando ``gpg2`` se per voi ``gpg`` corrisponde alla versione GnuPG v.1. 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci.. _it_master_key: 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ciProteggere la vostra chiave PGP primaria 1498c2ecf20Sopenharmony_ci======================================== 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ciQuesta guida parte dal presupposto che abbiate già una chiave PGP che usate 1528c2ecf20Sopenharmony_ciper lo sviluppo del kernel Linux. Se non ne avete ancora una, date uno sguardo 1538c2ecf20Sopenharmony_cial documento "`Protecting Code Integrity`_" che abbiamo menzionato prima. 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ciDovreste inoltre creare una nuova chiave se quella attuale è inferiore a 2048 1568c2ecf20Sopenharmony_cibit (RSA). 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ciChiave principale o sottochiavi 1598c2ecf20Sopenharmony_ci------------------------------- 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciLe sottochiavi sono chiavi PGP totalmente indipendenti, e sono collegate alla 1628c2ecf20Sopenharmony_cichiave principale attraverso firme certificate. È quindi importante 1638c2ecf20Sopenharmony_cicomprendere i seguenti punti: 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci1. Non ci sono differenze tecniche tra la chiave principale e la sottochiave. 1668c2ecf20Sopenharmony_ci2. In fesa di creazione, assegniamo limitazioni funzionali ad ogni chiave 1678c2ecf20Sopenharmony_ci assegnando capacità specifiche. 1688c2ecf20Sopenharmony_ci3. Una chiave PGP può avere 4 capacità: 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci - **[S]** può essere usata per firmare 1718c2ecf20Sopenharmony_ci - **[E]** può essere usata per criptare 1728c2ecf20Sopenharmony_ci - **[A]** può essere usata per autenticare 1738c2ecf20Sopenharmony_ci - **[C]** può essere usata per certificare altre chiavi 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci4. Una singola chiave può avere più capacità 1768c2ecf20Sopenharmony_ci5. Una sottochiave è completamente indipendente dalla chiave principale. 1778c2ecf20Sopenharmony_ci Un messaggio criptato con la sottochiave non può essere decrittato con 1788c2ecf20Sopenharmony_ci quella principale. Se perdete la vostra sottochiave privata, non può 1798c2ecf20Sopenharmony_ci essere rigenerata in nessun modo da quella principale. 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ciLa chiave con capacità **[C]** (certify) è identificata come la chiave 1828c2ecf20Sopenharmony_ciprincipale perché è l'unica che può essere usata per indicare la relazione 1838c2ecf20Sopenharmony_cicon altre chiavi. Solo la chiave **[C]** può essere usata per: 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci- Aggiungere o revocare altre chiavi (sottochiavi) che hanno capacità S/E/A 1868c2ecf20Sopenharmony_ci- Aggiungere, modificare o eliminare le identità (unids) associate alla chiave 1878c2ecf20Sopenharmony_ci- Aggiungere o modificare la data di termine di sé stessa o di ogni sottochiave 1888c2ecf20Sopenharmony_ci- Firmare le chiavi di altre persone a scopo di creare una rete di fiducia 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ciDi base, alla creazione di nuove chiavi, GnuPG genera quanto segue: 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci- Una chiave madre che porta sia la capacità di certificazione che quella 1938c2ecf20Sopenharmony_ci di firma (**[SC]**) 1948c2ecf20Sopenharmony_ci- Una sottochiave separata con capacità di criptaggio (**[E]**) 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ciSe avete usato i parametri di base per generare la vostra chiave, quello 1978c2ecf20Sopenharmony_cisarà il risultato. Potete verificarlo utilizzando ``gpg --list-secret-keys``, 1988c2ecf20Sopenharmony_ciper esempio:: 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci sec rsa2048 2018-01-23 [SC] [expires: 2020-01-23] 2018c2ecf20Sopenharmony_ci 000000000000000000000000AAAABBBBCCCCDDDD 2028c2ecf20Sopenharmony_ci uid [ultimate] Alice Dev <adev@kernel.org> 2038c2ecf20Sopenharmony_ci ssb rsa2048 2018-01-23 [E] [expires: 2020-01-23] 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ciQualsiasi chiave che abbia la capacità **[C]** è la vostra chiave madre, 2068c2ecf20Sopenharmony_ciindipendentemente da quali altre capacità potreste averle assegnato. 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ciLa lunga riga sotto la voce ``sec`` è la vostra impronta digitale -- 2098c2ecf20Sopenharmony_cinegli esempi che seguono, quando vedere ``[fpr]`` ci si riferisce a questa 2108c2ecf20Sopenharmony_cistringa di 40 caratteri. 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ciAssicuratevi che la vostra passphrase sia forte 2138c2ecf20Sopenharmony_ci----------------------------------------------- 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ciGnuPG utilizza le passphrases per criptare la vostra chiave privata prima 2168c2ecf20Sopenharmony_cidi salvarla sul disco. In questo modo, anche se il contenuto della vostra 2178c2ecf20Sopenharmony_cicartella ``.gnupg`` venisse letto o trafugato nella sia interezza, gli 2188c2ecf20Sopenharmony_ciattaccanti non potrebbero comunque utilizzare le vostre chiavi private senza 2198c2ecf20Sopenharmony_ciaver prima ottenuto la passphrase per decriptarle. 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ciÈ assolutamente essenziale che le vostre chiavi private siano protette da 2228c2ecf20Sopenharmony_ciuna passphrase forte. Per impostarla o cambiarla, usate:: 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci $ gpg --change-passphrase [fpr] 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ciCreate una sottochiave di firma separata 2278c2ecf20Sopenharmony_ci---------------------------------------- 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ciIl nostro obiettivo è di proteggere la chiave primaria spostandola su un 2308c2ecf20Sopenharmony_cidispositivo sconnesso dalla rete, dunque se avete solo una chiave combinata 2318c2ecf20Sopenharmony_ci**[SC]** allora dovreste creare una sottochiave di firma separata:: 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci $ gpg --quick-add-key [fpr] ed25519 sign 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ciRicordate di informare il keyserver del vostro cambiamento, cosicché altri 2368c2ecf20Sopenharmony_cipossano ricevere la vostra nuova sottochiave:: 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci $ gpg --send-key [fpr] 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci.. note:: Supporto ECC in GnuPG 2418c2ecf20Sopenharmony_ci GnuPG 2.1 e successivi supportano pienamente *Elliptic Curve Cryptography*, 2428c2ecf20Sopenharmony_ci con la possibilità di combinare sottochiavi ECC con le tradizionali chiavi 2438c2ecf20Sopenharmony_ci primarie RSA. Il principale vantaggio della crittografia ECC è che è molto 2448c2ecf20Sopenharmony_ci più veloce da calcolare e crea firme più piccole se confrontate byte per 2458c2ecf20Sopenharmony_ci byte con le chiavi RSA a più di 2048 bit. A meno che non pensiate di 2468c2ecf20Sopenharmony_ci utilizzare un dispositivo smartcard che non supporta le operazioni ECC, vi 2478c2ecf20Sopenharmony_ci raccomandiamo ti creare sottochiavi di firma ECC per il vostro lavoro col 2488c2ecf20Sopenharmony_ci kernel. 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci Se per qualche ragione preferite rimanere con sottochiavi RSA, nel comando 2518c2ecf20Sopenharmony_ci precedente, sostituite "ed25519" con "rsa2048". In aggiunta, se avete 2528c2ecf20Sopenharmony_ci intenzione di usare un dispositivo hardware che non supporta le chiavi 2538c2ecf20Sopenharmony_ci ED25519 ECC, come la Nitrokey Pro o la Yubikey, allora dovreste usare 2548c2ecf20Sopenharmony_ci "nistp256" al posto di "ed25519". 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ciCopia di riserva della chiave primaria per gestire il recupero da disastro 2578c2ecf20Sopenharmony_ci-------------------------------------------------------------------------- 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ciMaggiori sono le firme di altri sviluppatori che vengono applicate alla vostra, 2608c2ecf20Sopenharmony_cimaggiori saranno i motivi per avere una copia di riserva che non sia digitale, 2618c2ecf20Sopenharmony_cial fine di effettuare un recupero da disastro. 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ciIl modo migliore per creare una copia fisica della vostra chiave privata è 2648c2ecf20Sopenharmony_cil'uso del programma ``paperkey``. Consultate ``man paperkey`` per maggiori 2658c2ecf20Sopenharmony_cidettagli sul formato dell'output ed i suoi punti di forza rispetto ad altre 2668c2ecf20Sopenharmony_cisoluzioni. Paperkey dovrebbe essere già pacchettizzato per la maggior parte 2678c2ecf20Sopenharmony_cidelle distribuzioni. 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ciEseguite il seguente comando per creare una copia fisica di riserva della 2708c2ecf20Sopenharmony_civostra chiave privata:: 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci $ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txt 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciStampate il file (o fate un pipe direttamente verso lpr), poi prendete 2758c2ecf20Sopenharmony_ciuna penna e scrivete la passphare sul margine del foglio. **Questo è 2768c2ecf20Sopenharmony_cicaldamente consigliato** perché la copia cartacea è comunque criptata con 2778c2ecf20Sopenharmony_cila passphrase, e se mai doveste cambiarla non vi ricorderete qual'era al 2788c2ecf20Sopenharmony_cimomento della creazione di quella copia -- *garantito*. 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciMettete la copia cartacea e la passphrase scritta a mano in una busta e 2818c2ecf20Sopenharmony_cimettetela in un posto sicuro e ben protetto, preferibilmente fuori casa, 2828c2ecf20Sopenharmony_cimagari in una cassetta di sicurezza in banca. 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci.. note:: 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci Probabilmente la vostra stampante non è più quello stupido dispositivo 2878c2ecf20Sopenharmony_ci connesso alla porta parallela, ma dato che il suo output è comunque 2888c2ecf20Sopenharmony_ci criptato con la passphrase, eseguire la stampa in un sistema "cloud" 2898c2ecf20Sopenharmony_ci moderno dovrebbe essere comunque relativamente sicuro. Un'opzione potrebbe 2908c2ecf20Sopenharmony_ci essere quella di cambiare la passphrase della vostra chiave primaria 2918c2ecf20Sopenharmony_ci subito dopo aver finito con paperkey. 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ciCopia di riserva di tutta la cartella GnuPG 2948c2ecf20Sopenharmony_ci------------------------------------------- 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ci.. warning:: 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci **!!!Non saltate questo passo!!!** 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ciQuando avete bisogno di recuperare le vostre chiavi PGP è importante avere 3018c2ecf20Sopenharmony_ciuna copia di riserva pronta all'uso. Questo sta su un diverso piano di 3028c2ecf20Sopenharmony_ciprontezza rispetto al recupero da disastro che abbiamo risolto con 3038c2ecf20Sopenharmony_ci``paperkey``. Vi affiderete a queste copie esterne quando dovreste usare la 3048c2ecf20Sopenharmony_civostra chiave Certify -- ovvero quando fate modifiche alle vostre chiavi o 3058c2ecf20Sopenharmony_cifirmate le chiavi di altre persone ad una conferenza o ad un gruppo d'incontro. 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ciIncominciate con una piccola chiavetta di memoria USB (preferibilmente due) 3088c2ecf20Sopenharmony_ciche userete per le copie di riserva. Dovrete criptarle usando LUKS -- fate 3098c2ecf20Sopenharmony_ciriferimento alla documentazione della vostra distribuzione per capire come 3108c2ecf20Sopenharmony_cifare. 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_ciPer la passphrase di criptazione, potete usare la stessa della vostra chiave 3138c2ecf20Sopenharmony_ciprimaria. 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ciUna volta che il processo di criptazione è finito, reinserite il disco USB ed 3168c2ecf20Sopenharmony_ciassicurativi che venga montato correttamente. Copiate interamente la cartella 3178c2ecf20Sopenharmony_ci``.gnugp`` nel disco criptato:: 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ci $ cp -a ~/.gnupg /media/disk/foo/gnupg-backup 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ciOra dovreste verificare che tutto continui a funzionare:: 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci $ gpg --homedir=/media/disk/foo/gnupg-backup --list-key [fpr] 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ciSe non vedete errori, allora dovreste avere fatto tutto con successo. 3268c2ecf20Sopenharmony_ciSmontate il disco USB, etichettatelo per bene di modo da evitare di 3278c2ecf20Sopenharmony_cidistruggerne il contenuto non appena vi serve una chiavetta USB a caso, ed 3288c2ecf20Sopenharmony_ciinfine mettetelo in un posto sicuro -- ma non troppo lontano, perché vi servirà 3298c2ecf20Sopenharmony_cidi tanto in tanto per modificare le identità, aggiungere o revocare 3308c2ecf20Sopenharmony_cisottochiavi, o firmare le chiavi di altre persone. 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ciTogliete la chiave primaria dalla vostra home 3338c2ecf20Sopenharmony_ci--------------------------------------------- 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ciI file che si trovano nella vostra cartella home non sono poi così ben protetti 3368c2ecf20Sopenharmony_cicome potreste pensare. Potrebbero essere letti o trafugati in diversi modi: 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci- accidentalmente quando fate una rapida copia della cartella home per 3398c2ecf20Sopenharmony_ci configurare una nuova postazione 3408c2ecf20Sopenharmony_ci- da un amministratore di sistema negligente o malintenzionato 3418c2ecf20Sopenharmony_ci- attraverso copie di riserva insicure 3428c2ecf20Sopenharmony_ci- attraverso malware installato in alcune applicazioni (browser, lettori PDF, 3438c2ecf20Sopenharmony_ci eccetera) 3448c2ecf20Sopenharmony_ci- attraverso coercizione quando attraversate confini internazionali 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ciProteggere la vostra chiave con una buona passphare aiuta notevolmente a 3478c2ecf20Sopenharmony_ciridurre i rischi elencati qui sopra, ma le passphrase possono essere scoperte 3488c2ecf20Sopenharmony_ciattraverso i keylogger, il shoulder-surfing, o altri modi. Per questi motivi, 3498c2ecf20Sopenharmony_cinella configurazione si raccomanda di rimuove la chiave primaria dalla vostra 3508c2ecf20Sopenharmony_cicartella home e la si archivia su un dispositivo disconnesso. 3518c2ecf20Sopenharmony_ci 3528c2ecf20Sopenharmony_ci.. warning:: 3538c2ecf20Sopenharmony_ci 3548c2ecf20Sopenharmony_ci Per favore, fate riferimento alla sezione precedente e assicuratevi 3558c2ecf20Sopenharmony_ci di aver fatto una copia di riserva totale della cartella GnuPG. Quello 3568c2ecf20Sopenharmony_ci che stiamo per fare renderà la vostra chiave inutile se non avete delle 3578c2ecf20Sopenharmony_ci copie di riserva utilizzabili! 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ciPer prima cosa, identificate il keygrip della vostra chiave primaria:: 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ci $ gpg --with-keygrip --list-key [fpr] 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ciL'output assomiglierà a questo:: 3648c2ecf20Sopenharmony_ci 3658c2ecf20Sopenharmony_ci pub rsa2048 2018-01-24 [SC] [expires: 2020-01-24] 3668c2ecf20Sopenharmony_ci 000000000000000000000000AAAABBBBCCCCDDDD 3678c2ecf20Sopenharmony_ci Keygrip = 1111000000000000000000000000000000000000 3688c2ecf20Sopenharmony_ci uid [ultimate] Alice Dev <adev@kernel.org> 3698c2ecf20Sopenharmony_ci sub rsa2048 2018-01-24 [E] [expires: 2020-01-24] 3708c2ecf20Sopenharmony_ci Keygrip = 2222000000000000000000000000000000000000 3718c2ecf20Sopenharmony_ci sub ed25519 2018-01-24 [S] 3728c2ecf20Sopenharmony_ci Keygrip = 3333000000000000000000000000000000000000 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ciTrovate la voce keygrid che si trova sotto alla riga ``pub`` (appena sotto 3758c2ecf20Sopenharmony_ciall'impronta digitale della chiave primaria). Questo corrisponderà direttamente 3768c2ecf20Sopenharmony_ciad un file nella cartella ``~/.gnupg``:: 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_ci $ cd ~/.gnupg/private-keys-v1.d 3798c2ecf20Sopenharmony_ci $ ls 3808c2ecf20Sopenharmony_ci 1111000000000000000000000000000000000000.key 3818c2ecf20Sopenharmony_ci 2222000000000000000000000000000000000000.key 3828c2ecf20Sopenharmony_ci 3333000000000000000000000000000000000000.key 3838c2ecf20Sopenharmony_ci 3848c2ecf20Sopenharmony_ciQuello che dovrete fare è rimuovere il file .key che corrisponde al keygrip 3858c2ecf20Sopenharmony_cidella chiave primaria:: 3868c2ecf20Sopenharmony_ci 3878c2ecf20Sopenharmony_ci $ cd ~/.gnupg/private-keys-v1.d 3888c2ecf20Sopenharmony_ci $ rm 1111000000000000000000000000000000000000.key 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ciOra, se eseguite il comando ``--list-secret-keys``, vedrete che la chiave 3918c2ecf20Sopenharmony_ciprimaria non compare più (il simbolo ``#`` indica che non è disponibile):: 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ci $ gpg --list-secret-keys 3948c2ecf20Sopenharmony_ci sec# rsa2048 2018-01-24 [SC] [expires: 2020-01-24] 3958c2ecf20Sopenharmony_ci 000000000000000000000000AAAABBBBCCCCDDDD 3968c2ecf20Sopenharmony_ci uid [ultimate] Alice Dev <adev@kernel.org> 3978c2ecf20Sopenharmony_ci ssb rsa2048 2018-01-24 [E] [expires: 2020-01-24] 3988c2ecf20Sopenharmony_ci ssb ed25519 2018-01-24 [S] 3998c2ecf20Sopenharmony_ci 4008c2ecf20Sopenharmony_ciDovreste rimuovere anche i file ``secring.gpg`` che si trovano nella cartella 4018c2ecf20Sopenharmony_ci``~/.gnupg``, in quanto rimasugli delle versioni precedenti di GnuPG. 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ciSe non avete la cartella "private-keys-v1.d" 4048c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4058c2ecf20Sopenharmony_ci 4068c2ecf20Sopenharmony_ciSe non avete la cartella ``~/.gnupg/private-keys-v1.d``, allora le vostre 4078c2ecf20Sopenharmony_cichiavi segrete sono ancora salvate nel vecchio file ``secring.gpg`` usato 4088c2ecf20Sopenharmony_cida GnuPG v1. Effettuare una qualsiasi modifica alla vostra chiave, come 4098c2ecf20Sopenharmony_cicambiare la passphare o aggiungere una sottochiave, dovrebbe convertire 4108c2ecf20Sopenharmony_ciautomaticamente il vecchio formato ``secring.gpg``nel nuovo 4118c2ecf20Sopenharmony_ci``private-keys-v1.d``. 4128c2ecf20Sopenharmony_ci 4138c2ecf20Sopenharmony_ciUna volta che l'avete fatto, assicuratevi di rimuovere il file ``secring.gpg``, 4148c2ecf20Sopenharmony_ciche continua a contenere la vostra chiave privata. 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ci.. _it_smartcards: 4178c2ecf20Sopenharmony_ci 4188c2ecf20Sopenharmony_ciSpostare le sottochiavi in un apposito dispositivo criptato 4198c2ecf20Sopenharmony_ci=========================================================== 4208c2ecf20Sopenharmony_ci 4218c2ecf20Sopenharmony_ciNonostante la chiave primaria sia ora al riparo da occhi e mani indiscrete, 4228c2ecf20Sopenharmony_cile sottochiavi si trovano ancora nella vostra cartella home. Chiunque riesca 4238c2ecf20Sopenharmony_cia mettere le sue mani su quelle chiavi riuscirà a decriptare le vostre 4248c2ecf20Sopenharmony_cicomunicazioni o a falsificare le vostre firme (se conoscono la passphrase). 4258c2ecf20Sopenharmony_ciInoltre, ogni volta che viene fatta un'operazione con GnuPG, le chiavi vengono 4268c2ecf20Sopenharmony_cicaricate nella memoria di sistema e potrebbero essere rubate con l'uso di 4278c2ecf20Sopenharmony_cimalware sofisticati (pensate a Meltdown e a Spectre). 4288c2ecf20Sopenharmony_ci 4298c2ecf20Sopenharmony_ciIl miglior modo per proteggere le proprie chiave è di spostarle su un 4308c2ecf20Sopenharmony_cidispositivo specializzato in grado di effettuare operazioni smartcard. 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_ciI benefici di una smartcard 4338c2ecf20Sopenharmony_ci--------------------------- 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_ciUna smartcard contiene un chip crittografico che è capace di immagazzinare 4368c2ecf20Sopenharmony_cile chiavi private ed effettuare operazioni crittografiche direttamente sulla 4378c2ecf20Sopenharmony_cicarta stessa. Dato che la chiave non lascia mai la smartcard, il sistema 4388c2ecf20Sopenharmony_cioperativo usato sul computer non sarà in grado di accedere alle chiavi. 4398c2ecf20Sopenharmony_ciQuesto è molto diverso dai dischi USB criptati che abbiamo usato allo scopo di 4408c2ecf20Sopenharmony_ciavere una copia di riserva sicura -- quando il dispositivo USB è connesso e 4418c2ecf20Sopenharmony_cimontato, il sistema operativo potrà accedere al contenuto delle chiavi private. 4428c2ecf20Sopenharmony_ci 4438c2ecf20Sopenharmony_ciL'uso di un disco USB criptato non può sostituire le funzioni di un dispositivo 4448c2ecf20Sopenharmony_cicapace di operazioni di tipo smartcard. 4458c2ecf20Sopenharmony_ci 4468c2ecf20Sopenharmony_ciDispositivi smartcard disponibili 4478c2ecf20Sopenharmony_ci--------------------------------- 4488c2ecf20Sopenharmony_ci 4498c2ecf20Sopenharmony_ciA meno che tutti i vostri computer dispongano di lettori smartcard, il modo 4508c2ecf20Sopenharmony_cipiù semplice è equipaggiarsi di un dispositivo USB specializzato che 4518c2ecf20Sopenharmony_ciimplementi le funzionalità delle smartcard. Sul mercato ci sono diverse 4528c2ecf20Sopenharmony_cisoluzioni disponibili: 4538c2ecf20Sopenharmony_ci 4548c2ecf20Sopenharmony_ci- `Nitrokey Start`_: è Open hardware e Free Software, è basata sul progetto 4558c2ecf20Sopenharmony_ci `GnuK`_ della FSIJ. Questo è uno dei pochi dispositivi a supportare le chiavi 4568c2ecf20Sopenharmony_ci ECC ED25519, ma offre meno funzionalità di sicurezza (come la resistenza 4578c2ecf20Sopenharmony_ci alla manomissione o alcuni attacchi ad un canale laterale). 4588c2ecf20Sopenharmony_ci- `Nitrokey Pro 2`_: è simile alla Nitrokey Start, ma è più resistente alla 4598c2ecf20Sopenharmony_ci manomissione e offre più funzionalità di sicurezza. La Pro 2 supporta la 4608c2ecf20Sopenharmony_ci crittografia ECC (NISTP). 4618c2ecf20Sopenharmony_ci- `Yubikey 5`_: l'hardware e il software sono proprietari, ma è più economica 4628c2ecf20Sopenharmony_ci della Nitrokey Pro ed è venduta anche con porta USB-C il che è utile con i 4638c2ecf20Sopenharmony_ci computer portatili più recenti. In aggiunta, offre altre funzionalità di 4648c2ecf20Sopenharmony_ci sicurezza come FIDO, U2F, e ora supporta anche le chiavi ECC (NISTP) 4658c2ecf20Sopenharmony_ci 4668c2ecf20Sopenharmony_ci`Su LWN c'è una buona recensione`_ dei modelli elencati qui sopra e altri. 4678c2ecf20Sopenharmony_ciLa scelta dipenderà dal costo, dalla disponibilità nella vostra area 4688c2ecf20Sopenharmony_cigeografica e vostre considerazioni sull'hardware aperto/proprietario. 4698c2ecf20Sopenharmony_ci 4708c2ecf20Sopenharmony_ciSe volete usare chiavi ECC, la vostra migliore scelta sul mercato è la 4718c2ecf20Sopenharmony_ciNitrokey Start. 4728c2ecf20Sopenharmony_ci 4738c2ecf20Sopenharmony_ci.. _`Nitrokey Start`: https://shop.nitrokey.com/shop/product/nitrokey-start-6 4748c2ecf20Sopenharmony_ci.. _`Nitrokey Pro 2`: https://shop.nitrokey.com/shop/product/nitrokey-pro-2-3 4758c2ecf20Sopenharmony_ci.. _`Yubikey 5`: https://www.yubico.com/product/yubikey-5-overview/ 4768c2ecf20Sopenharmony_ci.. _Gnuk: http://www.fsij.org/doc-gnuk/ 4778c2ecf20Sopenharmony_ci.. _`Su LWN c'è una buona recensione`: https://lwn.net/Articles/736231/ 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ciConfigurare il vostro dispositivo smartcard 4808c2ecf20Sopenharmony_ci------------------------------------------- 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ciIl vostro dispositivo smartcard dovrebbe iniziare a funzionare non appena 4838c2ecf20Sopenharmony_cilo collegate ad un qualsiasi computer Linux moderno. Potete verificarlo 4848c2ecf20Sopenharmony_cieseguendo:: 4858c2ecf20Sopenharmony_ci 4868c2ecf20Sopenharmony_ci $ gpg --card-status 4878c2ecf20Sopenharmony_ci 4888c2ecf20Sopenharmony_ciSe vedete tutti i dettagli della smartcard, allora ci siamo. Sfortunatamente, 4898c2ecf20Sopenharmony_ciaffrontare tutti i possibili motivi per cui le cose potrebbero non funzionare 4908c2ecf20Sopenharmony_cinon è lo scopo di questa guida. Se avete problemi nel far funzionare la carta 4918c2ecf20Sopenharmony_cicon GnuPG, cercate aiuto attraverso i soliti canali di supporto. 4928c2ecf20Sopenharmony_ci 4938c2ecf20Sopenharmony_ciPer configurare la vostra smartcard, dato che non c'è una via facile dalla 4948c2ecf20Sopenharmony_ciriga di comando, dovrete usate il menu di GnuPG:: 4958c2ecf20Sopenharmony_ci 4968c2ecf20Sopenharmony_ci $ gpg --card-edit 4978c2ecf20Sopenharmony_ci [...omitted...] 4988c2ecf20Sopenharmony_ci gpg/card> admin 4998c2ecf20Sopenharmony_ci Admin commands are allowed 5008c2ecf20Sopenharmony_ci gpg/card> passwd 5018c2ecf20Sopenharmony_ci 5028c2ecf20Sopenharmony_ciDovreste impostare il PIN dell'utente (1), quello dell'amministratore (3) e il 5038c2ecf20Sopenharmony_cicodice di reset (4). Assicuratevi di annotare e salvare questi codici in un 5048c2ecf20Sopenharmony_ciposto sicuro -- specialmente il PIN dell'amministratore e il codice di reset 5058c2ecf20Sopenharmony_ci(che vi permetterà di azzerare completamente la smartcard). Il PIN 5068c2ecf20Sopenharmony_cidell'amministratore viene usato così raramente che è inevitabile dimenticarselo 5078c2ecf20Sopenharmony_cise non lo si annota. 5088c2ecf20Sopenharmony_ci 5098c2ecf20Sopenharmony_ciTornando al nostro menu, potete impostare anche altri valori (come il nome, 5108c2ecf20Sopenharmony_ciil sesso, informazioni d'accesso, eccetera), ma non sono necessari e aggiunge 5118c2ecf20Sopenharmony_cialtre informazioni sulla carta che potrebbero trapelare in caso di smarrimento. 5128c2ecf20Sopenharmony_ci 5138c2ecf20Sopenharmony_ci.. note:: 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_ci A dispetto del nome "PIN", né il PIN utente né quello dell'amministratore 5168c2ecf20Sopenharmony_ci devono essere esclusivamente numerici. 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ciSpostare le sottochiavi sulla smartcard 5198c2ecf20Sopenharmony_ci--------------------------------------- 5208c2ecf20Sopenharmony_ci 5218c2ecf20Sopenharmony_ciUscite dal menu (usando "q") e salverete tutte le modifiche. Poi, spostiamo 5228c2ecf20Sopenharmony_citutte le sottochiavi sulla smartcard. Per la maggior parte delle operazioni 5238c2ecf20Sopenharmony_civi serviranno sia la passphrase della chiave PGP che il PIN 5248c2ecf20Sopenharmony_cidell'amministratore:: 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_ci $ gpg --edit-key [fpr] 5278c2ecf20Sopenharmony_ci 5288c2ecf20Sopenharmony_ci Secret subkeys are available. 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ci pub rsa2048/AAAABBBBCCCCDDDD 5318c2ecf20Sopenharmony_ci created: 2018-01-23 expires: 2020-01-23 usage: SC 5328c2ecf20Sopenharmony_ci trust: ultimate validity: ultimate 5338c2ecf20Sopenharmony_ci ssb rsa2048/1111222233334444 5348c2ecf20Sopenharmony_ci created: 2018-01-23 expires: never usage: E 5358c2ecf20Sopenharmony_ci ssb ed25519/5555666677778888 5368c2ecf20Sopenharmony_ci created: 2017-12-07 expires: never usage: S 5378c2ecf20Sopenharmony_ci [ultimate] (1). Alice Dev <adev@kernel.org> 5388c2ecf20Sopenharmony_ci 5398c2ecf20Sopenharmony_ci gpg> 5408c2ecf20Sopenharmony_ci 5418c2ecf20Sopenharmony_ciUsando ``--edit-key`` si tornerà alla modalità menu e noterete che 5428c2ecf20Sopenharmony_cila lista delle chiavi è leggermente diversa. Da questo momento in poi, 5438c2ecf20Sopenharmony_citutti i comandi saranno eseguiti nella modalità menu, come indicato 5448c2ecf20Sopenharmony_cida ``gpg>``. 5458c2ecf20Sopenharmony_ci 5468c2ecf20Sopenharmony_ciPer prima cosa, selezioniamo la chiave che verrà messa sulla carta -- 5478c2ecf20Sopenharmony_cipotete farlo digitando ``key 1`` (è la prima della lista, la sottochiave 5488c2ecf20Sopenharmony_ci**[E]**):: 5498c2ecf20Sopenharmony_ci 5508c2ecf20Sopenharmony_ci gpg> key 1 5518c2ecf20Sopenharmony_ci 5528c2ecf20Sopenharmony_ciNel'output dovreste vedere ``ssb*`` associato alla chiave **[E]**. Il simbolo 5538c2ecf20Sopenharmony_ci``*`` indica che la chiave è stata "selezionata". Funziona come un 5548c2ecf20Sopenharmony_ciinterruttore, ovvero se scrivete nuovamente ``key 1``, il simbolo ``*`` sparirà 5558c2ecf20Sopenharmony_cie la chiave non sarà più selezionata. 5568c2ecf20Sopenharmony_ci 5578c2ecf20Sopenharmony_ciOra, spostiamo la chiave sulla smartcard:: 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ci gpg> keytocard 5608c2ecf20Sopenharmony_ci Please select where to store the key: 5618c2ecf20Sopenharmony_ci (2) Encryption key 5628c2ecf20Sopenharmony_ci Your selection? 2 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ciDato che è la nostra chiave **[E]**, ha senso metterla nella sezione criptata. 5658c2ecf20Sopenharmony_ciQuando confermerete la selezione, vi verrà chiesta la passphrase della vostra 5668c2ecf20Sopenharmony_cichiave PGP, e poi il PIN dell'amministratore. Se il comando ritorna senza 5678c2ecf20Sopenharmony_cierrori, allora la vostra chiave è stata spostata con successo. 5688c2ecf20Sopenharmony_ci 5698c2ecf20Sopenharmony_ci**Importante**: digitate nuovamente ``key 1`` per deselezionare la prima chiave 5708c2ecf20Sopenharmony_cie selezionate la seconda chiave **[S]** con ``key 2``:: 5718c2ecf20Sopenharmony_ci 5728c2ecf20Sopenharmony_ci gpg> key 1 5738c2ecf20Sopenharmony_ci gpg> key 2 5748c2ecf20Sopenharmony_ci gpg> keytocard 5758c2ecf20Sopenharmony_ci Please select where to store the key: 5768c2ecf20Sopenharmony_ci (1) Signature key 5778c2ecf20Sopenharmony_ci (3) Authentication key 5788c2ecf20Sopenharmony_ci Your selection? 1 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_ciPotete usare la chiave **[S]** sia per firmare che per autenticare, ma vogliamo 5818c2ecf20Sopenharmony_ciche sia nella sezione di firma, quindi scegliete (1). Ancora una volta, se il 5828c2ecf20Sopenharmony_cicomando ritorna senza errori, allora l'operazione è avvenuta con successo:: 5838c2ecf20Sopenharmony_ci 5848c2ecf20Sopenharmony_ci gpg> q 5858c2ecf20Sopenharmony_ci Save changes? (y/N) y 5868c2ecf20Sopenharmony_ci 5878c2ecf20Sopenharmony_ciSalvando le modifiche cancellerete dalla vostra cartella home tutte le chiavi 5888c2ecf20Sopenharmony_ciche avete spostato sulla carta (ma questo non è un problema, perché abbiamo 5898c2ecf20Sopenharmony_cifatto delle copie di sicurezza nel caso in cui dovessimo configurare una 5908c2ecf20Sopenharmony_cinuova smartcard). 5918c2ecf20Sopenharmony_ci 5928c2ecf20Sopenharmony_ciVerificare che le chiavi siano state spostate 5938c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5948c2ecf20Sopenharmony_ci 5958c2ecf20Sopenharmony_ciOra, se doveste usare l'opzione ``--list-secret-keys``, vedrete una 5968c2ecf20Sopenharmony_cisottile differenza nell'output:: 5978c2ecf20Sopenharmony_ci 5988c2ecf20Sopenharmony_ci $ gpg --list-secret-keys 5998c2ecf20Sopenharmony_ci sec# rsa2048 2018-01-24 [SC] [expires: 2020-01-24] 6008c2ecf20Sopenharmony_ci 000000000000000000000000AAAABBBBCCCCDDDD 6018c2ecf20Sopenharmony_ci uid [ultimate] Alice Dev <adev@kernel.org> 6028c2ecf20Sopenharmony_ci ssb> rsa2048 2018-01-24 [E] [expires: 2020-01-24] 6038c2ecf20Sopenharmony_ci ssb> ed25519 2018-01-24 [S] 6048c2ecf20Sopenharmony_ci 6058c2ecf20Sopenharmony_ciIl simbolo ``>`` in ``ssb>`` indica che la sottochiave è disponibile solo 6068c2ecf20Sopenharmony_cinella smartcard. Se tornate nella vostra cartella delle chiavi segrete e 6078c2ecf20Sopenharmony_ciguardate al suo contenuto, noterete che i file ``.key`` sono stati sostituiti 6088c2ecf20Sopenharmony_cicon degli stub:: 6098c2ecf20Sopenharmony_ci 6108c2ecf20Sopenharmony_ci $ cd ~/.gnupg/private-keys-v1.d 6118c2ecf20Sopenharmony_ci $ strings *.key | grep 'private-key' 6128c2ecf20Sopenharmony_ci 6138c2ecf20Sopenharmony_ciPer indicare che i file sono solo degli stub e che in realtà il contenuto è 6148c2ecf20Sopenharmony_cisulla smartcard, l'output dovrebbe mostrarvi ``shadowed-private-key``. 6158c2ecf20Sopenharmony_ci 6168c2ecf20Sopenharmony_ciVerificare che la smartcard funzioni 6178c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_ciPer verificare che la smartcard funzioni come dovuto, potete creare 6208c2ecf20Sopenharmony_ciuna firma:: 6218c2ecf20Sopenharmony_ci 6228c2ecf20Sopenharmony_ci $ echo "Hello world" | gpg --clearsign > /tmp/test.asc 6238c2ecf20Sopenharmony_ci $ gpg --verify /tmp/test.asc 6248c2ecf20Sopenharmony_ci 6258c2ecf20Sopenharmony_ciCol primo comando dovrebbe chiedervi il PIN della smartcard, e poi dovrebbe 6268c2ecf20Sopenharmony_cimostrare "Good signature" dopo l'esecuzione di ``gpg --verify``. 6278c2ecf20Sopenharmony_ci 6288c2ecf20Sopenharmony_ciComplimenti, siete riusciti a rendere estremamente difficile il furto della 6298c2ecf20Sopenharmony_civostra identità digitale di sviluppatore. 6308c2ecf20Sopenharmony_ci 6318c2ecf20Sopenharmony_ciAltre operazioni possibili con GnuPG 6328c2ecf20Sopenharmony_ci------------------------------------ 6338c2ecf20Sopenharmony_ci 6348c2ecf20Sopenharmony_ciSegue un breve accenno ad alcune delle operazioni più comuni che dovrete 6358c2ecf20Sopenharmony_cifare con le vostre chiavi PGP. 6368c2ecf20Sopenharmony_ci 6378c2ecf20Sopenharmony_ciMontare il disco con la chiave primaria 6388c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6398c2ecf20Sopenharmony_ci 6408c2ecf20Sopenharmony_ciVi servirà la vostra chiave principale per tutte le operazioni che seguiranno, 6418c2ecf20Sopenharmony_ciper cui per prima cosa dovrete accedere ai vostri backup e dire a GnuPG di 6428c2ecf20Sopenharmony_ciusarli:: 6438c2ecf20Sopenharmony_ci 6448c2ecf20Sopenharmony_ci $ export GNUPGHOME=/media/disk/foo/gnupg-backup 6458c2ecf20Sopenharmony_ci $ gpg --list-secret-keys 6468c2ecf20Sopenharmony_ci 6478c2ecf20Sopenharmony_ciDovete assicurarvi di vedere ``sec`` e non ``sec#`` nell'output del programma 6488c2ecf20Sopenharmony_ci(il simbolo ``#`` significa che la chiave non è disponibile e che state ancora 6498c2ecf20Sopenharmony_ciutilizzando la vostra solita cartella di lavoro). 6508c2ecf20Sopenharmony_ci 6518c2ecf20Sopenharmony_ciEstendere la data di scadenza di una chiave 6528c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6538c2ecf20Sopenharmony_ci 6548c2ecf20Sopenharmony_ciLa chiave principale ha una data di scadenza di 2 anni dal momento della sua 6558c2ecf20Sopenharmony_cicreazione. Questo per motivi di sicurezza e per rendere obsolete le chiavi 6568c2ecf20Sopenharmony_ciche, eventualmente, dovessero sparire dai keyserver. 6578c2ecf20Sopenharmony_ci 6588c2ecf20Sopenharmony_ciPer estendere di un anno, dalla data odierna, la scadenza di una vostra chiave, 6598c2ecf20Sopenharmony_cieseguite:: 6608c2ecf20Sopenharmony_ci 6618c2ecf20Sopenharmony_ci $ gpg --quick-set-expire [fpr] 1y 6628c2ecf20Sopenharmony_ci 6638c2ecf20Sopenharmony_ciSe per voi è più facile da memorizzare, potete anche utilizzare una data 6648c2ecf20Sopenharmony_cispecifica (per esempio, il vostro compleanno o capodanno):: 6658c2ecf20Sopenharmony_ci 6668c2ecf20Sopenharmony_ci $ gpg --quick-set-expire [fpr] 2020-07-01 6678c2ecf20Sopenharmony_ci 6688c2ecf20Sopenharmony_ciRicordatevi di inviare l'aggiornamento ai keyserver:: 6698c2ecf20Sopenharmony_ci 6708c2ecf20Sopenharmony_ci $ gpg --send-key [fpr] 6718c2ecf20Sopenharmony_ci 6728c2ecf20Sopenharmony_ciAggiornare la vostra cartella di lavoro dopo ogni modifica 6738c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6748c2ecf20Sopenharmony_ci 6758c2ecf20Sopenharmony_ciDopo aver fatto delle modifiche alle vostre chiavi usando uno spazio a parte, 6768c2ecf20Sopenharmony_cidovreste importarle nella vostra cartella di lavoro abituale:: 6778c2ecf20Sopenharmony_ci 6788c2ecf20Sopenharmony_ci $ gpg --export | gpg --homedir ~/.gnupg --import 6798c2ecf20Sopenharmony_ci $ unset GNUPGHOME 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_ci 6828c2ecf20Sopenharmony_ciUsare PGP con Git 6838c2ecf20Sopenharmony_ci================= 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_ciUna delle caratteristiche fondanti di Git è la sua natura decentralizzata -- 6868c2ecf20Sopenharmony_ciuna volta che il repositorio è stato clonato sul vostro sistema, avete la 6878c2ecf20Sopenharmony_cistoria completa del progetto, inclusi i suoi tag, i commit ed i rami. Tuttavia, 6888c2ecf20Sopenharmony_cicon i centinaia di repositori clonati che ci sono in giro, come si fa a 6898c2ecf20Sopenharmony_civerificare che la loro copia di linux.git non è stata manomessa da qualcuno? 6908c2ecf20Sopenharmony_ci 6918c2ecf20Sopenharmony_ciOppure, cosa succede se viene scoperta una backdoor nel codice e la riga 6928c2ecf20Sopenharmony_ci"Autore" dice che sei stato tu, mentre tu sei abbastanza sicuro di 6938c2ecf20Sopenharmony_ci`non averci niente a che fare`_? 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_ciPer risolvere entrambi i problemi, Git ha introdotto l'integrazione con PGP. 6968c2ecf20Sopenharmony_ciI tag firmati dimostrano che il repositorio è integro assicurando che il suo 6978c2ecf20Sopenharmony_cicontenuto è lo stesso che si trova sulle macchine degli sviluppatori che hanno 6988c2ecf20Sopenharmony_cicreato il tag; mentre i commit firmati rendono praticamente impossibile 6998c2ecf20Sopenharmony_ciad un malintenzionato di impersonarvi senza avere accesso alle vostre chiavi 7008c2ecf20Sopenharmony_ciPGP. 7018c2ecf20Sopenharmony_ci 7028c2ecf20Sopenharmony_ci.. _`non averci niente a che fare`: https://github.com/jayphelps/git-blame-someone-else 7038c2ecf20Sopenharmony_ci 7048c2ecf20Sopenharmony_ciConfigurare git per usare la vostra chiave PGP 7058c2ecf20Sopenharmony_ci---------------------------------------------- 7068c2ecf20Sopenharmony_ci 7078c2ecf20Sopenharmony_ciSe avete solo una chiave segreta nel vostro portachiavi, allora non avete nulla 7088c2ecf20Sopenharmony_cida fare in più dato che sarà la vostra chiave di base. Tuttavia, se doveste 7098c2ecf20Sopenharmony_ciavere più chiavi segrete, potete dire a git quale dovrebbe usare (``[fpg]`` 7108c2ecf20Sopenharmony_ciè la vostra impronta digitale):: 7118c2ecf20Sopenharmony_ci 7128c2ecf20Sopenharmony_ci $ git config --global user.signingKey [fpr] 7138c2ecf20Sopenharmony_ci 7148c2ecf20Sopenharmony_ci**IMPORTANTE**: se avete una comando dedicato per ``gpg2``, allora dovreste 7158c2ecf20Sopenharmony_cidire a git di usare sempre quello piuttosto che il vecchio comando ``gpg``:: 7168c2ecf20Sopenharmony_ci 7178c2ecf20Sopenharmony_ci $ git config --global gpg.program gpg2 7188c2ecf20Sopenharmony_ci 7198c2ecf20Sopenharmony_ciCome firmare i tag 7208c2ecf20Sopenharmony_ci------------------ 7218c2ecf20Sopenharmony_ci 7228c2ecf20Sopenharmony_ciPer creare un tag firmato, passate l'opzione ``-s`` al comando tag:: 7238c2ecf20Sopenharmony_ci 7248c2ecf20Sopenharmony_ci $ git tag -s [tagname] 7258c2ecf20Sopenharmony_ci 7268c2ecf20Sopenharmony_ciLa nostra raccomandazione è quella di firmare sempre i tag git, perché 7278c2ecf20Sopenharmony_ciquesto permette agli altri sviluppatori di verificare che il repositorio 7288c2ecf20Sopenharmony_cigit dal quale stanno prendendo il codice non è stato alterato intenzionalmente. 7298c2ecf20Sopenharmony_ci 7308c2ecf20Sopenharmony_ciCome verificare i tag firmati 7318c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7328c2ecf20Sopenharmony_ci 7338c2ecf20Sopenharmony_ciPer verificare un tag firmato, potete usare il comando ``verify-tag``:: 7348c2ecf20Sopenharmony_ci 7358c2ecf20Sopenharmony_ci $ git verify-tag [tagname] 7368c2ecf20Sopenharmony_ci 7378c2ecf20Sopenharmony_ciSe state prendendo un tag da un fork del repositorio del progetto, git 7388c2ecf20Sopenharmony_cidovrebbe verificare automaticamente la firma di quello che state prendendo 7398c2ecf20Sopenharmony_cie vi mostrerà il risultato durante l'operazione di merge:: 7408c2ecf20Sopenharmony_ci 7418c2ecf20Sopenharmony_ci $ git pull [url] tags/sometag 7428c2ecf20Sopenharmony_ci 7438c2ecf20Sopenharmony_ciIl merge conterrà qualcosa di simile:: 7448c2ecf20Sopenharmony_ci 7458c2ecf20Sopenharmony_ci Merge tag 'sometag' of [url] 7468c2ecf20Sopenharmony_ci 7478c2ecf20Sopenharmony_ci [Tag message] 7488c2ecf20Sopenharmony_ci 7498c2ecf20Sopenharmony_ci # gpg: Signature made [...] 7508c2ecf20Sopenharmony_ci # gpg: Good signature from [...] 7518c2ecf20Sopenharmony_ci 7528c2ecf20Sopenharmony_ciSe state verificando il tag di qualcun altro, allora dovrete importare 7538c2ecf20Sopenharmony_cila loro chiave PGP. Fate riferimento alla sezione ":ref:`it_verify_identities`" 7548c2ecf20Sopenharmony_ciche troverete più avanti. 7558c2ecf20Sopenharmony_ci 7568c2ecf20Sopenharmony_ciConfigurare git per firmare sempre i tag con annotazione 7578c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7588c2ecf20Sopenharmony_ci 7598c2ecf20Sopenharmony_ciSe state creando un tag con annotazione è molto probabile che vogliate 7608c2ecf20Sopenharmony_cifirmarlo. Per imporre a git di firmare sempre un tag con annotazione, 7618c2ecf20Sopenharmony_cidovete impostare la seguente opzione globale:: 7628c2ecf20Sopenharmony_ci 7638c2ecf20Sopenharmony_ci $ git config --global tag.forceSignAnnotated true 7648c2ecf20Sopenharmony_ci 7658c2ecf20Sopenharmony_ciCome usare commit firmati 7668c2ecf20Sopenharmony_ci------------------------- 7678c2ecf20Sopenharmony_ci 7688c2ecf20Sopenharmony_ciCreare dei commit firmati è facile, ma è molto più difficile utilizzarli 7698c2ecf20Sopenharmony_cinello sviluppo del kernel linux per via del fatto che ci si affida alle 7708c2ecf20Sopenharmony_ciliste di discussione e questo modo di procedere non mantiene le firme PGP 7718c2ecf20Sopenharmony_cinei commit. In aggiunta, quando si usa *rebase* nel proprio repositorio 7728c2ecf20Sopenharmony_cilocale per allinearsi al kernel anche le proprie firme PGP verranno scartate. 7738c2ecf20Sopenharmony_ciPer questo motivo, la maggior parte degli sviluppatori del kernel non si 7748c2ecf20Sopenharmony_cipreoccupano troppo di firmare i propri commit ed ignoreranno quelli firmati 7758c2ecf20Sopenharmony_ciche si trovano in altri repositori usati per il proprio lavoro. 7768c2ecf20Sopenharmony_ci 7778c2ecf20Sopenharmony_ciTuttavia, se avete il vostro repositorio di lavoro disponibile al pubblico 7788c2ecf20Sopenharmony_cisu un qualche servizio di hosting git (kernel.org, infradead.org, ozlabs.org, 7798c2ecf20Sopenharmony_cio altri), allora la raccomandazione è di firmare tutti i vostri commit 7808c2ecf20Sopenharmony_cianche se gli sviluppatori non ne beneficeranno direttamente. 7818c2ecf20Sopenharmony_ci 7828c2ecf20Sopenharmony_ciVi raccomandiamo di farlo per i seguenti motivi: 7838c2ecf20Sopenharmony_ci 7848c2ecf20Sopenharmony_ci1. Se dovesse mai esserci la necessità di fare delle analisi forensi o 7858c2ecf20Sopenharmony_ci tracciare la provenienza di un codice, anche sorgenti mantenuti 7868c2ecf20Sopenharmony_ci esternamente che hanno firme PGP sui commit avranno un certo valore a 7878c2ecf20Sopenharmony_ci questo scopo. 7888c2ecf20Sopenharmony_ci2. Se dovesse mai capitarvi di clonare il vostro repositorio locale (per 7898c2ecf20Sopenharmony_ci esempio dopo un danneggiamento del disco), la firma vi permetterà di 7908c2ecf20Sopenharmony_ci verificare l'integrità del repositorio prima di riprendere il lavoro. 7918c2ecf20Sopenharmony_ci3. Se qualcuno volesse usare *cherry-pick* sui vostri commit, allora la firma 7928c2ecf20Sopenharmony_ci permetterà di verificare l'integrità dei commit prima di applicarli. 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_ciCreare commit firmati 7958c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~ 7968c2ecf20Sopenharmony_ci 7978c2ecf20Sopenharmony_ciPer creare un commit firmato, dovete solamente aggiungere l'opzione ``-S`` 7988c2ecf20Sopenharmony_cial comando ``git commit`` (si usa la lettera maiuscola per evitare 7998c2ecf20Sopenharmony_ciconflitti con un'altra opzione):: 8008c2ecf20Sopenharmony_ci 8018c2ecf20Sopenharmony_ci $ git commit -S 8028c2ecf20Sopenharmony_ci 8038c2ecf20Sopenharmony_ciConfigurare git per firmare sempre i commit 8048c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8058c2ecf20Sopenharmony_ci 8068c2ecf20Sopenharmony_ciPotete dire a git di firmare sempre i commit:: 8078c2ecf20Sopenharmony_ci 8088c2ecf20Sopenharmony_ci git config --global commit.gpgSign true 8098c2ecf20Sopenharmony_ci 8108c2ecf20Sopenharmony_ci.. note:: 8118c2ecf20Sopenharmony_ci 8128c2ecf20Sopenharmony_ci Assicuratevi di aver configurato ``gpg-agent`` prima di abilitare 8138c2ecf20Sopenharmony_ci questa opzione. 8148c2ecf20Sopenharmony_ci 8158c2ecf20Sopenharmony_ci.. _it_verify_identities: 8168c2ecf20Sopenharmony_ci 8178c2ecf20Sopenharmony_ciCome verificare l'identità degli sviluppatori del kernel 8188c2ecf20Sopenharmony_ci======================================================== 8198c2ecf20Sopenharmony_ci 8208c2ecf20Sopenharmony_ciFirmare i tag e i commit è facile, ma come si fa a verificare che la chiave 8218c2ecf20Sopenharmony_ciusata per firmare qualcosa appartenga davvero allo sviluppatore e non ad un 8228c2ecf20Sopenharmony_ciimpostore? 8238c2ecf20Sopenharmony_ci 8248c2ecf20Sopenharmony_ciConfigurare l'auto-key-retrieval usando WKD e DANE 8258c2ecf20Sopenharmony_ci-------------------------------------------------- 8268c2ecf20Sopenharmony_ci 8278c2ecf20Sopenharmony_ciSe non siete ancora in possesso di una vasta collezione di chiavi pubbliche 8288c2ecf20Sopenharmony_cidi altri sviluppatori, allora potreste iniziare il vostro portachiavi 8298c2ecf20Sopenharmony_ciaffidandovi ai servizi di auto-scoperta e auto-recupero. GnuPG può affidarsi 8308c2ecf20Sopenharmony_ciad altre tecnologie di delega della fiducia, come DNSSEC e TLS, per sostenervi 8318c2ecf20Sopenharmony_cinel caso in cui iniziare una propria rete di fiducia da zero sia troppo 8328c2ecf20Sopenharmony_ciscoraggiante. 8338c2ecf20Sopenharmony_ci 8348c2ecf20Sopenharmony_ciAggiungete il seguente testo al vostro file ``~/.gnupg/gpg.conf``:: 8358c2ecf20Sopenharmony_ci 8368c2ecf20Sopenharmony_ci auto-key-locate wkd,dane,local 8378c2ecf20Sopenharmony_ci auto-key-retrieve 8388c2ecf20Sopenharmony_ci 8398c2ecf20Sopenharmony_ciLa *DNS-Based Authentication of Named Entities* ("DANE") è un metodo 8408c2ecf20Sopenharmony_ciper la pubblicazione di chiavi pubbliche su DNS e per renderle sicure usando 8418c2ecf20Sopenharmony_cizone firmate con DNSSEC. Il *Web Key Directory* ("WKD") è un metodo 8428c2ecf20Sopenharmony_cialternativo che usa https a scopo di ricerca. Quando si usano DANE o WKD 8438c2ecf20Sopenharmony_ciper la ricerca di chiavi pubbliche, GnuPG validerà i certificati DNSSEC o TLS 8448c2ecf20Sopenharmony_ciprima di aggiungere al vostro portachiavi locale le eventuali chiavi trovate. 8458c2ecf20Sopenharmony_ci 8468c2ecf20Sopenharmony_ciKernel.org pubblica la WKD per tutti gli sviluppatori che hanno un account 8478c2ecf20Sopenharmony_cikernel.org. Una volta che avete applicato le modifiche al file ``gpg.conf``, 8488c2ecf20Sopenharmony_cipotrete auto-recuperare le chiavi di Linus Torvalds e Greg Kroah-Hartman 8498c2ecf20Sopenharmony_ci(se non le avete già):: 8508c2ecf20Sopenharmony_ci 8518c2ecf20Sopenharmony_ci $ gpg --locate-keys torvalds@kernel.org gregkh@kernel.org 8528c2ecf20Sopenharmony_ci 8538c2ecf20Sopenharmony_ciSe avete un account kernel.org, al fine di rendere più utile l'uso di WKD 8548c2ecf20Sopenharmony_cida parte di altri sviluppatori del kernel, dovreste `aggiungere alla vostra 8558c2ecf20Sopenharmony_cichiave lo UID di kernel.org`_. 8568c2ecf20Sopenharmony_ci 8578c2ecf20Sopenharmony_ci.. _`aggiungere alla vostra chiave lo UID di kernel.org`: https://korg.wiki.kernel.org/userdoc/mail#adding_a_kernelorg_uid_to_your_pgp_key 8588c2ecf20Sopenharmony_ci 8598c2ecf20Sopenharmony_ciWeb of Trust (WOT) o Trust on First Use (TOFU) 8608c2ecf20Sopenharmony_ci---------------------------------------------- 8618c2ecf20Sopenharmony_ci 8628c2ecf20Sopenharmony_ciPGP incorpora un meccanismo di delega della fiducia conosciuto come 8638c2ecf20Sopenharmony_ci"Web of Trust". Di base, questo è un tentativo di sostituire la necessità 8648c2ecf20Sopenharmony_cidi un'autorità certificativa centralizzata tipica del mondo HTTPS/TLS. 8658c2ecf20Sopenharmony_ciInvece di avere svariati produttori software che decidono chi dovrebbero 8668c2ecf20Sopenharmony_ciessere le entità di certificazione di cui dovreste fidarvi, PGP lascia 8678c2ecf20Sopenharmony_cila responsabilità ad ogni singolo utente. 8688c2ecf20Sopenharmony_ci 8698c2ecf20Sopenharmony_ciSfortunatamente, solo poche persone capiscono come funziona la rete di fiducia. 8708c2ecf20Sopenharmony_ciNonostante sia un importante aspetto della specifica OpenPGP, recentemente 8718c2ecf20Sopenharmony_cile versioni di GnuPG (2.2 e successive) hanno implementato un meccanisco 8728c2ecf20Sopenharmony_cialternativo chiamato "Trust on First Use" (TOFU). Potete pensare a TOFU come 8738c2ecf20Sopenharmony_ci"ad un approccio all fidicia simile ad SSH". In SSH, la prima volta che vi 8748c2ecf20Sopenharmony_ciconnettete ad un sistema remoto, l'impronta digitale della chiave viene 8758c2ecf20Sopenharmony_ciregistrata e ricordata. Se la chiave dovesse cambiare in futuro, il programma 8768c2ecf20Sopenharmony_ciSSH vi avviserà e si rifiuterà di connettersi, obbligandovi a prendere una 8778c2ecf20Sopenharmony_cidecisione circa la fiducia che riponete nella nuova chiave. In modo simile, 8788c2ecf20Sopenharmony_cila prima volta che importate la chiave PGP di qualcuno, si assume sia valida. 8798c2ecf20Sopenharmony_ciSe ad un certo punto GnuPG trova un'altra chiave con la stessa identità, 8808c2ecf20Sopenharmony_cientrambe, la vecchia e la nuova, verranno segnate come invalide e dovrete 8818c2ecf20Sopenharmony_civerificare manualmente quale tenere. 8828c2ecf20Sopenharmony_ci 8838c2ecf20Sopenharmony_ciVi raccomandiamo di usare il meccanisco TOFU+PGP (che è la nuova configurazione 8848c2ecf20Sopenharmony_cidi base di GnuPG v2). Per farlo, aggiungete (o modificate) l'impostazione 8858c2ecf20Sopenharmony_ci``trust-model`` in ``~/.gnupg/gpg.conf``:: 8868c2ecf20Sopenharmony_ci 8878c2ecf20Sopenharmony_ci trust-model tofu+pgp 8888c2ecf20Sopenharmony_ci 8898c2ecf20Sopenharmony_ciCome usare i keyserver in sicurezza 8908c2ecf20Sopenharmony_ci----------------------------------- 8918c2ecf20Sopenharmony_ciSe ottenete l'errore "No public key" quando cercate di validate il tag di 8928c2ecf20Sopenharmony_ciqualcuno, allora dovreste cercare quella chiave usando un keyserver. È 8938c2ecf20Sopenharmony_ciimportante tenere bene a mente che non c'è alcuna garanzia che la chiave 8948c2ecf20Sopenharmony_ciche avete recuperato da un keyserver PGP appartenga davvero alla persona 8958c2ecf20Sopenharmony_cireale -- è progettato così. Dovreste usare il Web of Trust per assicurarvi 8968c2ecf20Sopenharmony_ciche la chiave sia valida. 8978c2ecf20Sopenharmony_ci 8988c2ecf20Sopenharmony_ciCome mantenere il Web of Trust va oltre gli scopi di questo documento, 8998c2ecf20Sopenharmony_cisemplicemente perché farlo come si deve richiede sia sforzi che perseveranza 9008c2ecf20Sopenharmony_ciche tendono ad andare oltre al livello di interesse della maggior parte degli 9018c2ecf20Sopenharmony_ciesseri umani. Qui di seguito alcuni rapidi suggerimenti per aiutarvi a ridurre 9028c2ecf20Sopenharmony_ciil rischio di importare chiavi maligne. 9038c2ecf20Sopenharmony_ci 9048c2ecf20Sopenharmony_ciPrimo, diciamo che avete provato ad eseguire ``git verify-tag`` ma restituisce 9058c2ecf20Sopenharmony_ciun errore dicendo che la chiave non è stata trovata:: 9068c2ecf20Sopenharmony_ci 9078c2ecf20Sopenharmony_ci $ git verify-tag sunxi-fixes-for-4.15-2 9088c2ecf20Sopenharmony_ci gpg: Signature made Sun 07 Jan 2018 10:51:55 PM EST 9098c2ecf20Sopenharmony_ci gpg: using RSA key DA73759BF8619E484E5A3B47389A54219C0F2430 9108c2ecf20Sopenharmony_ci gpg: issuer "wens@...org" 9118c2ecf20Sopenharmony_ci gpg: Can't check signature: No public key 9128c2ecf20Sopenharmony_ci 9138c2ecf20Sopenharmony_ciCerchiamo nel keyserver per maggiori informazioni sull'impronta digitale 9148c2ecf20Sopenharmony_cidella chiave (l'impronta digitale, probabilmente, appartiene ad una 9158c2ecf20Sopenharmony_cisottochiave, dunque non possiamo usarla direttamente senza trovare prima 9168c2ecf20Sopenharmony_cil'ID della chiave primaria associata ad essa):: 9178c2ecf20Sopenharmony_ci 9188c2ecf20Sopenharmony_ci $ gpg --search DA73759BF8619E484E5A3B47389A54219C0F2430 9198c2ecf20Sopenharmony_ci gpg: data source: hkp://keys.gnupg.net 9208c2ecf20Sopenharmony_ci (1) Chen-Yu Tsai <wens@...org> 9218c2ecf20Sopenharmony_ci 4096 bit RSA key C94035C21B4F2AEB, created: 2017-03-14, expires: 2019-03-15 9228c2ecf20Sopenharmony_ci Keys 1-1 of 1 for "DA73759BF8619E484E5A3B47389A54219C0F2430". Enter number(s), N)ext, or Q)uit > q 9238c2ecf20Sopenharmony_ci 9248c2ecf20Sopenharmony_ciLocalizzate l'ID della chiave primaria, nel nostro esempio 9258c2ecf20Sopenharmony_ci``C94035C21B4F2AEB``. Ora visualizzate le chiavi di Linus Torvalds 9268c2ecf20Sopenharmony_ciche avete nel vostro portachiavi:: 9278c2ecf20Sopenharmony_ci 9288c2ecf20Sopenharmony_ci $ gpg --list-key torvalds@kernel.org 9298c2ecf20Sopenharmony_ci pub rsa2048 2011-09-20 [SC] 9308c2ecf20Sopenharmony_ci ABAF11C65A2970B130ABE3C479BE3E4300411886 9318c2ecf20Sopenharmony_ci uid [ unknown] Linus Torvalds <torvalds@kernel.org> 9328c2ecf20Sopenharmony_ci sub rsa2048 2011-09-20 [E] 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_ciPoi, aprite il `PGP pathfinder`_. Nel campo "From", incollate l'impronta 9358c2ecf20Sopenharmony_cidigitale della chiave di Linus Torvalds che si vede nell'output qui sopra. 9368c2ecf20Sopenharmony_ciNel campo "to", incollate il key-id della chiave sconosciuta che avete 9378c2ecf20Sopenharmony_citrovato con ``gpg --search``, e poi verificare il risultato: 9388c2ecf20Sopenharmony_ci 9398c2ecf20Sopenharmony_ci- `Finding paths to Linus`_ 9408c2ecf20Sopenharmony_ci 9418c2ecf20Sopenharmony_ciSe trovate un paio di percorsi affidabili è un buon segno circa la validità 9428c2ecf20Sopenharmony_cidella chiave. Ora, potete aggiungerla al vostro portachiavi dal keyserver:: 9438c2ecf20Sopenharmony_ci 9448c2ecf20Sopenharmony_ci $ gpg --recv-key C94035C21B4F2AEB 9458c2ecf20Sopenharmony_ci 9468c2ecf20Sopenharmony_ciQuesta procedura non è perfetta, e ovviamente state riponendo la vostra 9478c2ecf20Sopenharmony_cifiducia nell'amministratore del servizio *PGP Pathfinder* sperando che non 9488c2ecf20Sopenharmony_cisia malintenzionato (infatti, questo va contro :ref:`it_devs_not_infra`). 9498c2ecf20Sopenharmony_ciTuttavia, se mantenete con cura la vostra rete di fiducia sarà un deciso 9508c2ecf20Sopenharmony_cimiglioramento rispetto alla cieca fiducia nei keyserver. 9518c2ecf20Sopenharmony_ci 9528c2ecf20Sopenharmony_ci.. _`PGP pathfinder`: https://pgp.cs.uu.nl/ 9538c2ecf20Sopenharmony_ci.. _`Finding paths to Linus`: https://pgp.cs.uu.nl/paths/79BE3E4300411886/to/C94035C21B4F2AEB.html 954