162306a36Sopenharmony_ci.. include:: ../disclaimer-ita.rst
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci:Original: :ref:`Documentation/process/maintainer-pgp-guide.rst <pgpguide>`
462306a36Sopenharmony_ci:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it>
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci.. _it_pgpguide:
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci=========================================
962306a36Sopenharmony_ciLa guida a PGP per manutentori del kernel
1062306a36Sopenharmony_ci=========================================
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci:Author: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciQuesto documento è destinato agli sviluppatori del kernel Linux, in particolar
1562306a36Sopenharmony_cimodo ai manutentori. Contiene degli approfondimenti riguardo informazioni che
1662306a36Sopenharmony_cisono state affrontate in maniera più generale nella sezione
1762306a36Sopenharmony_ci"`Protecting Code Integrity`_" pubblicata dalla Linux Foundation.
1862306a36Sopenharmony_ciPer approfondire alcuni argomenti trattati in questo documento è consigliato
1962306a36Sopenharmony_cileggere il documento sopraindicato
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci.. _`Protecting Code Integrity`: https://github.com/lfit/itpol/blob/master/protecting-code-integrity.md
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciIl ruolo di PGP nello sviluppo del kernel Linux
2462306a36Sopenharmony_ci===============================================
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciPGP aiuta ad assicurare l'integrità del codice prodotto dalla comunità
2762306a36Sopenharmony_cidi sviluppo del kernel e, in secondo luogo, stabilisce canali di comunicazione
2862306a36Sopenharmony_ciaffidabili tra sviluppatori attraverso lo scambio di email firmate con PGP.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciIl codice sorgente del kernel Linux è disponibile principalmente in due
3162306a36Sopenharmony_ciformati:
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci- repositori distribuiti di sorgenti (git)
3462306a36Sopenharmony_ci- rilasci periodici di istantanee (archivi tar)
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciSia i repositori git che gli archivi tar portano le firme PGP degli
3762306a36Sopenharmony_cisviluppatori che hanno creato i rilasci ufficiali del kernel. Queste firme
3862306a36Sopenharmony_cioffrono una garanzia crittografica che le versioni scaricabili rese disponibili
3962306a36Sopenharmony_civia kernel.org, o altri portali, siano identiche a quelle che gli sviluppatori
4062306a36Sopenharmony_cihanno sul loro posto di lavoro. A tal scopo:
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci- i repositori git forniscono firme PGP per ogni tag
4362306a36Sopenharmony_ci- gli archivi tar hanno firme separate per ogni archivio
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci.. _it_devs_not_infra:
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciFidatevi degli sviluppatori e non dell'infrastruttura
4862306a36Sopenharmony_ci-----------------------------------------------------
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciFin dal 2011, quando i sistemi di kernel.org furono compromessi, il principio
5162306a36Sopenharmony_cigenerale del progetto Kernel Archives è stato quello di assumere che qualsiasi
5262306a36Sopenharmony_ciparte dell'infrastruttura possa essere compromessa in ogni momento. Per questa
5362306a36Sopenharmony_ciragione, gli amministratori hanno intrapreso deliberatemene dei passi per
5462306a36Sopenharmony_cienfatizzare che la fiducia debba risiedere sempre negli sviluppatori e mai nel
5562306a36Sopenharmony_cicodice che gestisce l'infrastruttura, indipendentemente da quali che siano le
5662306a36Sopenharmony_cipratiche di sicurezza messe in atto.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciIl principio sopra indicato è la ragione per la quale è necessaria questa
5962306a36Sopenharmony_ciguida. Vogliamo essere sicuri che il riporre la fiducia negli sviluppatori
6062306a36Sopenharmony_cinon sia fatto semplicemente per incolpare qualcun'altro per future falle di
6162306a36Sopenharmony_cisicurezza. L'obiettivo è quello di fornire una serie di linee guida che gli
6262306a36Sopenharmony_cisviluppatori possano seguire per creare un ambiente di lavoro sicuro e
6362306a36Sopenharmony_cisalvaguardare le chiavi PGP usate nello stabilire l'integrità del kernel Linux
6462306a36Sopenharmony_cistesso.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci.. _it_pgp_tools:
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciStrumenti PGP
6962306a36Sopenharmony_ci=============
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciUsare GnuPG 2.2 o successivo
7262306a36Sopenharmony_ci----------------------------
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciLa vostra distribuzione potrebbe avere già installato GnuPG, dovete solo
7562306a36Sopenharmony_civerificare che stia utilizzando la versione abbastanza recente. Per controllate
7662306a36Sopenharmony_ciusate::
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci    $ gpg --version | head -n1
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciSe state utilizzando la version 2.2 o successiva, allora siete pronti a partire.
8162306a36Sopenharmony_ciSe invece state usando una versione precedente, allora alcuni comandi elencati
8262306a36Sopenharmony_ciin questa guida potrebbero non funzionare.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciConfigurare le opzioni di gpg-agent
8562306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciL'agente GnuPG è uno strumento di aiuto che partirà automaticamente ogni volta
8862306a36Sopenharmony_ciche userete il comando ``gpg`` e funzionerà in *background* con l'obiettivo di
8962306a36Sopenharmony_ciindividuare la passphrase. Ci sono due opzioni che dovreste conoscere
9062306a36Sopenharmony_ciper personalizzare la scadenza della passphrase nella cache:
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci- ``default-cache-ttl`` (secondi): Se usate ancora la stessa chiave prima
9362306a36Sopenharmony_ci  che il time-to-live termini, il conto alla rovescia si resetterà per un
9462306a36Sopenharmony_ci  altro periodo. Di base è di 600 (10 minuti).
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci- ``max-cache-ttl`` (secondi): indipendentemente da quanto sia recente l'ultimo
9762306a36Sopenharmony_ci  uso della chiave da quando avete inserito la passphrase, se il massimo
9862306a36Sopenharmony_ci  time-to-live è scaduto, dovrete reinserire nuovamente la passphrase.
9962306a36Sopenharmony_ci  Di base è di 30 minuti.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciSe ritenete entrambe questi valori di base troppo corti (o troppo lunghi),
10262306a36Sopenharmony_cipotete creare il vostro file ``~/.gnupg/gpg-agent.conf`` ed impostare i vostri
10362306a36Sopenharmony_civalori::
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci    # set to 30 minutes for regular ttl, and 2 hours for max ttl
10662306a36Sopenharmony_ci    default-cache-ttl 1800
10762306a36Sopenharmony_ci    max-cache-ttl 7200
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci.. note::
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci    Non è più necessario far partire l'agente gpg manualmente all'inizio della
11262306a36Sopenharmony_ci    vostra sessione. Dovreste controllare i file rc per rimuovere tutto ciò che
11362306a36Sopenharmony_ci    riguarda vecchie le versioni di GnuPG, poiché potrebbero non svolgere più
11462306a36Sopenharmony_ci    bene il loro compito.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci.. _it_protect_your_key:
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciProteggere la vostra chiave PGP primaria
11962306a36Sopenharmony_ci========================================
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciQuesta guida parte dal presupposto che abbiate già una chiave PGP che usate
12262306a36Sopenharmony_ciper lo sviluppo del kernel Linux. Se non ne avete ancora una, date uno sguardo
12362306a36Sopenharmony_cial documento "`Protecting Code Integrity`_" che abbiamo menzionato prima.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciDovreste inoltre creare una nuova chiave se quella attuale è inferiore a 2048
12662306a36Sopenharmony_cibit (RSA).
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ciLe sottochiavi PGP
12962306a36Sopenharmony_ci------------------
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ciRaramente le chiavi PGP sono composte da una singola coppia -- solitamente, sono
13262306a36Sopenharmony_ciuna collezione di sottochiavi indipendenti usate per diversi scopi in funzione
13362306a36Sopenharmony_cidelle capacità assegnate al momento della creazione. Una chiave PGP può avere
13462306a36Sopenharmony_ciquattro capacità:
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci- **[S]** può essere usata per firmare
13762306a36Sopenharmony_ci- **[E]** può essere usata per criptare
13862306a36Sopenharmony_ci- **[A]** può essere usata per autenticare
13962306a36Sopenharmony_ci- **[C]** può essere usata per certificare altre chiavi
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ciLa chiave con la capacità **[C]** viene spesso chiamata chiave "passepartout"
14262306a36Sopenharmony_ci(*master key*), ma è una terminologia fuorviante perché lascia intendere che la
14362306a36Sopenharmony_cichiave di certificato possa essere usate in sostituzione delle altre (proprio
14462306a36Sopenharmony_cicome le vere chiavi passpartout in grado di aprire diverse serrature). Dato che
14562306a36Sopenharmony_ciquesto non è il caso, per evitare fraintendimenti, in questa guida ci riferiremo
14662306a36Sopenharmony_cia questa chiave chiamandola "La chiave di certificazione".
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciI seguenti punti sono molto importanti:
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci1. Tutte le sottochiavi sono indipendenti. Se perdete una sottochiave privata
15162306a36Sopenharmony_ci   non potrete recuperarla usando le altre.
15262306a36Sopenharmony_ci2. Ad eccezione della chiave di certificazione, ci possono essere più
15362306a36Sopenharmony_ci   sottochiavi con le stesse capacità (per esempio, potete avere 2 sottochiavi
15462306a36Sopenharmony_ci   per criptare, 3 per firmare, ma solo una per una sola per certificare). Tutte
15562306a36Sopenharmony_ci   le sottochiavi sono indipendenti -- un messaggio criptato usando una chiave
15662306a36Sopenharmony_ci   **[E]** non può essere decriptato usano altre sottochiavi **[E]**.
15762306a36Sopenharmony_ci3. Una sottochiave può avere più capacità (per esempio, la chiave **[C]** può
15862306a36Sopenharmony_ci   anche essere una chiave **[S]**).
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ciLa chiave con capacità **[C]** (certificazione) è la sola che può essere usata
16162306a36Sopenharmony_ciper indicare relazioni fra chiavi. Solo la chiave **[C]** può essere usata per:
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci- aggiungere o revocare altre chiavi (sottochiavi) che hanno capacità S/E/A;
16462306a36Sopenharmony_ci- aggiungere, modificare o eliminare le identità (unids) associate alla chiave;
16562306a36Sopenharmony_ci- aggiungere o modificare la propria data di scadenza o delle sottochiavi;
16662306a36Sopenharmony_ci- firmare le chiavi di altre persone a scopo di creare una rete di fiducia.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ciDi base, alla creazione di nuove chiavi, GnuPG genera quanto segue:
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci- Una chiave la capacità di certificazione che quella di firma (**[SC]**)
17162306a36Sopenharmony_ci- Una sottochiave separata con capacità di criptare (**[E]**)
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ciSe avete usato i parametri predefiniti per generare la vostra chiave, quello
17762306a36Sopenharmony_cisarà il risultato. Potete verificarlo utilizzando ``gpg --list-secret-keys``,
17862306a36Sopenharmony_ciper esempio::
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci    sec   ed25519 2022-12-20 [SC] [expires: 2024-12-19]
18162306a36Sopenharmony_ci          000000000000000000000000AAAABBBBCCCCDDDD
18262306a36Sopenharmony_ci    uid           [ultimate] Alice Dev <adev@kernel.org>
18362306a36Sopenharmony_ci    ssb   cv25519 2022-12-20 [E] [expires: 2024-12-19]
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ciLa lunga riga sotto la voce ``sec`` è la vostra impronta digitale --
18662306a36Sopenharmony_cinegli esempi che seguono, quando vedere ``[fpr]`` ci si riferisce a questa
18762306a36Sopenharmony_cistringa di 40 caratteri.
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ciAssicuratevi che la vostra passphrase sia forte
19062306a36Sopenharmony_ci-----------------------------------------------
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ciGnuPG utilizza le passphrases per criptare la vostra chiave privata prima
19362306a36Sopenharmony_cidi salvarla sul disco. In questo modo, anche se il contenuto della vostra
19462306a36Sopenharmony_cicartella ``.gnupg`` venisse letto o trafugato nella sia interezza, gli
19562306a36Sopenharmony_ciattaccanti non potrebbero comunque utilizzare le vostre chiavi private senza
19662306a36Sopenharmony_ciaver prima ottenuto la passphrase per decriptarle.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciÈ assolutamente essenziale che le vostre chiavi private siano protette da
19962306a36Sopenharmony_ciuna passphrase forte. Per impostarla o cambiarla, usate::
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci    $ gpg --change-passphrase [fpr]
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ciCreate una sottochiave di firma separata
20462306a36Sopenharmony_ci----------------------------------------
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ciIl nostro obiettivo è di proteggere la chiave primaria spostandola su un
20762306a36Sopenharmony_cidispositivo sconnesso dalla rete, dunque se avete solo una chiave combinata
20862306a36Sopenharmony_ci**[SC]** allora dovreste creare una sottochiave di firma separata::
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci    $ gpg --quick-add-key [fpr] ed25519 sign
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciRicordate di informare il keyserver del vostro cambiamento, cosicché altri
21362306a36Sopenharmony_cipossano ricevere la vostra nuova sottochiave::
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ci    $ gpg --send-key [fpr]
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci.. note:: Supporto ECC in GnuPG
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci   Tenete presente che se avete intenzione di usare un dispositivo che non
22062306a36Sopenharmony_ci   supporta chiavi ED25519 ECC, allora dovreste usare "nistp256" al posto di
22162306a36Sopenharmony_ci   "ed25519". Più avanti ci sono alcune raccomandazioni per i dispositivi.
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ciCopia di riserva della chiave primaria per gestire il recupero da disastro
22462306a36Sopenharmony_ci--------------------------------------------------------------------------
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ciMaggiori sono le firme di altri sviluppatori che vengono applicate alla vostra,
22762306a36Sopenharmony_cimaggiori saranno i motivi per avere una copia di riserva che non sia digitale,
22862306a36Sopenharmony_cial fine di effettuare un recupero da disastro.
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ciIl modo migliore per creare una copia fisica della vostra chiave privata è
23162306a36Sopenharmony_cil'uso del programma ``paperkey``. Consultate ``man paperkey`` per maggiori
23262306a36Sopenharmony_cidettagli sul formato dell'output ed i suoi punti di forza rispetto ad altre
23362306a36Sopenharmony_cisoluzioni. Paperkey dovrebbe essere già pacchettizzato per la maggior parte
23462306a36Sopenharmony_cidelle distribuzioni.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ciEseguite il seguente comando per creare una copia fisica di riserva della
23762306a36Sopenharmony_civostra chiave privata::
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci    $ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txt
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ciStampate il file (o fate un pipe direttamente verso lpr), poi prendete
24262306a36Sopenharmony_ciuna penna e scrivete la passphare sul margine del foglio.  **Questo è
24362306a36Sopenharmony_cicaldamente consigliato** perché la copia cartacea è comunque criptata con
24462306a36Sopenharmony_cila passphrase, e se mai doveste cambiarla non vi ricorderete qual'era al
24562306a36Sopenharmony_cimomento della creazione di quella copia -- *garantito*.
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ciMettete la copia cartacea e la passphrase scritta a mano in una busta e
24862306a36Sopenharmony_cimettetela in un posto sicuro e ben protetto, preferibilmente fuori casa,
24962306a36Sopenharmony_cimagari in una cassetta di sicurezza in banca.
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci.. note::
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci    Probabilmente la vostra stampante non è più quello stupido dispositivo
25462306a36Sopenharmony_ci    connesso alla porta parallela, ma dato che il suo output è comunque
25562306a36Sopenharmony_ci    criptato con la passphrase, eseguire la stampa in un sistema "cloud"
25662306a36Sopenharmony_ci    moderno dovrebbe essere comunque relativamente sicuro.
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ciCopia di riserva di tutta la cartella GnuPG
25962306a36Sopenharmony_ci-------------------------------------------
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci.. warning::
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci    **!!!Non saltate questo passo!!!**
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ciQuando avete bisogno di recuperare le vostre chiavi PGP è importante avere
26662306a36Sopenharmony_ciuna copia di riserva pronta all'uso. Questo sta su un diverso piano di
26762306a36Sopenharmony_ciprontezza rispetto al recupero da disastro che abbiamo risolto con
26862306a36Sopenharmony_ci``paperkey``. Vi affiderete a queste copie esterne quando dovreste usare la
26962306a36Sopenharmony_civostra chiave Certify -- ovvero quando fate modifiche alle vostre chiavi o
27062306a36Sopenharmony_cifirmate le chiavi di altre persone ad una conferenza o ad un gruppo d'incontro.
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ciIncominciate con una piccola chiavetta di memoria USB (preferibilmente due)
27362306a36Sopenharmony_ciche userete per le copie di riserva. Dovrete criptarle usando LUKS -- fate
27462306a36Sopenharmony_ciriferimento alla documentazione della vostra distribuzione per capire come
27562306a36Sopenharmony_cifare.
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ciPer la passphrase di criptazione, potete usare la stessa della vostra chiave
27862306a36Sopenharmony_ciprimaria.
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_ciUna volta che il processo di criptazione è finito, reinserite il disco USB ed
28162306a36Sopenharmony_ciassicurativi che venga montato correttamente. Copiate interamente la cartella
28262306a36Sopenharmony_ci``.gnugp`` nel disco criptato::
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci    $ cp -a ~/.gnupg /media/disk/foo/gnupg-backup
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ciOra dovreste verificare che tutto continui a funzionare::
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci    $ gpg --homedir=/media/disk/foo/gnupg-backup --list-key [fpr]
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ciSe non vedete errori, allora dovreste avere fatto tutto con successo.
29162306a36Sopenharmony_ciSmontate il disco USB, etichettatelo per bene di modo da evitare di
29262306a36Sopenharmony_cidistruggerne il contenuto non appena vi serve una chiavetta USB a caso, ed
29362306a36Sopenharmony_ciinfine mettetelo in un posto sicuro -- ma non troppo lontano, perché vi servirà
29462306a36Sopenharmony_cidi tanto in tanto per modificare le identità, aggiungere o revocare
29562306a36Sopenharmony_cisottochiavi, o firmare le chiavi di altre persone.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ciTogliete la chiave primaria dalla vostra home
29862306a36Sopenharmony_ci---------------------------------------------
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ciI file che si trovano nella vostra cartella home non sono poi così ben protetti
30162306a36Sopenharmony_cicome potreste pensare. Potrebbero essere letti o trafugati in diversi modi:
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci- accidentalmente quando fate una rapida copia della cartella home per
30462306a36Sopenharmony_ci  configurare una nuova postazione
30562306a36Sopenharmony_ci- da un amministratore di sistema negligente o malintenzionato
30662306a36Sopenharmony_ci- attraverso copie di riserva insicure
30762306a36Sopenharmony_ci- attraverso malware installato in alcune applicazioni (browser, lettori PDF,
30862306a36Sopenharmony_ci  eccetera)
30962306a36Sopenharmony_ci- attraverso coercizione quando attraversate confini internazionali
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ciProteggere la vostra chiave con una buona passphare aiuta notevolmente a
31262306a36Sopenharmony_ciridurre i rischi elencati qui sopra, ma le passphrase possono essere scoperte
31362306a36Sopenharmony_ciattraverso i keylogger, il shoulder-surfing, o altri modi. Per questi motivi,
31462306a36Sopenharmony_cinella configurazione si raccomanda di rimuove la chiave primaria dalla vostra
31562306a36Sopenharmony_cicartella home e la si archivia su un dispositivo disconnesso.
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci.. warning::
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ci    Per favore, fate riferimento alla sezione precedente e assicuratevi
32062306a36Sopenharmony_ci    di aver fatto una copia di riserva totale della cartella GnuPG. Quello
32162306a36Sopenharmony_ci    che stiamo per fare renderà la vostra chiave inutile se non avete delle
32262306a36Sopenharmony_ci    copie di riserva utilizzabili!
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ciPer prima cosa, identificate il keygrip della vostra chiave primaria::
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_ci    $ gpg --with-keygrip --list-key [fpr]
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ciL'output assomiglierà a questo::
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci    pub   ed25519 2022-12-20 [SC] [expires: 2022-12-19]
33162306a36Sopenharmony_ci          000000000000000000000000AAAABBBBCCCCDDDD
33262306a36Sopenharmony_ci          Keygrip = 1111000000000000000000000000000000000000
33362306a36Sopenharmony_ci    uid           [ultimate] Alice Dev <adev@kernel.org>
33462306a36Sopenharmony_ci    sub   cv25519 2022-12-20 [E] [expires: 2022-12-19]
33562306a36Sopenharmony_ci          Keygrip = 2222000000000000000000000000000000000000
33662306a36Sopenharmony_ci    sub   ed25519 2022-12-20 [S]
33762306a36Sopenharmony_ci          Keygrip = 3333000000000000000000000000000000000000
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ciTrovate la voce keygrid che si trova sotto alla riga ``pub`` (appena sotto
34062306a36Sopenharmony_ciall'impronta digitale della chiave primaria). Questo corrisponderà direttamente
34162306a36Sopenharmony_ciad un file nella cartella ``~/.gnupg``::
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci    $ cd ~/.gnupg/private-keys-v1.d
34462306a36Sopenharmony_ci    $ ls
34562306a36Sopenharmony_ci    1111000000000000000000000000000000000000.key
34662306a36Sopenharmony_ci    2222000000000000000000000000000000000000.key
34762306a36Sopenharmony_ci    3333000000000000000000000000000000000000.key
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ciQuello che dovrete fare è rimuovere il file .key che corrisponde al keygrip
35062306a36Sopenharmony_cidella chiave primaria::
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ci    $ cd ~/.gnupg/private-keys-v1.d
35362306a36Sopenharmony_ci    $ rm 1111000000000000000000000000000000000000.key
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_ciOra, se eseguite il comando ``--list-secret-keys``, vedrete che la chiave
35662306a36Sopenharmony_ciprimaria non compare più (il simbolo ``#`` indica che non è disponibile)::
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ci    $ gpg --list-secret-keys
35962306a36Sopenharmony_ci    sec#  ed25519 2022-12-20 [SC] [expires: 2024-12-19]
36062306a36Sopenharmony_ci          000000000000000000000000AAAABBBBCCCCDDDD
36162306a36Sopenharmony_ci    uid           [ultimate] Alice Dev <adev@kernel.org>
36262306a36Sopenharmony_ci    ssb   cv25519 2022-12-20 [E] [expires: 2024-12-19]
36362306a36Sopenharmony_ci    ssb   ed25519 2022-12-20 [S]
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_ciDovreste rimuovere anche i file ``secring.gpg`` che si trovano nella cartella
36662306a36Sopenharmony_ci``~/.gnupg``, in quanto rimasugli delle versioni precedenti di GnuPG.
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_ciSe non avete la cartella "private-keys-v1.d"
36962306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ciSe non avete la cartella ``~/.gnupg/private-keys-v1.d``, allora le vostre
37262306a36Sopenharmony_cichiavi segrete sono ancora salvate nel vecchio file ``secring.gpg`` usato
37362306a36Sopenharmony_cida GnuPG v1. Effettuare una qualsiasi modifica alla vostra chiave, come
37462306a36Sopenharmony_cicambiare la passphare o aggiungere una sottochiave, dovrebbe convertire
37562306a36Sopenharmony_ciautomaticamente il vecchio formato ``secring.gpg``nel nuovo
37662306a36Sopenharmony_ci``private-keys-v1.d``.
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ciUna volta che l'avete fatto, assicuratevi di rimuovere il file ``secring.gpg``,
37962306a36Sopenharmony_ciche continua a contenere la vostra chiave privata.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ci.. _it_smartcards:
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ciSpostare le sottochiavi in un apposito dispositivo criptato
38462306a36Sopenharmony_ci===========================================================
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ciNonostante la chiave primaria sia ora al riparo da occhi e mani indiscrete,
38762306a36Sopenharmony_cile sottochiavi si trovano ancora nella vostra cartella home. Chiunque riesca
38862306a36Sopenharmony_cia mettere le sue mani su quelle chiavi riuscirà a decriptare le vostre
38962306a36Sopenharmony_cicomunicazioni o a falsificare le vostre firme (se conoscono la passphrase).
39062306a36Sopenharmony_ciInoltre, ogni volta che viene fatta un'operazione con GnuPG, le chiavi vengono
39162306a36Sopenharmony_cicaricate nella memoria di sistema e potrebbero essere rubate con l'uso di
39262306a36Sopenharmony_cimalware sofisticati (pensate a Meltdown e a Spectre).
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_ciIl miglior modo per proteggere le proprie chiave è di spostarle su un
39562306a36Sopenharmony_cidispositivo specializzato in grado di effettuare operazioni smartcard.
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ciI benefici di una smartcard
39862306a36Sopenharmony_ci---------------------------
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_ciUna smartcard contiene un chip crittografico che è capace di immagazzinare
40162306a36Sopenharmony_cile chiavi private ed effettuare operazioni crittografiche direttamente sulla
40262306a36Sopenharmony_cicarta stessa. Dato che la chiave non lascia mai la smartcard, il sistema
40362306a36Sopenharmony_cioperativo usato sul computer non sarà in grado di accedere alle chiavi.
40462306a36Sopenharmony_ciQuesto è molto diverso dai dischi USB criptati che abbiamo usato allo scopo di
40562306a36Sopenharmony_ciavere una copia di riserva sicura -- quando il dispositivo USB è connesso e
40662306a36Sopenharmony_cimontato, il sistema operativo potrà accedere al contenuto delle chiavi private.
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ciL'uso di un disco USB criptato non può sostituire le funzioni di un dispositivo
40962306a36Sopenharmony_cicapace di operazioni di tipo smartcard.
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ciDispositivi smartcard disponibili
41262306a36Sopenharmony_ci---------------------------------
41362306a36Sopenharmony_ci
41462306a36Sopenharmony_ciA meno che tutti i vostri computer dispongano di lettori smartcard, il modo
41562306a36Sopenharmony_cipiù semplice è equipaggiarsi di un dispositivo USB specializzato che
41662306a36Sopenharmony_ciimplementi le funzionalità delle smartcard.  Sul mercato ci sono diverse
41762306a36Sopenharmony_cisoluzioni disponibili:
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ci- `Nitrokey Start`_: è Open hardware e Free Software, è basata sul progetto
42062306a36Sopenharmony_ci  `GnuK`_ della FSIJ. Questo è uno dei pochi dispositivi a supportare le chiavi
42162306a36Sopenharmony_ci  ECC ED25519, ma offre meno funzionalità di sicurezza (come la resistenza
42262306a36Sopenharmony_ci  alla manomissione o alcuni attacchi ad un canale laterale).
42362306a36Sopenharmony_ci- `Nitrokey Pro 2`_: è simile alla Nitrokey Start, ma è più resistente alla
42462306a36Sopenharmony_ci  manomissione e offre più funzionalità di sicurezza. La Pro 2 supporta la
42562306a36Sopenharmony_ci  crittografia ECC (NISTP).
42662306a36Sopenharmony_ci- `Yubikey 5`_: l'hardware e il software sono proprietari, ma è più economica
42762306a36Sopenharmony_ci  della  Nitrokey Pro ed è venduta anche con porta USB-C il che è utile con i
42862306a36Sopenharmony_ci  computer portatili più recenti. In aggiunta, offre altre funzionalità di
42962306a36Sopenharmony_ci  sicurezza come FIDO, U2F, e ora supporta anche le chiavi ECC (NISTP)
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ciLa vostra scelta dipenderà dal costo, la disponibilità nella vostra regione, e
43262306a36Sopenharmony_cisulla scelta fra dispositivi aperti e proprietari.
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ci.. note::
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_ci    Se siete nella lista MAINTAINERS o avete un profilo su kernel.org, allora
43762306a36Sopenharmony_ci    `potrete avere gratuitamente una Nitrokey Start`_ grazie alla fondazione
43862306a36Sopenharmony_ci    Linux.
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ci.. _`Nitrokey Start`: https://shop.nitrokey.com/shop/product/nitrokey-start-6
44162306a36Sopenharmony_ci.. _`Nitrokey Pro 2`: https://shop.nitrokey.com/shop/product/nitrokey-pro-2-3
44262306a36Sopenharmony_ci.. _`Yubikey 5`: https://www.yubico.com/product/yubikey-5-overview/
44362306a36Sopenharmony_ci.. _Gnuk: https://www.fsij.org/doc-gnuk/
44462306a36Sopenharmony_ci.. _`potrete avere gratuitamente una Nitrokey Start`: https://www.kernel.org/nitrokey-digital-tokens-for-kernel-developers.html
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_ciConfigurare il vostro dispositivo smartcard
44762306a36Sopenharmony_ci-------------------------------------------
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_ciIl vostro dispositivo smartcard dovrebbe iniziare a funzionare non appena
45062306a36Sopenharmony_cilo collegate ad un qualsiasi computer Linux moderno. Potete verificarlo
45162306a36Sopenharmony_cieseguendo::
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_ci    $ gpg --card-status
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_ciSe vedete tutti i dettagli della smartcard, allora ci siamo. Sfortunatamente,
45662306a36Sopenharmony_ciaffrontare tutti i possibili motivi per cui le cose potrebbero non funzionare
45762306a36Sopenharmony_cinon è lo scopo di questa guida. Se avete problemi nel far funzionare la carta
45862306a36Sopenharmony_cicon GnuPG, cercate aiuto attraverso i soliti canali di supporto.
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_ciPer configurare la vostra smartcard, dato che non c'è una via facile dalla
46162306a36Sopenharmony_ciriga di comando, dovrete usate il menu di GnuPG::
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_ci    $ gpg --card-edit
46462306a36Sopenharmony_ci    [...omitted...]
46562306a36Sopenharmony_ci    gpg/card> admin
46662306a36Sopenharmony_ci    Admin commands are allowed
46762306a36Sopenharmony_ci    gpg/card> passwd
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_ciDovreste impostare il PIN dell'utente (1), quello dell'amministratore (3) e il
47062306a36Sopenharmony_cicodice di reset (4). Assicuratevi di annotare e salvare questi codici in un
47162306a36Sopenharmony_ciposto sicuro -- specialmente il PIN dell'amministratore e il codice di reset
47262306a36Sopenharmony_ci(che vi permetterà di azzerare completamente la smartcard).  Il PIN
47362306a36Sopenharmony_cidell'amministratore viene usato così raramente che è inevitabile dimenticarselo
47462306a36Sopenharmony_cise non lo si annota.
47562306a36Sopenharmony_ci
47662306a36Sopenharmony_ciTornando al nostro menu, potete impostare anche altri valori (come il nome,
47762306a36Sopenharmony_ciil sesso, informazioni d'accesso, eccetera), ma non sono necessari e aggiunge
47862306a36Sopenharmony_cialtre informazioni sulla carta che potrebbero trapelare in caso di smarrimento.
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci.. note::
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_ci    A dispetto del nome "PIN", né il PIN utente né quello dell'amministratore
48362306a36Sopenharmony_ci    devono essere esclusivamente numerici.
48462306a36Sopenharmony_ci
48562306a36Sopenharmony_ci.. warning::
48662306a36Sopenharmony_ci
48762306a36Sopenharmony_ci    Alcuni dispositivi richiedono la presenza delle sottochiavi nel dispositivo
48862306a36Sopenharmony_ci    stesso prima che possiate cambiare la passphare. Verificate la
48962306a36Sopenharmony_ci    documentazione del produttore.
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_ciSpostare le sottochiavi sulla smartcard
49262306a36Sopenharmony_ci---------------------------------------
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_ciUscite dal menu (usando "q") e salverete tutte le modifiche. Poi, spostiamo
49562306a36Sopenharmony_citutte le sottochiavi sulla smartcard. Per la maggior parte delle operazioni
49662306a36Sopenharmony_civi serviranno sia la passphrase della chiave PGP che il PIN
49762306a36Sopenharmony_cidell'amministratore::
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_ci    $ gpg --edit-key [fpr]
50062306a36Sopenharmony_ci
50162306a36Sopenharmony_ci    Secret subkeys are available.
50262306a36Sopenharmony_ci
50362306a36Sopenharmony_ci    pub  ed25519/AAAABBBBCCCCDDDD
50462306a36Sopenharmony_ci         created: 2022-12-20  expires: 2024-12-19  usage: SC
50562306a36Sopenharmony_ci         trust: ultimate      validity: ultimate
50662306a36Sopenharmony_ci    ssb  cv25519/1111222233334444
50762306a36Sopenharmony_ci         created: 2022-12-20  expires: never       usage: E
50862306a36Sopenharmony_ci    ssb  ed25519/5555666677778888
50962306a36Sopenharmony_ci         created: 2017-12-07  expires: never       usage: S
51062306a36Sopenharmony_ci    [ultimate] (1). Alice Dev <adev@kernel.org>
51162306a36Sopenharmony_ci
51262306a36Sopenharmony_ci    gpg>
51362306a36Sopenharmony_ci
51462306a36Sopenharmony_ciUsando ``--edit-key`` si tornerà alla modalità menu e noterete che
51562306a36Sopenharmony_cila lista delle chiavi è leggermente diversa. Da questo momento in poi,
51662306a36Sopenharmony_citutti i comandi saranno eseguiti nella modalità menu, come indicato
51762306a36Sopenharmony_cida ``gpg>``.
51862306a36Sopenharmony_ci
51962306a36Sopenharmony_ciPer prima cosa, selezioniamo la chiave che verrà messa sulla carta --
52062306a36Sopenharmony_cipotete farlo digitando ``key 1`` (è la prima della lista, la sottochiave
52162306a36Sopenharmony_ci**[E]**)::
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_ci    gpg> key 1
52462306a36Sopenharmony_ci
52562306a36Sopenharmony_ciNel'output dovreste vedere ``ssb*`` associato alla chiave **[E]**. Il simbolo
52662306a36Sopenharmony_ci``*`` indica che la chiave è stata "selezionata". Funziona come un
52762306a36Sopenharmony_ciinterruttore, ovvero se scrivete nuovamente ``key 1``, il simbolo ``*`` sparirà
52862306a36Sopenharmony_cie la chiave non sarà più selezionata.
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_ciOra, spostiamo la chiave sulla smartcard::
53162306a36Sopenharmony_ci
53262306a36Sopenharmony_ci    gpg> keytocard
53362306a36Sopenharmony_ci    Please select where to store the key:
53462306a36Sopenharmony_ci       (2) Encryption key
53562306a36Sopenharmony_ci    Your selection? 2
53662306a36Sopenharmony_ci
53762306a36Sopenharmony_ciDato che è la nostra chiave  **[E]**, ha senso metterla nella sezione criptata.
53862306a36Sopenharmony_ciQuando confermerete la selezione, vi verrà chiesta la passphrase della vostra
53962306a36Sopenharmony_cichiave PGP, e poi il PIN dell'amministratore. Se il comando ritorna senza
54062306a36Sopenharmony_cierrori, allora la vostra chiave è stata spostata con successo.
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_ci**Importante**: digitate nuovamente ``key 1`` per deselezionare la prima chiave
54362306a36Sopenharmony_cie selezionate la seconda chiave **[S]** con ``key 2``::
54462306a36Sopenharmony_ci
54562306a36Sopenharmony_ci    gpg> key 1
54662306a36Sopenharmony_ci    gpg> key 2
54762306a36Sopenharmony_ci    gpg> keytocard
54862306a36Sopenharmony_ci    Please select where to store the key:
54962306a36Sopenharmony_ci       (1) Signature key
55062306a36Sopenharmony_ci       (3) Authentication key
55162306a36Sopenharmony_ci    Your selection? 1
55262306a36Sopenharmony_ci
55362306a36Sopenharmony_ciPotete usare la chiave **[S]** sia per firmare che per autenticare, ma vogliamo
55462306a36Sopenharmony_ciche sia nella sezione di firma, quindi scegliete (1). Ancora una volta, se il
55562306a36Sopenharmony_cicomando ritorna senza errori, allora l'operazione è avvenuta con successo::
55662306a36Sopenharmony_ci
55762306a36Sopenharmony_ci    gpg> q
55862306a36Sopenharmony_ci    Save changes? (y/N) y
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ciSalvando le modifiche cancellerete dalla vostra cartella home tutte le chiavi
56162306a36Sopenharmony_ciche avete spostato sulla carta (ma questo non è un problema, perché abbiamo
56262306a36Sopenharmony_cifatto delle copie di sicurezza nel caso in cui dovessimo configurare una
56362306a36Sopenharmony_cinuova smartcard).
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ciVerificare che le chiavi siano state spostate
56662306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56762306a36Sopenharmony_ci
56862306a36Sopenharmony_ciOra, se doveste usare l'opzione ``--list-secret-keys``, vedrete una
56962306a36Sopenharmony_cisottile differenza nell'output::
57062306a36Sopenharmony_ci
57162306a36Sopenharmony_ci    $ gpg --list-secret-keys
57262306a36Sopenharmony_ci    sec#  ed25519 2022-12-20 [SC] [expires: 2024-12-19]
57362306a36Sopenharmony_ci          000000000000000000000000AAAABBBBCCCCDDDD
57462306a36Sopenharmony_ci    uid           [ultimate] Alice Dev <adev@kernel.org>
57562306a36Sopenharmony_ci    ssb>  cv25519 2022-12-20 [E] [expires: 2024-12-19]
57662306a36Sopenharmony_ci    ssb>  ed25519 2022-12-20 [S]
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ciIl simbolo ``>`` in ``ssb>`` indica che la sottochiave è disponibile solo
57962306a36Sopenharmony_cinella smartcard. Se tornate nella vostra cartella delle chiavi segrete e
58062306a36Sopenharmony_ciguardate al suo contenuto, noterete che i file ``.key`` sono stati sostituiti
58162306a36Sopenharmony_cicon degli stub::
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_ci    $ cd ~/.gnupg/private-keys-v1.d
58462306a36Sopenharmony_ci    $ strings *.key | grep 'private-key'
58562306a36Sopenharmony_ci
58662306a36Sopenharmony_ciPer indicare che i file sono solo degli stub e che in realtà il contenuto è
58762306a36Sopenharmony_cisulla smartcard, l'output dovrebbe mostrarvi ``shadowed-private-key``.
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_ciVerificare che la smartcard funzioni
59062306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59162306a36Sopenharmony_ci
59262306a36Sopenharmony_ciPer verificare che la smartcard funzioni come dovuto, potete creare
59362306a36Sopenharmony_ciuna firma::
59462306a36Sopenharmony_ci
59562306a36Sopenharmony_ci    $ echo "Hello world" | gpg --clearsign > /tmp/test.asc
59662306a36Sopenharmony_ci    $ gpg --verify /tmp/test.asc
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_ciCol primo comando dovrebbe chiedervi il PIN della smartcard, e poi dovrebbe
59962306a36Sopenharmony_cimostrare "Good signature" dopo l'esecuzione di ``gpg --verify``.
60062306a36Sopenharmony_ci
60162306a36Sopenharmony_ciComplimenti, siete riusciti a rendere estremamente difficile il furto della
60262306a36Sopenharmony_civostra identità digitale di sviluppatore.
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_ciAltre operazioni possibili con GnuPG
60562306a36Sopenharmony_ci------------------------------------
60662306a36Sopenharmony_ci
60762306a36Sopenharmony_ciSegue un breve accenno ad alcune delle operazioni più comuni che dovrete
60862306a36Sopenharmony_cifare con le vostre chiavi PGP.
60962306a36Sopenharmony_ci
61062306a36Sopenharmony_ciMontare il disco con la chiave primaria
61162306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
61262306a36Sopenharmony_ci
61362306a36Sopenharmony_ciVi servirà la vostra chiave principale per tutte le operazioni che seguiranno,
61462306a36Sopenharmony_ciper cui per prima cosa dovrete accedere ai vostri backup e dire a GnuPG di
61562306a36Sopenharmony_ciusarli::
61662306a36Sopenharmony_ci
61762306a36Sopenharmony_ci    $ export GNUPGHOME=/media/disk/foo/gnupg-backup
61862306a36Sopenharmony_ci    $ gpg --list-secret-keys
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_ciDovete assicurarvi di vedere ``sec`` e non ``sec#`` nell'output del programma
62162306a36Sopenharmony_ci(il simbolo ``#`` significa che la chiave non è disponibile e che state ancora
62262306a36Sopenharmony_ciutilizzando la vostra solita cartella di lavoro).
62362306a36Sopenharmony_ci
62462306a36Sopenharmony_ciEstendere la data di scadenza di una chiave
62562306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62662306a36Sopenharmony_ci
62762306a36Sopenharmony_ciLa chiave principale ha una data di scadenza di 2 anni dal momento della sua
62862306a36Sopenharmony_cicreazione. Questo per motivi di sicurezza e per rendere obsolete le chiavi
62962306a36Sopenharmony_ciche, eventualmente, dovessero sparire dai keyserver.
63062306a36Sopenharmony_ci
63162306a36Sopenharmony_ciPer estendere di un anno, dalla data odierna, la scadenza di una vostra chiave,
63262306a36Sopenharmony_cieseguite::
63362306a36Sopenharmony_ci
63462306a36Sopenharmony_ci    $ gpg --quick-set-expire [fpr] 1y
63562306a36Sopenharmony_ci
63662306a36Sopenharmony_ciSe per voi è più facile da memorizzare, potete anche utilizzare una data
63762306a36Sopenharmony_cispecifica (per esempio, il vostro compleanno o capodanno)::
63862306a36Sopenharmony_ci
63962306a36Sopenharmony_ci    $ gpg --quick-set-expire [fpr] 2025-07-01
64062306a36Sopenharmony_ci
64162306a36Sopenharmony_ciRicordatevi di inviare l'aggiornamento ai keyserver::
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_ci    $ gpg --send-key [fpr]
64462306a36Sopenharmony_ci
64562306a36Sopenharmony_ciAggiornare la vostra cartella di lavoro dopo ogni modifica
64662306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64762306a36Sopenharmony_ci
64862306a36Sopenharmony_ciDopo aver fatto delle modifiche alle vostre chiavi usando uno spazio a parte,
64962306a36Sopenharmony_cidovreste importarle nella vostra cartella di lavoro abituale::
65062306a36Sopenharmony_ci
65162306a36Sopenharmony_ci    $ gpg --export | gpg --homedir ~/.gnupg --import
65262306a36Sopenharmony_ci    $ unset GNUPGHOME
65362306a36Sopenharmony_ci
65462306a36Sopenharmony_ciUsare gpg-agent con ssh
65562306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~
65662306a36Sopenharmony_ci
65762306a36Sopenharmony_ciSe dovete firmare tag o commit su un sistema remoto, potete ridirezionare il
65862306a36Sopenharmony_civostro gpg-agent attraverso ssh. Consultate le istruzioni disponibili nella wiki
65962306a36Sopenharmony_ciGnuPG:
66062306a36Sopenharmony_ci
66162306a36Sopenharmony_ci- `Agent Forwarding over SSH`_
66262306a36Sopenharmony_ci
66362306a36Sopenharmony_ciFunziona senza troppi intoppi se avete la possibilità di modificare le
66462306a36Sopenharmony_ciimpostazioni di sshd sul sistema remoto.
66562306a36Sopenharmony_ci
66662306a36Sopenharmony_ci.. _`Agent Forwarding over SSH`: https://wiki.gnupg.org/AgentForwarding
66762306a36Sopenharmony_ci
66862306a36Sopenharmony_ci.. _it_pgp_with_git:
66962306a36Sopenharmony_ci
67062306a36Sopenharmony_ciUsare PGP con Git
67162306a36Sopenharmony_ci=================
67262306a36Sopenharmony_ci
67362306a36Sopenharmony_ciUna delle caratteristiche fondanti di Git è la sua natura decentralizzata --
67462306a36Sopenharmony_ciuna volta che il repositorio è stato clonato sul vostro sistema, avete la
67562306a36Sopenharmony_cistoria completa del progetto, inclusi i suoi tag, i commit ed i rami. Tuttavia,
67662306a36Sopenharmony_cicon i centinaia di repositori clonati che ci sono in giro, come si fa a
67762306a36Sopenharmony_civerificare che la loro copia di linux.git non è stata manomessa da qualcuno?
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_ciOppure, cosa succede se viene scoperta una backdoor nel codice e la riga
68062306a36Sopenharmony_ci"Autore" dice che sei stato tu, mentre tu sei abbastanza sicuro di
68162306a36Sopenharmony_ci`non averci niente a che fare`_?
68262306a36Sopenharmony_ci
68362306a36Sopenharmony_ciPer risolvere entrambi i problemi, Git ha introdotto l'integrazione con PGP.
68462306a36Sopenharmony_ciI tag firmati dimostrano che il repositorio è integro assicurando che il suo
68562306a36Sopenharmony_cicontenuto è lo stesso che si trova sulle macchine degli sviluppatori che hanno
68662306a36Sopenharmony_cicreato il tag; mentre i commit firmati rendono praticamente impossibile
68762306a36Sopenharmony_ciad un malintenzionato di impersonarvi senza avere accesso alle vostre chiavi
68862306a36Sopenharmony_ciPGP.
68962306a36Sopenharmony_ci
69062306a36Sopenharmony_ci.. _`non averci niente a che fare`: https://github.com/jayphelps/git-blame-someone-else
69162306a36Sopenharmony_ci
69262306a36Sopenharmony_ciConfigurare git per usare la vostra chiave PGP
69362306a36Sopenharmony_ci----------------------------------------------
69462306a36Sopenharmony_ci
69562306a36Sopenharmony_ciSe avete solo una chiave segreta nel vostro portachiavi, allora non avete nulla
69662306a36Sopenharmony_cida fare in più dato che sarà la vostra chiave di base. Tuttavia, se doveste
69762306a36Sopenharmony_ciavere più chiavi segrete, potete dire a git quale dovrebbe usare (``[fpg]``
69862306a36Sopenharmony_ciè la vostra impronta digitale)::
69962306a36Sopenharmony_ci
70062306a36Sopenharmony_ci    $ git config --global user.signingKey [fpr]
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_ciCome firmare i tag
70362306a36Sopenharmony_ci------------------
70462306a36Sopenharmony_ci
70562306a36Sopenharmony_ciPer creare un tag firmato, passate l'opzione ``-s`` al comando tag::
70662306a36Sopenharmony_ci
70762306a36Sopenharmony_ci    $ git tag -s [tagname]
70862306a36Sopenharmony_ci
70962306a36Sopenharmony_ciLa nostra raccomandazione è quella di firmare sempre i tag git, perché
71062306a36Sopenharmony_ciquesto permette agli altri sviluppatori di verificare che il repositorio
71162306a36Sopenharmony_cigit dal quale stanno prendendo il codice non è stato alterato intenzionalmente.
71262306a36Sopenharmony_ci
71362306a36Sopenharmony_ciCome verificare i tag firmati
71462306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71562306a36Sopenharmony_ci
71662306a36Sopenharmony_ciPer verificare un tag firmato, potete usare il comando ``verify-tag``::
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_ci    $ git verify-tag [tagname]
71962306a36Sopenharmony_ci
72062306a36Sopenharmony_ciSe state prendendo un tag da un fork del repositorio del progetto, git
72162306a36Sopenharmony_cidovrebbe verificare automaticamente la firma di quello che state prendendo
72262306a36Sopenharmony_cie vi mostrerà il risultato durante l'operazione di merge::
72362306a36Sopenharmony_ci
72462306a36Sopenharmony_ci    $ git pull [url] tags/sometag
72562306a36Sopenharmony_ci
72662306a36Sopenharmony_ciIl merge conterrà qualcosa di simile::
72762306a36Sopenharmony_ci
72862306a36Sopenharmony_ci    Merge tag 'sometag' of [url]
72962306a36Sopenharmony_ci
73062306a36Sopenharmony_ci    [Tag message]
73162306a36Sopenharmony_ci
73262306a36Sopenharmony_ci    # gpg: Signature made [...]
73362306a36Sopenharmony_ci    # gpg: Good signature from [...]
73462306a36Sopenharmony_ci
73562306a36Sopenharmony_ciSe state verificando il tag di qualcun altro, allora dovrete importare
73662306a36Sopenharmony_cila loro chiave PGP. Fate riferimento alla sezione ":ref:`it_verify_identities`"
73762306a36Sopenharmony_ciche troverete più avanti.
73862306a36Sopenharmony_ci
73962306a36Sopenharmony_ciConfigurare git per firmare sempre i tag con annotazione
74062306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74162306a36Sopenharmony_ci
74262306a36Sopenharmony_ciSe state creando un tag con annotazione è molto probabile che vogliate
74362306a36Sopenharmony_cifirmarlo. Per imporre a git di firmare sempre un tag con annotazione,
74462306a36Sopenharmony_cidovete impostare la seguente opzione globale::
74562306a36Sopenharmony_ci
74662306a36Sopenharmony_ci    $ git config --global tag.forceSignAnnotated true
74762306a36Sopenharmony_ci
74862306a36Sopenharmony_ciCome usare commit firmati
74962306a36Sopenharmony_ci-------------------------
75062306a36Sopenharmony_ci
75162306a36Sopenharmony_ciCreare dei commit firmati è facile, ma è molto più difficile utilizzarli
75262306a36Sopenharmony_cinello sviluppo del kernel linux per via del fatto che ci si affida alle
75362306a36Sopenharmony_ciliste di discussione e questo modo di procedere non mantiene le firme PGP
75462306a36Sopenharmony_cinei commit. In aggiunta, quando si usa *rebase* nel proprio repositorio
75562306a36Sopenharmony_cilocale per allinearsi al kernel anche le proprie firme PGP verranno scartate.
75662306a36Sopenharmony_ciPer questo motivo, la maggior parte degli sviluppatori del kernel non si
75762306a36Sopenharmony_cipreoccupano troppo di firmare i propri commit ed ignoreranno quelli firmati
75862306a36Sopenharmony_ciche si trovano in altri repositori usati per il proprio lavoro.
75962306a36Sopenharmony_ci
76062306a36Sopenharmony_ciTuttavia, se avete il vostro repositorio di lavoro disponibile al pubblico
76162306a36Sopenharmony_cisu un qualche servizio di hosting git (kernel.org, infradead.org, ozlabs.org,
76262306a36Sopenharmony_cio altri), allora la raccomandazione è di firmare tutti i vostri commit
76362306a36Sopenharmony_cianche se gli sviluppatori non ne beneficeranno direttamente.
76462306a36Sopenharmony_ci
76562306a36Sopenharmony_ciVi raccomandiamo di farlo per i seguenti motivi:
76662306a36Sopenharmony_ci
76762306a36Sopenharmony_ci1. Se dovesse mai esserci la necessità di fare delle analisi forensi o
76862306a36Sopenharmony_ci   tracciare la provenienza di un codice, anche sorgenti mantenuti
76962306a36Sopenharmony_ci   esternamente che hanno firme PGP sui commit avranno un certo valore a
77062306a36Sopenharmony_ci   questo scopo.
77162306a36Sopenharmony_ci2. Se dovesse mai capitarvi di clonare il vostro repositorio locale (per
77262306a36Sopenharmony_ci   esempio dopo un danneggiamento del disco), la firma vi permetterà di
77362306a36Sopenharmony_ci   verificare l'integrità del repositorio prima di riprendere il lavoro.
77462306a36Sopenharmony_ci3. Se qualcuno volesse usare *cherry-pick* sui vostri commit, allora la firma
77562306a36Sopenharmony_ci   permetterà di verificare l'integrità dei commit prima di applicarli.
77662306a36Sopenharmony_ci
77762306a36Sopenharmony_ciCreare commit firmati
77862306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~
77962306a36Sopenharmony_ci
78062306a36Sopenharmony_ciPer creare un commit firmato, dovete solamente aggiungere l'opzione ``-S``
78162306a36Sopenharmony_cial comando ``git commit`` (si usa la lettera maiuscola per evitare
78262306a36Sopenharmony_ciconflitti con un'altra opzione)::
78362306a36Sopenharmony_ci
78462306a36Sopenharmony_ci    $ git commit -S
78562306a36Sopenharmony_ci
78662306a36Sopenharmony_ciConfigurare git per firmare sempre i commit
78762306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78862306a36Sopenharmony_ci
78962306a36Sopenharmony_ciPotete dire a git di firmare sempre i commit::
79062306a36Sopenharmony_ci
79162306a36Sopenharmony_ci    git config --global commit.gpgSign true
79262306a36Sopenharmony_ci
79362306a36Sopenharmony_ci.. note::
79462306a36Sopenharmony_ci
79562306a36Sopenharmony_ci    Assicuratevi di aver configurato ``gpg-agent`` prima di abilitare
79662306a36Sopenharmony_ci    questa opzione.
79762306a36Sopenharmony_ci
79862306a36Sopenharmony_ci.. _it_verify_identities:
79962306a36Sopenharmony_ci
80062306a36Sopenharmony_ciCome lavorare con patch firmate
80162306a36Sopenharmony_ci-------------------------------
80262306a36Sopenharmony_ci
80362306a36Sopenharmony_ciEsiste la possibilità di usare la vostra chiave PGP per firmare le patch che
80462306a36Sopenharmony_ciinvierete alla liste di discussione del kernel. I meccanismi esistenti per la
80562306a36Sopenharmony_cifirma delle email (PGP-Mime o PGP-inline) tendono a causare problemi
80662306a36Sopenharmony_cinell'attività di revisione del codice. Si suggerisce, invece, di utilizare lo
80762306a36Sopenharmony_cistrumento sviluppato da kernel.org che mette nell'intestazione del messaggio
80862306a36Sopenharmony_ciun'attestazione delle firme crittografiche (tipo DKIM):
80962306a36Sopenharmony_ci
81062306a36Sopenharmony_ci- `Patatt Patch Attestation`_
81162306a36Sopenharmony_ci
81262306a36Sopenharmony_ci.. _`Patatt Patch Attestation`: https://pypi.org/project/patatt/
81362306a36Sopenharmony_ci
81462306a36Sopenharmony_ciInstallare e configurate patatt
81562306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81662306a36Sopenharmony_ci
81762306a36Sopenharmony_ciLo strumento patatt è disponibile per diverse distribuzioni, dunque cercatelo
81862306a36Sopenharmony_ciprima lì. Oppure potete installarlo usano pypi "``pip install patatt``"
81962306a36Sopenharmony_ci
82062306a36Sopenharmony_ciSe avete già configurato git con la vostra chiave PGP (usando
82162306a36Sopenharmony_ci``user.signingKey``), allora patatt non ha bisogno di alcuna configurazione
82262306a36Sopenharmony_ciaggiuntiva. Potete iniziare a firmare le vostre patch aggiungendo un aggancio a
82362306a36Sopenharmony_cigit-send-email nel vostro repositorio::
82462306a36Sopenharmony_ci
82562306a36Sopenharmony_ci    patatt install-hook
82662306a36Sopenharmony_ci
82762306a36Sopenharmony_ciOra, qualsiasi patch che invierete con ``git send-email`` verrà automaticamente
82862306a36Sopenharmony_cifirmata usando la vostra firma crittografica.
82962306a36Sopenharmony_ci
83062306a36Sopenharmony_ciVerificare le firme di patatt
83162306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83262306a36Sopenharmony_ci
83362306a36Sopenharmony_ciSe usate ``b4`` per verificare ed applicare le patch, allora tenterà
83462306a36Sopenharmony_ciautomaticamente di verificare tutte le firme DKIM e patatt disponibili. Per
83562306a36Sopenharmony_ciesempio::
83662306a36Sopenharmony_ci
83762306a36Sopenharmony_ci    $ b4 am 20220720205013.890942-1-broonie@kernel.org
83862306a36Sopenharmony_ci    [...]
83962306a36Sopenharmony_ci    Checking attestation on all messages, may take a moment...
84062306a36Sopenharmony_ci    ---
84162306a36Sopenharmony_ci      ✓ [PATCH v1 1/3] kselftest/arm64: Correct buffer allocation for SVE Z registers
84262306a36Sopenharmony_ci      ✓ [PATCH v1 2/3] arm64/sve: Document our actual ABI for clearing registers on syscall
84362306a36Sopenharmony_ci      ✓ [PATCH v1 3/3] kselftest/arm64: Enforce actual ABI for SVE syscalls
84462306a36Sopenharmony_ci      ---
84562306a36Sopenharmony_ci      ✓ Signed: openpgp/broonie@kernel.org
84662306a36Sopenharmony_ci      ✓ Signed: DKIM/kernel.org
84762306a36Sopenharmony_ci
84862306a36Sopenharmony_ci.. note::
84962306a36Sopenharmony_ci
85062306a36Sopenharmony_ci   Lo sviluppo di patatt e b4 è piuttosto attivo. Si consiglia di verificare la
85162306a36Sopenharmony_ci   documentazione più recente.
85262306a36Sopenharmony_ci
85362306a36Sopenharmony_ci.. _it_kernel_identities:
85462306a36Sopenharmony_ci
85562306a36Sopenharmony_ciCome verificare l'identità degli sviluppatori del kernel
85662306a36Sopenharmony_ci========================================================
85762306a36Sopenharmony_ci
85862306a36Sopenharmony_ciFirmare i tag e i commit è facile, ma come si fa a verificare che la chiave
85962306a36Sopenharmony_ciusata per firmare qualcosa appartenga davvero allo sviluppatore e non ad un
86062306a36Sopenharmony_ciimpostore?
86162306a36Sopenharmony_ci
86262306a36Sopenharmony_ciConfigurare l'auto-key-retrieval usando WKD e DANE
86362306a36Sopenharmony_ci--------------------------------------------------
86462306a36Sopenharmony_ci
86562306a36Sopenharmony_ciSe non siete ancora in possesso di una vasta collezione di chiavi pubbliche
86662306a36Sopenharmony_cidi altri sviluppatori, allora potreste iniziare il vostro portachiavi
86762306a36Sopenharmony_ciaffidandovi ai servizi di auto-scoperta e auto-recupero. GnuPG può affidarsi
86862306a36Sopenharmony_ciad altre tecnologie di delega della fiducia, come DNSSEC e TLS, per sostenervi
86962306a36Sopenharmony_cinel caso in cui iniziare una propria rete di fiducia da zero sia troppo
87062306a36Sopenharmony_ciscoraggiante.
87162306a36Sopenharmony_ci
87262306a36Sopenharmony_ciAggiungete il seguente testo al vostro file ``~/.gnupg/gpg.conf``::
87362306a36Sopenharmony_ci
87462306a36Sopenharmony_ci    auto-key-locate wkd,dane,local
87562306a36Sopenharmony_ci    auto-key-retrieve
87662306a36Sopenharmony_ci
87762306a36Sopenharmony_ciLa *DNS-Based Authentication of Named Entities* ("DANE") è un metodo
87862306a36Sopenharmony_ciper la pubblicazione di chiavi pubbliche su DNS e per renderle sicure usando
87962306a36Sopenharmony_cizone firmate con DNSSEC. Il *Web Key Directory* ("WKD") è un metodo
88062306a36Sopenharmony_cialternativo che usa https a scopo di ricerca. Quando si usano DANE o WKD
88162306a36Sopenharmony_ciper la ricerca di chiavi pubbliche, GnuPG validerà i certificati DNSSEC o TLS
88262306a36Sopenharmony_ciprima di aggiungere al vostro portachiavi locale le eventuali chiavi trovate.
88362306a36Sopenharmony_ci
88462306a36Sopenharmony_ciKernel.org pubblica la WKD per tutti gli sviluppatori che hanno un account
88562306a36Sopenharmony_cikernel.org. Una volta che avete applicato le modifiche al file ``gpg.conf``,
88662306a36Sopenharmony_cipotrete auto-recuperare le chiavi di Linus Torvalds e Greg Kroah-Hartman
88762306a36Sopenharmony_ci(se non le avete già)::
88862306a36Sopenharmony_ci
88962306a36Sopenharmony_ci    $ gpg --locate-keys torvalds@kernel.org gregkh@kernel.org
89062306a36Sopenharmony_ci
89162306a36Sopenharmony_ciSe avete un account kernel.org, al fine di rendere più utile l'uso di WKD
89262306a36Sopenharmony_cida parte di altri sviluppatori del kernel, dovreste `aggiungere alla vostra
89362306a36Sopenharmony_cichiave lo UID di kernel.org`_.
89462306a36Sopenharmony_ci
89562306a36Sopenharmony_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
89662306a36Sopenharmony_ci
89762306a36Sopenharmony_ciWeb of Trust (WOT) o Trust on First Use (TOFU)
89862306a36Sopenharmony_ci----------------------------------------------
89962306a36Sopenharmony_ci
90062306a36Sopenharmony_ciPGP incorpora un meccanismo di delega della fiducia conosciuto come
90162306a36Sopenharmony_ci"Web of Trust". Di base, questo è un tentativo di sostituire la necessità
90262306a36Sopenharmony_cidi un'autorità certificativa centralizzata tipica del mondo HTTPS/TLS.
90362306a36Sopenharmony_ciInvece di avere svariati produttori software che decidono chi dovrebbero
90462306a36Sopenharmony_ciessere le entità di certificazione di cui dovreste fidarvi, PGP lascia
90562306a36Sopenharmony_cila responsabilità ad ogni singolo utente.
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_ciSfortunatamente, solo poche persone capiscono come funziona la rete di fiducia.
90862306a36Sopenharmony_ciNonostante sia un importante aspetto della specifica OpenPGP, recentemente
90962306a36Sopenharmony_cile versioni di GnuPG (2.2 e successive) hanno implementato un meccanisco
91062306a36Sopenharmony_cialternativo chiamato "Trust on First Use" (TOFU). Potete pensare a TOFU come
91162306a36Sopenharmony_ci"ad un approccio all fidicia simile ad SSH". In SSH, la prima volta che vi
91262306a36Sopenharmony_ciconnettete ad un sistema remoto, l'impronta digitale della chiave viene
91362306a36Sopenharmony_ciregistrata e ricordata. Se la chiave dovesse cambiare in futuro, il programma
91462306a36Sopenharmony_ciSSH vi avviserà e si rifiuterà di connettersi, obbligandovi a prendere una
91562306a36Sopenharmony_cidecisione circa la fiducia che riponete nella nuova chiave. In modo simile,
91662306a36Sopenharmony_cila prima volta che importate la chiave PGP di qualcuno, si assume sia valida.
91762306a36Sopenharmony_ciSe ad un certo punto GnuPG trova un'altra chiave con la stessa identità,
91862306a36Sopenharmony_cientrambe, la vecchia e la nuova, verranno segnate come invalide e dovrete
91962306a36Sopenharmony_civerificare manualmente quale tenere.
92062306a36Sopenharmony_ci
92162306a36Sopenharmony_ciVi raccomandiamo di usare il meccanisco TOFU+PGP (che è la nuova configurazione
92262306a36Sopenharmony_cidi base di GnuPG v2). Per farlo, aggiungete (o modificate) l'impostazione
92362306a36Sopenharmony_ci``trust-model`` in ``~/.gnupg/gpg.conf``::
92462306a36Sopenharmony_ci
92562306a36Sopenharmony_ci    trust-model tofu+pgp
92662306a36Sopenharmony_ci
92762306a36Sopenharmony_ciUsare il repositorio kernel.org per il web of trust
92862306a36Sopenharmony_ci---------------------------------------------------
92962306a36Sopenharmony_ci
93062306a36Sopenharmony_ciIl progetto kernel.org mantiene un repositorio git con le chiavi pubbliche degli sviluppatori in alternativa alla replica dei server di chiavi che negli ultimi anni sono spariti. La documentazione completa su come impostare il repositorio come vostra sorgente di chiavi pubbliche può essere trovato qui:
93162306a36Sopenharmony_ci
93262306a36Sopenharmony_ci- `Kernel developer PGP Keyring`_
93362306a36Sopenharmony_ci
93462306a36Sopenharmony_ciSe siete uno sviluppatore del kernel, per favore valutate l'idea di inviare la
93562306a36Sopenharmony_civostra chiave per l'inclusione in quel portachiavi.
93662306a36Sopenharmony_ci
93762306a36Sopenharmony_ci
93862306a36Sopenharmony_ciIf you are a kernel developer, please consider submitting your key for
93962306a36Sopenharmony_ciinclusion into that keyring.
94062306a36Sopenharmony_ci
94162306a36Sopenharmony_ci.. _`Kernel developer PGP Keyring`: https://korg.docs.kernel.org/pgpkeys.html
942