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