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