sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/process/maintainer-pgp-guidemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Simplified)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/zh_CN/process/maintainer-pgp-guidemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hChinese (Traditional)}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/zh_TW/process/maintainer-pgp-guidemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ja_JP/process/maintainer-pgp-guidemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ko_KR/process/maintainer-pgp-guidemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/sp_SP/process/maintainer-pgp-guidemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageItalianuh1h hh _documenthsourceNlineNubhwarning)}(hIn caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `.h]h paragraph)}(hIn caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `.h](hIn caso di dubbi sulla correttezza del contenuto di questa traduzione, l’unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le }(hhhhhNhNubh)}(h!:ref:`avvertenze `h]hinline)}(hhh]h avvertenze}(hhhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]refdoc/translations/it_IT/process/maintainer-pgp-guide refdomainhŒreftyperef refexplicitrefwarn reftarget it_disclaimeruh1hh3Documentation/translations/it_IT/disclaimer-ita.rsthKhhubh.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhh]/var/lib/git/docbuild/linux/Documentation/translations/it_IT/process/maintainer-pgp-guide.rsthKubh field_body)}(h@:ref:`Documentation/process/maintainer-pgp-guide.rst `h]h)}(hjh]h)}(hjh]h)}(hjh]h.Documentation/process/maintainer-pgp-guide.rst}(hjhhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdochΌ refdomainjreftyperef refexplicitrefwarnhԌpgpguideuh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhjhKhhhhubh)}(hhh](h)}(h Translatorh]h Translator}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hjhKubj)}(h,Alessia Mantegazza h]h)}(h+Alessia Mantegazza h](hAlessia Mantegazza <}(hjQhhhNhNubh reference)}(hamantegazza@vaga.pv.ith]hamantegazza@vaga.pv.it}(hj[hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:amantegazza@vaga.pv.ituh1jYhjQubh>}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjMubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1hhjhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhjhKubhtarget)}(h.. _it_pgpguide:h]h}(h]h ]h"]h$]h&]refid it-pgpguideuh1jhKhhhhhjubhsection)}(hhh](htitle)}(h)La guida a PGP per manutentori del kernelh]h)La guida a PGP per manutentori del kernel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK ubh)}(hhh]h)}(hhh](h)}(hAuthorh]hAuthor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhjhKubj)}(h6Konstantin Ryabitsev h]h)}(h5Konstantin Ryabitsev h](hKonstantin Ryabitsev <}(hjhhhNhNubjZ)}(hkonstantin@linuxfoundation.orgh]hkonstantin@linuxfoundation.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri%mailto:konstantin@linuxfoundation.orguh1jYhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhK hjhhubah}(h]h ]h"]h$]h&]uh1hhjhhhjhK ubh)}(hXQuesto documento è destinato agli sviluppatori del kernel Linux, in particolar modo ai manutentori. Contiene degli approfondimenti riguardo informazioni che sono state affrontate in maniera più generale nella sezione "`Protecting Code Integrity`_" pubblicata dalla Linux Foundation. Per approfondire alcuni argomenti trattati in questo documento è consigliato leggere il documento sopraindicatoh](hQuesto documento è destinato agli sviluppatori del kernel Linux, in particolar modo ai manutentori. Contiene degli approfondimenti riguardo informazioni che sono state affrontate in maniera più generale nella sezione “}(hjhhhNhNubjZ)}(h`Protecting Code Integrity`_h]hProtecting Code Integrity}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameProtecting Code IntegrityrefuriFhttps://github.com/lfit/itpol/blob/master/protecting-code-integrity.mduh1jYhjresolvedKubh” pubblicata dalla Linux Foundation. Per approfondire alcuni argomenti trattati in questo documento è consigliato leggere il documento sopraindicato}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubj)}(hg.. _`Protecting Code Integrity`: https://github.com/lfit/itpol/blob/master/protecting-code-integrity.mdh]h}(h]protecting-code-integrityah ]h"]protecting code integrityah$]h&]jjuh1jhKhjhhhj referencedKubj)}(hhh](j)}(h/Il ruolo di PGP nello sviluppo del kernel Linuxh]h/Il ruolo di PGP nello sviluppo del kernel Linux}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hhhjhKubh)}(hPGP aiuta ad assicurare l'integrità del codice prodotto dalla comunità di sviluppo del kernel e, in secondo luogo, stabilisce canali di comunicazione affidabili tra sviluppatori attraverso lo scambio di email firmate con PGP.h]hPGP aiuta ad assicurare l’integrità del codice prodotto dalla comunità di sviluppo del kernel e, in secondo luogo, stabilisce canali di comunicazione affidabili tra sviluppatori attraverso lo scambio di email firmate con PGP.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj(hhubh)}(hQIl codice sorgente del kernel Linux è disponibile principalmente in due formati:h]hQIl codice sorgente del kernel Linux è disponibile principalmente in due formati:}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj(hhubh bullet_list)}(hhh](h list_item)}(h(repositori distribuiti di sorgenti (git)h]h)}(hj^h]h(repositori distribuiti di sorgenti (git)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK!hj\ubah}(h]h ]h"]h$]h&]uh1jZhjWhhhjhNubj[)}(h.rilasci periodici di istantanee (archivi tar) h]h)}(h-rilasci periodici di istantanee (archivi tar)h]h-rilasci periodici di istantanee (archivi tar)}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK"hjsubah}(h]h ]h"]h$]h&]uh1jZhjWhhhjhNubeh}(h]h ]h"]h$]h&]bullet-uh1jUhjhK!hj(hhubh)}(hXZSia i repositori git che gli archivi tar portano le firme PGP degli sviluppatori che hanno creato i rilasci ufficiali del kernel. Queste firme offrono una garanzia crittografica che le versioni scaricabili rese disponibili via kernel.org, o altri portali, siano identiche a quelle che gli sviluppatori hanno sul loro posto di lavoro. A tal scopo:h]hXZSia i repositori git che gli archivi tar portano le firme PGP degli sviluppatori che hanno creato i rilasci ufficiali del kernel. Queste firme offrono una garanzia crittografica che le versioni scaricabili rese disponibili via kernel.org, o altri portali, siano identiche a quelle che gli sviluppatori hanno sul loro posto di lavoro. A tal scopo:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK$hj(hhubjV)}(hhh](j[)}(h2i repositori git forniscono firme PGP per ogni tagh]h)}(hjh]h2i repositori git forniscono firme PGP per ogni tag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK*hjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(h7gli archivi tar hanno firme separate per ogni archivio h]h)}(h6gli archivi tar hanno firme separate per ogni archivioh]h6gli archivi tar hanno firme separate per ogni archivio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK+hjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubeh}(h]h ]h"]h$]h&]jjuh1jUhjhK*hj(hhubj)}(h.. _it_devs_not_infra:h]h}(h]h ]h"]h$]h&]jit-devs-not-infrauh1jhK7hj(hhhjubj)}(hhh](j)}(h5Fidatevi degli sviluppatori e non dell'infrastrutturah]h7Fidatevi degli sviluppatori e non dell’infrastruttura}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK0ubh)}(hXFin dal 2011, quando i sistemi di kernel.org furono compromessi, il principio generale del progetto Kernel Archives è stato quello di assumere che qualsiasi parte dell'infrastruttura possa essere compromessa in ogni momento. Per questa ragione, gli amministratori hanno intrapreso deliberatemene dei passi per enfatizzare che la fiducia debba risiedere sempre negli sviluppatori e mai nel codice che gestisce l'infrastruttura, indipendentemente da quali che siano le pratiche di sicurezza messe in atto.h]hXFin dal 2011, quando i sistemi di kernel.org furono compromessi, il principio generale del progetto Kernel Archives è stato quello di assumere che qualsiasi parte dell’infrastruttura possa essere compromessa in ogni momento. Per questa ragione, gli amministratori hanno intrapreso deliberatemene dei passi per enfatizzare che la fiducia debba risiedere sempre negli sviluppatori e mai nel codice che gestisce l’infrastruttura, indipendentemente da quali che siano le pratiche di sicurezza messe in atto.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK2hjhhubh)}(hXIl principio sopra indicato è la ragione per la quale è necessaria questa guida. Vogliamo essere sicuri che il riporre la fiducia negli sviluppatori non sia fatto semplicemente per incolpare qualcun'altro per future falle di sicurezza. L'obiettivo è quello di fornire una serie di linee guida che gli sviluppatori possano seguire per creare un ambiente di lavoro sicuro e salvaguardare le chiavi PGP usate nello stabilire l'integrità del kernel Linux stesso.h]hXIl principio sopra indicato è la ragione per la quale è necessaria questa guida. Vogliamo essere sicuri che il riporre la fiducia negli sviluppatori non sia fatto semplicemente per incolpare qualcun’altro per future falle di sicurezza. L’obiettivo è quello di fornire una serie di linee guida che gli sviluppatori possano seguire per creare un ambiente di lavoro sicuro e salvaguardare le chiavi PGP usate nello stabilire l’integrità del kernel Linux stesso.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjhhubj)}(h.. _it_pgp_tools:h]h}(h]h ]h"]h$]h&]j it-pgp-toolsuh1jhKLhjhhhjubeh}(h](5fidatevi-degli-sviluppatori-e-non-dell-infrastrutturajeh ]h"](5fidatevi degli sviluppatori e non dell'infrastrutturait_devs_not_infraeh$]h&]uh1jhj(hhhjhK0expect_referenced_by_name}j"jsexpect_referenced_by_id}jjsubeh}(h]/il-ruolo-di-pgp-nello-sviluppo-del-kernel-linuxah ]h"]/il ruolo di pgp nello sviluppo del kernel linuxah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h Strumenti PGPh]h Strumenti PGP}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hhhjhKEubj)}(hhh](j)}(hUsare GnuPG 2.2 o successivoh]hUsare GnuPG 2.2 o successivo}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBhhhjhKHubh)}(hLa vostra distribuzione potrebbe avere già installato GnuPG, dovete solo verificare che stia utilizzando la versione abbastanza recente. Per controllate usate::h]hLa vostra distribuzione potrebbe avere già installato GnuPG, dovete solo verificare che stia utilizzando la versione abbastanza recente. Per controllate usate:}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKJhjBhhubh literal_block)}(h$ gpg --version | head -n1h]h$ gpg --version | head -n1}hjcsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jahjhKNhjBhhubh)}(hSe state utilizzando la version 2.2 o successiva, allora siete pronti a partire. Se invece state usando una versione precedente, allora alcuni comandi elencati in questa guida potrebbero non funzionare.h]hSe state utilizzando la version 2.2 o successiva, allora siete pronti a partire. Se invece state usando una versione precedente, allora alcuni comandi elencati in questa guida potrebbero non funzionare.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKPhjBhhubj)}(hhh](j)}(h#Configurare le opzioni di gpg-agenth]h#Configurare le opzioni di gpg-agent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKUubh)}(hX#L'agente GnuPG è uno strumento di aiuto che partirà automaticamente ogni volta che userete il comando ``gpg`` e funzionerà in *background* con l'obiettivo di individuare la passphrase. Ci sono due opzioni che dovreste conoscere per personalizzare la scadenza della passphrase nella cache:h](hjL’agente GnuPG è uno strumento di aiuto che partirà automaticamente ogni volta che userete il comando }(hjhhhNhNubhliteral)}(h``gpg``h]hgpg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh e funzionerà in }(hjhhhNhNubhemphasis)}(h *background*h]h background}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh con l’obiettivo di individuare la passphrase. Ci sono due opzioni che dovreste conoscere per personalizzare la scadenza della passphrase nella cache:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKWhjhhubjV)}(hhh](j[)}(h``default-cache-ttl`` (secondi): Se usate ancora la stessa chiave prima che il time-to-live termini, il conto alla rovescia si resetterà per un altro periodo. Di base è di 600 (10 minuti). h]h)}(h``default-cache-ttl`` (secondi): Se usate ancora la stessa chiave prima che il time-to-live termini, il conto alla rovescia si resetterà per un altro periodo. Di base è di 600 (10 minuti).h](j)}(h``default-cache-ttl``h]hdefault-cache-ttl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh (secondi): Se usate ancora la stessa chiave prima che il time-to-live termini, il conto alla rovescia si resetterà per un altro periodo. Di base è di 600 (10 minuti).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK\hjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(h``max-cache-ttl`` (secondi): indipendentemente da quanto sia recente l'ultimo uso della chiave da quando avete inserito la passphrase, se il massimo time-to-live è scaduto, dovrete reinserire nuovamente la passphrase. Di base è di 30 minuti. h]h)}(h``max-cache-ttl`` (secondi): indipendentemente da quanto sia recente l'ultimo uso della chiave da quando avete inserito la passphrase, se il massimo time-to-live è scaduto, dovrete reinserire nuovamente la passphrase. Di base è di 30 minuti.h](j)}(h``max-cache-ttl``h]h max-cache-ttl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh (secondi): indipendentemente da quanto sia recente l’ultimo uso della chiave da quando avete inserito la passphrase, se il massimo time-to-live è scaduto, dovrete reinserire nuovamente la passphrase. Di base è di 30 minuti.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK`hjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubeh}(h]h ]h"]h$]h&]jjuh1jUhjhK\hjhhubh)}(hSe ritenete entrambe questi valori di base troppo corti (o troppo lunghi), potete creare il vostro file ``~/.gnupg/gpg-agent.conf`` ed impostare i vostri valori::h](hhSe ritenete entrambe questi valori di base troppo corti (o troppo lunghi), potete creare il vostro file }(hjhhhNhNubj)}(h``~/.gnupg/gpg-agent.conf``h]h~/.gnupg/gpg-agent.conf}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh ed impostare i vostri valori:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKehjhhubjb)}(hf# set to 30 minutes for regular ttl, and 2 hours for max ttl default-cache-ttl 1800 max-cache-ttl 7200h]hf# set to 30 minutes for regular ttl, and 2 hours for max ttl default-cache-ttl 1800 max-cache-ttl 7200}hj=sbah}(h]h ]h"]h$]h&]jqjruh1jahjhKihjhhubhnote)}(hNon è più necessario far partire l'agente gpg manualmente all'inizio della vostra sessione. Dovreste controllare i file rc per rimuovere tutto ciò che riguarda vecchie le versioni di GnuPG, poiché potrebbero non svolgere più bene il loro compito.h]h)}(hNon è più necessario far partire l'agente gpg manualmente all'inizio della vostra sessione. Dovreste controllare i file rc per rimuovere tutto ciò che riguarda vecchie le versioni di GnuPG, poiché potrebbero non svolgere più bene il loro compito.h]hNon è più necessario far partire l’agente gpg manualmente all’inizio della vostra sessione. Dovreste controllare i file rc per rimuovere tutto ciò che riguarda vecchie le versioni di GnuPG, poiché potrebbero non svolgere più bene il loro compito.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKohjMubah}(h]h ]h"]h$]h&]uh1jKhjhhhjhNubj)}(h.. _it_protect_your_key:h]h}(h]h ]h"]h$]h&]jit-protect-your-keyuh1jhK~hjhhhjubeh}(h]#configurare-le-opzioni-di-gpg-agentah ]h"]#configurare le opzioni di gpg-agentah$]h&]uh1jhjBhhhjhKUubeh}(h]usare-gnupg-2-2-o-successivoah ]h"]usare gnupg 2.2 o successivoah$]h&]uh1jhj1hhhjhKHubeh}(h]( strumenti-pgpjeh ]h"]( strumenti pgp it_pgp_toolseh$]h&]uh1jhjhhhjhKEj%}jjsj'}jjsubj)}(hhh](j)}(h(Proteggere la vostra chiave PGP primariah]h(Proteggere la vostra chiave PGP primaria}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKwubh)}(hQuesta guida parte dal presupposto che abbiate già una chiave PGP che usate per lo sviluppo del kernel Linux. Se non ne avete ancora una, date uno sguardo al documento "`Protecting Code Integrity`_" che abbiamo menzionato prima.h](hQuesta guida parte dal presupposto che abbiate già una chiave PGP che usate per lo sviluppo del kernel Linux. Se non ne avete ancora una, date uno sguardo al documento “}(hjhhhNhNubjZ)}(h`Protecting Code Integrity`_h]hProtecting Code Integrity}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameProtecting Code Integrityjjuh1jYhjjKubh!” che abbiamo menzionato prima.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKyhjhhubh)}(hYDovreste inoltre creare una nuova chiave se quella attuale è inferiore a 2048 bit (RSA).h]hYDovreste inoltre creare una nuova chiave se quella attuale è inferiore a 2048 bit (RSA).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK}hjhhubj)}(hhh](j)}(hLe sottochiavi PGPh]hLe sottochiavi PGP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubh)}(hXRaramente le chiavi PGP sono composte da una singola coppia -- solitamente, sono una collezione di sottochiavi indipendenti usate per diversi scopi in funzione delle capacità assegnate al momento della creazione. Una chiave PGP può avere quattro capacità:h]hXRaramente le chiavi PGP sono composte da una singola coppia -- solitamente, sono una collezione di sottochiavi indipendenti usate per diversi scopi in funzione delle capacità assegnate al momento della creazione. Una chiave PGP può avere quattro capacità:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubjV)}(hhh](j[)}(h%**[S]** può essere usata per firmareh]h)}(hjh](hstrong)}(h**[S]**h]h[S]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh può essere usata per firmare}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(h&**[E]** può essere usata per criptareh]h)}(hjh](j)}(h**[E]**h]h[E]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh può essere usata per criptare}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(h)**[A]** può essere usata per autenticareh]h)}(hj<h](j)}(h**[A]**h]h[A]}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh" può essere usata per autenticare}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj:ubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(h7**[C]** può essere usata per certificare altre chiavi h]h)}(h6**[C]** può essere usata per certificare altre chiavih](j)}(h**[C]**h]h[C]}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh/ può essere usata per certificare altre chiavi}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj_ubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubeh}(h]h ]h"]h$]h&]jjuh1jUhjhKhjhhubh)}(hXLa chiave con la capacità **[C]** viene spesso chiamata chiave "passepartout" (*master key*), ma è una terminologia fuorviante perché lascia intendere che la chiave di certificato possa essere usate in sostituzione delle altre (proprio come le vere chiavi passpartout in grado di aprire diverse serrature). Dato che questo non è il caso, per evitare fraintendimenti, in questa guida ci riferiremo a questa chiave chiamandola "La chiave di certificazione".h](hLa chiave con la capacità }(hjhhhNhNubj)}(h**[C]**h]h[C]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh2 viene spesso chiamata chiave “passepartout” (}(hjhhhNhNubj)}(h *master key*h]h master key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhXs), ma è una terminologia fuorviante perché lascia intendere che la chiave di certificato possa essere usate in sostituzione delle altre (proprio come le vere chiavi passpartout in grado di aprire diverse serrature). Dato che questo non è il caso, per evitare fraintendimenti, in questa guida ci riferiremo a questa chiave chiamandola “La chiave di certificazione”.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubh)}(h'I seguenti punti sono molto importanti:h]h'I seguenti punti sono molto importanti:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubhenumerated_list)}(hhh](j[)}(hsTutte le sottochiavi sono indipendenti. Se perdete una sottochiave privata non potrete recuperarla usando le altre.h]h)}(hsTutte le sottochiavi sono indipendenti. Se perdete una sottochiave privata non potrete recuperarla usando le altre.h]hsTutte le sottochiavi sono indipendenti. Se perdete una sottochiave privata non potrete recuperarla usando le altre.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hXnAd eccezione della chiave di certificazione, ci possono essere più sottochiavi con le stesse capacità (per esempio, potete avere 2 sottochiavi per criptare, 3 per firmare, ma solo una per una sola per certificare). Tutte le sottochiavi sono indipendenti -- un messaggio criptato usando una chiave **[E]** non può essere decriptato usano altre sottochiavi **[E]**.h]h)}(hXnAd eccezione della chiave di certificazione, ci possono essere più sottochiavi con le stesse capacità (per esempio, potete avere 2 sottochiavi per criptare, 3 per firmare, ma solo una per una sola per certificare). Tutte le sottochiavi sono indipendenti -- un messaggio criptato usando una chiave **[E]** non può essere decriptato usano altre sottochiavi **[E]**.h](hX+Ad eccezione della chiave di certificazione, ci possono essere più sottochiavi con le stesse capacità (per esempio, potete avere 2 sottochiavi per criptare, 3 per firmare, ma solo una per una sola per certificare). Tutte le sottochiavi sono indipendenti -- un messaggio criptato usando una chiave }(hjhhhNhNubj)}(h**[E]**h]h[E]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh4 non può essere decriptato usano altre sottochiavi }(hjhhhNhNubj)}(h**[E]**h]h[E]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hqUna sottochiave può avere più capacità (per esempio, la chiave **[C]** può anche essere una chiave **[S]**). h]h)}(hpUna sottochiave può avere più capacità (per esempio, la chiave **[C]** può anche essere una chiave **[S]**).h](hBUna sottochiave può avere più capacità (per esempio, la chiave }(hj(hhhNhNubj)}(h**[C]**h]h[C]}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh può anche essere una chiave }(hj(hhhNhNubj)}(h**[S]**h]h[S]}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh).}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj$ubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1jhjhhhjhKubh)}(hLa chiave con capacità **[C]** (certificazione) è la sola che può essere usata per indicare relazioni fra chiavi. Solo la chiave **[C]** può essere usata per:h](hLa chiave con capacità }(hjkhhhNhNubj)}(h**[C]**h]h[C]}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubhe (certificazione) è la sola che può essere usata per indicare relazioni fra chiavi. Solo la chiave }(hjkhhhNhNubj)}(h**[C]**h]h[C]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh può essere usata per:}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubjV)}(hhh](j[)}(hKaggiungere o revocare altre chiavi (sottochiavi) che hanno capacità S/E/A;h]h)}(hjh]hKaggiungere o revocare altre chiavi (sottochiavi) che hanno capacità S/E/A;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hNaggiungere, modificare o eliminare le identità (unids) associate alla chiave;h]h)}(hjh]hNaggiungere, modificare o eliminare le identità (unids) associate alla chiave;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hHaggiungere o modificare la propria data di scadenza o delle sottochiavi;h]h)}(hjh]hHaggiungere o modificare la propria data di scadenza o delle sottochiavi;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hJfirmare le chiavi di altre persone a scopo di creare una rete di fiducia. h]h)}(hIfirmare le chiavi di altre persone a scopo di creare una rete di fiducia.h]hIfirmare le chiavi di altre persone a scopo di creare una rete di fiducia.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubeh}(h]h ]h"]h$]h&]jjuh1jUhjhKhjhhubh)}(hCDi base, alla creazione di nuove chiavi, GnuPG genera quanto segue:h]hCDi base, alla creazione di nuove chiavi, GnuPG genera quanto segue:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubjV)}(hhh](j[)}(hHUna chiave la capacità di certificazione che quella di firma (**[SC]**)h]h)}(hjh](h?Una chiave la capacità di certificazione che quella di firma (}(hjhhhNhNubj)}(h**[SC]**h]h[SC]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(h@Una sottochiave separata con capacità di criptare (**[E]**) h]h)}(h ssb cv25519 2022-12-20 [E] [expires: 2024-12-19]h]hsec ed25519 2022-12-20 [SC] [expires: 2024-12-19] 000000000000000000000000AAAABBBBCCCCDDDD uid [ultimate] Alice Dev ssb cv25519 2022-12-20 [E] [expires: 2024-12-19]}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhKhjhhubh)}(hLa lunga riga sotto la voce ``sec`` è la vostra impronta digitale -- negli esempi che seguono, quando vedere ``[fpr]`` ci si riferisce a questa stringa di 40 caratteri.h](hLa lunga riga sotto la voce }(hjhhhNhNubj)}(h``sec``h]hsec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhK è la vostra impronta digitale -- negli esempi che seguono, quando vedere }(hjhhhNhNubj)}(h ``[fpr]``h]h[fpr]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh2 ci si riferisce a questa stringa di 40 caratteri.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubeh}(h]le-sottochiavi-pgpah ]h"]le sottochiavi pgpah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h/Assicuratevi che la vostra passphrase sia forteh]h/Assicuratevi che la vostra passphrase sia forte}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubh)}(hXZGnuPG utilizza le passphrases per criptare la vostra chiave privata prima di salvarla sul disco. In questo modo, anche se il contenuto della vostra cartella ``.gnupg`` venisse letto o trafugato nella sia interezza, gli attaccanti non potrebbero comunque utilizzare le vostre chiavi private senza aver prima ottenuto la passphrase per decriptarle.h](hGnuPG utilizza le passphrases per criptare la vostra chiave privata prima di salvarla sul disco. In questo modo, anche se il contenuto della vostra cartella }(hjhhhNhNubj)}(h ``.gnupg``h]h.gnupg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh venisse letto o trafugato nella sia interezza, gli attaccanti non potrebbero comunque utilizzare le vostre chiavi private senza aver prima ottenuto la passphrase per decriptarle.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubh)}(hÈ assolutamente essenziale che le vostre chiavi private siano protette da una passphrase forte. Per impostarla o cambiarla, usate::h]hÈ assolutamente essenziale che le vostre chiavi private siano protette da una passphrase forte. Per impostarla o cambiarla, usate:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubjb)}(h$ gpg --change-passphrase [fpr]h]h$ gpg --change-passphrase [fpr]}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhKhjhhubeh}(h]/assicuratevi-che-la-vostra-passphrase-sia-forteah ]h"]/assicuratevi che la vostra passphrase sia forteah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h(Create una sottochiave di firma separatah]h(Create una sottochiave di firma separata}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*hhhjhKubh)}(hIl nostro obiettivo è di proteggere la chiave primaria spostandola su un dispositivo sconnesso dalla rete, dunque se avete solo una chiave combinata **[SC]** allora dovreste creare una sottochiave di firma separata::h](hIl nostro obiettivo è di proteggere la chiave primaria spostandola su un dispositivo sconnesso dalla rete, dunque se avete solo una chiave combinata }(hj;hhhNhNubj)}(h**[SC]**h]h[SC]}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh: allora dovreste creare una sottochiave di firma separata:}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj*hhubjb)}(h($ gpg --quick-add-key [fpr] ed25519 signh]h($ gpg --quick-add-key [fpr] ed25519 sign}hj[sbah}(h]h ]h"]h$]h&]jqjruh1jahjhKhj*hhubh)}(hzRicordate di informare il keyserver del vostro cambiamento, cosicché altri possano ricevere la vostra nuova sottochiave::h]hyRicordate di informare il keyserver del vostro cambiamento, cosicché altri possano ricevere la vostra nuova sottochiave:}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj*hhubjb)}(h$ gpg --send-key [fpr]h]h$ gpg --send-key [fpr]}hjwsbah}(h]h ]h"]h$]h&]jqjruh1jahjhKhj*hhubjL)}(hSupporto ECC in GnuPG Tenete presente che se avete intenzione di usare un dispositivo che non supporta chiavi ED25519 ECC, allora dovreste usare "nistp256" al posto di "ed25519". Più avanti ci sono alcune raccomandazioni per i dispositivi.h](h)}(hSupporto ECC in GnuPGh]hSupporto ECC in GnuPG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(hTenete presente che se avete intenzione di usare un dispositivo che non supporta chiavi ED25519 ECC, allora dovreste usare "nistp256" al posto di "ed25519". Più avanti ci sono alcune raccomandazioni per i dispositivi.h]hTenete presente che se avete intenzione di usare un dispositivo che non supporta chiavi ED25519 ECC, allora dovreste usare “nistp256” al posto di “ed25519”. Più avanti ci sono alcune raccomandazioni per i dispositivi.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubeh}(h]h ]h"]h$]h&]uh1jKhj*hhhjhNubeh}(h](create-una-sottochiave-di-firma-separataah ]h"](create una sottochiave di firma separataah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(hJCopia di riserva della chiave primaria per gestire il recupero da disastroh]hJCopia di riserva della chiave primaria per gestire il recupero da disastro}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubh)}(hMaggiori sono le firme di altri sviluppatori che vengono applicate alla vostra, maggiori saranno i motivi per avere una copia di riserva che non sia digitale, al fine di effettuare un recupero da disastro.h]hMaggiori sono le firme di altri sviluppatori che vengono applicate alla vostra, maggiori saranno i motivi per avere una copia di riserva che non sia digitale, al fine di effettuare un recupero da disastro.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubh)}(hXDIl modo migliore per creare una copia fisica della vostra chiave privata è l'uso del programma ``paperkey``. Consultate ``man paperkey`` per maggiori dettagli sul formato dell'output ed i suoi punti di forza rispetto ad altre soluzioni. Paperkey dovrebbe essere già pacchettizzato per la maggior parte delle distribuzioni.h](hbIl modo migliore per creare una copia fisica della vostra chiave privata è l’uso del programma }(hjhhhNhNubj)}(h ``paperkey``h]hpaperkey}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh . Consultate }(hjhhhNhNubj)}(h``man paperkey``h]h man paperkey}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh per maggiori dettagli sul formato dell’output ed i suoi punti di forza rispetto ad altre soluzioni. Paperkey dovrebbe essere già pacchettizzato per la maggior parte delle distribuzioni.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubh)}(haEseguite il seguente comando per creare una copia fisica di riserva della vostra chiave privata::h]h`Eseguite il seguente comando per creare una copia fisica di riserva della vostra chiave privata:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubjb)}(hA$ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txth]hA$ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txt}hj sbah}(h]h ]h"]h$]h&]jqjruh1jahjhKhjhhubh)}(hXZStampate il file (o fate un pipe direttamente verso lpr), poi prendete una penna e scrivete la passphare sul margine del foglio. **Questo è caldamente consigliato** perché la copia cartacea è comunque criptata con la passphrase, e se mai doveste cambiarla non vi ricorderete qual'era al momento della creazione di quella copia -- *garantito*.h](hStampate il file (o fate un pipe direttamente verso lpr), poi prendete una penna e scrivete la passphare sul margine del foglio. }(hj hhhNhNubj)}(h$**Questo è caldamente consigliato**h]h Questo è caldamente consigliato}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh perché la copia cartacea è comunque criptata con la passphrase, e se mai doveste cambiarla non vi ricorderete qual’era al momento della creazione di quella copia -- }(hj hhhNhNubj)}(h *garantito*h]h garantito}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubh)}(hMettete la copia cartacea e la passphrase scritta a mano in una busta e mettetela in un posto sicuro e ben protetto, preferibilmente fuori casa, magari in una cassetta di sicurezza in banca.h]hMettete la copia cartacea e la passphrase scritta a mano in una busta e mettetela in un posto sicuro e ben protetto, preferibilmente fuori casa, magari in una cassetta di sicurezza in banca.}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubjL)}(hX Probabilmente la vostra stampante non è più quello stupido dispositivo connesso alla porta parallela, ma dato che il suo output è comunque criptato con la passphrase, eseguire la stampa in un sistema "cloud" moderno dovrebbe essere comunque relativamente sicuro.h]h)}(hX Probabilmente la vostra stampante non è più quello stupido dispositivo connesso alla porta parallela, ma dato che il suo output è comunque criptato con la passphrase, eseguire la stampa in un sistema "cloud" moderno dovrebbe essere comunque relativamente sicuro.h]hX Probabilmente la vostra stampante non è più quello stupido dispositivo connesso alla porta parallela, ma dato che il suo output è comunque criptato con la passphrase, eseguire la stampa in un sistema “cloud” moderno dovrebbe essere comunque relativamente sicuro.}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj` ubah}(h]h ]h"]h$]h&]uh1jKhjhhhjhNubeh}(h]Jcopia-di-riserva-della-chiave-primaria-per-gestire-il-recupero-da-disastroah ]h"]Jcopia di riserva della chiave primaria per gestire il recupero da disastroah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h+Copia di riserva di tutta la cartella GnuPGh]h+Copia di riserva di tutta la cartella GnuPG}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMubh)}(h"**!!!Non saltate questo passo!!!**h]h)}(hj h]j)}(hj h]h!!!Non saltate questo passo!!!}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhMhj ubah}(h]h ]h"]h$]h&]uh1hhj hhhjhNubh)}(hXQuando avete bisogno di recuperare le vostre chiavi PGP è importante avere una copia di riserva pronta all'uso. Questo sta su un diverso piano di prontezza rispetto al recupero da disastro che abbiamo risolto con ``paperkey``. Vi affiderete a queste copie esterne quando dovreste usare la vostra chiave Certify -- ovvero quando fate modifiche alle vostre chiavi o firmate le chiavi di altre persone ad una conferenza o ad un gruppo d'incontro.h](hQuando avete bisogno di recuperare le vostre chiavi PGP è importante avere una copia di riserva pronta all’uso. Questo sta su un diverso piano di prontezza rispetto al recupero da disastro che abbiamo risolto con }(hj hhhNhNubj)}(h ``paperkey``h]hpaperkey}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh. Vi affiderete a queste copie esterne quando dovreste usare la vostra chiave Certify -- ovvero quando fate modifiche alle vostre chiavi o firmate le chiavi di altre persone ad una conferenza o ad un gruppo d’incontro.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM hj hhubh)}(hIncominciate con una piccola chiavetta di memoria USB (preferibilmente due) che userete per le copie di riserva. Dovrete criptarle usando LUKS -- fate riferimento alla documentazione della vostra distribuzione per capire come fare.h]hIncominciate con una piccola chiavetta di memoria USB (preferibilmente due) che userete per le copie di riserva. Dovrete criptarle usando LUKS -- fate riferimento alla documentazione della vostra distribuzione per capire come fare.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubh)}(hVPer la passphrase di criptazione, potete usare la stessa della vostra chiave primaria.h]hVPer la passphrase di criptazione, potete usare la stessa della vostra chiave primaria.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubh)}(hUna volta che il processo di criptazione è finito, reinserite il disco USB ed assicurativi che venga montato correttamente. Copiate interamente la cartella ``.gnugp`` nel disco criptato::h](hUna volta che il processo di criptazione è finito, reinserite il disco USB ed assicurativi che venga montato correttamente. Copiate interamente la cartella }(hj hhhNhNubj)}(h ``.gnugp``h]h.gnugp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh nel disco criptato:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj hhubjb)}(h-$ cp -a ~/.gnupg /media/disk/foo/gnupg-backuph]h-$ cp -a ~/.gnupg /media/disk/foo/gnupg-backup}hj sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhj hhubh)}(h9Ora dovreste verificare che tutto continui a funzionare::h]h8Ora dovreste verificare che tutto continui a funzionare:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubjb)}(h=$ gpg --homedir=/media/disk/foo/gnupg-backup --list-key [fpr]h]h=$ gpg --homedir=/media/disk/foo/gnupg-backup --list-key [fpr]}hj) sbah}(h]h ]h"]h$]h&]jqjruh1jahjhM hj hhubh)}(hXSe non vedete errori, allora dovreste avere fatto tutto con successo. Smontate il disco USB, etichettatelo per bene di modo da evitare di distruggerne il contenuto non appena vi serve una chiavetta USB a caso, ed infine mettetelo in un posto sicuro -- ma non troppo lontano, perché vi servirà di tanto in tanto per modificare le identità, aggiungere o revocare sottochiavi, o firmare le chiavi di altre persone.h]hXSe non vedete errori, allora dovreste avere fatto tutto con successo. Smontate il disco USB, etichettatelo per bene di modo da evitare di distruggerne il contenuto non appena vi serve una chiavetta USB a caso, ed infine mettetelo in un posto sicuro -- ma non troppo lontano, perché vi servirà di tanto in tanto per modificare le identità, aggiungere o revocare sottochiavi, o firmare le chiavi di altre persone.}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM"hj hhubeh}(h]+copia-di-riserva-di-tutta-la-cartella-gnupgah ]h"]+copia di riserva di tutta la cartella gnupgah$]h&]uh1jhjhhhjhMubj)}(hhh](j)}(h-Togliete la chiave primaria dalla vostra homeh]h-Togliete la chiave primaria dalla vostra home}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM hhhjhM*ubh)}(hI file che si trovano nella vostra cartella home non sono poi così ben protetti come potreste pensare. Potrebbero essere letti o trafugati in diversi modi:h]hI file che si trovano nella vostra cartella home non sono poi così ben protetti come potreste pensare. Potrebbero essere letti o trafugati in diversi modi:}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM,hjM hhubjV)}(hhh](j[)}(heaccidentalmente quando fate una rapida copia della cartella home per configurare una nuova postazioneh]h)}(heaccidentalmente quando fate una rapida copia della cartella home per configurare una nuova postazioneh]heaccidentalmente quando fate una rapida copia della cartella home per configurare una nuova postazione}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM/hjo ubah}(h]h ]h"]h$]h&]uh1jZhjl hhhjhNubj[)}(h sub cv25519 2022-12-20 [E] [expires: 2022-12-19] Keygrip = 2222000000000000000000000000000000000000 sub ed25519 2022-12-20 [S] Keygrip = 3333000000000000000000000000000000000000h]hXpub ed25519 2022-12-20 [SC] [expires: 2022-12-19] 000000000000000000000000AAAABBBBCCCCDDDD Keygrip = 1111000000000000000000000000000000000000 uid [ultimate] Alice Dev sub cv25519 2022-12-20 [E] [expires: 2022-12-19] Keygrip = 2222000000000000000000000000000000000000 sub ed25519 2022-12-20 [S] Keygrip = 3333000000000000000000000000000000000000}hj; sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMJhjM hhubh)}(hTrovate la voce keygrid che si trova sotto alla riga ``pub`` (appena sotto all'impronta digitale della chiave primaria). Questo corrisponderà direttamente ad un file nella cartella ``~/.gnupg``::h](h5Trovate la voce keygrid che si trova sotto alla riga }(hjI hhhNhNubj)}(h``pub``h]hpub}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubh| (appena sotto all’impronta digitale della chiave primaria). Questo corrisponderà direttamente ad un file nella cartella }(hjI hhhNhNubj)}(h ``~/.gnupg``h]h~/.gnupg}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubh:}(hjI hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMShjM hhubjb)}(h$ cd ~/.gnupg/private-keys-v1.d $ ls 1111000000000000000000000000000000000000.key 2222000000000000000000000000000000000000.key 3333000000000000000000000000000000000000.keyh]h$ cd ~/.gnupg/private-keys-v1.d $ ls 1111000000000000000000000000000000000000.key 2222000000000000000000000000000000000000.key 3333000000000000000000000000000000000000.key}hj{ sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMWhjM hhubh)}(hdQuello che dovrete fare è rimuovere il file .key che corrisponde al keygrip della chiave primaria::h]hcQuello che dovrete fare è rimuovere il file .key che corrisponde al keygrip della chiave primaria:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM]hjM hhubjb)}(hQ$ cd ~/.gnupg/private-keys-v1.d $ rm 1111000000000000000000000000000000000000.keyh]hQ$ cd ~/.gnupg/private-keys-v1.d $ rm 1111000000000000000000000000000000000000.key}hj sbah}(h]h ]h"]h$]h&]jqjruh1jahjhM`hjM hhubh)}(hOra, se eseguite il comando ``--list-secret-keys``, vedrete che la chiave primaria non compare più (il simbolo ``#`` indica che non è disponibile)::h](hOra, se eseguite il comando }(hj hhhNhNubj)}(h``--list-secret-keys``h]h--list-secret-keys}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh>, vedrete che la chiave primaria non compare più (il simbolo }(hj hhhNhNubj)}(h``#``h]h#}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh indica che non è disponibile):}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMchjM hhubjb)}(hX$ gpg --list-secret-keys sec# ed25519 2022-12-20 [SC] [expires: 2024-12-19] 000000000000000000000000AAAABBBBCCCCDDDD uid [ultimate] Alice Dev ssb cv25519 2022-12-20 [E] [expires: 2024-12-19] ssb ed25519 2022-12-20 [S]h]hX$ gpg --list-secret-keys sec# ed25519 2022-12-20 [SC] [expires: 2024-12-19] 000000000000000000000000AAAABBBBCCCCDDDD uid [ultimate] Alice Dev ssb cv25519 2022-12-20 [E] [expires: 2024-12-19] ssb ed25519 2022-12-20 [S]}hj sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMfhjM hhubh)}(hDovreste rimuovere anche i file ``secring.gpg`` che si trovano nella cartella ``~/.gnupg``, in quanto rimasugli delle versioni precedenti di GnuPG.h](h Dovreste rimuovere anche i file }(hj hhhNhNubj)}(h``secring.gpg``h]h secring.gpg}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh che si trovano nella cartella }(hj hhhNhNubj)}(h ``~/.gnupg``h]h~/.gnupg}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh9, in quanto rimasugli delle versioni precedenti di GnuPG.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMmhjM hhubj)}(hhh](j)}(h,Se non avete la cartella "private-keys-v1.d"h]h0Se non avete la cartella “private-keys-v1.d”}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMqubh)}(hXvSe non avete la cartella ``~/.gnupg/private-keys-v1.d``, allora le vostre chiavi segrete sono ancora salvate nel vecchio file ``secring.gpg`` usato da GnuPG v1. Effettuare una qualsiasi modifica alla vostra chiave, come cambiare la passphare o aggiungere una sottochiave, dovrebbe convertire automaticamente il vecchio formato ``secring.gpg``nel nuovo ``private-keys-v1.d``.h](hSe non avete la cartella }(hj( hhhNhNubj)}(h``~/.gnupg/private-keys-v1.d``h]h~/.gnupg/private-keys-v1.d}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj( ubhG, allora le vostre chiavi segrete sono ancora salvate nel vecchio file }(hj( hhhNhNubj)}(h``secring.gpg``h]h secring.gpg}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj( ubh usato da GnuPG v1. Effettuare una qualsiasi modifica alla vostra chiave, come cambiare la passphare o aggiungere una sottochiave, dovrebbe convertire automaticamente il vecchio formato }(hj( hhhNhNubj)}(h.``secring.gpg``nel nuovo ``private-keys-v1.d``h]h*secring.gpg``nel nuovo ``private-keys-v1.d}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj( ubh.}(hj( hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMshj hhubh)}(hUna volta che l'avete fatto, assicuratevi di rimuovere il file ``secring.gpg``, che continua a contenere la vostra chiave privata.h](hAUna volta che l’avete fatto, assicuratevi di rimuovere il file }(hjl hhhNhNubj)}(h``secring.gpg``h]h secring.gpg}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl ubh4, che continua a contenere la vostra chiave privata.}(hjl hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMzhj hhubj)}(h.. _it_smartcards:h]h}(h]h ]h"]h$]h&]j it-smartcardsuh1jhMhj hhhjubeh}(h]*se-non-avete-la-cartella-private-keys-v1-dah ]h"],se non avete la cartella "private-keys-v1.d"ah$]h&]uh1jhjM hhhjhMqubeh}(h]-togliete-la-chiave-primaria-dalla-vostra-homeah ]h"]-togliete la chiave primaria dalla vostra homeah$]h&]uh1jhjhhhjhM*ubeh}(h]((proteggere-la-vostra-chiave-pgp-primariajoeh ]h"]((proteggere la vostra chiave pgp primariait_protect_your_keyeh$]h&]uh1jhjhhhjhKwj%}j jesj'}jojesubj)}(hhh](j)}(h;Spostare le sottochiavi in un apposito dispositivo criptatoh]h;Spostare le sottochiavi in un apposito dispositivo criptato}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMubh)}(hXNonostante la chiave primaria sia ora al riparo da occhi e mani indiscrete, le sottochiavi si trovano ancora nella vostra cartella home. Chiunque riesca a mettere le sue mani su quelle chiavi riuscirà a decriptare le vostre comunicazioni o a falsificare le vostre firme (se conoscono la passphrase). Inoltre, ogni volta che viene fatta un'operazione con GnuPG, le chiavi vengono caricate nella memoria di sistema e potrebbero essere rubate con l'uso di malware sofisticati (pensate a Meltdown e a Spectre).h]hXNonostante la chiave primaria sia ora al riparo da occhi e mani indiscrete, le sottochiavi si trovano ancora nella vostra cartella home. Chiunque riesca a mettere le sue mani su quelle chiavi riuscirà a decriptare le vostre comunicazioni o a falsificare le vostre firme (se conoscono la passphrase). Inoltre, ogni volta che viene fatta un’operazione con GnuPG, le chiavi vengono caricate nella memoria di sistema e potrebbero essere rubate con l’uso di malware sofisticati (pensate a Meltdown e a Spectre).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubh)}(hIl miglior modo per proteggere le proprie chiave è di spostarle su un dispositivo specializzato in grado di effettuare operazioni smartcard.h]hIl miglior modo per proteggere le proprie chiave è di spostarle su un dispositivo specializzato in grado di effettuare operazioni smartcard.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubj)}(hhh](j)}(hI benefici di una smartcardh]hI benefici di una smartcard}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMubh)}(hXUna smartcard contiene un chip crittografico che è capace di immagazzinare le chiavi private ed effettuare operazioni crittografiche direttamente sulla carta stessa. Dato che la chiave non lascia mai la smartcard, il sistema operativo usato sul computer non sarà in grado di accedere alle chiavi. Questo è molto diverso dai dischi USB criptati che abbiamo usato allo scopo di avere una copia di riserva sicura -- quando il dispositivo USB è connesso e montato, il sistema operativo potrà accedere al contenuto delle chiavi private.h]hXUna smartcard contiene un chip crittografico che è capace di immagazzinare le chiavi private ed effettuare operazioni crittografiche direttamente sulla carta stessa. Dato che la chiave non lascia mai la smartcard, il sistema operativo usato sul computer non sarà in grado di accedere alle chiavi. Questo è molto diverso dai dischi USB criptati che abbiamo usato allo scopo di avere una copia di riserva sicura -- quando il dispositivo USB è connesso e montato, il sistema operativo potrà accedere al contenuto delle chiavi private.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubh)}(hxL'uso di un disco USB criptato non può sostituire le funzioni di un dispositivo capace di operazioni di tipo smartcard.h]hzL’uso di un disco USB criptato non può sostituire le funzioni di un dispositivo capace di operazioni di tipo smartcard.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubeh}(h]i-benefici-di-una-smartcardah ]h"]i benefici di una smartcardah$]h&]uh1jhj hhhjhMubj)}(hhh](j)}(h!Dispositivi smartcard disponibilih]h!Dispositivi smartcard disponibili}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMubh)}(hA meno che tutti i vostri computer dispongano di lettori smartcard, il modo più semplice è equipaggiarsi di un dispositivo USB specializzato che implementi le funzionalità delle smartcard. Sul mercato ci sono diverse soluzioni disponibili:h]hA meno che tutti i vostri computer dispongano di lettori smartcard, il modo più semplice è equipaggiarsi di un dispositivo USB specializzato che implementi le funzionalità delle smartcard. Sul mercato ci sono diverse soluzioni disponibili:}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubjV)}(hhh](j[)}(hX `Nitrokey Start`_: è Open hardware e Free Software, è basata sul progetto `GnuK`_ della FSIJ. Questo è uno dei pochi dispositivi a supportare le chiavi ECC ED25519, ma offre meno funzionalità di sicurezza (come la resistenza alla manomissione o alcuni attacchi ad un canale laterale).h]h)}(hX `Nitrokey Start`_: è Open hardware e Free Software, è basata sul progetto `GnuK`_ della FSIJ. Questo è uno dei pochi dispositivi a supportare le chiavi ECC ED25519, ma offre meno funzionalità di sicurezza (come la resistenza alla manomissione o alcuni attacchi ad un canale laterale).h](jZ)}(h`Nitrokey Start`_h]hNitrokey Start}(hj> hhhNhNubah}(h]h ]h"]h$]h&]nameNitrokey Startj7https://shop.nitrokey.com/shop/product/nitrokey-start-6uh1jYhj: jKubh;: è Open hardware e Free Software, è basata sul progetto }(hj: hhhNhNubjZ)}(h`GnuK`_h]hGnuK}(hjS hhhNhNubah}(h]h ]h"]h$]h&]nameGnuKjhttps://www.fsij.org/doc-gnuk/uh1jYhj: jKubh della FSIJ. Questo è uno dei pochi dispositivi a supportare le chiavi ECC ED25519, ma offre meno funzionalità di sicurezza (come la resistenza alla manomissione o alcuni attacchi ad un canale laterale).}(hj: hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj6 ubah}(h]h ]h"]h$]h&]uh1jZhj3 hhhjhNubj[)}(h`Nitrokey Pro 2`_: è simile alla Nitrokey Start, ma è più resistente alla manomissione e offre più funzionalità di sicurezza. La Pro 2 supporta la crittografia ECC (NISTP).h]h)}(h`Nitrokey Pro 2`_: è simile alla Nitrokey Start, ma è più resistente alla manomissione e offre più funzionalità di sicurezza. La Pro 2 supporta la crittografia ECC (NISTP).h](jZ)}(h`Nitrokey Pro 2`_h]hNitrokey Pro 2}(hj| hhhNhNubah}(h]h ]h"]h$]h&]nameNitrokey Pro 2j7https://shop.nitrokey.com/shop/product/nitrokey-pro-2-3uh1jYhjx jKubh: è simile alla Nitrokey Start, ma è più resistente alla manomissione e offre più funzionalità di sicurezza. La Pro 2 supporta la crittografia ECC (NISTP).}(hjx hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjt ubah}(h]h ]h"]h$]h&]uh1jZhj3 hhhjhNubj[)}(hX,`Yubikey 5`_: l'hardware e il software sono proprietari, ma è più economica della Nitrokey Pro ed è venduta anche con porta USB-C il che è utile con i computer portatili più recenti. In aggiunta, offre altre funzionalità di sicurezza come FIDO, U2F, e ora supporta anche le chiavi ECC (NISTP) h]h)}(hX+`Yubikey 5`_: l'hardware e il software sono proprietari, ma è più economica della Nitrokey Pro ed è venduta anche con porta USB-C il che è utile con i computer portatili più recenti. In aggiunta, offre altre funzionalità di sicurezza come FIDO, U2F, e ora supporta anche le chiavi ECC (NISTP)h](jZ)}(h `Yubikey 5`_h]h Yubikey 5}(hj hhhNhNubah}(h]h ]h"]h$]h&]name Yubikey 5j2https://www.yubico.com/product/yubikey-5-overview/uh1jYhj jKubhX!: l’hardware e il software sono proprietari, ma è più economica della Nitrokey Pro ed è venduta anche con porta USB-C il che è utile con i computer portatili più recenti. In aggiunta, offre altre funzionalità di sicurezza come FIDO, U2F, e ora supporta anche le chiavi ECC (NISTP)}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj ubah}(h]h ]h"]h$]h&]uh1jZhj3 hhhjhNubeh}(h]h ]h"]h$]h&]jjuh1jUhjhMhj hhubh)}(hLa vostra scelta dipenderà dal costo, la disponibilità nella vostra regione, e sulla scelta fra dispositivi aperti e proprietari.h]hLa vostra scelta dipenderà dal costo, la disponibilità nella vostra regione, e sulla scelta fra dispositivi aperti e proprietari.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubjL)}(hSe siete nella lista MAINTAINERS o avete un profilo su kernel.org, allora `potrete avere gratuitamente una Nitrokey Start`_ grazie alla fondazione Linux.h]h)}(hSe siete nella lista MAINTAINERS o avete un profilo su kernel.org, allora `potrete avere gratuitamente una Nitrokey Start`_ grazie alla fondazione Linux.h](hJSe siete nella lista MAINTAINERS o avete un profilo su kernel.org, allora }(hj hhhNhNubjZ)}(h1`potrete avere gratuitamente una Nitrokey Start`_h]h.potrete avere gratuitamente una Nitrokey Start}(hj hhhNhNubah}(h]h ]h"]h$]h&]name.potrete avere gratuitamente una Nitrokey StartjIhttps://www.kernel.org/nitrokey-digital-tokens-for-kernel-developers.htmluh1jYhj jKubh grazie alla fondazione Linux.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj ubah}(h]h ]h"]h$]h&]uh1jKhj hhhjhNubj)}(hM.. _`Nitrokey Start`: https://shop.nitrokey.com/shop/product/nitrokey-start-6h]h}(h]nitrokey-startah ]h"]nitrokey startah$]h&]jjN uh1jhMhj hhhjj'Kubj)}(hM.. _`Nitrokey Pro 2`: https://shop.nitrokey.com/shop/product/nitrokey-pro-2-3h]h}(h]nitrokey-pro-2ah ]h"]nitrokey pro 2ah$]h&]jj uh1jhMhj hhhjj'Kubj)}(hC.. _`Yubikey 5`: https://www.yubico.com/product/yubikey-5-overview/h]h}(h] yubikey-5ah ]h"] yubikey 5ah$]h&]jj uh1jhMhj hhhjj'Kubj)}(h(.. _Gnuk: https://www.fsij.org/doc-gnuk/h]h}(h]gnukah ]h"]gnukah$]h&]jjc uh1jhMhj hhhjj'Kubj)}(h.. _`potrete avere gratuitamente una Nitrokey Start`: https://www.kernel.org/nitrokey-digital-tokens-for-kernel-developers.htmlh]h}(h].potrete-avere-gratuitamente-una-nitrokey-startah ]h"].potrete avere gratuitamente una nitrokey startah$]h&]jj uh1jhMhj hhhjj'Kubeh}(h]!dispositivi-smartcard-disponibiliah ]h"]!dispositivi smartcard disponibiliah$]h&]uh1jhj hhhjhMubj)}(hhh](j)}(h+Configurare il vostro dispositivo smartcardh]h+Configurare il vostro dispositivo smartcard}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKhhhjhMubh)}(hIl vostro dispositivo smartcard dovrebbe iniziare a funzionare non appena lo collegate ad un qualsiasi computer Linux moderno. Potete verificarlo eseguendo::h]hIl vostro dispositivo smartcard dovrebbe iniziare a funzionare non appena lo collegate ad un qualsiasi computer Linux moderno. Potete verificarlo eseguendo:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjKhhubjb)}(h$ gpg --card-statush]h$ gpg --card-status}hjjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjKhhubh)}(hX+Se vedete tutti i dettagli della smartcard, allora ci siamo. Sfortunatamente, affrontare tutti i possibili motivi per cui le cose potrebbero non funzionare non è lo scopo di questa guida. Se avete problemi nel far funzionare la carta con GnuPG, cercate aiuto attraverso i soliti canali di supporto.h]hX+Se vedete tutti i dettagli della smartcard, allora ci siamo. Sfortunatamente, affrontare tutti i possibili motivi per cui le cose potrebbero non funzionare non è lo scopo di questa guida. Se avete problemi nel far funzionare la carta con GnuPG, cercate aiuto attraverso i soliti canali di supporto.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjKhhubh)}(h}Per configurare la vostra smartcard, dato che non c'è una via facile dalla riga di comando, dovrete usate il menu di GnuPG::h]h~Per configurare la vostra smartcard, dato che non c’è una via facile dalla riga di comando, dovrete usate il menu di GnuPG:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjKhhubjb)}(h]$ gpg --card-edit [...omitted...] gpg/card> admin Admin commands are allowed gpg/card> passwdh]h]$ gpg --card-edit [...omitted...] gpg/card> admin Admin commands are allowed gpg/card> passwd}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjKhhubh)}(hXDovreste impostare il PIN dell'utente (1), quello dell'amministratore (3) e il codice di reset (4). Assicuratevi di annotare e salvare questi codici in un posto sicuro -- specialmente il PIN dell'amministratore e il codice di reset (che vi permetterà di azzerare completamente la smartcard). Il PIN dell'amministratore viene usato così raramente che è inevitabile dimenticarselo se non lo si annota.h]hXDovreste impostare il PIN dell’utente (1), quello dell’amministratore (3) e il codice di reset (4). Assicuratevi di annotare e salvare questi codici in un posto sicuro -- specialmente il PIN dell’amministratore e il codice di reset (che vi permetterà di azzerare completamente la smartcard). Il PIN dell’amministratore viene usato così raramente che è inevitabile dimenticarselo se non lo si annota.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjKhhubh)}(hTornando al nostro menu, potete impostare anche altri valori (come il nome, il sesso, informazioni d'accesso, eccetera), ma non sono necessari e aggiunge altre informazioni sulla carta che potrebbero trapelare in caso di smarrimento.h]hTornando al nostro menu, potete impostare anche altri valori (come il nome, il sesso, informazioni d’accesso, eccetera), ma non sono necessari e aggiunge altre informazioni sulla carta che potrebbero trapelare in caso di smarrimento.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjKhhubjL)}(hrA dispetto del nome "PIN", né il PIN utente né quello dell'amministratore devono essere esclusivamente numerici.h]h)}(hrA dispetto del nome "PIN", né il PIN utente né quello dell'amministratore devono essere esclusivamente numerici.h]hxA dispetto del nome “PIN”, né il PIN utente né quello dell’amministratore devono essere esclusivamente numerici.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jKhjKhhhjhNubh)}(hAlcuni dispositivi richiedono la presenza delle sottochiavi nel dispositivo stesso prima che possiate cambiare la passphare. Verificate la documentazione del produttore.h]h)}(hAlcuni dispositivi richiedono la presenza delle sottochiavi nel dispositivo stesso prima che possiate cambiare la passphare. Verificate la documentazione del produttore.h]hAlcuni dispositivi richiedono la presenza delle sottochiavi nel dispositivo stesso prima che possiate cambiare la passphare. Verificate la documentazione del produttore.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1hhjKhhhjhNubeh}(h]+configurare-il-vostro-dispositivo-smartcardah ]h"]+configurare il vostro dispositivo smartcardah$]h&]uh1jhj hhhjhMubj)}(hhh](j)}(h'Spostare le sottochiavi sulla smartcardh]h'Spostare le sottochiavi sulla smartcard}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(hUscite dal menu (usando "q") e salverete tutte le modifiche. Poi, spostiamo tutte le sottochiavi sulla smartcard. Per la maggior parte delle operazioni vi serviranno sia la passphrase della chiave PGP che il PIN dell'amministratore::h]hUscite dal menu (usando “q”) e salverete tutte le modifiche. Poi, spostiamo tutte le sottochiavi sulla smartcard. Per la maggior parte delle operazioni vi serviranno sia la passphrase della chiave PGP che il PIN dell’amministratore:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(hX$ gpg --edit-key [fpr] Secret subkeys are available. pub ed25519/AAAABBBBCCCCDDDD created: 2022-12-20 expires: 2024-12-19 usage: SC trust: ultimate validity: ultimate ssb cv25519/1111222233334444 created: 2022-12-20 expires: never usage: E ssb ed25519/5555666677778888 created: 2017-12-07 expires: never usage: S [ultimate] (1). Alice Dev gpg>h]hX$ gpg --edit-key [fpr] Secret subkeys are available. pub ed25519/AAAABBBBCCCCDDDD created: 2022-12-20 expires: 2024-12-19 usage: SC trust: ultimate validity: ultimate ssb cv25519/1111222233334444 created: 2022-12-20 expires: never usage: E ssb ed25519/5555666677778888 created: 2017-12-07 expires: never usage: S [ultimate] (1). Alice Dev gpg>}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubh)}(hUsando ``--edit-key`` si tornerà alla modalità menu e noterete che la lista delle chiavi è leggermente diversa. Da questo momento in poi, tutti i comandi saranno eseguiti nella modalità menu, come indicato da ``gpg>``.h](hUsando }(hj#hhhNhNubj)}(h``--edit-key``h]h --edit-key}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh si tornerà alla modalità menu e noterete che la lista delle chiavi è leggermente diversa. Da questo momento in poi, tutti i comandi saranno eseguiti nella modalità menu, come indicato da }(hj#hhhNhNubj)}(h``gpg>``h]hgpg>}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(hPer prima cosa, selezioniamo la chiave che verrà messa sulla carta -- potete farlo digitando ``key 1`` (è la prima della lista, la sottochiave **[E]**)::h](h^Per prima cosa, selezioniamo la chiave che verrà messa sulla carta -- potete farlo digitando }(hjUhhhNhNubj)}(h ``key 1``h]hkey 1}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubh* (è la prima della lista, la sottochiave }(hjUhhhNhNubj)}(h**[E]**h]h[E]}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubh):}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(h gpg> key 1h]h gpg> key 1}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhM hjhhubh)}(hX Nel'output dovreste vedere ``ssb*`` associato alla chiave **[E]**. Il simbolo ``*`` indica che la chiave è stata "selezionata". Funziona come un interruttore, ovvero se scrivete nuovamente ``key 1``, il simbolo ``*`` sparirà e la chiave non sarà più selezionata.h](hNel’output dovreste vedere }(hjhhhNhNubj)}(h``ssb*``h]hssb*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh associato alla chiave }(hjhhhNhNubj)}(h**[E]**h]h[E]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh . Il simbolo }(hjhhhNhNubj)}(h``*``h]h*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubho indica che la chiave è stata “selezionata”. Funziona come un interruttore, ovvero se scrivete nuovamente }(hjhhhNhNubj)}(h ``key 1``h]hkey 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh , il simbolo }(hjhhhNhNubj)}(h``*``h]h*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh1 sparirà e la chiave non sarà più selezionata.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM hjhhubh)}(h*Ora, spostiamo la chiave sulla smartcard::h]h)Ora, spostiamo la chiave sulla smartcard:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(h\gpg> keytocard Please select where to store the key: (2) Encryption key Your selection? 2h]h\gpg> keytocard Please select where to store the key: (2) Encryption key Your selection? 2}hj sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubh)}(hX)Dato che è la nostra chiave **[E]**, ha senso metterla nella sezione criptata. Quando confermerete la selezione, vi verrà chiesta la passphrase della vostra chiave PGP, e poi il PIN dell'amministratore. Se il comando ritorna senza errori, allora la vostra chiave è stata spostata con successo.h](hDato che è la nostra chiave }(hjhhhNhNubj)}(h**[E]**h]h[E]}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX, ha senso metterla nella sezione criptata. Quando confermerete la selezione, vi verrà chiesta la passphrase della vostra chiave PGP, e poi il PIN dell’amministratore. Se il comando ritorna senza errori, allora la vostra chiave è stata spostata con successo.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(h**Importante**: digitate nuovamente ``key 1`` per deselezionare la prima chiave e selezionate la seconda chiave **[S]** con ``key 2``::h](j)}(h**Importante**h]h Importante}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh: digitate nuovamente }(hj9hhhNhNubj)}(h ``key 1``h]hkey 1}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubhC per deselezionare la prima chiave e selezionate la seconda chiave }(hj9hhhNhNubj)}(h**[S]**h]h[S]}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh con }(hj9hhhNhNubj)}(h ``key 2``h]hkey 2}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh:}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(hgpg> key 1 gpg> key 2 gpg> keytocard Please select where to store the key: (1) Signature key (3) Authentication key Your selection? 1h]hgpg> key 1 gpg> key 2 gpg> keytocard Please select where to store the key: (1) Signature key (3) Authentication key Your selection? 1}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhM!hjhhubh)}(hPotete usare la chiave **[S]** sia per firmare che per autenticare, ma vogliamo che sia nella sezione di firma, quindi scegliete (1). Ancora una volta, se il comando ritorna senza errori, allora l'operazione è avvenuta con successo::h](hPotete usare la chiave }(hjhhhNhNubj)}(h**[S]**h]h[S]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh sia per firmare che per autenticare, ma vogliamo che sia nella sezione di firma, quindi scegliete (1). Ancora una volta, se il comando ritorna senza errori, allora l’operazione è avvenuta con successo:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM)hjhhubjb)}(hgpg> q Save changes? (y/N) yh]hgpg> q Save changes? (y/N) y}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhM-hjhhubh)}(hSalvando le modifiche cancellerete dalla vostra cartella home tutte le chiavi che avete spostato sulla carta (ma questo non è un problema, perché abbiamo fatto delle copie di sicurezza nel caso in cui dovessimo configurare una nuova smartcard).h]hSalvando le modifiche cancellerete dalla vostra cartella home tutte le chiavi che avete spostato sulla carta (ma questo non è un problema, perché abbiamo fatto delle copie di sicurezza nel caso in cui dovessimo configurare una nuova smartcard).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM0hjhhubj)}(hhh](j)}(h-Verificare che le chiavi siano state spostateh]h-Verificare che le chiavi siano state spostate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM6ubh)}(hdOra, se doveste usare l'opzione ``--list-secret-keys``, vedrete una sottile differenza nell'output::h](h"Ora, se doveste usare l’opzione }(hjhhhNhNubj)}(h``--list-secret-keys``h]h--list-secret-keys}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/, vedrete una sottile differenza nell’output:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM8hjhhubjb)}(hX$ gpg --list-secret-keys sec# ed25519 2022-12-20 [SC] [expires: 2024-12-19] 000000000000000000000000AAAABBBBCCCCDDDD uid [ultimate] Alice Dev ssb> cv25519 2022-12-20 [E] [expires: 2024-12-19] ssb> ed25519 2022-12-20 [S]h]hX$ gpg --list-secret-keys sec# ed25519 2022-12-20 [SC] [expires: 2024-12-19] 000000000000000000000000AAAABBBBCCCCDDDD uid [ultimate] Alice Dev ssb> cv25519 2022-12-20 [E] [expires: 2024-12-19] ssb> ed25519 2022-12-20 [S]}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhM;hjhhubh)}(hIl simbolo ``>`` in ``ssb>`` indica che la sottochiave è disponibile solo nella smartcard. Se tornate nella vostra cartella delle chiavi segrete e guardate al suo contenuto, noterete che i file ``.key`` sono stati sostituiti con degli stub::h](h Il simbolo }(hjhhhNhNubj)}(h``>``h]h>}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh in }(hjhhhNhNubj)}(h``ssb>``h]hssb>}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh indica che la sottochiave è disponibile solo nella smartcard. Se tornate nella vostra cartella delle chiavi segrete e guardate al suo contenuto, noterete che i file }(hjhhhNhNubj)}(h``.key``h]h.key}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh& sono stati sostituiti con degli stub:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMBhjhhubjb)}(hD$ cd ~/.gnupg/private-keys-v1.d $ strings *.key | grep 'private-key'h]hD$ cd ~/.gnupg/private-keys-v1.d $ strings *.key | grep 'private-key'}hjXsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMGhjhhubh)}(hPer indicare che i file sono solo degli stub e che in realtà il contenuto è sulla smartcard, l'output dovrebbe mostrarvi ``shadowed-private-key``.h](h}Per indicare che i file sono solo degli stub e che in realtà il contenuto è sulla smartcard, l’output dovrebbe mostrarvi }(hjfhhhNhNubj)}(h``shadowed-private-key``h]hshadowed-private-key}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMJhjhhubeh}(h]-verificare-che-le-chiavi-siano-state-spostateah ]h"]-verificare che le chiavi siano state spostateah$]h&]uh1jhjhhhjhM6ubj)}(hhh](j)}(h$Verificare che la smartcard funzionih]h$Verificare che la smartcard funzioni}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMNubh)}(hOPer verificare che la smartcard funzioni come dovuto, potete creare una firma::h]hNPer verificare che la smartcard funzioni come dovuto, potete creare una firma:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMPhjhhubjb)}(hS$ echo "Hello world" | gpg --clearsign > /tmp/test.asc $ gpg --verify /tmp/test.asch]hS$ echo "Hello world" | gpg --clearsign > /tmp/test.asc $ gpg --verify /tmp/test.asc}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMShjhhubh)}(hCol primo comando dovrebbe chiedervi il PIN della smartcard, e poi dovrebbe mostrare "Good signature" dopo l'esecuzione di ``gpg --verify``.h](hCol primo comando dovrebbe chiedervi il PIN della smartcard, e poi dovrebbe mostrare “Good signature” dopo l’esecuzione di }(hjhhhNhNubj)}(h``gpg --verify``h]h gpg --verify}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMVhjhhubh)}(hvComplimenti, siete riusciti a rendere estremamente difficile il furto della vostra identità digitale di sviluppatore.h]hvComplimenti, siete riusciti a rendere estremamente difficile il furto della vostra identità digitale di sviluppatore.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMYhjhhubeh}(h]$verificare-che-la-smartcard-funzioniah ]h"]$verificare che la smartcard funzioniah$]h&]uh1jhjhhhjhMNubeh}(h]'spostare-le-sottochiavi-sulla-smartcardah ]h"]'spostare le sottochiavi sulla smartcardah$]h&]uh1jhj hhhjhMubj)}(hhh](j)}(h$Altre operazioni possibili con GnuPGh]h$Altre operazioni possibili con GnuPG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM]ubh)}(hhSegue un breve accenno ad alcune delle operazioni più comuni che dovrete fare con le vostre chiavi PGP.h]hhSegue un breve accenno ad alcune delle operazioni più comuni che dovrete fare con le vostre chiavi PGP.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM_hjhhubj)}(hhh](j)}(h'Montare il disco con la chiave primariah]h'Montare il disco con la chiave primaria}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMcubh)}(hVi servirà la vostra chiave principale per tutte le operazioni che seguiranno, per cui per prima cosa dovrete accedere ai vostri backup e dire a GnuPG di usarli::h]hVi servirà la vostra chiave principale per tutte le operazioni che seguiranno, per cui per prima cosa dovrete accedere ai vostri backup e dire a GnuPG di usarli:}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMehjhhubjb)}(hH$ export GNUPGHOME=/media/disk/foo/gnupg-backup $ gpg --list-secret-keysh]hH$ export GNUPGHOME=/media/disk/foo/gnupg-backup $ gpg --list-secret-keys}hj7sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMihjhhubh)}(hDovete assicurarvi di vedere ``sec`` e non ``sec#`` nell'output del programma (il simbolo ``#`` significa che la chiave non è disponibile e che state ancora utilizzando la vostra solita cartella di lavoro).h](hDovete assicurarvi di vedere }(hjEhhhNhNubj)}(h``sec``h]hsec}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh e non }(hjEhhhNhNubj)}(h``sec#``h]hsec#}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh) nell’output del programma (il simbolo }(hjEhhhNhNubj)}(h``#``h]h#}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubhp significa che la chiave non è disponibile e che state ancora utilizzando la vostra solita cartella di lavoro).}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMlhjhhubeh}(h]'montare-il-disco-con-la-chiave-primariaah ]h"]'montare il disco con la chiave primariaah$]h&]uh1jhjhhhjhMcubj)}(hhh](j)}(h+Estendere la data di scadenza di una chiaveh]h+Estendere la data di scadenza di una chiave}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMqubh)}(hLa chiave principale ha una data di scadenza di 2 anni dal momento della sua creazione. Questo per motivi di sicurezza e per rendere obsolete le chiavi che, eventualmente, dovessero sparire dai keyserver.h]hLa chiave principale ha una data di scadenza di 2 anni dal momento della sua creazione. Questo per motivi di sicurezza e per rendere obsolete le chiavi che, eventualmente, dovessero sparire dai keyserver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMshjhhubh)}(hZPer estendere di un anno, dalla data odierna, la scadenza di una vostra chiave, eseguite::h]hYPer estendere di un anno, dalla data odierna, la scadenza di una vostra chiave, eseguite:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMwhjhhubjb)}(h!$ gpg --quick-set-expire [fpr] 1yh]h!$ gpg --quick-set-expire [fpr] 1y}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMzhjhhubh)}(hSe per voi è più facile da memorizzare, potete anche utilizzare una data specifica (per esempio, il vostro compleanno o capodanno)::h]hSe per voi è più facile da memorizzare, potete anche utilizzare una data specifica (per esempio, il vostro compleanno o capodanno):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM|hjhhubjb)}(h)$ gpg --quick-set-expire [fpr] 2025-07-01h]h)$ gpg --quick-set-expire [fpr] 2025-07-01}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubh)}(h5Ricordatevi di inviare l'aggiornamento ai keyserver::h]h6Ricordatevi di inviare l’aggiornamento ai keyserver:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(h$ gpg --send-key [fpr]h]h$ gpg --send-key [fpr]}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubeh}(h]+estendere-la-data-di-scadenza-di-una-chiaveah ]h"]+estendere la data di scadenza di una chiaveah$]h&]uh1jhjhhhjhMqubj)}(hhh](j)}(h:Aggiornare la vostra cartella di lavoro dopo ogni modificah]h:Aggiornare la vostra cartella di lavoro dopo ogni modifica}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMubh)}(hDopo aver fatto delle modifiche alle vostre chiavi usando uno spazio a parte, dovreste importarle nella vostra cartella di lavoro abituale::h]hDopo aver fatto delle modifiche alle vostre chiavi usando uno spazio a parte, dovreste importarle nella vostra cartella di lavoro abituale:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhj hhubjb)}(hB$ gpg --export | gpg --homedir ~/.gnupg --import $ unset GNUPGHOMEh]hB$ gpg --export | gpg --homedir ~/.gnupg --import $ unset GNUPGHOME}hj+sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhj hhubeh}(h]:aggiornare-la-vostra-cartella-di-lavoro-dopo-ogni-modificaah ]h"]:aggiornare la vostra cartella di lavoro dopo ogni modificaah$]h&]uh1jhjhhhjhMubj)}(hhh](j)}(hUsare gpg-agent con sshh]hUsare gpg-agent con ssh}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAhhhjhMubh)}(hSe dovete firmare tag o commit su un sistema remoto, potete ridirezionare il vostro gpg-agent attraverso ssh. Consultate le istruzioni disponibili nella wiki GnuPG:h]hSe dovete firmare tag o commit su un sistema remoto, potete ridirezionare il vostro gpg-agent attraverso ssh. Consultate le istruzioni disponibili nella wiki GnuPG:}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjAhhubjV)}(hhh]j[)}(h`Agent Forwarding over SSH`_ h]h)}(h`Agent Forwarding over SSH`_h]jZ)}(hjih]hAgent Forwarding over SSH}(hjkhhhNhNubah}(h]h ]h"]h$]h&]nameAgent Forwarding over SSHj&https://wiki.gnupg.org/AgentForwardinguh1jYhjgjKubah}(h]h ]h"]h$]h&]uh1hhjhMhjcubah}(h]h ]h"]h$]h&]uh1jZhj`hhhjhNubah}(h]h ]h"]h$]h&]jjuh1jUhjhMhjAhhubh)}(hpFunziona senza troppi intoppi se avete la possibilità di modificare le impostazioni di sshd sul sistema remoto.h]hpFunziona senza troppi intoppi se avete la possibilità di modificare le impostazioni di sshd sul sistema remoto.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjAhhubj)}(hG.. _`Agent Forwarding over SSH`: https://wiki.gnupg.org/AgentForwardingh]h}(h]agent-forwarding-over-sshah ]h"]agent forwarding over sshah$]h&]jjzuh1jhMhjAhhhjj'Kubj)}(h.. _it_pgp_with_git:h]h}(h]h ]h"]h$]h&]jit-pgp-with-gituh1jhMhjAhhhjubeh}(h]usare-gpg-agent-con-sshah ]h"]usare gpg-agent con sshah$]h&]uh1jhjhhhjhMubeh}(h]$altre-operazioni-possibili-con-gnupgah ]h"]$altre operazioni possibili con gnupgah$]h&]uh1jhj hhhjhM]ubeh}(h](;spostare-le-sottochiavi-in-un-apposito-dispositivo-criptatoj eh ]h"](;spostare le sottochiavi in un apposito dispositivo criptato it_smartcardseh$]h&]uh1jhjhhhjhMj%}jj sj'}j j subj)}(hhh](j)}(hUsare PGP con Gith]hUsare PGP con Git}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(hX~Una delle caratteristiche fondanti di Git è la sua natura decentralizzata -- una volta che il repositorio è stato clonato sul vostro sistema, avete la storia completa del progetto, inclusi i suoi tag, i commit ed i rami. Tuttavia, con i centinaia di repositori clonati che ci sono in giro, come si fa a verificare che la loro copia di linux.git non è stata manomessa da qualcuno?h]hX~Una delle caratteristiche fondanti di Git è la sua natura decentralizzata -- una volta che il repositorio è stato clonato sul vostro sistema, avete la storia completa del progetto, inclusi i suoi tag, i commit ed i rami. Tuttavia, con i centinaia di repositori clonati che ci sono in giro, come si fa a verificare che la loro copia di linux.git non è stata manomessa da qualcuno?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(hOppure, cosa succede se viene scoperta una backdoor nel codice e la riga "Autore" dice che sei stato tu, mentre tu sei abbastanza sicuro di `non averci niente a che fare`_?h](hOppure, cosa succede se viene scoperta una backdoor nel codice e la riga “Autore” dice che sei stato tu, mentre tu sei abbastanza sicuro di }(hjhhhNhNubjZ)}(h`non averci niente a che fare`_h]hnon averci niente a che fare}(hjhhhNhNubah}(h]h ]h"]h$]h&]namenon averci niente a che farej3https://github.com/jayphelps/git-blame-someone-elseuh1jYhjjKubh?}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(hXPer risolvere entrambi i problemi, Git ha introdotto l'integrazione con PGP. I tag firmati dimostrano che il repositorio è integro assicurando che il suo contenuto è lo stesso che si trova sulle macchine degli sviluppatori che hanno creato il tag; mentre i commit firmati rendono praticamente impossibile ad un malintenzionato di impersonarvi senza avere accesso alle vostre chiavi PGP.h]hXPer risolvere entrambi i problemi, Git ha introdotto l’integrazione con PGP. I tag firmati dimostrano che il repositorio è integro assicurando che il suo contenuto è lo stesso che si trova sulle macchine degli sviluppatori che hanno creato il tag; mentre i commit firmati rendono praticamente impossibile ad un malintenzionato di impersonarvi senza avere accesso alle vostre chiavi PGP.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hW.. _`non averci niente a che fare`: https://github.com/jayphelps/git-blame-someone-elseh]h}(h]non-averci-niente-a-che-fareah ]h"]non averci niente a che fareah$]h&]jjuh1jhMhjhhhjj'Kubj)}(hhh](j)}(h.Configurare git per usare la vostra chiave PGPh]h.Configurare git per usare la vostra chiave PGP}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hhhjhMubh)}(hX Se avete solo una chiave segreta nel vostro portachiavi, allora non avete nulla da fare in più dato che sarà la vostra chiave di base. Tuttavia, se doveste avere più chiavi segrete, potete dire a git quale dovrebbe usare (``[fpg]`` è la vostra impronta digitale)::h](hSe avete solo una chiave segreta nel vostro portachiavi, allora non avete nulla da fare in più dato che sarà la vostra chiave di base. Tuttavia, se doveste avere più chiavi segrete, potete dire a git quale dovrebbe usare (}(hj:hhhNhNubj)}(h ``[fpg]``h]h[fpg]}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh! è la vostra impronta digitale):}(hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj)hhubjb)}(h+$ git config --global user.signingKey [fpr]h]h+$ git config --global user.signingKey [fpr]}hjZsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhj)hhubeh}(h].configurare-git-per-usare-la-vostra-chiave-pgpah ]h"].configurare git per usare la vostra chiave pgpah$]h&]uh1jhjhhhjhMubj)}(hhh](j)}(hCome firmare i tagh]hCome firmare i tag}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjphhhjhMubh)}(hDPer creare un tag firmato, passate l'opzione ``-s`` al comando tag::h](h/Per creare un tag firmato, passate l’opzione }(hjhhhNhNubj)}(h``-s``h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh al comando tag:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjphhubjb)}(h$ git tag -s [tagname]h]h$ git tag -s [tagname]}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjphhubh)}(hLa nostra raccomandazione è quella di firmare sempre i tag git, perché questo permette agli altri sviluppatori di verificare che il repositorio git dal quale stanno prendendo il codice non è stato alterato intenzionalmente.h]hLa nostra raccomandazione è quella di firmare sempre i tag git, perché questo permette agli altri sviluppatori di verificare che il repositorio git dal quale stanno prendendo il codice non è stato alterato intenzionalmente.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjphhubj)}(hhh](j)}(hCome verificare i tag firmatih]hCome verificare i tag firmati}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(hGPer verificare un tag firmato, potete usare il comando ``verify-tag``::h](h7Per verificare un tag firmato, potete usare il comando }(hjhhhNhNubj)}(h``verify-tag``h]h verify-tag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(h$ git verify-tag [tagname]h]h$ git verify-tag [tagname]}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubh)}(hSe state prendendo un tag da un fork del repositorio del progetto, git dovrebbe verificare automaticamente la firma di quello che state prendendo e vi mostrerà il risultato durante l'operazione di merge::h]hSe state prendendo un tag da un fork del repositorio del progetto, git dovrebbe verificare automaticamente la firma di quello che state prendendo e vi mostrerà il risultato durante l’operazione di merge:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(h$ git pull [url] tags/sometagh]h$ git pull [url] tags/sometag}hj sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubh)}(h'Il merge conterrà qualcosa di simile::h]h&Il merge conterrà qualcosa di simile:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(hiMerge tag 'sometag' of [url] [Tag message] # gpg: Signature made [...] # gpg: Good signature from [...]h]hiMerge tag 'sometag' of [url] [Tag message] # gpg: Signature made [...] # gpg: Good signature from [...]}hj&sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubh)}(hSe state verificando il tag di qualcun altro, allora dovrete importare la loro chiave PGP. Fate riferimento alla sezione ":ref:`it_verify_identities`" che troverete più avanti.h](h|Se state verificando il tag di qualcun altro, allora dovrete importare la loro chiave PGP. Fate riferimento alla sezione “}(hj4hhhNhNubh)}(h:ref:`it_verify_identities`h]h)}(hj>h]hit_verify_identities}(hj@hhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhj<ubah}(h]h ]h"]h$]h&]refdochΌ refdomainjJreftyperef refexplicitrefwarnhԌit_verify_identitiesuh1hhjhMhj4ubh” che troverete più avanti.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubeh}(h]come-verificare-i-tag-firmatiah ]h"]come verificare i tag firmatiah$]h&]uh1jhjphhhjhMubj)}(hhh](j)}(h8Configurare git per firmare sempre i tag con annotazioneh]h8Configurare git per firmare sempre i tag con annotazione}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnhhhjhMubh)}(hSe state creando un tag con annotazione è molto probabile che vogliate firmarlo. Per imporre a git di firmare sempre un tag con annotazione, dovete impostare la seguente opzione globale::h]hSe state creando un tag con annotazione è molto probabile che vogliate firmarlo. Per imporre a git di firmare sempre un tag con annotazione, dovete impostare la seguente opzione globale:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjnhhubjb)}(h1$ git config --global tag.forceSignAnnotated trueh]h1$ git config --global tag.forceSignAnnotated true}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjnhhubeh}(h]8configurare-git-per-firmare-sempre-i-tag-con-annotazioneah ]h"]8configurare git per firmare sempre i tag con annotazioneah$]h&]uh1jhjphhhjhMubeh}(h]come-firmare-i-tagah ]h"]come firmare i tagah$]h&]uh1jhjhhhjhMubj)}(hhh](j)}(hCome usare commit firmatih]hCome usare commit firmati}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(hXHCreare dei commit firmati è facile, ma è molto più difficile utilizzarli nello sviluppo del kernel linux per via del fatto che ci si affida alle liste di discussione e questo modo di procedere non mantiene le firme PGP nei commit. In aggiunta, quando si usa *rebase* nel proprio repositorio locale per allinearsi al kernel anche le proprie firme PGP verranno scartate. Per questo motivo, la maggior parte degli sviluppatori del kernel non si preoccupano troppo di firmare i propri commit ed ignoreranno quelli firmati che si trovano in altri repositori usati per il proprio lavoro.h](hXCreare dei commit firmati è facile, ma è molto più difficile utilizzarli nello sviluppo del kernel linux per via del fatto che ci si affida alle liste di discussione e questo modo di procedere non mantiene le firme PGP nei commit. In aggiunta, quando si usa }(hjhhhNhNubj)}(h*rebase*h]hrebase}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX; nel proprio repositorio locale per allinearsi al kernel anche le proprie firme PGP verranno scartate. Per questo motivo, la maggior parte degli sviluppatori del kernel non si preoccupano troppo di firmare i propri commit ed ignoreranno quelli firmati che si trovano in altri repositori usati per il proprio lavoro.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(hXTuttavia, se avete il vostro repositorio di lavoro disponibile al pubblico su un qualche servizio di hosting git (kernel.org, infradead.org, ozlabs.org, o altri), allora la raccomandazione è di firmare tutti i vostri commit anche se gli sviluppatori non ne beneficeranno direttamente.h]hXTuttavia, se avete il vostro repositorio di lavoro disponibile al pubblico su un qualche servizio di hosting git (kernel.org, infradead.org, ozlabs.org, o altri), allora la raccomandazione è di firmare tutti i vostri commit anche se gli sviluppatori non ne beneficeranno direttamente.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(h0Vi raccomandiamo di farlo per i seguenti motivi:h]h0Vi raccomandiamo di farlo per i seguenti motivi:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hhh](j[)}(hSe dovesse mai esserci la necessità di fare delle analisi forensi o tracciare la provenienza di un codice, anche sorgenti mantenuti esternamente che hanno firme PGP sui commit avranno un certo valore a questo scopo.h]h)}(hSe dovesse mai esserci la necessità di fare delle analisi forensi o tracciare la provenienza di un codice, anche sorgenti mantenuti esternamente che hanno firme PGP sui commit avranno un certo valore a questo scopo.h]hSe dovesse mai esserci la necessità di fare delle analisi forensi o tracciare la provenienza di un codice, anche sorgenti mantenuti esternamente che hanno firme PGP sui commit avranno un certo valore a questo scopo.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hSe dovesse mai capitarvi di clonare il vostro repositorio locale (per esempio dopo un danneggiamento del disco), la firma vi permetterà di verificare l'integrità del repositorio prima di riprendere il lavoro.h]h)}(hSe dovesse mai capitarvi di clonare il vostro repositorio locale (per esempio dopo un danneggiamento del disco), la firma vi permetterà di verificare l'integrità del repositorio prima di riprendere il lavoro.h]hSe dovesse mai capitarvi di clonare il vostro repositorio locale (per esempio dopo un danneggiamento del disco), la firma vi permetterà di verificare l’integrità del repositorio prima di riprendere il lavoro.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubj[)}(hSe qualcuno volesse usare *cherry-pick* sui vostri commit, allora la firma permetterà di verificare l'integrità dei commit prima di applicarli. h]h)}(hSe qualcuno volesse usare *cherry-pick* sui vostri commit, allora la firma permetterà di verificare l'integrità dei commit prima di applicarli.h](hSe qualcuno volesse usare }(hj/hhhNhNubj)}(h *cherry-pick*h]h cherry-pick}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubhl sui vostri commit, allora la firma permetterà di verificare l’integrità dei commit prima di applicarli.}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj+ubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubeh}(h]h ]h"]h$]h&]jfjgjhhjijjuh1jhjhhhjhMubj)}(hhh](j)}(hCreare commit firmatih]hCreare commit firmati}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[hhhjhM ubh)}(hPer creare un commit firmato, dovete solamente aggiungere l'opzione ``-S`` al comando ``git commit`` (si usa la lettera maiuscola per evitare conflitti con un'altra opzione)::h](hFPer creare un commit firmato, dovete solamente aggiungere l’opzione }(hjlhhhNhNubj)}(h``-S``h]h-S}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubh al comando }(hjlhhhNhNubj)}(h``git commit``h]h git commit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubhL (si usa la lettera maiuscola per evitare conflitti con un’altra opzione):}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM hj[hhubjb)}(h$ git commit -Sh]h$ git commit -S}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhj[hhubeh}(h]creare-commit-firmatiah ]h"]creare commit firmatiah$]h&]uh1jhjhhhjhM ubj)}(hhh](j)}(h+Configurare git per firmare sempre i commith]h+Configurare git per firmare sempre i commit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(h.Potete dire a git di firmare sempre i commit::h]h-Potete dire a git di firmare sempre i commit:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(h'git config --global commit.gpgSign trueh]h'git config --global commit.gpgSign true}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubjL)}(hQAssicuratevi di aver configurato ``gpg-agent`` prima di abilitare questa opzione.h]h)}(hQAssicuratevi di aver configurato ``gpg-agent`` prima di abilitare questa opzione.h](h!Assicuratevi di aver configurato }(hjhhhNhNubj)}(h ``gpg-agent``h]h gpg-agent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh# prima di abilitare questa opzione.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jKhjhhhjhNubj)}(h.. _it_verify_identities:h]h}(h]h ]h"]h$]h&]jit-verify-identitiesuh1jhM(hjhhhjubeh}(h]+configurare-git-per-firmare-sempre-i-commitah ]h"]+configurare git per firmare sempre i commitah$]h&]uh1jhjhhhjhMubeh}(h]come-usare-commit-firmatiah ]h"]come usare commit firmatiah$]h&]uh1jhjhhhjhMubj)}(hhh](j)}(hCome lavorare con patch firmateh]hCome lavorare con patch firmate}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&hhhjhM!ubh)}(hXEsiste la possibilità di usare la vostra chiave PGP per firmare le patch che invierete alla liste di discussione del kernel. I meccanismi esistenti per la firma delle email (PGP-Mime o PGP-inline) tendono a causare problemi nell'attività di revisione del codice. Si suggerisce, invece, di utilizare lo strumento sviluppato da kernel.org che mette nell'intestazione del messaggio un'attestazione delle firme crittografiche (tipo DKIM):h]hXEsiste la possibilità di usare la vostra chiave PGP per firmare le patch che invierete alla liste di discussione del kernel. I meccanismi esistenti per la firma delle email (PGP-Mime o PGP-inline) tendono a causare problemi nell’attività di revisione del codice. Si suggerisce, invece, di utilizare lo strumento sviluppato da kernel.org che mette nell’intestazione del messaggio un’attestazione delle firme crittografiche (tipo DKIM):}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM#hj&hhubjV)}(hhh]j[)}(h`Patatt Patch Attestation`_ h]h)}(h`Patatt Patch Attestation`_h]jZ)}(hjNh]hPatatt Patch Attestation}(hjPhhhNhNubah}(h]h ]h"]h$]h&]namePatatt Patch Attestationj https://pypi.org/project/patatt/uh1jYhjLjKubah}(h]h ]h"]h$]h&]uh1hhjhM*hjHubah}(h]h ]h"]h$]h&]uh1jZhjEhhhjhNubah}(h]h ]h"]h$]h&]jjuh1jUhjhM*hj&hhubj)}(h@.. _`Patatt Patch Attestation`: https://pypi.org/project/patatt/h]h}(h]patatt-patch-attestationah ]h"]patatt patch attestationah$]h&]jj_uh1jhM6hj&hhhjj'Kubj)}(hhh](j)}(hInstallare e configurate patatth]hInstallare e configurate patatt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~hhhjhM/ubh)}(hLo strumento patatt è disponibile per diverse distribuzioni, dunque cercatelo prima lì. Oppure potete installarlo usano pypi "``pip install patatt``"h](hLo strumento patatt è disponibile per diverse distribuzioni, dunque cercatelo prima lì. Oppure potete installarlo usano pypi “}(hjhhhNhNubj)}(h``pip install patatt``h]hpip install patatt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh”}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM1hj~hhubh)}(hXSe avete già configurato git con la vostra chiave PGP (usando ``user.signingKey``), allora patatt non ha bisogno di alcuna configurazione aggiuntiva. Potete iniziare a firmare le vostre patch aggiungendo un aggancio a git-send-email nel vostro repositorio::h](h?Se avete già configurato git con la vostra chiave PGP (usando }(hjhhhNhNubj)}(h``user.signingKey``h]huser.signingKey}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh), allora patatt non ha bisogno di alcuna configurazione aggiuntiva. Potete iniziare a firmare le vostre patch aggiungendo un aggancio a git-send-email nel vostro repositorio:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM4hj~hhubjb)}(hpatatt install-hookh]hpatatt install-hook}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhM9hj~hhubh)}(h~Ora, qualsiasi patch che invierete con ``git send-email`` verrà automaticamente firmata usando la vostra firma crittografica.h](h'Ora, qualsiasi patch che invierete con }(hjhhhNhNubj)}(h``git send-email``h]hgit send-email}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhE verrà automaticamente firmata usando la vostra firma crittografica.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM;hj~hhubeh}(h]installare-e-configurate-patattah ]h"]installare e configurate patattah$]h&]uh1jhj&hhhjhM/ubj)}(hhh](j)}(hVerificare le firme di patatth]hVerificare le firme di patatt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM?ubh)}(hSe usate ``b4`` per verificare ed applicare le patch, allora tenterà automaticamente di verificare tutte le firme DKIM e patatt disponibili. Per esempio::h](h Se usate }(hjhhhNhNubj)}(h``b4``h]hb4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh per verificare ed applicare le patch, allora tenterà automaticamente di verificare tutte le firme DKIM e patatt disponibili. Per esempio:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMAhjhhubjb)}(hX$ b4 am 20220720205013.890942-1-broonie@kernel.org [...] Checking attestation on all messages, may take a moment... --- ✓ [PATCH v1 1/3] kselftest/arm64: Correct buffer allocation for SVE Z registers ✓ [PATCH v1 2/3] arm64/sve: Document our actual ABI for clearing registers on syscall ✓ [PATCH v1 3/3] kselftest/arm64: Enforce actual ABI for SVE syscalls --- ✓ Signed: openpgp/broonie@kernel.org ✓ Signed: DKIM/kernel.orgh]hX$ b4 am 20220720205013.890942-1-broonie@kernel.org [...] Checking attestation on all messages, may take a moment... --- ✓ [PATCH v1 1/3] kselftest/arm64: Correct buffer allocation for SVE Z registers ✓ [PATCH v1 2/3] arm64/sve: Document our actual ABI for clearing registers on syscall ✓ [PATCH v1 3/3] kselftest/arm64: Enforce actual ABI for SVE syscalls --- ✓ Signed: openpgp/broonie@kernel.org ✓ Signed: DKIM/kernel.org}hj6sbah}(h]h ]h"]h$]h&]jqjruh1jahjhMEhjhhubjL)}(hjLo sviluppo di patatt e b4 è piuttosto attivo. Si consiglia di verificare la documentazione più recente.h]h)}(hjLo sviluppo di patatt e b4 è piuttosto attivo. Si consiglia di verificare la documentazione più recente.h]hjLo sviluppo di patatt e b4 è piuttosto attivo. Si consiglia di verificare la documentazione più recente.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMRhjDubah}(h]h ]h"]h$]h&]uh1jKhjhhhjhNubj)}(h.. _it_kernel_identities:h]h}(h]h ]h"]h$]h&]jit-kernel-identitiesuh1jhM_hjhhhjubeh}(h]verificare-le-firme-di-patattah ]h"]verificare le firme di patattah$]h&]uh1jhj&hhhjhM?ubeh}(h](come-lavorare-con-patch-firmatejeh ]h"](come lavorare con patch firmateit_verify_identitieseh$]h&]uh1jhjhhhjhM!j%}juj sj'}jj subeh}(h](usare-pgp-con-gitjeh ]h"](usare pgp con gitit_pgp_with_giteh$]h&]uh1jhjhhhjhMj%}jjsj'}jjsubj)}(hhh](j)}(h9Come verificare l'identità degli sviluppatori del kernelh]h;Come verificare l’identità degli sviluppatori del kernel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMXubh)}(hFirmare i tag e i commit è facile, ma come si fa a verificare che la chiave usata per firmare qualcosa appartenga davvero allo sviluppatore e non ad un impostore?h]hFirmare i tag e i commit è facile, ma come si fa a verificare che la chiave usata per firmare qualcosa appartenga davvero allo sviluppatore e non ad un impostore?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMZhjhhubj)}(hhh](j)}(h2Configurare l'auto-key-retrieval usando WKD e DANEh]h4Configurare l’auto-key-retrieval usando WKD e DANE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM_ubh)}(hXSe non siete ancora in possesso di una vasta collezione di chiavi pubbliche di altri sviluppatori, allora potreste iniziare il vostro portachiavi affidandovi ai servizi di auto-scoperta e auto-recupero. GnuPG può affidarsi ad altre tecnologie di delega della fiducia, come DNSSEC e TLS, per sostenervi nel caso in cui iniziare una propria rete di fiducia da zero sia troppo scoraggiante.h]hXSe non siete ancora in possesso di una vasta collezione di chiavi pubbliche di altri sviluppatori, allora potreste iniziare il vostro portachiavi affidandovi ai servizi di auto-scoperta e auto-recupero. GnuPG può affidarsi ad altre tecnologie di delega della fiducia, come DNSSEC e TLS, per sostenervi nel caso in cui iniziare una propria rete di fiducia da zero sia troppo scoraggiante.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMahjhhubh)}(hCAggiungete il seguente testo al vostro file ``~/.gnupg/gpg.conf``::h](h,Aggiungete il seguente testo al vostro file }(hjhhhNhNubj)}(h``~/.gnupg/gpg.conf``h]h~/.gnupg/gpg.conf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhhjhhubjb)}(h0auto-key-locate wkd,dane,local auto-key-retrieveh]h0auto-key-locate wkd,dane,local auto-key-retrieve}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMjhjhhubh)}(hXLa *DNS-Based Authentication of Named Entities* ("DANE") è un metodo per la pubblicazione di chiavi pubbliche su DNS e per renderle sicure usando zone firmate con DNSSEC. Il *Web Key Directory* ("WKD") è un metodo alternativo che usa https a scopo di ricerca. Quando si usano DANE o WKD per la ricerca di chiavi pubbliche, GnuPG validerà i certificati DNSSEC o TLS prima di aggiungere al vostro portachiavi locale le eventuali chiavi trovate.h](hLa }(hjhhhNhNubj)}(h,*DNS-Based Authentication of Named Entities*h]h*DNS-Based Authentication of Named Entities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh (“DANE”) è un metodo per la pubblicazione di chiavi pubbliche su DNS e per renderle sicure usando zone firmate con DNSSEC. Il }(hjhhhNhNubj)}(h*Web Key Directory*h]hWeb Key Directory}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh (“WKD”) è un metodo alternativo che usa https a scopo di ricerca. Quando si usano DANE o WKD per la ricerca di chiavi pubbliche, GnuPG validerà i certificati DNSSEC o TLS prima di aggiungere al vostro portachiavi locale le eventuali chiavi trovate.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMmhjhhubh)}(hKernel.org pubblica la WKD per tutti gli sviluppatori che hanno un account kernel.org. Una volta che avete applicato le modifiche al file ``gpg.conf``, potrete auto-recuperare le chiavi di Linus Torvalds e Greg Kroah-Hartman (se non le avete già)::h](hKernel.org pubblica la WKD per tutti gli sviluppatori che hanno un account kernel.org. Una volta che avete applicato le modifiche al file }(hj#hhhNhNubj)}(h ``gpg.conf``h]hgpg.conf}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubhb, potrete auto-recuperare le chiavi di Linus Torvalds e Greg Kroah-Hartman (se non le avete già):}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMthjhhubjb)}(h9$ gpg --locate-keys torvalds@kernel.org gregkh@kernel.orgh]h9$ gpg --locate-keys torvalds@kernel.org gregkh@kernel.org}hjCsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMyhjhhubh)}(hSe avete un account kernel.org, al fine di rendere più utile l'uso di WKD da parte di altri sviluppatori del kernel, dovreste `aggiungere alla vostra chiave lo UID di kernel.org`_.h](hSe avete un account kernel.org, al fine di rendere più utile l’uso di WKD da parte di altri sviluppatori del kernel, dovreste }(hjQhhhNhNubjZ)}(h5`aggiungere alla vostra chiave lo UID di kernel.org`_h]h2aggiungere alla vostra chiave lo UID di kernel.org}(hjYhhhNhNubah}(h]h ]h"]h$]h&]name2aggiungere alla vostra chiave lo UID di kernel.orgjPhttps://korg.wiki.kernel.org/userdoc/mail#adding_a_kernelorg_uid_to_your_pgp_keyuh1jYhjQjKubh.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM{hjhhubj)}(h.. _`aggiungere alla vostra chiave lo UID di kernel.org`: https://korg.wiki.kernel.org/userdoc/mail#adding_a_kernelorg_uid_to_your_pgp_keyh]h}(h]2aggiungere-alla-vostra-chiave-lo-uid-di-kernel-orgah ]h"]2aggiungere alla vostra chiave lo uid di kernel.orgah$]h&]jjiuh1jhMhjhhhjj'Kubeh}(h]2configurare-l-auto-key-retrieval-usando-wkd-e-daneah ]h"]2configurare l'auto-key-retrieval usando wkd e daneah$]h&]uh1jhjhhhjhM_ubj)}(hhh](j)}(h.Web of Trust (WOT) o Trust on First Use (TOFU)h]h.Web of Trust (WOT) o Trust on First Use (TOFU)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(hXPGP incorpora un meccanismo di delega della fiducia conosciuto come "Web of Trust". Di base, questo è un tentativo di sostituire la necessità di un'autorità certificativa centralizzata tipica del mondo HTTPS/TLS. Invece di avere svariati produttori software che decidono chi dovrebbero essere le entità di certificazione di cui dovreste fidarvi, PGP lascia la responsabilità ad ogni singolo utente.h]hXPGP incorpora un meccanismo di delega della fiducia conosciuto come “Web of Trust”. Di base, questo è un tentativo di sostituire la necessità di un’autorità certificativa centralizzata tipica del mondo HTTPS/TLS. Invece di avere svariati produttori software che decidono chi dovrebbero essere le entità di certificazione di cui dovreste fidarvi, PGP lascia la responsabilità ad ogni singolo utente.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(hXSfortunatamente, solo poche persone capiscono come funziona la rete di fiducia. Nonostante sia un importante aspetto della specifica OpenPGP, recentemente le versioni di GnuPG (2.2 e successive) hanno implementato un meccanisco alternativo chiamato "Trust on First Use" (TOFU). Potete pensare a TOFU come "ad un approccio all fidicia simile ad SSH". In SSH, la prima volta che vi connettete ad un sistema remoto, l'impronta digitale della chiave viene registrata e ricordata. Se la chiave dovesse cambiare in futuro, il programma SSH vi avviserà e si rifiuterà di connettersi, obbligandovi a prendere una decisione circa la fiducia che riponete nella nuova chiave. In modo simile, la prima volta che importate la chiave PGP di qualcuno, si assume sia valida. Se ad un certo punto GnuPG trova un'altra chiave con la stessa identità, entrambe, la vecchia e la nuova, verranno segnate come invalide e dovrete verificare manualmente quale tenere.h]hXSfortunatamente, solo poche persone capiscono come funziona la rete di fiducia. Nonostante sia un importante aspetto della specifica OpenPGP, recentemente le versioni di GnuPG (2.2 e successive) hanno implementato un meccanisco alternativo chiamato “Trust on First Use” (TOFU). Potete pensare a TOFU come “ad un approccio all fidicia simile ad SSH”. In SSH, la prima volta che vi connettete ad un sistema remoto, l’impronta digitale della chiave viene registrata e ricordata. Se la chiave dovesse cambiare in futuro, il programma SSH vi avviserà e si rifiuterà di connettersi, obbligandovi a prendere una decisione circa la fiducia che riponete nella nuova chiave. In modo simile, la prima volta che importate la chiave PGP di qualcuno, si assume sia valida. Se ad un certo punto GnuPG trova un’altra chiave con la stessa identità, entrambe, la vecchia e la nuova, verranno segnate come invalide e dovrete verificare manualmente quale tenere.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uN'h1hhjhMhjhhubh)}(hVi raccomandiamo di usare il meccanisco TOFU+PGP (che è la nuova configurazione di base di GnuPG v2). Per farlo, aggiungete (o modificate) l'impostazione ``trust-model`` in ``~/.gnupg/gpg.conf``::h](hVi raccomandiamo di usare il meccanisco TOFU+PGP (che è la nuova configurazione di base di GnuPG v2). Per farlo, aggiungete (o modificate) l’impostazione }(hjhhhNhNubj)}(h``trust-model``h]h trust-model}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh in }(hjhhhNhNubj)}(h``~/.gnupg/gpg.conf``h]h~/.gnupg/gpg.conf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjb)}(htrust-model tofu+pgph]htrust-model tofu+pgp}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahjhMhjhhubeh}(h]*web-of-trust-wot-o-trust-on-first-use-tofuah ]h"].web of trust (wot) o trust on first use (tofu)ah$]h&]uh1jhjhhhjhMubj)}(hhh](j)}(h3Usare il repositorio kernel.org per il web of trusth]h3Usare il repositorio kernel.org per il web of trust}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubh)}(hX0Il 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:h]hX0Il 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:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubjV)}(hhh]j[)}(h `Kernel developer PGP Keyring`_ h]h)}(h`Kernel developer PGP Keyring`_h]jZ)}(hj%h]hKernel developer PGP Keyring}(hj'hhhNhNubah}(h]h ]h"]h$]h&]nameKernel developer PGP Keyringj)https://korg.docs.kernel.org/pgpkeys.htmluh1jYhj#jKubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jZhjhhhjhNubah}(h]h ]h"]h$]h&]jjuh1jUhjhMhjhhubh)}(hSe siete uno sviluppatore del kernel, per favore valutate l'idea di inviare la vostra chiave per l'inclusione in quel portachiavi.h]hSe siete uno sviluppatore del kernel, per favore valutate l’idea di inviare la vostra chiave per l’inclusione in quel portachiavi.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubh)}(hcIf you are a kernel developer, please consider submitting your key for inclusion into that keyring.h]hcIf you are a kernel developer, please consider submitting your key for inclusion into that keyring.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjhhubj)}(hM.. _`Kernel developer PGP Keyring`: https://korg.docs.kernel.org/pgpkeys.htmlh]h}(h]kernel-developer-pgp-keyringah ]h"]kernel developer pgp keyringah$]h&]jj6uh1jhMhjhhhjj'Kubeh}(h]3usare-il-repositorio-kernel-org-per-il-web-of-trustah ]h"]3usare il repositorio kernel.org per il web of trustah$]h&]uh1jhjhhhjhMubeh}(h](8come-verificare-l-identita-degli-sviluppatori-del-kerneljfeh ]h"](9come verificare l'identità degli sviluppatori del kernelit_kernel_identitieseh$]h&]uh1jhjhhhjhMXj%}jj\sj'}jfj\subeh}(h]()la-guida-a-pgp-per-manutentori-del-kerneljeh ]h"]()la guida a pgp per manutentori del kernel it_pgpguideeh$]h&]uh1jhhhhhjhK j%}jjsj'}jjsubeh}(h]h ]h"]h$]h&]sourcejuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcej _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}(protecting code integrity](jjenitrokey start]j> agnuk]jS anitrokey pro 2]j| a yubikey 5]j a.potrete avere gratuitamente una nitrokey start]j aagent forwarding over ssh]jkanon averci niente a che fare]japatatt patch attestation]jPa2aggiungere alla vostra chiave lo uid di kernel.org]jYakernel developer pgp keyring]j'aurefids}(j]jaj]jaj]jajo]jeaj ]j aj]jaj]j ajf]j\aunameids}(jjjjj$j!j.j+j"jj!jjjjjj}jzjujrj joj j jjj'j$jjj} jz jJ jG j j j j jj jjj j jHjEjj jjj(j%j4j1j@j=jjjjjjjjjjjjj jj>j;jjjjjjjj|j&j#jmjjjjjkjhjjj#j jjjjjujjtjqj{jxjjjljijjfj~j{jjj}jzjjjvjsjnjku nametypes}(jjj$j.j"j!jjj}juj j jj'jj} jJ j j jjj jHjjj(j4j@jjjjjjj j>jjjjj&jmjjkjj#jjjujtj{jjljj~jj}jjvjnuh}(jjjjj!jj+j(jjjjjj1jj1jzjBjrjjojj jjjj$jjj*jz jjG j j jM j j j j jj j j jEj j jjjj%jj1j+j=j7jjKjjjjjjjjjjjjj;j jjAjjjjj|jj#jjjj)jjpjhjjjnj jjj[jjjj&jqj&jxjrjj~jijjfjj{jjjjzjtjjjsjjkjeu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages](hsystem_message)}(hhh]h)}(hhh]h1Hyperlink target "it-pgpguide" is not referenced.}hj9sbah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcejlineKuh1j4ubj5)}(hhh]h)}(hhh]h7Hyperlink target "it-devs-not-infra" is not referenced.}hjTsbah}(h]h ]h"]h$]h&]uh1hhjQubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineK7uh1j4ubj5)}(hhh]h)}(hhh]h2Hyperlink target "it-pgp-tools" is not referenced.}hjnsbah}(h]h ]h"]h$]h&]uh1hhjkubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineKLuh1j4ubj5)}(hhh]h)}(hhh]h9Hyperlink target "it-protect-your-key" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineK~uh1j4ubj5)}(hhh]h)}(hhh]h3Hyperlink target "it-smartcards" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineMuh1j4ubj5)}(hhh]h)}(hhh]h5Hyperlink target "it-pgp-with-git" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineMuh1j4ubj5)}(hhh]h)}(hhh]h:Hyperlink target "it-verify-identities" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineM(uh1j4ubj5)}(hhh]h)}(hhh]h:Hyperlink target "it-kernel-identities" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejNsourcejlineM_uh1j4ube transformerN include_log]ADocumentation/translations/it_IT/process/maintainer-pgp-guide.rst(NNNNta decorationNhhub.