Difference between revisions of "Pacman/Package signing (Italiano)"

From ArchWiki
Jump to: navigation, search
(Aggiungere le key)
(Allineamento "How it works" 2012-01-18)
Line 9: Line 9:
 
[http://allanmcrae.com/2011/12/pacman-package-signing-4-arch-linux/] e alla [https://wiki.archlinux.org/index.php/Package_Signing_Proposal_for_Pacman proposta di controllo delle firme in Pacman] della wiki.
 
[http://allanmcrae.com/2011/12/pacman-package-signing-4-arch-linux/] e alla [https://wiki.archlinux.org/index.php/Package_Signing_Proposal_for_Pacman proposta di controllo delle firme in Pacman] della wiki.
  
==Panoramica sulle key e sulle fingerprint==
+
==Funzionamento==
Una PGP key permette agli sviluppatori di firmare in modo unico il loro pacchetto, assicurando così che non venga da qualcuno che li impersoni indebitamente.
+
Il sistema di firmatura pacchetti in pacman utilizza il modello [http://it.wikipedia.org/wiki/Web_of_trust "web of trust"] per assicurare che i pacchetti vengono dagli sviluppatori e non da qualcuno che si sostituisca a loro indebitamente. Gli sviluppatori dei pacchetti e i Trusted User hanno chiavi PGP individuali che utilizzano per firmare i propri pacchetti. Questo significa che loro garantiscono il contenuto del pacchetto. Anche l'utente comune possiede una PGP key unica, che viene generata quando questi configura pacman-key.
 +
 
 +
Le chiavi possono essere usate per firmare ''altre'' key. Ciò signigica che il proprietario della chiave firmante garantisce per l'autenticità della chiave firmata. Per verificare un pacchetto, è necessario avere un collegamento di firme dalla propria chiave PGP al pacchetto stesso. Con la struttura di chiavi Arch questo può avventire intre modi:
 +
* '''Pacchetti personali (custom)''': l'utente crea da sé il proprio pacchetto e lo firma con una key personale.
 +
* '''Pacchetti non ufficiali (unofficial)''': uno sviluppatore fa un pacchetto e lo firma. L'utente utilizza la propria key per firmare quella dello sviluppatore.
 +
* '''Pacchetti ufficiali (official)''': uno sviluppatore fa un pacchetto e lo firma. La chiave dello sviluppatore viene firmata dalle chiavi principali (master-key). L'utente fa poi affidamento su queste ultime per garantire gli sviluppatori
  
 
===Fingerprint o keyID===
 
===Fingerprint o keyID===
Line 105: Line 110:
 
  xargs pacman-key --recv-keys
 
  xargs pacman-key --recv-keys
  
==Fix in caso di fallimento dell'importazione delle chiavi==
+
==Risoluzione dei problemi==
 
+
Il problema potrebbe essere dato dal fatto che qualche [http://it.wikipedia.org/wiki/Internet_Service_Provider ISP] abbia bloccat la porta utilizzata per importare le chiavi PGP.
+
  
In tal caso, modificare {{ic|/etc/pacman.d/gnupg/gpg.conf}}, rimpiazzando {{ic|keyserver hkp://keys.gnupg.net}} con  {{ic|keyserver hkp://pgp.mit.edu:11371}}. Tutto dovrebbe tornare a funzionare.
+
===Impossibile importare le key===
 +
Alcuni [http://it.wikipedia.org/wiki/Internet_Service_Provider ISP] potrebbe aver bloccato la porta utilizzata per importare le chiavi PGP. Una soluzione è quella di utilizzare il keyserver del [http://it.wikipedia.org/wiki/Massachusetts_Institute_of_Technology Massachusset's Institute of Technology] che mette a disposizione una porta alternativa. Per farlo, modificare {{ic|/etc/pacman.d/gnupg/gpg.conf}}, rimpiazzando la linea dei keyserver {{ic|keyserver hkp://keys.gnupg.net}} con  {{ic|keyserver hkp://pgp.mit.edu:11371}}.

Revision as of 19:02, 18 January 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Pacman-key è un nuovo tool disponibile con pacman 4. Con la nuova implementazione dei pacchetti firmati, permette all'utente di amministrarne la lista delle chiavi affidabili in pacman. Per un po' di storia sulla questione, si rimanda a questi articoli blog: [1] [2] [3] [4] e alla proposta di controllo delle firme in Pacman della wiki.

Funzionamento

Il sistema di firmatura pacchetti in pacman utilizza il modello "web of trust" per assicurare che i pacchetti vengono dagli sviluppatori e non da qualcuno che si sostituisca a loro indebitamente. Gli sviluppatori dei pacchetti e i Trusted User hanno chiavi PGP individuali che utilizzano per firmare i propri pacchetti. Questo significa che loro garantiscono il contenuto del pacchetto. Anche l'utente comune possiede una PGP key unica, che viene generata quando questi configura pacman-key.

Le chiavi possono essere usate per firmare altre key. Ciò signigica che il proprietario della chiave firmante garantisce per l'autenticità della chiave firmata. Per verificare un pacchetto, è necessario avere un collegamento di firme dalla propria chiave PGP al pacchetto stesso. Con la struttura di chiavi Arch questo può avventire intre modi:

  • Pacchetti personali (custom): l'utente crea da sé il proprio pacchetto e lo firma con una key personale.
  • Pacchetti non ufficiali (unofficial): uno sviluppatore fa un pacchetto e lo firma. L'utente utilizza la propria key per firmare quella dello sviluppatore.
  • Pacchetti ufficiali (official): uno sviluppatore fa un pacchetto e lo firma. La chiave dello sviluppatore viene firmata dalle chiavi principali (master-key). L'utente fa poi affidamento su queste ultime per garantire gli sviluppatori

Fingerprint o keyID

  • Una fingerprint o "impronta digitale" è un versione breve della key (chiave). Può essere usata per identificare la chiave stessa senza il bisogno di averla intera (in quanto a volte è decisamente lunga). È un po' il "nome" della key. Nella documentazione di pacman sono ciò che è chiamato keyIDs.
  • Formati di fingerprint
    • Fingerprint come "6645 B0A8 C700 5E78 DB1D 7864 F99F FE0F EAE9 99BD" devono essere compresse come "6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD" (rimozione degli spazi)
    • La parte "0x" davanti alla key è opzionale: che sia aggiunta o tolta, funzionerà comunque.

Keyserver

  • I PGP key server immagazzinano i file key. In tal modo permettono all'utente di reperire le key basate sulle fingerprint, sui nomi e sulle ID. Il keyserver predefinito per pacman-key è configurato in /etc/pacman.d/gnupg/gpg.conf. È possibile sostituirlo usando l'opzione --keyserver da riga di comando.

Se si desidera cercare dei keyserver diversi, si può trovare una piccola lista nell'articolo di Wikipedia.

Installazione

Per disabilitare il controllo delle chavi PGP completamente, aggiungere la linea seguente sotto [Options] in /etc/pacman.conf:

SigLevel     = Never

Quindi, per settare la memorizzazione GPG delle key, usare:

# pacman-key --init

L'istruzione SigLevel può avere tre valori principali:

  • Required, che forza l'esecuzione del controllo delle firme;
  • Optional (predefinita), che controlla le firme se presenti. I pacchetti e i database non firmati, saranno comunque accettati;
  • Never, che non fa eseguire il controllo delle firme.

Aggiungere le key

Quando pacman incontra chiavi sconosciute sui pacchetti, chiederà all'utente di aggiungerle. Per far ciò si può scaricare il file della PGP key e avviare 'pacman-key -a key-file'; in alternativa è possibile reperila da un keyserver basato sulla fingerprint. Questa seconda possibilità è più semplice ed è spiegata qui sotto:

  • Trovare la fingerprint della chiave di uno sviluppatore: si visiti la pagina degli sviluppatori e si trovi il link PGP Key. Il link è la fingerprint.
  • Dare il comando pacman-key -r <fingerprint> --keyserver <key server>. Come keyserver <key server> utilizzare "hkp://pgp.mit.edu".
  • pacman-key -l mostra le key aggiunte.
  • Ciò aggiunge le key al portachiavi, ma lascia il livello di affidabilità come "unknown" (sconosciuto).

Firmare le key

Perché le chiavi funzionino il livello di affidabilità deve essere cambiato.

Per firmare la key localmente, usare:

# pacman-key --lsign-key <keyid>

Ciò può essere fatto anche usando il comando di gpg lsign o, ugualmente, pacman-key --edit-key "<fingerprint>" e quindi lsign

Alternativamente è possibile settare pacman per convalidare ogni key nel suo portachiavi. Per quest'ultima ipotesi, si aggiunga UNA delle opzioni seguenti sotto [Options] in /etc/pacman.conf

SigLevel     = Required TrustAll
SigLevel     = Optional TrustAll

Script per aggiungere le chiavi PGP richieste

Quando le chiavi principali sono state aggiunte, non è necessario convalidare ogni PGP key degli Sviluppatori Arch Linux o dei Trusted Users. Infatti esse saranno firmate da almeno tre di queste chiavi principali.

Script per aggiungere tutte le principali PGP key

Questo script aggiunge le master key alle chiavi memorizzate da pacman e imposta il livello di affidabilità a "marginal" (3).

Warning: Usare con attenzione. Controllare che le chiavi elencate sotto corrispondano alle master-keys. È possibile che qualcuno modifichi illecitamente le chiavi principali ed inserisca chiavi PGP maligne, rendendo l'intero processo di controllo inutile.

Lo script deve essere avviato come root per aggiungere le key (in alternativa si aggiunga sudo davanti al comando pacman-key.

for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
    pacman-key --recv-keys $key
    pacman-key --lsign-key $key
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
        --no-permission-warning --command-fd 0 --edit-key $key
done

Script per aggiungere tutte le chiavi PGP degli sviluppatori dalla pagina Sviluppatori

Questo script usa curl per scaricare la pagina Sviluppatori ed estrarre le fingerprint delle chiavi PGP. Quindi, con pacman --recv-keys e pgp.mit.edu come keyserver, li aggiunge al portachiavi pacman.

Warning: Usare con attenzione. È possibile che qualcuno modifichi illecitamente la pagina Sviluppatori ed inserisca chiavi PGP maligne, rendendo l'intero processo di controllo inutile.

Lo script deve essere avviato come root per aggiungere le key (in alternativa si aggiunga sudo davanti al comando pacman-key.

curl https://www.archlinux.org/developers/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Script per aggiungere tutte le chiavi PGP dei trusted users dalla pagina Trusted Users

Questo script usa curl per scaricare la pagina Trusted Users ed estrarre le fingerprint delle chiavi PGP. Quindi, con pacman --recv-keys e pgp.mit.edu come keyserver, li aggiunge al portachiavi pacman.

Warning: Usare con attenzione. È possibile che qualcuno modifichi illecitamente la pagina Trusted Users ed inserisca chiavi PGP maligne, rendendo l'intero processo di controllo inutile.

Lo script deve essere avviato come root per aggiungere le key (in alternativa si aggiunga sudo davanti al comando pacman-key.

curl https://www.archlinux.org/trustedusers/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Script per aggiungere tutte le PGP key (sia degli Sviluppatori che dei Trusted Users)

Warning: Usare con attenzione. È possibile che qualcuno modifichi illecitamente la pagina Sviluppatori/Trusted Users ed inserisca chiavi PGP maligne, rendendo l'intero processo di controllo inutile.
curl https://www.archlinux.org/{developers,trustedusers}/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Risoluzione dei problemi

Impossibile importare le key

Alcuni ISP potrebbe aver bloccato la porta utilizzata per importare le chiavi PGP. Una soluzione è quella di utilizzare il keyserver del Massachusset's Institute of Technology che mette a disposizione una porta alternativa. Per farlo, modificare /etc/pacman.d/gnupg/gpg.conf, rimpiazzando la linea dei keyserver keyserver hkp://keys.gnupg.net con keyserver hkp://pgp.mit.edu:11371.